From: <mar...@us...> - 2014-08-23 13:35:32
|
Revision: 7571 http://sourceforge.net/p/freeorion/code/7571 Author: marcel_metz Date: 2014-08-23 13:35:06 +0000 (Sat, 23 Aug 2014) Log Message: ----------- Added explicit description to hotkeys to remove string table key composing. Modified Paths: -------------- trunk/FreeOrion/UI/Hotkeys.cpp trunk/FreeOrion/UI/Hotkeys.h trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/OptionsWnd.cpp Modified: trunk/FreeOrion/UI/Hotkeys.cpp =================================================================== --- trunk/FreeOrion/UI/Hotkeys.cpp 2014-08-23 10:19:20 UTC (rev 7570) +++ trunk/FreeOrion/UI/Hotkeys.cpp 2014-08-23 13:35:06 UTC (rev 7571) @@ -66,14 +66,14 @@ ///////////////////////////////////////////////////////// std::map<std::string, Hotkey>* Hotkey::s_hotkeys = 0; -void Hotkey::AddHotkey(const std::string& name, GG::Key key, GG::Flags<GG::ModKey> mod) { +void Hotkey::AddHotkey(const std::string& name, const std::string& description, GG::Key key, GG::Flags<GG::ModKey> mod) { if (!s_hotkeys) s_hotkeys = new std::map<std::string, Hotkey>; if (IsTypingSafe(key, mod)) { - s_hotkeys->insert(std::make_pair(name, Hotkey(name, key, mod))); + s_hotkeys->insert(std::make_pair(name, Hotkey(name, description, key, mod))); } else { Logger().errorStream() << "Hotkey::AddHotkey attempted to set a hotkey that is not safe to use while typing."; - s_hotkeys->insert(std::make_pair(name, Hotkey(name, GG::GGK_UNKNOWN, GG::MOD_KEY_NONE))); + s_hotkeys->insert(std::make_pair(name, Hotkey(name, description, GG::GGK_UNKNOWN, GG::MOD_KEY_NONE))); } } @@ -149,7 +149,7 @@ const Hotkey& hotkey = i->second; std::string n = "UI.hotkeys."; n += hotkey.m_name; - db.Add(n, UserStringForHotkey(hotkey.m_name), + db.Add(n, hotkey.GetDescription(), hotkey.ToString(), Validator<std::string>()); } } @@ -228,8 +228,9 @@ } } -Hotkey::Hotkey(const std::string& name, GG::Key key, GG::Flags<GG::ModKey> mod) : +Hotkey::Hotkey(const std::string& name, const std::string& description, GG::Key key, GG::Flags<GG::ModKey> mod) : m_name(name), + m_description(description), m_key(key), m_key_default(key), m_mod_keys(mod), @@ -239,12 +240,8 @@ const Hotkey& Hotkey::NamedHotkey(const std::string& name) { return PrivateNamedHotkey(name); } -std::string Hotkey::UserStringForHotkey(const std::string& name) { - std::string ret = "HOTKEY_" + name; - std::transform(ret.begin(), ret.end(), ret.begin(), ::toupper); - ReplaceInString(ret, ".", "_"); - return ret; -} +std::string Hotkey::GetDescription() const +{ return m_description; } Hotkey& Hotkey::PrivateNamedHotkey(const std::string& name) { std::string error_msg = "Hotkey::PrivateNamedHotkey error: no hotkey named: " + name; @@ -298,31 +295,29 @@ bool Hotkey::IsDefault() const { return m_key == m_key_default && m_mod_keys == m_mod_keys_default; } -void Hotkey::SetHotkey(const std::string& name, GG::Key key, GG::Flags<GG::ModKey> mod) { +void Hotkey::SetHotkey(const Hotkey& hotkey, GG::Key key, GG::Flags<GG::ModKey> mod) { if (!IsTypingSafe(key, mod)) { Logger().debugStream() << "Hotkey::SetHotkey: Typing-unsafe hotkey requested: " - << mod << " + " << key << " for hotkey " << name; + << mod << " + " << key << " for hotkey " << hotkey.m_name; return; } - Hotkey& hk = PrivateNamedHotkey(name); + Hotkey& hk = PrivateNamedHotkey(hotkey.m_name); hk.m_key = key; hk.m_mod_keys = GG::MassagedAccelModKeys(mod); GetOptionsDB().Set<std::string>("UI.hotkeys." + hk.m_name, hk.ToString()); } -void Hotkey::ResetHotkey(const std::string& name) { - Hotkey& hk = PrivateNamedHotkey(name); - std::string n = "UI.hotkeys."; - n += hk.m_name; +void Hotkey::ResetHotkey(const Hotkey& old_hotkey) { + Hotkey& hk = PrivateNamedHotkey(old_hotkey.m_name); hk.m_key = hk.m_key_default; hk.m_mod_keys = hk.m_mod_keys_default; - GetOptionsDB().Set<std::string>(n, hk.ToString()); + GetOptionsDB().Set<std::string>("UI.hotkeys." + hk.m_name, hk.ToString()); } -void Hotkey::ClearHotkey(const std::string& name) -{ Hotkey::SetHotkey(name, GG::GGK_UNKNOWN, GG::Flags<GG::ModKey>()); } +void Hotkey::ClearHotkey(const Hotkey& old_hotkey) +{ Hotkey::SetHotkey(old_hotkey, GG::GGK_UNKNOWN, GG::Flags<GG::ModKey>()); } ////////////////////////////////////////////////////////////////////// // InvisibleWindowCondition Modified: trunk/FreeOrion/UI/Hotkeys.h =================================================================== --- trunk/FreeOrion/UI/Hotkeys.h 2014-08-23 10:19:20 UTC (rev 7570) +++ trunk/FreeOrion/UI/Hotkeys.h 2014-08-23 13:35:06 UTC (rev 7571) @@ -36,28 +36,27 @@ /// The global hotkey storage static std::map<std::string, Hotkey>* s_hotkeys; - Hotkey(const std::string& name, GG::Key key, - GG::Flags<GG::ModKey> mod = GG::MOD_KEY_NONE); + Hotkey(const std::string& name, const std::string& description, + GG::Key key, GG::Flags<GG::ModKey> mod = GG::MOD_KEY_NONE); /// Returns a modifiable version of the hotkey. static Hotkey& PrivateNamedHotkey(const std::string& name); public: /// Internal name (code-like). - /// - /// Use namespaces. This name will be converted to a stringtable - /// entry by prepending HOTKEY_, converting to uppercase and - /// changing . into _. std::string m_name; + /// The human readable description of what this Hot does. + std::string m_description; + /// Returns the name of the user string containing the description /// of the shortcut. - static std::string UserStringForHotkey(const std::string& name); + std::string GetDescription() const; /// Registers a hotkey name (ie the one used for storing in the /// database) along with a description and a default value. - static void AddHotkey(const std::string& name, GG::Key key, - GG::Flags<GG::ModKey> mod = GG::MOD_KEY_NONE); + static void AddHotkey(const std::string& name, const std::string& description, + GG::Key key, GG::Flags<GG::ModKey> mod = GG::MOD_KEY_NONE); /// Returns the name of all defined hotkeys @@ -74,15 +73,15 @@ /// Sets the value of the given named hotkey, and updates the /// corresponding option. - static void SetHotkey(const std::string& name, GG::Key key, + static void SetHotkey(const Hotkey& hotkey, GG::Key key, GG::Flags<GG::ModKey> mod = GG::MOD_KEY_NONE); /// Sets the value of the given named hotkey to its default, /// and updates the corresponding option. - static void ResetHotkey(const std::string& name); + static void ResetHotkey(const Hotkey& hotkey); /// Sets the value of the given named hotkey to no key - static void ClearHotkey(const std::string& name); + static void ClearHotkey(const Hotkey& hotkey); /// Returns a string that can later be parsed again with /// HotkeyFromString() Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 10:19:20 UTC (rev 7570) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 13:35:06 UTC (rev 7571) @@ -127,35 +127,35 @@ // Register hotkey names/default values for the context "map". - Hotkey::AddHotkey("map.return_to_map", GG::GGK_ESCAPE); - Hotkey::AddHotkey("map.open_chat", GG::GGK_t, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.end_turn", GG::GGK_RETURN, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.sit_rep", GG::GGK_n, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.research", GG::GGK_r, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.production", GG::GGK_p, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.design", GG::GGK_d, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.menu", GG::GGK_F10); - Hotkey::AddHotkey("map.zoom_in", GG::GGK_z, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_in_alt", GG::GGK_KP_PLUS, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_out", GG::GGK_x, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_out_alt", GG::GGK_KP_MINUS, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_home_system", GG::GGK_h, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_prev_system", GG::GGK_LESS, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_next_system", GG::GGK_GREATER, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_prev_fleet", GG::GGK_f, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_next_fleet", GG::GGK_g, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("map.zoom_prev_idle_fleet", GG::GGK_UNKNOWN); - Hotkey::AddHotkey("map.zoom_next_idle_fleet", GG::GGK_UNKNOWN); + Hotkey::AddHotkey("map.return_to_map", UserStringNop("HOTKEY_MAP_RETURN_TO_MAP"), GG::GGK_ESCAPE); + Hotkey::AddHotkey("map.open_chat", UserStringNop("HOTKEY_MAP_OPEN_CHAT"), GG::GGK_t, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.end_turn", UserStringNop("HOTKEY_MAP_END_TURN"), GG::GGK_RETURN, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.sit_rep", UserStringNop("HOTKEY_MAP_SIT_REP"), GG::GGK_n, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.research", UserStringNop("HOTKEY_MAP_RESEARCH"), GG::GGK_r, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.production", UserStringNop("HOTKEY_MAP_PRODUCTION"), GG::GGK_p, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.design", UserStringNop("HOTKEY_MAP_DESIGN"), GG::GGK_d, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.menu", UserStringNop("HOTKEY_MAP_MENU"), GG::GGK_F10); + Hotkey::AddHotkey("map.zoom_in", UserStringNop("HOTKEY_MAP_ZOOM_IN"), GG::GGK_z, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_in_alt", UserStringNop("HOTKEY_MAP_ZOOM_IN_ALT"), GG::GGK_KP_PLUS, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_out", UserStringNop("HOTKEY_MAP_ZOOM_OUT"), GG::GGK_x, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_out_alt", UserStringNop("HOTKEY_MAP_ZOOM_OUT_ALT"), GG::GGK_KP_MINUS, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_home_system", UserStringNop("HOTKEY_MAP_ZOOM_HOME_SYSTEM"), GG::GGK_h, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_prev_system", UserStringNop("HOTKEY_MAP_ZOOM_PREV_SYSTEM"), GG::GGK_LESS, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_next_system", UserStringNop("HOTKEY_MAP_ZOOM_NEXT_SYSTEM"), GG::GGK_GREATER, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_prev_fleet", UserStringNop("HOTKEY_MAP_ZOOM_PREV_FLEET"), GG::GGK_f, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_next_fleet", UserStringNop("HOTKEY_MAP_ZOOM_NEXT_FLEET"), GG::GGK_g, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("map.zoom_prev_idle_fleet", UserStringNop("HOTKEY_MAP_ZOOM_PREV_IDLE_FLEET"), GG::GGK_UNKNOWN); + Hotkey::AddHotkey("map.zoom_next_idle_fleet", UserStringNop("HOTKEY_MAP_ZOOM_NEXT_IDLE_FLEET"), GG::GGK_UNKNOWN); - Hotkey::AddHotkey("cut", GG::GGK_x, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("copy", GG::GGK_c, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("paste", GG::GGK_v, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("cut", UserStringNop("HOTKEY_CUT"), GG::GGK_x, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("copy", UserStringNop("HOTKEY_COPY"), GG::GGK_c, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("paste", UserStringNop("HOTKEY_PASTE"), GG::GGK_v, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("select_all", GG::GGK_a, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("deselect", GG::GGK_d, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("select_all", UserStringNop("HOTKEY_SELECT_ALL"), GG::GGK_a, GG::MOD_KEY_CTRL); + Hotkey::AddHotkey("deselect", UserStringNop("HOTKEY_DESELECT"), GG::GGK_d, GG::MOD_KEY_CTRL); - Hotkey::AddHotkey("focus_prev_wnd", GG::GGK_TAB,GG::MOD_KEY_SHIFT); - Hotkey::AddHotkey("focus_next_wnd", GG::GGK_TAB); + Hotkey::AddHotkey("focus_prev_wnd", UserStringNop("HOTKEY_FOCUS_PREV_WND"), GG::GGK_TAB,GG::MOD_KEY_SHIFT); + Hotkey::AddHotkey("focus_next_wnd", UserStringNop("HOTKEY_FOCUS_NEXT_WND"), GG::GGK_TAB); } bool temp_bool = RegisterOptions(&AddOptions); Modified: trunk/FreeOrion/UI/OptionsWnd.cpp =================================================================== --- trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-23 10:19:20 UTC (rev 7570) +++ trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-23 13:35:06 UTC (rev 7571) @@ -715,7 +715,7 @@ // set hotkey to new pressed key / modkey combination - Hotkey::SetHotkey(hk_name, kp.first, kp.second); + Hotkey::SetHotkey(hotkey, kp.first, kp.second); // indicate new hotkey on button button->SetText(Hotkey::NamedHotkey(hk_name).PrettyPrint()); @@ -727,9 +727,9 @@ void HandleResetHotkeyOption(const std::string & hk_name, CUIButton * button) { const Hotkey& hotkey = Hotkey::NamedHotkey(hk_name); if (hotkey.IsDefault()) - hotkey.ClearHotkey(hk_name); + hotkey.ClearHotkey(hotkey); else - hotkey.ResetHotkey(hk_name); + hotkey.ResetHotkey(hotkey); // indicate new hotkey on button button->SetText(Hotkey::NamedHotkey(hk_name).PrettyPrint()); @@ -742,7 +742,7 @@ void OptionsWnd::HotkeyOption(CUIListBox* page, int indentation_level, const std::string& hotkey_name) { GG::ListBox::Row* row = new GG::ListBox::Row(); const Hotkey & hk = Hotkey::NamedHotkey(hotkey_name); - std::string text = UserString(Hotkey::UserStringForHotkey(hotkey_name)); + std::string text = UserString(hk.GetDescription()); GG::Layout* layout = new GG::Layout(GG::X0, GG::Y0, GG::X1, GG::Y1, 1, 2, 0, 5); CUILabel* text_control = new CUILabel(text, GG::FORMAT_LEFT | GG::FORMAT_NOWRAP, GG::INTERACTIVE); CUIButton* button = new CUIButton(hk.PrettyPrint()); |
From: <mar...@us...> - 2014-08-23 15:23:55
|
Revision: 7573 http://sourceforge.net/p/freeorion/code/7573 Author: marcel_metz Date: 2014-08-23 15:23:39 +0000 (Sat, 23 Aug 2014) Log Message: ----------- Removed position parameters from CUIToolBar constructor. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/MapWnd.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-23 13:57:35 UTC (rev 7572) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-23 15:23:39 UTC (rev 7573) @@ -993,8 +993,8 @@ /////////////////////////////////////// // class CUIToolBar /////////////////////////////////////// -CUIToolBar::CUIToolBar(GG::X x, GG::Y y, GG::X w, GG::Y h) : - GG::Control(x, y, w, h, GG::ONTOP | GG::INTERACTIVE) +CUIToolBar::CUIToolBar() : + GG::Control(GG::X0, GG::Y0, GG::X1, GG::Y1, GG::ONTOP | GG::INTERACTIVE) {} bool CUIToolBar::InWindow(const GG::Pt& pt) const { Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-23 13:57:35 UTC (rev 7572) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-23 15:23:39 UTC (rev 7573) @@ -356,7 +356,7 @@ class CUIToolBar : public GG::Control { public: /** \name Structors */ //@{ - CUIToolBar(GG::X x, GG::Y y, GG::X w, GG::Y h); + CUIToolBar(); //@} /** \name Accessors */ //@{ Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 13:57:35 UTC (rev 7572) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 15:23:39 UTC (rev 7573) @@ -603,7 +603,7 @@ Connect(GetUniverse().UniverseObjectDeleteSignal, &MapWnd::UniverseObjectDeleted, this); // toolbar - m_toolbar = new CUIToolBar(GG::X0, GG::Y0, AppWidth(), TOOLBAR_HEIGHT); + m_toolbar = new CUIToolBar(); m_toolbar->SetName("MapWnd Toolbar"); GG::GUI::GetGUI()->Register(m_toolbar); m_toolbar->Hide(); |
From: <mar...@us...> - 2014-08-23 18:11:08
|
Revision: 7577 http://sourceforge.net/p/freeorion/code/7577 Author: marcel_metz Date: 2014-08-23 18:11:04 +0000 (Sat, 23 Aug 2014) Log Message: ----------- Removed position parameters, dragable and resizable from system side panel. Position and resize system side panel to the right edge of the application when resizing. Modified Paths: -------------- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp trunk/FreeOrion/UI/BuildDesignatorWnd.h trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/SidePanel.cpp trunk/FreeOrion/UI/SidePanel.h Modified: trunk/FreeOrion/UI/BuildDesignatorWnd.cpp =================================================================== --- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-23 17:11:05 UTC (rev 7576) +++ trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-23 18:11:04 UTC (rev 7577) @@ -879,7 +879,7 @@ m_enc_detail_panel = new EncyclopediaDetailPanel(CHILD_WIDTHS, DETAIL_PANEL_HEIGHT, GG::ONTOP | GG::INTERACTIVE | GG::DRAGABLE | GG::RESIZABLE | PINABLE ); - m_side_panel = new SidePanel(Width() - SIDEPANEL_WIDTH, GG::Y0, Height()); + m_side_panel = new SidePanel(); m_side_panel->EnableSelection(); m_side_panel->Hide(); @@ -912,6 +912,8 @@ MoveChildUp(m_build_selector); Clear(); + + DoLayout(); } const std::set<BuildType>& BuildDesignatorWnd::GetBuildTypesShown() const @@ -926,6 +928,22 @@ bool BuildDesignatorWnd::InClient(const GG::Pt& pt) const { return m_enc_detail_panel->InClient(pt) || m_build_selector->InClient(pt) || m_side_panel->InClient(pt); } +void BuildDesignatorWnd::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { + GG::Pt old_size = Size(); + + GG::Wnd::SizeMove(ul, lr); + + if(old_size != Size()) + DoLayout(); +} + +void BuildDesignatorWnd::DoLayout() { + const GG::X SIDEPANEL_WIDTH = GG::X(GetOptionsDB().Get<int>("UI.sidepanel-width")); + + m_side_panel->MoveTo(GG::Pt(Width() - SIDEPANEL_WIDTH, GG::Y0)); + m_side_panel->Resize(GG::Pt(SIDEPANEL_WIDTH, Height())); +} + void BuildDesignatorWnd::CenterOnBuild(int queue_idx) { SetBuild(queue_idx); Modified: trunk/FreeOrion/UI/BuildDesignatorWnd.h =================================================================== --- trunk/FreeOrion/UI/BuildDesignatorWnd.h 2014-08-23 17:11:05 UTC (rev 7576) +++ trunk/FreeOrion/UI/BuildDesignatorWnd.h 2014-08-23 18:11:04 UTC (rev 7577) @@ -28,6 +28,9 @@ //@} /** \name Mutators */ //@{ + virtual void SizeMove(const GG::Pt& ul, const GG::Pt& lr); + void DoLayout(); + /** Centres map wnd on location of item on queue with index \a queue_idx * and displays info about that item in encyclopedia window. */ void CenterOnBuild(int queue_idx); Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 17:11:05 UTC (rev 7576) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 18:11:04 UTC (rev 7577) @@ -1010,7 +1010,7 @@ /////////////////// // system-view side panel - m_side_panel = new SidePanel(AppWidth() - SidePanelWidth(), m_toolbar->Bottom(), AppHeight() - m_toolbar->Height()); + m_side_panel = new SidePanel(); GG::GUI::GetGUI()->Register(m_side_panel); GG::Connect(SidePanel::SystemSelectedSignal, &MapWnd::SelectSystem, this); @@ -1146,6 +1146,8 @@ void MapWnd::DoLayout() { m_toolbar->Resize(GG::Pt(AppWidth(), TOOLBAR_HEIGHT)); + m_side_panel->MoveTo(GG::Pt(AppWidth() - SidePanelWidth(), m_toolbar->Height())); + m_side_panel->Resize(GG::Pt(SidePanelWidth(), AppHeight() - m_toolbar->Height())); m_research_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); m_production_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); m_design_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); Modified: trunk/FreeOrion/UI/SidePanel.cpp =================================================================== --- trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 17:11:05 UTC (rev 7576) +++ trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 18:11:04 UTC (rev 7577) @@ -2554,9 +2554,9 @@ boost::signals2::signal<void (int)> SidePanel::SystemSelectedSignal; -SidePanel::SidePanel(GG::X x, GG::Y y, GG::Y h) : - CUIWnd("SidePanel", x, y, GG::X(GetOptionsDB().Get<int>("UI.sidepanel-width")), h, - GG::INTERACTIVE | GG::RESIZABLE | GG::DRAGABLE | GG::ONTOP), +SidePanel::SidePanel() : + CUIWnd("SidePanel", GG::X0, GG::Y0, GG::X1, GG::Y1, + GG::INTERACTIVE | GG::ONTOP), m_system_name(0), m_star_type_text(0), m_button_prev(0), Modified: trunk/FreeOrion/UI/SidePanel.h =================================================================== --- trunk/FreeOrion/UI/SidePanel.h 2014-08-23 17:11:05 UTC (rev 7576) +++ trunk/FreeOrion/UI/SidePanel.h 2014-08-23 18:11:04 UTC (rev 7577) @@ -29,7 +29,7 @@ class PlanetPanel; /** \name Structors */ //@{ - SidePanel(GG::X x, GG::Y y, GG::Y h); + SidePanel(); ~SidePanel(); //@} |
From: <mar...@us...> - 2014-08-23 19:27:28
|
Revision: 7579 http://sourceforge.net/p/freeorion/code/7579 Author: marcel_metz Date: 2014-08-23 19:27:03 +0000 (Sat, 23 Aug 2014) Log Message: ----------- Revert "Removed position parameters, dragable and resizable from system side panel." Modified Paths: -------------- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp trunk/FreeOrion/UI/BuildDesignatorWnd.h trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/SidePanel.cpp trunk/FreeOrion/UI/SidePanel.h Modified: trunk/FreeOrion/UI/BuildDesignatorWnd.cpp =================================================================== --- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-23 18:58:29 UTC (rev 7578) +++ trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-23 19:27:03 UTC (rev 7579) @@ -879,7 +879,7 @@ m_enc_detail_panel = new EncyclopediaDetailPanel(CHILD_WIDTHS, DETAIL_PANEL_HEIGHT, GG::ONTOP | GG::INTERACTIVE | GG::DRAGABLE | GG::RESIZABLE | PINABLE ); - m_side_panel = new SidePanel(); + m_side_panel = new SidePanel(Width() - SIDEPANEL_WIDTH, GG::Y0, Height()); m_side_panel->EnableSelection(); m_side_panel->Hide(); @@ -912,8 +912,6 @@ MoveChildUp(m_build_selector); Clear(); - - DoLayout(); } const std::set<BuildType>& BuildDesignatorWnd::GetBuildTypesShown() const @@ -928,22 +926,6 @@ bool BuildDesignatorWnd::InClient(const GG::Pt& pt) const { return m_enc_detail_panel->InClient(pt) || m_build_selector->InClient(pt) || m_side_panel->InClient(pt); } -void BuildDesignatorWnd::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { - GG::Pt old_size = Size(); - - GG::Wnd::SizeMove(ul, lr); - - if(old_size != Size()) - DoLayout(); -} - -void BuildDesignatorWnd::DoLayout() { - const GG::X SIDEPANEL_WIDTH = GG::X(GetOptionsDB().Get<int>("UI.sidepanel-width")); - - m_side_panel->MoveTo(GG::Pt(Width() - SIDEPANEL_WIDTH, GG::Y0)); - m_side_panel->Resize(GG::Pt(SIDEPANEL_WIDTH, Height())); -} - void BuildDesignatorWnd::CenterOnBuild(int queue_idx) { SetBuild(queue_idx); Modified: trunk/FreeOrion/UI/BuildDesignatorWnd.h =================================================================== --- trunk/FreeOrion/UI/BuildDesignatorWnd.h 2014-08-23 18:58:29 UTC (rev 7578) +++ trunk/FreeOrion/UI/BuildDesignatorWnd.h 2014-08-23 19:27:03 UTC (rev 7579) @@ -28,9 +28,6 @@ //@} /** \name Mutators */ //@{ - virtual void SizeMove(const GG::Pt& ul, const GG::Pt& lr); - void DoLayout(); - /** Centres map wnd on location of item on queue with index \a queue_idx * and displays info about that item in encyclopedia window. */ void CenterOnBuild(int queue_idx); Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 18:58:29 UTC (rev 7578) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 19:27:03 UTC (rev 7579) @@ -1010,7 +1010,7 @@ /////////////////// // system-view side panel - m_side_panel = new SidePanel(); + m_side_panel = new SidePanel(AppWidth() - SidePanelWidth(), m_toolbar->Bottom(), AppHeight() - m_toolbar->Height()); GG::GUI::GetGUI()->Register(m_side_panel); GG::Connect(SidePanel::SystemSelectedSignal, &MapWnd::SelectSystem, this); @@ -1146,8 +1146,6 @@ void MapWnd::DoLayout() { m_toolbar->Resize(GG::Pt(AppWidth(), TOOLBAR_HEIGHT)); - m_side_panel->MoveTo(GG::Pt(AppWidth() - SidePanelWidth(), m_toolbar->Height())); - m_side_panel->Resize(GG::Pt(SidePanelWidth(), AppHeight() - m_toolbar->Height())); m_research_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); m_production_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); m_design_wnd->Resize(GG::Pt(AppWidth(), AppHeight() - m_toolbar->Height())); Modified: trunk/FreeOrion/UI/SidePanel.cpp =================================================================== --- trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 18:58:29 UTC (rev 7578) +++ trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 19:27:03 UTC (rev 7579) @@ -2554,9 +2554,9 @@ boost::signals2::signal<void (int)> SidePanel::SystemSelectedSignal; -SidePanel::SidePanel() : - CUIWnd("SidePanel", GG::X0, GG::Y0, GG::X1, GG::Y1, - GG::INTERACTIVE | GG::ONTOP), +SidePanel::SidePanel(GG::X x, GG::Y y, GG::Y h) : + CUIWnd("SidePanel", x, y, GG::X(GetOptionsDB().Get<int>("UI.sidepanel-width")), h, + GG::INTERACTIVE | GG::RESIZABLE | GG::DRAGABLE | GG::ONTOP), m_system_name(0), m_star_type_text(0), m_button_prev(0), Modified: trunk/FreeOrion/UI/SidePanel.h =================================================================== --- trunk/FreeOrion/UI/SidePanel.h 2014-08-23 18:58:29 UTC (rev 7578) +++ trunk/FreeOrion/UI/SidePanel.h 2014-08-23 19:27:03 UTC (rev 7579) @@ -29,7 +29,7 @@ class PlanetPanel; /** \name Structors */ //@{ - SidePanel(); + SidePanel(GG::X x, GG::Y y, GG::Y h); ~SidePanel(); //@} |
From: <mar...@us...> - 2014-08-23 21:51:30
|
Revision: 7581 http://sourceforge.net/p/freeorion/code/7581 Author: marcel_metz Date: 2014-08-23 21:51:20 +0000 (Sat, 23 Aug 2014) Log Message: ----------- Added CUIButton constructor for image only buttons. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp trunk/FreeOrion/UI/GalaxySetupWnd.cpp trunk/FreeOrion/UI/InfoPanels.cpp trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/ModeratorActionsWnd.cpp trunk/FreeOrion/UI/ObjectListWnd.cpp trunk/FreeOrion/UI/SidePanel.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -76,6 +76,19 @@ m_border_thick(1) { GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); } + +CUIButton::CUIButton(const GG::SubTexture& unpressed, const GG::SubTexture& pressed, const GG::SubTexture& rollover) : + Button(GG::X0, GG::Y0, GG::X1, GG::Y1, "", ClientUI::GetFont(), GG::CLR_WHITE, GG::CLR_ZERO, GG::INTERACTIVE), + m_border_color(ClientUI::CtrlBorderColor()), + m_border_thick(1) +{ + SetColor(GG::CLR_WHITE); + SetUnpressedGraphic(unpressed); + SetPressedGraphic (pressed); + SetRolloverGraphic (rollover); + GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); +} + bool CUIButton::InWindow(const GG::Pt& pt) const { GG::Pt ul = UpperLeft(); GG::Pt lr = LowerRight(); Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-23 21:51:20 UTC (rev 7581) @@ -41,6 +41,8 @@ public: /** \name Structors */ //@{ CUIButton(const std::string& str); ///< basic ctor + + CUIButton(const GG::SubTexture& unpressed, const GG::SubTexture& pressed, const GG::SubTexture& rollover); //@} /** \name Accessors */ //@{ Modified: trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp =================================================================== --- trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -503,24 +503,23 @@ m_name_text->SetFont(ClientUI::GetBoldFont(NAME_PTS)); m_summary_text->SetFont(ClientUI::GetFont(SUMMARY_PTS)); - m_index_button = new CUIButton(""); - m_index_button->SetColor(GG::CLR_WHITE); - m_index_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrownormal.png" ))); - m_index_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowclicked.png" ))); - m_index_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowmouseover.png" ))); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - m_back_button = new CUIButton(""); - m_back_button->SetColor(GG::CLR_WHITE); - m_back_button->SetUnpressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrownormal.png" ))); - m_back_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrowclicked.png" ))); - m_back_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrowmouseover.png" ))); + m_index_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrowmouseover.png"))); - m_next_button = new CUIButton(""); - m_next_button->SetColor(GG::CLR_WHITE); - m_next_button->SetUnpressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrownormal.png" ))); - m_next_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrowclicked.png" ))); - m_next_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrowmouseover.png"))); + m_back_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrowmouseover.png"))); + m_next_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrowmouseover.png"))); + m_back_button->Disable(); m_next_button->Disable(); Modified: trunk/FreeOrion/UI/GalaxySetupWnd.cpp =================================================================== --- trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -87,12 +87,14 @@ m_seed_label->SetBrowseText(UserString(GetOptionsDB().GetDescription("GameSetup.seed"))); m_seed_edit = new CUIEdit(GetOptionsDB().Get<std::string>("GameSetup.seed")); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + // random seed button - m_random = new CUIButton(""); - m_random->SetColor(GG::CLR_WHITE); - m_random->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "randomize.png"))); - m_random->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "randomize_clicked.png" ))); - m_random->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "randomize_mouseover.png"))); + m_random = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "randomize.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "randomize_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "randomize_mouseover.png"))); + m_random->SetBrowseText(UserString("GSETUP_RANDOM_SEED")); m_random->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); Modified: trunk/FreeOrion/UI/InfoPanels.cpp =================================================================== --- trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -269,13 +269,15 @@ if (!pop) throw std::invalid_argument("Attempted to construct a PopulationPanel with an object id is not a PopCenter"); - m_expand_button = new CUIButton(""); - m_expand_button->SetColor(GG::CLR_WHITE); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + + GG::Connect(m_expand_button->LeftClickedSignal, &PopulationPanel::ExpandCollapseButtonPressed, this); AttachChild(m_expand_button); - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &PopulationPanel::ExpandCollapseButtonPressed, this); m_pop_stat = new StatisticIcon(ClientUI::SpeciesIcon(pop->SpeciesName()), 0, 3, false); AttachChild(m_pop_stat); @@ -534,13 +536,15 @@ SetChildClippingMode(ClipToClient); // expand / collapse button at top right - m_expand_button = new CUIButton(""); - m_expand_button->SetColor(GG::CLR_WHITE); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + + GG::Connect(m_expand_button->LeftClickedSignal, &ResourcePanel::ExpandCollapseButtonPressed, this); AttachChild(m_expand_button); - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &ResourcePanel::ExpandCollapseButtonPressed, this); // small resource indicators - for use when panel is collapsed @@ -805,13 +809,15 @@ SetName("MilitaryPanel"); // expand / collapse button at top right - m_expand_button = new CUIButton(""); - m_expand_button->SetColor(GG::CLR_WHITE); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + + GG::Connect(m_expand_button->LeftClickedSignal, &MilitaryPanel::ExpandCollapseButtonPressed, this); AttachChild(m_expand_button); - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &MilitaryPanel::ExpandCollapseButtonPressed, this); // small meter indicators - for use when panel is collapsed m_fleet_supply_stat = new StatisticIcon(ClientUI::MeterIcon(METER_SUPPLY), 0, 3, false); @@ -1368,13 +1374,15 @@ } // expand / collapse button at top right - m_expand_button = new CUIButton(""); - m_expand_button->SetColor(GG::CLR_WHITE); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + + GG::Connect(m_expand_button->LeftClickedSignal, &BuildingsPanel::ExpandCollapseButtonPressed, this); AttachChild(m_expand_button); - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &BuildingsPanel::ExpandCollapseButtonPressed, this); // get owner, connect its production queue changed signal to update this panel TemporaryPtr<const UniverseObject> planet = GetUniverseObject(m_planet_id); Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -861,15 +861,6 @@ m_detection->Resize(GG::Pt(ICON_DUAL_WIDTH, m_btn_turn->Height())); m_detection->SetName("Detection StatisticIcon"); - m_industry_wasted = new CUIButton(""); - m_industry_wasted->SetColor(GG::CLR_WHITE); - m_industry_wasted->Resize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); - m_industry_wasted->SetMinSize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); - m_research_wasted = new CUIButton(""); - m_research_wasted->SetColor(GG::CLR_WHITE); - m_research_wasted->Resize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); - m_research_wasted->SetMinSize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); - GG::SubTexture wasted_ressource_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "wasted_resource.png", false)); GG::SubTexture wasted_ressource_mouseover_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / @@ -877,13 +868,21 @@ GG::SubTexture wasted_ressource_clicked_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "wasted_resource_clicked.png", false)); - m_industry_wasted->SetUnpressedGraphic(wasted_ressource_subtexture); - m_industry_wasted->SetPressedGraphic (wasted_ressource_clicked_subtexture); - m_industry_wasted->SetRolloverGraphic (wasted_ressource_mouseover_subtexture); - m_research_wasted->SetUnpressedGraphic(wasted_ressource_subtexture); - m_research_wasted->SetPressedGraphic (wasted_ressource_clicked_subtexture); - m_research_wasted->SetRolloverGraphic (wasted_ressource_mouseover_subtexture); + m_industry_wasted = new CUIButton( + wasted_ressource_subtexture, + wasted_ressource_clicked_subtexture, + wasted_ressource_mouseover_subtexture); + m_research_wasted = new CUIButton( + wasted_ressource_subtexture, + wasted_ressource_clicked_subtexture, + wasted_ressource_mouseover_subtexture); + + m_industry_wasted->Resize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); + m_industry_wasted->SetMinSize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); + m_research_wasted->Resize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); + m_research_wasted->SetMinSize(GG::Pt(ICON_WIDTH, GG::Y(Value(ICON_WIDTH)))); + m_industry_wasted->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_research_wasted->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); Modified: trunk/FreeOrion/UI/ModeratorActionsWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ModeratorActionsWnd.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/ModeratorActionsWnd.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -39,12 +39,14 @@ ClientUI* ui = ClientUI::GetClientUI(); GG::Flags<GG::GraphicStyle> style = GG::GRAPHIC_CENTER | GG::GRAPHIC_VCENTER | GG::GRAPHIC_FITGRAPHIC | GG::GRAPHIC_PROPSCALE; + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + // button for no action - m_no_action_button = new CUIButton(""); - m_no_action_button->SetColor(GG::CLR_WHITE); - m_no_action_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "nomoderatoraction.png"))); - m_no_action_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "nomoderatoraction_clicked.png" ))); - m_no_action_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "nomoderatoraction_mouseover.png"))); + m_no_action_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "nomoderatoraction.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "nomoderatoraction_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "nomoderatoraction_mouseover.png"))); + m_no_action_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_no_action_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_NONE"), UserString("MOD_NONE")))); @@ -52,11 +54,11 @@ GG::Connect(m_no_action_button->LeftClickedSignal, &ModeratorActionsWnd::NoActionClicked, this); // button for create system and droplist to select system type to create - m_create_system_button = new CUIButton(""); - m_create_system_button->SetColor(GG::CLR_WHITE); - m_create_system_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstar.png"))); - m_create_system_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstar_clicked.png" ))); - m_create_system_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstar_mouseover.png"))); + m_create_system_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstar.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstar_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstar_mouseover.png"))); + m_create_system_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_create_system_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_CREATE_SYSTEM"), UserString("MOD_CREATE_SYSTEM")))); @@ -78,11 +80,11 @@ GG::Connect(m_star_type_drop->SelChangedSignal, &ModeratorActionsWnd::StarTypeSelected, this); // button for create planet and droplists to select planet type and size - m_create_planet_button = new CUIButton(""); - m_create_planet_button->SetColor(GG::CLR_WHITE); - m_create_planet_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addplanet.png"))); - m_create_planet_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addplanet_clicked.png" ))); - m_create_planet_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addplanet_mouseover.png"))); + m_create_planet_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addplanet.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addplanet_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addplanet_mouseover.png"))); + m_create_planet_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_create_planet_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_CREATE_PLANET"), UserString("MOD_CREATE_PLANET")))); @@ -118,11 +120,11 @@ GG::Connect(m_planet_size_drop->SelChangedSignal, &ModeratorActionsWnd::PlanetSizeSelected, this); // button for destroying object - m_delete_object_button = new CUIButton(""); - m_delete_object_button->SetColor(GG::CLR_WHITE); - m_delete_object_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "delete.png"))); - m_delete_object_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "delete_clicked.png" ))); - m_delete_object_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "delete_mouseover.png"))); + m_delete_object_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "delete.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "delete_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "delete_mouseover.png"))); + m_delete_object_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_delete_object_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_DESTROY"), UserString("MOD_DESTROY")))); @@ -130,11 +132,11 @@ GG::Connect(m_delete_object_button->LeftClickedSignal, &ModeratorActionsWnd::DeleteObjectClicked, this); // button for setting owner - m_set_owner_button = new CUIButton(""); - m_set_owner_button->SetColor(GG::CLR_WHITE); - m_set_owner_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "setowner.png"))); - m_set_owner_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "setowner_clicked.png" ))); - m_set_owner_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "setowner_mouseover.png"))); + m_set_owner_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "setowner.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "setowner_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "setowner_mouseover.png"))); + m_set_owner_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_set_owner_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_SET_OWNER"), UserString("MOD_SET_OWNER")))); @@ -147,11 +149,11 @@ GG::Connect(m_empire_drop->SelChangedSignal, &ModeratorActionsWnd::EmpireSelected, this); // button for creating starlane - m_add_starlane_button = new CUIButton(""); - m_add_starlane_button->SetColor(GG::CLR_WHITE); - m_add_starlane_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstarlane.png"))); - m_add_starlane_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstarlane_clicked.png" ))); - m_add_starlane_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "addstarlane_mouseover.png"))); + m_add_starlane_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstarlane.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstarlane_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "addstarlane_mouseover.png"))); + m_add_starlane_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_add_starlane_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_ADD_STARLANE"), UserString("MOD_ADD_STARLANE")))); @@ -159,11 +161,11 @@ GG::Connect(m_add_starlane_button->LeftClickedSignal,&ModeratorActionsWnd::AddStarlane, this); // button for removing starlane - m_remove_starlane_button = new CUIButton(""); - m_remove_starlane_button->SetColor(GG::CLR_WHITE); - m_remove_starlane_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "removestarlane.png"))); - m_remove_starlane_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "removestarlane_clicked.png" ))); - m_remove_starlane_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "removestarlane_mouseover.png"))); + m_remove_starlane_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "removestarlane.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "removestarlane_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "removestarlane_mouseover.png"))); + m_remove_starlane_button->SetBrowseModeTime(GetOptionsDB().Get<int>("UI.tooltip-delay")); m_remove_starlane_button->SetBrowseInfoWnd(boost::shared_ptr<GG::BrowseInfoWnd>( new TextBrowseWnd(UserString("MOD_REMOVE_STARLANE"), UserString("MOD_REMOVE_STARLANE")))); Modified: trunk/FreeOrion/UI/ObjectListWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -1191,20 +1191,22 @@ delete m_icon; m_icon = 0; if (m_has_contents) { - m_expand_button = new CUIButton(""); - m_expand_button->SetColor(GG::CLR_WHITE); - AttachChild(m_expand_button); - GG::Connect(m_expand_button->LeftClickedSignal, &ObjectPanel::ExpandCollapseButtonPressed, this); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; if (m_expanded) { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "minusnormal.png" , true))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "minusclicked.png" , true))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "minusmouseover.png" , true))); + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "minusnormal.png" , true)), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "minusclicked.png" , true)), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "minusmouseover.png" , true))); } else { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "plusnormal.png" , true))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "plusclicked.png" , true))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "plusmouseover.png", true))); + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "plusnormal.png" , true)), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "plusclicked.png" , true)), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "plusmouseover.png", true))); } + + AttachChild(m_expand_button); + GG::Connect(m_expand_button->LeftClickedSignal, &ObjectPanel::ExpandCollapseButtonPressed, this); } else { m_dot = new GG::StaticGraphic(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "dot.png", true), style); AttachChild(m_dot); Modified: trunk/FreeOrion/UI/SidePanel.cpp =================================================================== --- trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 20:40:19 UTC (rev 7580) +++ trunk/FreeOrion/UI/SidePanel.cpp 2014-08-23 21:51:20 UTC (rev 7581) @@ -2569,10 +2569,18 @@ m_planet_panel_container = new PlanetPanelContainer(GG::X0, GG::Y0, GG::X1, GG::Y1); AttachChild(m_planet_panel_container); - m_button_prev = new CUIButton(""); - m_button_prev->SetColor(GG::CLR_WHITE); - m_button_next = new CUIButton(""); - m_button_next->SetColor(GG::CLR_WHITE); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_button_prev = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "leftarrowmouseover.png"))); + + m_button_next = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "rightarrowmouseover.png"))); + m_system_name = new CUIDropDownList(6); m_system_name->SetColor(GG::CLR_ZERO); m_system_name->SetInteriorColor(GG::FloatClr(0.0, 0.0, 0.0, 0.5)); @@ -2591,15 +2599,7 @@ AttachChild(m_system_name); AttachChild(m_star_type_text); - - m_button_prev->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrownormal.png" ))); - m_button_prev->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrowclicked.png" ))); - m_button_prev->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "leftarrowmouseover.png"))); AttachChild(m_button_prev); - - m_button_next->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrownormal.png" ))); - m_button_next->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrowclicked.png" ))); - m_button_next->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "rightarrowmouseover.png"))); AttachChild(m_button_next); m_system_resource_summary = new MultiIconValueIndicator(Width() - EDGE_PAD*2); |
From: <mar...@us...> - 2014-08-24 10:27:19
|
Revision: 7588 http://sourceforge.net/p/freeorion/code/7588 Author: marcel_metz Date: 2014-08-24 10:27:09 +0000 (Sun, 24 Aug 2014) Log Message: ----------- Moved common collapse functionality of InfoPanels into the new AccordionPanel class. Modified Paths: -------------- trunk/FreeOrion/UI/InfoPanels.cpp trunk/FreeOrion/UI/InfoPanels.h Modified: trunk/FreeOrion/UI/InfoPanels.cpp =================================================================== --- trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-24 09:41:01 UTC (rev 7587) +++ trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-24 10:27:09 UTC (rev 7588) @@ -248,17 +248,65 @@ } ///////////////////////////////////// +// AccordionPanel // +///////////////////////////////////// +AccordionPanel::AccordionPanel(GG::X w) : + GG::Wnd(GG::X0, GG::Y0, w, GG::Y(ClientUI::Pts()*2), GG::INTERACTIVE), + m_expand_button(0) +{ + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + m_expand_button = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + + AttachChild(m_expand_button); +} + +void AccordionPanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { + GG::Pt old_size = GG::Wnd::Size(); + + GG::Wnd::SizeMove(ul, lr); + + if (old_size != GG::Wnd::Size()) + DoLayout(); +} + +void AccordionPanel::SetCollapsed(bool collapsed) { + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + + if (!collapsed) { + m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrownormal.png" ))); + m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrowclicked.png" ))); + m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "uparrowmouseover.png"))); + } else { + m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png" ))); + m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png" ))); + m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + } + + ExpandCollapseSignal(); +} + +void AccordionPanel::DoLayout() { + GG::Pt expand_button_ul(Width() - 16, GG::Y0); + GG::Pt expand_button_lr = expand_button_ul + GG::Pt(GG::X(16), GG::Y(16)); + m_expand_button->SizeMove(expand_button_ul, expand_button_lr); +} + +///////////////////////////////////// // PopulationPanel // ///////////////////////////////////// std::map<int, bool> PopulationPanel::s_expanded_map = std::map<int, bool>(); PopulationPanel::PopulationPanel(GG::X w, int object_id) : - GG::Wnd(GG::X0, GG::Y0, w, GG::Y(ClientUI::Pts()*2), GG::INTERACTIVE), + AccordionPanel(w), m_popcenter_id(object_id), m_pop_stat(0), m_happiness_stat(0), - m_multi_icon_value_indicator(0), m_multi_meter_status_bar(0), - m_expand_button(0) + m_multi_icon_value_indicator(0), + m_multi_meter_status_bar(0) { SetName("PopulationPanel"); @@ -269,15 +317,7 @@ if (!pop) throw std::invalid_argument("Attempted to construct a PopulationPanel with an object id is not a PopCenter"); - boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - - m_expand_button = new CUIButton( - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &PopulationPanel::ExpandCollapseButtonPressed, this); - AttachChild(m_expand_button); m_pop_stat = new StatisticIcon(ClientUI::SpeciesIcon(pop->SpeciesName()), 0, 3, false); AttachChild(m_pop_stat); @@ -310,8 +350,6 @@ delete m_happiness_stat; delete m_multi_icon_value_indicator; delete m_multi_meter_status_bar; - - // don't need to manually delete m_expand_button, as it is attached as a child so will be deleted by ~Wnd } void PopulationPanel::MouseWheel(const GG::Pt& pt, int move, GG::Flags<GG::ModKey> mod_keys) @@ -320,7 +358,7 @@ void PopulationPanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { GG::Pt old_size = GG::Wnd::Size(); - GG::Wnd::SizeMove(ul, lr); + AccordionPanel::SizeMove(ul, lr); if (old_size != GG::Wnd::Size()) DoLayout(); @@ -337,10 +375,6 @@ } void PopulationPanel::DoLayout() { - GG::Pt expand_button_ul(Width() - 16, GG::Y0); - GG::Pt expand_button_lr = expand_button_ul + GG::Pt(GG::X(16), GG::Y(16)); - m_expand_button->SizeMove(expand_button_ul, expand_button_lr); - // initially detach most things. Some will be reattached later. DetachChild(m_pop_stat); DetachChild(m_happiness_stat); @@ -392,18 +426,7 @@ m_expand_button->MoveTo(GG::Pt(Width() - m_expand_button->Width(), GG::Y0)); - // update appearance of expand/collapse button - if (s_expanded_map[m_popcenter_id]) { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowmouseover.png"))); - } else { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - } - - ExpandCollapseSignal(); + SetCollapsed(!s_expanded_map[m_popcenter_id]); } void PopulationPanel::Render() { @@ -513,7 +536,7 @@ std::map<int, bool> ResourcePanel::s_expanded_map; ResourcePanel::ResourcePanel(GG::X w, int object_id) : - GG::Wnd(GG::X0, GG::Y0, w, GG::Y(ClientUI::Pts()*9), GG::INTERACTIVE), + AccordionPanel(w), m_rescenter_id(object_id), //m_pop_mod_stat(0), m_industry_stat(0), @@ -521,8 +544,7 @@ m_trade_stat(0), m_construction_stat(0), m_multi_icon_value_indicator(0), - m_multi_meter_status_bar(0), - m_expand_button(0) + m_multi_meter_status_bar(0) { SetName("ResourcePanel"); @@ -535,18 +557,8 @@ SetChildClippingMode(ClipToClient); - // expand / collapse button at top right - boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - - m_expand_button = new CUIButton( - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &ResourcePanel::ExpandCollapseButtonPressed, this); - AttachChild(m_expand_button); - // small resource indicators - for use when panel is collapsed m_industry_stat = new StatisticIcon(ClientUI::MeterIcon(METER_INDUSTRY), 0, 3, false); AttachChild(m_industry_stat); @@ -588,8 +600,6 @@ delete m_research_stat; delete m_trade_stat; delete m_construction_stat; - - // don't need to manually delete m_expand_button, as it is attached as a child so will be deleted by ~Wnd } void ResourcePanel::ExpandCollapseButtonPressed() { @@ -604,10 +614,6 @@ } void ResourcePanel::DoLayout() { - GG::Pt expand_button_ul(Width() - 16, GG::Y0); - GG::Pt expand_button_lr = expand_button_ul + GG::Pt(GG::X(16), GG::Y(16)); - m_expand_button->SizeMove(expand_button_ul, expand_button_lr); - // initially detach everything (most things?). Some will be reattached later. DetachChild(m_industry_stat); DetachChild(m_research_stat); DetachChild(m_trade_stat); DetachChild(m_construction_stat); @@ -673,18 +679,7 @@ m_expand_button->MoveTo(GG::Pt(Width() - m_expand_button->Width(), GG::Y0)); - // update appearance of expand/collapse button - if (s_expanded_map[m_rescenter_id]) { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowmouseover.png"))); - } else { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - } - - ExpandCollapseSignal(); + SetCollapsed(!s_expanded_map[m_rescenter_id]); } void ResourcePanel::Render() { @@ -712,7 +707,7 @@ void ResourcePanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { GG::Pt old_size = GG::Wnd::Size(); - GG::Wnd::SizeMove(ul, lr); + AccordionPanel::SizeMove(ul, lr); if (old_size != GG::Wnd::Size()) DoLayout(); @@ -794,7 +789,7 @@ std::map<int, bool> MilitaryPanel::s_expanded_map; MilitaryPanel::MilitaryPanel(GG::X w, int planet_id) : - GG::Wnd(GG::X0, GG::Y0, w, GG::Y(ClientUI::Pts()*9), GG::INTERACTIVE), + AccordionPanel(w), m_planet_id(planet_id), m_fleet_supply_stat(0), m_shield_stat(0), @@ -803,21 +798,11 @@ m_detection_stat(0), m_stealth_stat(0), m_multi_icon_value_indicator(0), - m_multi_meter_status_bar(0), - m_expand_button(0) + m_multi_meter_status_bar(0) { SetName("MilitaryPanel"); - // expand / collapse button at top right - boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - - m_expand_button = new CUIButton( - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &MilitaryPanel::ExpandCollapseButtonPressed, this); - AttachChild(m_expand_button); // small meter indicators - for use when panel is collapsed m_fleet_supply_stat = new StatisticIcon(ClientUI::MeterIcon(METER_SUPPLY), 0, 3, false); @@ -871,8 +856,6 @@ delete m_multi_icon_value_indicator; delete m_multi_meter_status_bar; - - // don't need to manually delete m_expand_button, as it is attached as a child so will be deleted by ~Wnd } void MilitaryPanel::ExpandCollapse(bool expanded) { @@ -895,7 +878,7 @@ void MilitaryPanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { GG::Pt old_size = GG::Wnd::Size(); - GG::Wnd::SizeMove(ul, lr); + AccordionPanel::SizeMove(ul, lr); if (old_size != GG::Wnd::Size()) DoLayout(); @@ -955,10 +938,6 @@ { ExpandCollapse(!s_expanded_map[m_planet_id]); } void MilitaryPanel::DoLayout() { - GG::Pt expand_button_ul(Width() - 16, GG::Y0); - GG::Pt expand_button_lr = expand_button_ul + GG::Pt(GG::X(16), GG::Y(16)); - m_expand_button->SizeMove(expand_button_ul, expand_button_lr); - // update size of panel and position and visibility of widgets if (!s_expanded_map[m_planet_id]) { @@ -1023,18 +1002,7 @@ m_expand_button->MoveTo(GG::Pt(Width() - m_expand_button->Width(), GG::Y0)); - // update appearance of expand/collapse button - if (s_expanded_map[m_planet_id]) { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowmouseover.png"))); - } else { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - } - - ExpandCollapseSignal(); + SetCollapsed(!s_expanded_map[m_planet_id]); } void MilitaryPanel::EnableOrderIssuing(bool enable/* = true*/) @@ -1360,11 +1328,10 @@ std::map<int, bool> BuildingsPanel::s_expanded_map = std::map<int, bool>(); BuildingsPanel::BuildingsPanel(GG::X w, int columns, int planet_id) : - GG::Wnd(GG::X0, GG::Y0, w, GG::Y(Value(w)), GG::INTERACTIVE), + AccordionPanel(w), m_planet_id(planet_id), m_columns(columns), - m_building_indicators(), - m_expand_button(0) + m_building_indicators() { SetName("BuildingsPanel"); @@ -1373,16 +1340,7 @@ m_columns = 1; } - // expand / collapse button at top right - boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - - m_expand_button = new CUIButton( - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), - GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); - GG::Connect(m_expand_button->LeftClickedSignal, &BuildingsPanel::ExpandCollapseButtonPressed, this); - AttachChild(m_expand_button); // get owner, connect its production queue changed signal to update this panel TemporaryPtr<const UniverseObject> planet = GetUniverseObject(m_planet_id); @@ -1401,7 +1359,6 @@ for (std::vector<BuildingIndicator*>::iterator it = m_building_indicators.begin(); it != m_building_indicators.end(); ++it) delete *it; m_building_indicators.clear(); - delete m_expand_button; } void BuildingsPanel::ExpandCollapse(bool expanded) { @@ -1424,7 +1381,7 @@ void BuildingsPanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { GG::Pt old_size = GG::Wnd::Size(); - GG::Wnd::SizeMove(ul, lr); + AccordionPanel::SizeMove(ul, lr); if (old_size != GG::Wnd::Size()) DoLayout(); @@ -1517,10 +1474,6 @@ { ExpandCollapse(!s_expanded_map[m_planet_id]); } void BuildingsPanel::DoLayout() { - GG::Pt expand_button_ul(Width() - 16, GG::Y0); - GG::Pt expand_button_lr = expand_button_ul + GG::Pt(GG::X(16), GG::Y(16)); - m_expand_button->SizeMove(expand_button_ul, expand_button_lr); - int row = 0; int column = 0; const int padding = 5; // space around and between adjacent indicators @@ -1583,21 +1536,11 @@ Resize(GG::Pt(Width(), height)); + Wnd::MoveChildUp(m_expand_button); + m_expand_button->MoveTo(GG::Pt(Width() - m_expand_button->Width(), GG::Y0)); - // update appearance of expand/collapse button - if (s_expanded_map[m_planet_id]) { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "uparrowmouseover.png"))); - } else { - m_expand_button->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrownormal.png" ))); - m_expand_button->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowclicked.png" ))); - m_expand_button->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture( ClientUI::ArtDir() / "icons" / "buttons" / "downarrowmouseover.png"))); - } - Wnd::MoveChildUp(m_expand_button); - - ExpandCollapseSignal(); + SetCollapsed(!s_expanded_map[m_planet_id]); } void BuildingsPanel::EnableOrderIssuing(bool enable/* = true*/) { Modified: trunk/FreeOrion/UI/InfoPanels.h =================================================================== --- trunk/FreeOrion/UI/InfoPanels.h 2014-08-24 09:41:01 UTC (rev 7587) +++ trunk/FreeOrion/UI/InfoPanels.h 2014-08-24 10:27:09 UTC (rev 7588) @@ -33,8 +33,33 @@ class StaticGraphic; } +class AccordionPanel : public GG::Wnd { +public: + /** \name Structors */ //@{ + AccordionPanel(GG::X w); + //@} + + /** \name Mutators */ //@{ + void SizeMove(const GG::Pt& ul, const GG::Pt& lr); + //@} + + mutable boost::signals2::signal<void ()> ExpandCollapseSignal; + +protected: + /** \name Mutators */ //@{ + void SetCollapsed(bool collapsed); + //@} + + GG::Button* m_expand_button; ///< at top right of panel, toggles the panel open/closed to show details or minimal summary + +private: + /** \name Mutators */ //@{ + void DoLayout(); + //@} +}; + /** Shows population with meter bars */ -class PopulationPanel : public GG::Wnd { +class PopulationPanel : public AccordionPanel { public: /** \name Structors */ //@{ PopulationPanel(GG::X w, int object_id); ///< basic ctor @@ -60,8 +85,6 @@ void EnableOrderIssuing(bool enable = true); //@} - mutable boost::signals2::signal<void ()> ExpandCollapseSignal; - private: void ExpandCollapseButtonPressed(); ///< toggles panel expanded or collapsed @@ -77,13 +100,11 @@ MultiIconValueIndicator* m_multi_icon_value_indicator; ///< textually / numerically indicates population MultiMeterStatusBar* m_multi_meter_status_bar; ///< graphically indicates meter values - GG::Button* m_expand_button; ///< at top right of panel, toggles the panel open/closed to show details or minimal summary - static std::map<int, bool> s_expanded_map; ///< map indexed by popcenter ID indicating whether the PopulationPanel for each object is expanded (true) or collapsed (false) }; /** Shows resource meters with meter-bars */ -class ResourcePanel : public GG::Wnd { +class ResourcePanel : public AccordionPanel { public: /** \name Structors */ //@{ ResourcePanel(GG::X w, int object_id); @@ -108,8 +129,6 @@ void EnableOrderIssuing(bool enable = true); //@} - mutable boost::signals2::signal<void ()> ExpandCollapseSignal; - private: void ExpandCollapseButtonPressed(); ///< toggles panel expanded or collapsed void DoLayout(); ///< resizes panel and positions widgets @@ -124,13 +143,11 @@ MultiIconValueIndicator* m_multi_icon_value_indicator; ///< textually / numerically indicates resource production and construction meter MultiMeterStatusBar* m_multi_meter_status_bar; ///< graphically indicates meter values - GG::Button* m_expand_button; ///< at top right of panel, toggles the panel open/closed to show details or minimal summary - static std::map<int, bool> s_expanded_map; ///< map indexed by popcenter ID indicating whether the PopulationPanel for each object is expanded (true) or collapsed (false) }; /** Shows military-related meters including stealth, detection, shields, defense; with meter bars */ -class MilitaryPanel : public GG::Wnd { +class MilitaryPanel : public AccordionPanel { public: /** \name Structors */ //@{ MilitaryPanel(GG::X w, int planet_id); @@ -155,8 +172,6 @@ void EnableOrderIssuing(bool enable = true); //@} - mutable boost::signals2::signal<void ()> ExpandCollapseSignal; - private: void ExpandCollapseButtonPressed(); ///< toggles panel expanded or collapsed void DoLayout(); ///< resizes panel and positions widgets @@ -173,13 +188,11 @@ MultiIconValueIndicator* m_multi_icon_value_indicator; ///< textually / numerically indicates resource production and construction meter MultiMeterStatusBar* m_multi_meter_status_bar; ///< graphically indicates meter values - GG::Button* m_expand_button; ///< at top right of panel, toggles the panel open/closed to show details or minimal summary - static std::map<int, bool> s_expanded_map; ///< map indexed by popcenter ID indicating whether the PopulationPanel for each object is expanded (true) or collapsed (false) }; /** Contains various BuildingIndicator to represent buildings on a planet. */ -class BuildingsPanel : public GG::Wnd { +class BuildingsPanel : public AccordionPanel { public: /** \name Structors */ //@{ BuildingsPanel(GG::X w, int columns, int planet_id); ///< basic ctor @@ -203,7 +216,6 @@ void EnableOrderIssuing(bool enable = true); //@} - mutable boost::signals2::signal<void ()> ExpandCollapseSignal; mutable boost::signals2::signal<void (int)> BuildingRightClickedSignal; private: @@ -215,7 +227,6 @@ int m_planet_id; ///< object id for the Planet whose buildings this panel displays int m_columns; ///< number of columns in which to display building indicators std::vector<BuildingIndicator*> m_building_indicators; - GG::Button* m_expand_button; ///< at top right of panel, toggles the panel open/closed to show details or minimal summary static std::map<int, bool> s_expanded_map; ///< map indexed by planet ID indicating whether the BuildingsPanel for each object is expanded (true) or collapsed (false) }; |
From: <mar...@us...> - 2014-08-25 12:38:15
|
Revision: 7622 http://sourceforge.net/p/freeorion/code/7622 Author: marcel_metz Date: 2014-08-25 12:38:11 +0000 (Mon, 25 Aug 2014) Log Message: ----------- Changed parameters for SettableInWindowCUIButton from string to textures. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/MapWnd.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-25 11:33:06 UTC (rev 7621) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-25 12:38:11 UTC (rev 7622) @@ -196,8 +196,10 @@ /////////////////////////////////////// // class SettableInWindowCUIButton /////////////////////////////////////// -SettableInWindowCUIButton::SettableInWindowCUIButton(const std::string& str) : - CUIButton(str) +SettableInWindowCUIButton::SettableInWindowCUIButton(const GG::SubTexture& unpressed, + const GG::SubTexture& pressed, + const GG::SubTexture& rollover) : + CUIButton(unpressed, pressed, rollover) {} bool SettableInWindowCUIButton::InWindow(const GG::Pt& pt) const { Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-25 11:33:06 UTC (rev 7621) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-25 12:38:11 UTC (rev 7622) @@ -80,7 +80,7 @@ class SettableInWindowCUIButton : public CUIButton { public: /** \name Structors */ //@{ - SettableInWindowCUIButton(const std::string& str); ///< basic ctor + SettableInWindowCUIButton(const GG::SubTexture& unpressed, const GG::SubTexture& pressed, const GG::SubTexture& rollover); //@} /** \name Accessors */ //@{ Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-25 11:33:06 UTC (rev 7621) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-25 12:38:11 UTC (rev 7622) @@ -640,14 +640,14 @@ m_FPS = new FPSIndicator(); m_FPS->Hide(); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; // Menu button - m_btn_menu = new SettableInWindowCUIButton(""); - m_btn_menu->SetColor(GG::CLR_WHITE); + m_btn_menu = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "menu.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "menu_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "menu_mouseover.png"))); m_btn_menu->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_menu->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "menu.png"))); - m_btn_menu->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "menu_clicked.png" ))); - m_btn_menu->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "menu_mouseover.png"))); GG::Connect(m_btn_menu->LeftClickedSignal, boost::bind(&MapWnd::ShowMenu, this)); // create custom InWindow function for Menu button that extends its // clickable area to the adjacent edges of the toolbar containing it @@ -662,12 +662,11 @@ // Encyclo"pedia" button - m_btn_pedia = new SettableInWindowCUIButton(""); - m_btn_pedia->SetColor(GG::CLR_WHITE); + m_btn_pedia = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "pedia.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "pedia_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "pedia_mouseover.png"))); m_btn_pedia->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_pedia->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "pedia.png"))); - m_btn_pedia->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "pedia_clicked.png" ))); - m_btn_pedia->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "pedia_mouseover.png"))); GG::Connect(m_btn_pedia->LeftClickedSignal, boost::bind(&MapWnd::TogglePedia, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_pedia), boost::bind(&WndTop, m_toolbar), @@ -679,12 +678,11 @@ new TextBrowseWnd(UserString("MAP_BTN_PEDIA"), UserString("MAP_BTN_PEDIA")))); // Graphs button - m_btn_graphs = new SettableInWindowCUIButton(""); - m_btn_graphs->SetColor(GG::CLR_WHITE); + m_btn_graphs = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "charts.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "charts_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "charts_mouseover.png"))); m_btn_graphs->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_graphs->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "charts.png"))); - m_btn_graphs->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "charts_clicked.png" ))); - m_btn_graphs->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "charts_mouseover.png"))); GG::Connect(m_btn_graphs->LeftClickedSignal, &MapWnd::ShowGraphs, this); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_graphs), boost::bind(&WndTop, m_toolbar), @@ -696,12 +694,11 @@ new TextBrowseWnd(UserString("MAP_BTN_GRAPH"), UserString("MAP_BTN_GRAPH")))); // Design button - m_btn_design = new SettableInWindowCUIButton(""); - m_btn_design->SetColor(GG::CLR_WHITE); + m_btn_design = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "design.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "design_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "design_mouseover.png"))); m_btn_design->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_design->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "design.png"))); - m_btn_design->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "design_clicked.png" ))); - m_btn_design->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "design_mouseover.png"))); GG::Connect(m_btn_design->LeftClickedSignal, boost::bind(&MapWnd::ToggleDesign, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_design), boost::bind(&WndTop, m_toolbar), @@ -713,12 +710,11 @@ new TextBrowseWnd(UserString("MAP_BTN_DESIGN"), UserString("MAP_BTN_DESIGN")))); // Production button - m_btn_production = new SettableInWindowCUIButton(""); - m_btn_production->SetColor(GG::CLR_WHITE); + m_btn_production = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "production.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "production_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "production_mouseover.png"))); m_btn_production->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_production->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "production.png"))); - m_btn_production->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "production_clicked.png" ))); - m_btn_production->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "production_mouseover.png"))); GG::Connect(m_btn_production->LeftClickedSignal, boost::bind(&MapWnd::ToggleProduction, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_production), boost::bind(&WndTop, m_toolbar), @@ -730,12 +726,11 @@ new TextBrowseWnd(UserString("MAP_BTN_PRODUCTION"), UserString("MAP_BTN_PRODUCTION")))); // Research button - m_btn_research = new SettableInWindowCUIButton(""); - m_btn_research->SetColor(GG::CLR_WHITE); + m_btn_research = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "research.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "research_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "research_mouseover.png"))); m_btn_research->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_research->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "research.png"))); - m_btn_research->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "research_clicked.png" ))); - m_btn_research->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "research_mouseover.png"))); GG::Connect(m_btn_research->LeftClickedSignal, boost::bind(&MapWnd::ToggleResearch, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_research), boost::bind(&WndTop, m_toolbar), @@ -747,12 +742,11 @@ new TextBrowseWnd(UserString("MAP_BTN_RESEARCH"), UserString("MAP_BTN_RESEARCH")))); // Objects button - m_btn_objects = new SettableInWindowCUIButton(""); - m_btn_objects->SetColor(GG::CLR_WHITE); + m_btn_objects = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "objects.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "objects_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "objects_mouseover.png"))); m_btn_objects->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_objects->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "objects.png"))); - m_btn_objects->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "objects_clicked.png" ))); - m_btn_objects->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "objects_mouseover.png"))); GG::Connect(m_btn_objects->LeftClickedSignal, boost::bind(&MapWnd::ToggleObjects, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_objects), boost::bind(&WndTop, m_toolbar), @@ -764,12 +758,11 @@ new TextBrowseWnd(UserString("MAP_BTN_OBJECTS"), UserString("MAP_BTN_OBJECTS")))); // Empires button - m_btn_empires = new SettableInWindowCUIButton(""); - m_btn_empires->SetColor(GG::CLR_WHITE); + m_btn_empires = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "empires.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "empires_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "empires_mouseover.png"))); m_btn_empires->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_empires->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "empires.png"))); - m_btn_empires->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "empires_clicked.png" ))); - m_btn_empires->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "empires_mouseover.png"))); GG::Connect(m_btn_empires->LeftClickedSignal, boost::bind(&MapWnd::ToggleEmpires, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_empires), boost::bind(&WndTop, m_toolbar), @@ -781,12 +774,11 @@ new TextBrowseWnd(UserString("MAP_BTN_EMPIRES"), UserString("MAP_BTN_EMPIRES")))); // SitRep button - m_btn_siterep = new SettableInWindowCUIButton(""); - m_btn_siterep->SetColor(GG::CLR_WHITE); + m_btn_siterep = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "sitrep.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "sitrep_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "sitrep_mouseover.png"))); m_btn_siterep->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_siterep->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "sitrep.png"))); - m_btn_siterep->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "sitrep_clicked.png" ))); - m_btn_siterep->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "sitrep_mouseover.png"))); GG::Connect(m_btn_siterep->LeftClickedSignal, boost::bind(&MapWnd::ToggleSitRep, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_siterep), boost::bind(&WndTop, m_toolbar), @@ -798,12 +790,11 @@ new TextBrowseWnd(UserString("MAP_BTN_SITREP"), UserString("MAP_BTN_SITREP")))); // Messages button - m_btn_messages = new SettableInWindowCUIButton(""); - m_btn_messages->SetColor(GG::CLR_WHITE); + m_btn_messages = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "messages.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "messages_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "messages_mouseover.png"))); m_btn_messages->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_messages->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "messages.png"))); - m_btn_messages->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "messages_clicked.png" ))); - m_btn_messages->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "messages_mouseover.png"))); GG::Connect(m_btn_messages->LeftClickedSignal, boost::bind(&MapWnd::ToggleMessages, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_messages), boost::bind(&WndTop, m_toolbar), @@ -815,12 +806,11 @@ new TextBrowseWnd(UserString("MAP_BTN_MESSAGES"), UserString("MAP_BTN_MESSAGES")))); // Moderator button - m_btn_moderator = new SettableInWindowCUIButton(""); - m_btn_moderator->SetColor(GG::CLR_WHITE); + m_btn_moderator = new SettableInWindowCUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "moderator.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "moderator_clicked.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "moderator_mouseover.png"))); m_btn_moderator->SetMinSize(GG::Pt(GG::X(32), GG::Y(32))); - m_btn_moderator->SetUnpressedGraphic(GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "moderator.png"))); - m_btn_moderator->SetPressedGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "moderator_clicked.png" ))); - m_btn_moderator->SetRolloverGraphic (GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / "icons" / "buttons" / "moderator_mouseover.png"))); GG::Connect(m_btn_moderator->LeftClickedSignal, boost::bind(&MapWnd::ToggleModeratorActions, this)); in_window_func = boost::bind(&InRect, boost::bind(&WndLeft, m_btn_moderator), boost::bind(&WndTop, m_toolbar), @@ -861,12 +851,12 @@ m_detection->Resize(GG::Pt(ICON_DUAL_WIDTH, m_btn_turn->Height())); m_detection->SetName("Detection StatisticIcon"); - GG::SubTexture wasted_ressource_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / - "icons" / "buttons" / "wasted_resource.png", false)); - GG::SubTexture wasted_ressource_mouseover_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / - "icons" / "buttons" / "wasted_resource_mouseover.png", false)); - GG::SubTexture wasted_ressource_clicked_subtexture = GG::SubTexture(ClientUI::GetTexture(ClientUI::ArtDir() / - "icons" / "buttons" / "wasted_resource_clicked.png", false)); + GG::SubTexture wasted_ressource_subtexture = GG::SubTexture(ClientUI::GetTexture(button_texture_dir / + "wasted_resource.png", false)); + GG::SubTexture wasted_ressource_mouseover_subtexture = GG::SubTexture(ClientUI::GetTexture(button_texture_dir / + "wasted_resource_mouseover.png", false)); + GG::SubTexture wasted_ressource_clicked_subtexture = GG::SubTexture(ClientUI::GetTexture(button_texture_dir / + "wasted_resource_clicked.png", false)); m_industry_wasted = new CUIButton( wasted_ressource_subtexture, |
From: <mar...@us...> - 2014-08-26 20:20:00
|
Revision: 7630 http://sourceforge.net/p/freeorion/code/7630 Author: marcel_metz Date: 2014-08-26 20:19:53 +0000 (Tue, 26 Aug 2014) Log Message: ----------- Replaced CUIButton::MarkNotSelected, MarkSelectedGray and MarkSelectedTechCategoryColor with an internal state to move the color selection reponsibility to the button user. Modified Paths: -------------- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/ClientUI.cpp trunk/FreeOrion/UI/ClientUI.h trunk/FreeOrion/UI/DesignWnd.cpp trunk/FreeOrion/UI/TechTreeWnd.cpp Modified: trunk/FreeOrion/UI/BuildDesignatorWnd.cpp =================================================================== --- trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/BuildDesignatorWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) @@ -458,15 +458,15 @@ m_empire_id(ALL_EMPIRES) { // create build type toggle buttons (ship, building, all) - m_build_type_buttons[BT_BUILDING] = new CUIButton(UserString("PRODUCTION_WND_CATEGORY_BT_BUILDING")); + m_build_type_buttons[BT_BUILDING] = new CUIButton(UserString("PRODUCTION_WND_CATEGORY_BT_BUILDING"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_build_type_buttons[BT_BUILDING]); - m_build_type_buttons[BT_SHIP] = new CUIButton(UserString("PRODUCTION_WND_CATEGORY_BT_SHIP")); + m_build_type_buttons[BT_SHIP] = new CUIButton(UserString("PRODUCTION_WND_CATEGORY_BT_SHIP"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_build_type_buttons[BT_SHIP]); // create availability toggle buttons (available, not available) - m_availability_buttons.push_back(new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE"))); + m_availability_buttons.push_back(new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor())); AttachChild(m_availability_buttons.back()); - m_availability_buttons.push_back(new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE"))); + m_availability_buttons.push_back(new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor())); AttachChild(m_availability_buttons.back()); // selectable list of buildable items @@ -1031,7 +1031,7 @@ Logger().errorStream() << "BuildDesignatorWnd::ShowType(" << boost::lexical_cast<std::string>(type) << ")"; if (type == BT_BUILDING || type == BT_SHIP) { m_build_selector->ShowType(type, refresh_list); - m_build_selector->m_build_type_buttons[type]->MarkSelectedGray(); + m_build_selector->m_build_type_buttons[type]->SetCheck(); } else { throw std::invalid_argument("BuildDesignatorWnd::ShowType was passed an invalid BuildType"); } @@ -1039,15 +1039,15 @@ void BuildDesignatorWnd::ShowAllTypes(bool refresh_list) { m_build_selector->ShowAllTypes(refresh_list); - m_build_selector->m_build_type_buttons[BT_BUILDING]->MarkSelectedGray(); - m_build_selector->m_build_type_buttons[BT_SHIP]->MarkSelectedGray(); + m_build_selector->m_build_type_buttons[BT_BUILDING]->SetCheck(); + m_build_selector->m_build_type_buttons[BT_SHIP]->SetCheck(); } void BuildDesignatorWnd::HideType(BuildType type, bool refresh_list) { Logger().debugStream() << "BuildDesignatorWnd::HideType(" << boost::lexical_cast<std::string>(type) << ")"; if (type == BT_BUILDING || type == BT_SHIP) { m_build_selector->HideType(type, refresh_list); - m_build_selector->m_build_type_buttons[type]->MarkNotSelected(); + m_build_selector->m_build_type_buttons[type]->SetCheck(false); } else { throw std::invalid_argument("BuildDesignatorWnd::HideType was passed an invalid BuildType"); } @@ -1055,8 +1055,8 @@ void BuildDesignatorWnd::HideAllTypes(bool refresh_list) { m_build_selector->HideAllTypes(refresh_list); - m_build_selector->m_build_type_buttons[BT_BUILDING]->MarkNotSelected(); - m_build_selector->m_build_type_buttons[BT_SHIP]->MarkNotSelected(); + m_build_selector->m_build_type_buttons[BT_BUILDING]->SetCheck(false); + m_build_selector->m_build_type_buttons[BT_SHIP]->SetCheck(false); } void BuildDesignatorWnd::ToggleType(BuildType type, bool refresh_list) { @@ -1082,17 +1082,17 @@ void BuildDesignatorWnd::ShowAvailability(bool available, bool refresh_list) { m_build_selector->ShowAvailability(available, refresh_list); if (available) - m_build_selector->m_availability_buttons.at(0)->MarkSelectedGray(); + m_build_selector->m_availability_buttons.at(0)->SetCheck(); else - m_build_selector->m_availability_buttons.at(1)->MarkSelectedGray(); + m_build_selector->m_availability_buttons.at(1)->SetCheck(); } void BuildDesignatorWnd::HideAvailability(bool available, bool refresh_list) { m_build_selector->HideAvailability(available, refresh_list); if (available) - m_build_selector->m_availability_buttons.at(0)->MarkNotSelected(); + m_build_selector->m_availability_buttons.at(0)->SetCheck(false); else - m_build_selector->m_availability_buttons.at(1)->MarkNotSelected(); + m_build_selector->m_availability_buttons.at(1)->SetCheck(false); } void BuildDesignatorWnd::ToggleAvailabilitly(bool available, bool refresh_list) { Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-26 20:19:53 UTC (rev 7630) @@ -74,15 +74,25 @@ Button(GG::X0, GG::Y0, GG::X1, ClientUI::GetFont()->Lineskip() + 6, str, ClientUI::GetFont(), ClientUI::CtrlColor(), ClientUI::TextColor(), GG::INTERACTIVE), m_border_color(ClientUI::CtrlBorderColor()), - m_border_thick(1) + m_border_thick(1), + m_checked(false) { GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); } +CUIButton::CUIButton(const std::string& str, GG::Clr background, GG::Clr border) : + Button(GG::X0, GG::Y0, GG::X1, ClientUI::GetFont()->Lineskip() + 6, str, + ClientUI::GetFont(), background, ClientUI::TextColor(), GG::INTERACTIVE), + m_border_color(border), + m_border_thick(2), + m_checked(false) +{ GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); } + CUIButton::CUIButton(const GG::SubTexture& unpressed, const GG::SubTexture& pressed, const GG::SubTexture& rollover) : Button(GG::X0, GG::Y0, GG::X1, GG::Y1, "", ClientUI::GetFont(), GG::CLR_WHITE, GG::CLR_ZERO, GG::INTERACTIVE), m_border_color(ClientUI::CtrlBorderColor()), - m_border_thick(1) + m_border_thick(1), + m_checked(false) { SetColor(GG::CLR_WHITE); SetUnpressedGraphic(unpressed); @@ -105,6 +115,9 @@ } } +void CUIButton::SetCheck(bool b/* = true*/) +{ m_checked = b; } + GG::Pt CUIButton::MinUsableSize() const { GG::Pt result = GG::Button::MinUsableSize(); const int CUIBUTTON_HPADDING = 10; @@ -116,19 +129,23 @@ return result; } -void CUIButton::SetBorderColor(GG::Clr clr) -{ m_border_color = clr; } +void CUIButton::RenderPressed() { + if (PressedGraphic().Empty()) { + GG::Clr background_clr = Color(); + GG::Clr border_clr = m_border_color; + int border_thick = m_border_thick; -void CUIButton::SetBorderThick(int thick) -{ m_border_thick = std::max(thick, 0); } // don't allow negative thickness borders + if (!m_checked) { + background_clr = ClientUI::CtrlColor(); + border_clr = ClientUI::CtrlBorderColor(); + border_thick = 1; + } -void CUIButton::RenderPressed() { - if (PressedGraphic().Empty()) { - GG::Clr color_to_use = Color(); - AdjustBrightness(color_to_use, 25); + AdjustBrightness(background_clr, 25); + GG::Pt ul = UpperLeft(); GG::Pt lr = LowerRight(); - AngledCornerRectangle(ul, lr, color_to_use, m_border_color, CUIBUTTON_ANGLE_OFFSET, m_border_thick); + AngledCornerRectangle(ul, lr, background_clr, border_clr, CUIBUTTON_ANGLE_OFFSET, border_thick); m_label->OffsetMove(GG::Pt(GG::X1, GG::Y1)); m_label->Render(); m_label->OffsetMove(GG::Pt(-GG::X1, -GG::Y1)); @@ -139,14 +156,26 @@ void CUIButton::RenderRollover() { if (RolloverGraphic().Empty()) { - GG::Clr color_to_use = Disabled() ? DisabledColor(Color()) : Color(); - GG::Clr border_color_to_use = m_border_color; - AdjustBrightness(border_color_to_use, 100); - if (Disabled()) - border_color_to_use = DisabledColor(m_border_color); + GG::Clr background_clr = Color(); + GG::Clr border_clr = m_border_color; + int border_thick = m_border_thick; + + if (!m_checked) { + background_clr = ClientUI::CtrlColor(); + border_clr = ClientUI::CtrlBorderColor(); + border_thick = 1; + } + + if (Disabled()) { + background_clr = DisabledColor(background_clr); + border_clr = DisabledColor(border_clr); + } + else + AdjustBrightness(border_clr, 100); + GG::Pt ul = UpperLeft(); GG::Pt lr = LowerRight(); - AngledCornerRectangle(ul, lr, color_to_use, border_color_to_use, CUIBUTTON_ANGLE_OFFSET, m_border_thick); + AngledCornerRectangle(ul, lr, background_clr, border_clr, CUIBUTTON_ANGLE_OFFSET, border_thick); m_label->Render(); } else { GG::Button::RenderRollover(); @@ -155,44 +184,31 @@ void CUIButton::RenderUnpressed() { if (UnpressedGraphic().Empty()) { - GG::Clr color_to_use = Disabled() ? DisabledColor(Color()) : Color(); - GG::Clr border_color_to_use = Disabled() ? DisabledColor(m_border_color) : m_border_color; + GG::Clr background_clr = Color(); + GG::Clr border_clr = m_border_color; + int border_thick = m_border_thick; + + if (!m_checked) { + background_clr = ClientUI::CtrlColor(); + border_clr = ClientUI::CtrlBorderColor(); + border_thick = 1; + } + + if (Disabled()) { + background_clr = DisabledColor(background_clr); + border_clr = DisabledColor(border_clr); + } + GG::Pt ul = UpperLeft(); GG::Pt lr = LowerRight(); - AngledCornerRectangle(ul, lr, color_to_use, border_color_to_use, CUIBUTTON_ANGLE_OFFSET, m_border_thick); + AngledCornerRectangle(ul, lr, background_clr, border_clr, CUIBUTTON_ANGLE_OFFSET, border_thick); m_label->Render(); } else { GG::Button::RenderUnpressed(); } } -void CUIButton::MarkNotSelected() { - SetColor(ClientUI::CtrlColor()); - SetBorderColor(ClientUI::CtrlBorderColor()); - SetBorderThick(1); -} -void CUIButton::MarkSelectedGray() { - GG::Clr colour = ClientUI::CtrlColor(); - AdjustBrightness(colour, 50); - SetColor(colour); - - colour = ClientUI::CtrlBorderColor(); - AdjustBrightness(colour, 50); - SetBorderColor(colour); - - SetBorderThick(2); -} - -void CUIButton::MarkSelectedTechCategoryColor(std::string category) { - GG::Clr cat_colour = ClientUI::CategoryColor(category); - SetBorderColor(cat_colour); - AdjustBrightness(cat_colour, -50); - SetColor(cat_colour); - SetBorderThick(2); -} - - /////////////////////////////////////// // class SettableInWindowCUIButton /////////////////////////////////////// Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-26 20:19:53 UTC (rev 7630) @@ -42,27 +42,20 @@ /** \name Structors */ //@{ CUIButton(const std::string& str); ///< basic ctor + CUIButton(const std::string& str, GG::Clr background, GG::Clr border); + CUIButton(const GG::SubTexture& unpressed, const GG::SubTexture& pressed, const GG::SubTexture& rollover); //@} /** \name Accessors */ //@{ virtual GG::Pt MinUsableSize() const; - GG::Clr BorderColor() const {return m_border_color;} ///< returns the color used to render the border of the button - int BorderThickness() const {return m_border_thick;} ///< returns the width used to render the border of the button - virtual bool InWindow(const GG::Pt& pt) const; //@} /** \name Mutators */ //@{ virtual void MouseHere(const GG::Pt& pt, GG::Flags<GG::ModKey> mod_keys); - - void SetBorderColor(GG::Clr clr); ///< sets the color used to render the border of the button - void SetBorderThick(int thick); ///< sets the thickness of the rendered the border of the button - - void MarkNotSelected(); ///< sets button colours to standard UI colours - void MarkSelectedGray(); ///< sets button colours to lighter grey background and border to indicate selection or activation - void MarkSelectedTechCategoryColor(std::string category); ///< sets button background and border colours to variants of the colour of the tech category specified + void SetCheck(bool b = true); //@} protected: @@ -75,6 +68,7 @@ private: GG::Clr m_border_color; int m_border_thick; + bool m_checked; ///< true when this button in a checked, active state }; class SettableInWindowCUIButton : public CUIButton { Modified: trunk/FreeOrion/UI/ClientUI.cpp =================================================================== --- trunk/FreeOrion/UI/ClientUI.cpp 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/ClientUI.cpp 2014-08-26 20:19:53 UTC (rev 7630) @@ -70,7 +70,18 @@ // controls GG::Clr ClientUI::CtrlColor() { return GetOptionsDB().Get<StreamableColor>("UI.ctrl-color").ToClr(); } GG::Clr ClientUI::CtrlBorderColor() { return GetOptionsDB().Get<StreamableColor>("UI.ctrl-border-color").ToClr(); } +GG::Clr ClientUI::ButtonHiliteColor() { + GG::Clr colour = CtrlColor(); + AdjustBrightness(colour, 50); + return colour; +} +GG::Clr ClientUI::ButtonHiliteBorderColor() { + GG::Clr colour = CtrlBorderColor(); + AdjustBrightness(colour, 50); + return colour; +} + int ClientUI::ScrollWidth() { return GetOptionsDB().Get<int>("UI.scroll-width"); } GG::Clr ClientUI::DropDownListArrowColor() { return GetOptionsDB().Get<StreamableColor>("UI.dropdownlist-arrow-color").ToClr(); } Modified: trunk/FreeOrion/UI/ClientUI.h =================================================================== --- trunk/FreeOrion/UI/ClientUI.h 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/ClientUI.h 2014-08-26 20:19:53 UTC (rev 7630) @@ -150,6 +150,8 @@ // controls static GG::Clr CtrlColor(); //!< background color of UI controls static GG::Clr CtrlBorderColor(); + static GG::Clr ButtonHiliteColor(); + static GG::Clr ButtonHiliteBorderColor(); static int ScrollWidth(); Modified: trunk/FreeOrion/UI/DesignWnd.cpp =================================================================== --- trunk/FreeOrion/UI/DesignWnd.cpp 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/DesignWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) @@ -800,24 +800,24 @@ if (!part_of_this_class_exists) continue; - m_class_buttons[part_class] = new CUIButton(UserString(boost::lexical_cast<std::string>(part_class))); + m_class_buttons[part_class] = new CUIButton(UserString(boost::lexical_cast<std::string>(part_class)), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_class_buttons[part_class]); GG::Connect(m_class_buttons[part_class]->LeftClickedSignal, boost::bind(&DesignWnd::PartPalette::ToggleClass, this, part_class, true)); } // availability buttons - m_availability_buttons.first = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE")); + m_availability_buttons.first = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_availability_buttons.first); GG::Connect(m_availability_buttons.first->LeftClickedSignal, boost::bind(&DesignWnd::PartPalette::ToggleAvailability, this, true, true)); - m_availability_buttons.second = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE")); + m_availability_buttons.second = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_availability_buttons.second); GG::Connect(m_availability_buttons.second->LeftClickedSignal, boost::bind(&DesignWnd::PartPalette::ToggleAvailability, this, false, true)); // superfluous parts button - m_superfluous_parts_button = new CUIButton(UserString("PRODUCTION_WND_REDUNDANT")); + m_superfluous_parts_button = new CUIButton(UserString("PRODUCTION_WND_REDUNDANT"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_superfluous_parts_button); GG::Connect(m_superfluous_parts_button->LeftClickedSignal, boost::bind(&DesignWnd::PartPalette::ToggleSuperfluous, this, true)); @@ -958,7 +958,7 @@ void DesignWnd::PartPalette::ShowClass(ShipPartClass part_class, bool refresh_list) { if (part_class >= ShipPartClass(0) && part_class < NUM_SHIP_PART_CLASSES) { m_parts_list->ShowClass(part_class, refresh_list); - m_class_buttons[part_class]->MarkSelectedGray(); + m_class_buttons[part_class]->SetCheck(); } else { throw std::invalid_argument("PartPalette::ShowClass was passed an invalid ShipPartClass"); } @@ -967,13 +967,13 @@ void DesignWnd::PartPalette::ShowAllClasses(bool refresh_list) { m_parts_list->ShowAllClasses(refresh_list); for (std::map<ShipPartClass, CUIButton*>::iterator it = m_class_buttons.begin(); it != m_class_buttons.end(); ++it) - it->second->MarkSelectedGray(); + it->second->SetCheck(); } void DesignWnd::PartPalette::HideClass(ShipPartClass part_class, bool refresh_list) { if (part_class >= ShipPartClass(0) && part_class < NUM_SHIP_PART_CLASSES) { m_parts_list->HideClass(part_class, refresh_list); - m_class_buttons[part_class]->MarkNotSelected(); + m_class_buttons[part_class]->SetCheck(false); } else { throw std::invalid_argument("PartPalette::HideClass was passed an invalid ShipPartClass"); } @@ -982,7 +982,7 @@ void DesignWnd::PartPalette::HideAllClasses(bool refresh_list) { m_parts_list->HideAllClasses(refresh_list); for (std::map<ShipPartClass, CUIButton*>::iterator it = m_class_buttons.begin(); it != m_class_buttons.end(); ++it) - it->second->MarkNotSelected(); + it->second->SetCheck(false); } void DesignWnd::PartPalette::ToggleClass(ShipPartClass part_class, bool refresh_list) { @@ -1009,17 +1009,17 @@ void DesignWnd::PartPalette::ShowAvailability(bool available, bool refresh_list) { m_parts_list->ShowAvailability(available, refresh_list); if (available) - m_availability_buttons.first->MarkSelectedGray(); + m_availability_buttons.first->SetCheck(); else - m_availability_buttons.second->MarkSelectedGray(); + m_availability_buttons.second->SetCheck(); } void DesignWnd::PartPalette::HideAvailability(bool available, bool refresh_list) { m_parts_list->HideAvailability(available, refresh_list); if (available) - m_availability_buttons.first->MarkNotSelected(); + m_availability_buttons.first->SetCheck(false); else - m_availability_buttons.second->MarkNotSelected(); + m_availability_buttons.second->SetCheck(false); } void DesignWnd::PartPalette::ToggleAvailability(bool available, bool refresh_list) { @@ -1039,12 +1039,12 @@ void DesignWnd::PartPalette::ShowSuperfluous(bool refresh_list) { m_parts_list->ShowSuperfluousParts(refresh_list); - m_superfluous_parts_button->MarkSelectedGray(); + m_superfluous_parts_button->SetCheck(); } void DesignWnd::PartPalette::HideSuperfluous(bool refresh_list) { m_parts_list->HideSuperfluousParts(refresh_list); - m_superfluous_parts_button->MarkNotSelected(); + m_superfluous_parts_button->SetCheck(false); } void DesignWnd::PartPalette::ToggleSuperfluous(bool refresh_list) { @@ -1844,12 +1844,12 @@ m_saved_designs_list(0), m_monsters_list(0) { - m_availability_buttons.first = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE")); + m_availability_buttons.first = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_AVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_availability_buttons.first); GG::Connect(m_availability_buttons.first->LeftClickedSignal, boost::bind(&DesignWnd::BaseSelector::ToggleAvailability, this, true, true)); - m_availability_buttons.second = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE")); + m_availability_buttons.second = new CUIButton(UserString("PRODUCTION_WND_AVAILABILITY_UNAVAILABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_availability_buttons.second); GG::Connect(m_availability_buttons.second->LeftClickedSignal, boost::bind(&DesignWnd::BaseSelector::ToggleAvailability, this, false, true)); @@ -1926,9 +1926,9 @@ if (m_designs_list) m_designs_list->ShowAvailability(available, refresh_list); if (available) - m_availability_buttons.first->MarkSelectedGray(); + m_availability_buttons.first->SetCheck(); else - m_availability_buttons.second->MarkSelectedGray(); + m_availability_buttons.second->SetCheck(); } void DesignWnd::BaseSelector::HideAvailability(bool available, bool refresh_list) { @@ -1937,9 +1937,9 @@ if (m_designs_list) m_designs_list->HideAvailability(available, refresh_list); if (available) - m_availability_buttons.first->MarkNotSelected(); + m_availability_buttons.first->SetCheck(false); else - m_availability_buttons.second->MarkNotSelected(); + m_availability_buttons.second->SetCheck(false); } void DesignWnd::BaseSelector::ToggleAvailability(bool available, bool refresh_list) { Modified: trunk/FreeOrion/UI/TechTreeWnd.cpp =================================================================== --- trunk/FreeOrion/UI/TechTreeWnd.cpp 2014-08-26 19:50:31 UTC (rev 7629) +++ trunk/FreeOrion/UI/TechTreeWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) @@ -247,32 +247,29 @@ // create a button for each tech category... const std::vector<std::string>& cats = GetTechManager().CategoryNames(); for (unsigned int i = 0; i < cats.size(); ++i) { - m_category_buttons.push_back(new CUIButton(UserString(cats[i]))); + GG::Clr background_clr = ClientUI::CategoryColor(cats[i]); + GG::Clr border_clr = background_clr; + AdjustBrightness(background_clr, -50); + m_category_buttons.push_back(new CUIButton(UserString(cats[i]), background_clr, border_clr)); AttachChild(m_category_buttons.back()); - m_category_buttons.back()->MarkNotSelected(); } // and one for "ALL" m_category_buttons.push_back(new CUIButton(UserString("ALL"))); AttachChild(m_category_buttons.back()); - m_category_buttons.back()->MarkNotSelected(); + m_category_buttons.back()->SetCheck(false); // create a button for each tech status - m_tech_status_buttons[TS_UNRESEARCHABLE] = new CUIButton(UserString("TECH_WND_STATUS_LOCKED")); + m_tech_status_buttons[TS_UNRESEARCHABLE] = new CUIButton(UserString("TECH_WND_STATUS_LOCKED"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_tech_status_buttons[TS_UNRESEARCHABLE]); - m_tech_status_buttons[TS_RESEARCHABLE] = new CUIButton(UserString("TECH_WND_STATUS_RESEARCHABLE")); + m_tech_status_buttons[TS_RESEARCHABLE] = new CUIButton(UserString("TECH_WND_STATUS_RESEARCHABLE"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_tech_status_buttons[TS_RESEARCHABLE]); - m_tech_status_buttons[TS_COMPLETE] = new CUIButton(UserString("TECH_WND_STATUS_COMPLETED")); + m_tech_status_buttons[TS_COMPLETE] = new CUIButton(UserString("TECH_WND_STATUS_COMPLETED"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_tech_status_buttons[TS_COMPLETE]); - // colour - for (std::map<TechStatus, CUIButton*>::iterator it = m_tech_status_buttons.begin(); it != m_tech_status_buttons.end(); ++it) - it->second->MarkNotSelected(); // create buttons to switch between tree and list views - m_list_view_button = new CUIButton(UserString("TECH_WND_LIST_VIEW")); - m_list_view_button->MarkNotSelected(); + m_list_view_button = new CUIButton(UserString("TECH_WND_LIST_VIEW"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_list_view_button); - m_tree_view_button = new CUIButton(UserString("TECH_WND_TREE_VIEW")); - m_tree_view_button->MarkNotSelected(); + m_tree_view_button = new CUIButton(UserString("TECH_WND_TREE_VIEW"), ClientUI::ButtonHiliteColor(), ClientUI::ButtonHiliteBorderColor()); AttachChild(m_tree_view_button); SetChildClippingMode(ClipToClient); @@ -1809,8 +1806,7 @@ int i = 0; for (std::vector<std::string>::const_iterator cats_it = cats.begin(); cats_it != cats.end(); ++cats_it, ++i) { if (*cats_it == category) { - CUIButton* button = m_tech_tree_controls->m_category_buttons[i]; - button->MarkSelectedTechCategoryColor(cats[i]); + m_tech_tree_controls->m_category_buttons[i]->SetCheck(); break; } } @@ -1823,8 +1819,7 @@ const std::vector<std::string>& cats = GetTechManager().CategoryNames(); int i = 0; for (std::vector<std::string>::const_iterator cats_it = cats.begin(); cats_it != cats.end(); ++cats_it, ++i) { - CUIButton* button = m_tech_tree_controls->m_category_buttons[i]; - button->MarkSelectedTechCategoryColor(*cats_it); + m_tech_tree_controls->m_category_buttons[i]->SetCheck(); } } @@ -1837,7 +1832,7 @@ int i = 0; for (std::vector<std::string>::const_iterator cats_it = cats.begin(); cats_it != cats.end(); ++cats_it, ++i) { if (*cats_it == category) { - m_tech_tree_controls->m_category_buttons[i]->MarkNotSelected(); + m_tech_tree_controls->m_category_buttons[i]->SetCheck(false); break; } } @@ -1850,7 +1845,7 @@ const std::vector<std::string>& cats = GetTechManager().CategoryNames(); int i = 0; for (std::vector<std::string>::const_iterator cats_it = cats.begin(); cats_it != cats.end(); ++cats_it, ++i) { - m_tech_tree_controls->m_category_buttons[i]->MarkNotSelected(); + m_tech_tree_controls->m_category_buttons[i]->SetCheck(false); } } @@ -1878,16 +1873,14 @@ m_layout_panel->ShowStatus(status); m_tech_list->ShowStatus(status); - CUIButton* button = m_tech_tree_controls->m_tech_status_buttons[status]; - button->MarkSelectedGray(); + m_tech_tree_controls->m_tech_status_buttons[status]->SetCheck(); } void TechTreeWnd::HideStatus(TechStatus status) { m_layout_panel->HideStatus(status); m_tech_list->HideStatus(status); - CUIButton* button = m_tech_tree_controls->m_tech_status_buttons[status]; - button->MarkNotSelected(); + m_tech_tree_controls->m_tech_status_buttons[status]->SetCheck(false); } void TechTreeWnd::ToggleStatus(TechStatus status) { @@ -1904,8 +1897,8 @@ AttachChild(m_layout_panel); MoveChildDown(m_layout_panel); DetachChild(m_tech_list); - m_tech_tree_controls->m_list_view_button->MarkNotSelected(); - m_tech_tree_controls->m_tree_view_button->MarkSelectedGray(); + m_tech_tree_controls->m_list_view_button->SetCheck(false); + m_tech_tree_controls->m_tree_view_button->SetCheck(); MoveChildUp(m_tech_tree_controls); } @@ -1914,8 +1907,8 @@ AttachChild(m_tech_list); MoveChildDown(m_tech_list); DetachChild(m_layout_panel); - m_tech_tree_controls->m_list_view_button->MarkSelectedGray(); - m_tech_tree_controls->m_tree_view_button->MarkNotSelected(); + m_tech_tree_controls->m_list_view_button->SetCheck(); + m_tech_tree_controls->m_tree_view_button->SetCheck(false); MoveChildUp(m_tech_tree_controls); } |
From: <mar...@us...> - 2014-08-27 07:46:23
|
Revision: 7631 http://sourceforge.net/p/freeorion/code/7631 Author: marcel_metz Date: 2014-08-27 07:46:19 +0000 (Wed, 27 Aug 2014) Log Message: ----------- Don't set initial height for buttons. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/InfoPanels.cpp trunk/FreeOrion/UI/ObjectListWnd.cpp trunk/FreeOrion/UI/OptionsWnd.cpp trunk/FreeOrion/UI/ServerConnectWnd.cpp trunk/FreeOrion/UI/SitRepPanel.cpp trunk/FreeOrion/UI/TechTreeWnd.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -71,7 +71,7 @@ } CUIButton::CUIButton(const std::string& str) : - Button(GG::X0, GG::Y0, GG::X1, ClientUI::GetFont()->Lineskip() + 6, str, + Button(GG::X0, GG::Y0, GG::X1, GG::Y1, str, ClientUI::GetFont(), ClientUI::CtrlColor(), ClientUI::TextColor(), GG::INTERACTIVE), m_border_color(ClientUI::CtrlBorderColor()), m_border_thick(1), @@ -79,7 +79,7 @@ { GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); } CUIButton::CUIButton(const std::string& str, GG::Clr background, GG::Clr border) : - Button(GG::X0, GG::Y0, GG::X1, ClientUI::GetFont()->Lineskip() + 6, str, + Button(GG::X0, GG::Y0, GG::X1, GG::Y1, str, ClientUI::GetFont(), background, ClientUI::TextColor(), GG::INTERACTIVE), m_border_color(border), m_border_thick(2), Modified: trunk/FreeOrion/UI/InfoPanels.cpp =================================================================== --- trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/InfoPanels.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -260,8 +260,11 @@ GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrownormal.png")), GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowclicked.png")), GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "downarrowmouseover.png"))); + m_expand_button->SetMinSize(GG::Pt(GG::X(16), GG::Y(16))); AttachChild(m_expand_button); + + DoLayout(); } void AccordionPanel::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { Modified: trunk/FreeOrion/UI/ObjectListWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -873,6 +873,7 @@ label = new CUIButton(UserString("VISIBLE")); label->Resize(GG::Pt(button_width, label->MinUsableSize().y)); + m_filters_layout->SetMinimumRowHeight(0, label->MinUsableSize().y); m_filters_layout->Add(label, 1, 0, GG::ALIGN_CENTER); GG::Connect(label->LeftClickedSignal, boost::bind(&FilterDialog::UpdateVisFilterFromVisibilityButton, this, SHOW_VISIBLE)); @@ -2140,7 +2141,7 @@ void ObjectListWnd::DoLayout() { GG::X BUTTON_WIDTH(ClientUI::Pts()*7); - GG::Y BUTTON_HEIGHT = m_filter_button->Height(); + GG::Y BUTTON_HEIGHT = m_filter_button->MinUsableSize().y; int PAD(3); GG::Pt button_ul(GG::X0, ClientHeight() - BUTTON_HEIGHT); Modified: trunk/FreeOrion/UI/OptionsWnd.cpp =================================================================== --- trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -880,7 +880,7 @@ CUIEdit* edit = new CUIEdit(GetOptionsDB().Get<std::string>(option_name)); edit->SetMaxSize(GG::Pt(edit->MaxSize().x, edit->Size().y)); CUIButton* button = new CUIButton("..."); - button->SetMinSize(GG::Pt(button->MinUsableSize().x + 8, button->Height())); + button->SetMinSize(button->MinUsableSize()); button->SetMaxSize(GG::Pt(button->MaxSize().x, button->Height())); GG::Layout* layout = new GG::Layout(GG::X0, GG::Y0, GG::X1, GG::Y1, 2, 2, 0, LAYOUT_MARGIN); layout->Add(text_control, 0, 0, 1, 2); Modified: trunk/FreeOrion/UI/ServerConnectWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ServerConnectWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/ServerConnectWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -81,10 +81,10 @@ layout->SetMinimumRowHeight(1, m_host_or_join_radio_group->MinUsableSize().y); layout->SetMinimumRowHeight(2, m_LAN_game_label->Height() + (2 * CONTROL_MARGIN)); layout->SetRowStretch(3, 1.0); - layout->SetMinimumRowHeight(4, m_find_LAN_servers_bn->Height() + CONTROL_MARGIN); + layout->SetMinimumRowHeight(4, m_find_LAN_servers_bn->MinUsableSize().y + CONTROL_MARGIN); layout->SetMinimumRowHeight(5, m_internet_game_label->Height() + CONTROL_MARGIN); layout->SetMinimumRowHeight(6, m_IP_address_edit->Height() + CONTROL_MARGIN); - layout->SetMinimumRowHeight(7, m_ok_bn->Height() + CONTROL_MARGIN); + layout->SetMinimumRowHeight(7, m_ok_bn->MinUsableSize().y + CONTROL_MARGIN); layout->Add(player_name_label, 0, 0, 1, 1, GG::ALIGN_VCENTER); layout->Add(m_player_name_edit, 0, 1, 1, 3, GG::ALIGN_VCENTER); Modified: trunk/FreeOrion/UI/SitRepPanel.cpp =================================================================== --- trunk/FreeOrion/UI/SitRepPanel.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/SitRepPanel.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -299,7 +299,7 @@ void SitRepPanel::DoLayout() { GG::X BUTTON_WIDTH(ClientUI::Pts()*4); - GG::Y BUTTON_HEIGHT = m_last_turn_button->Height(); + GG::Y BUTTON_HEIGHT = m_last_turn_button->MinUsableSize().y; int PAD(3); GG::Pt button_ul(ClientWidth() - GG::X(INNER_BORDER_ANGLE_OFFSET) - BUTTON_WIDTH, Modified: trunk/FreeOrion/UI/TechTreeWnd.cpp =================================================================== --- trunk/FreeOrion/UI/TechTreeWnd.cpp 2014-08-26 20:19:53 UTC (rev 7630) +++ trunk/FreeOrion/UI/TechTreeWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) @@ -290,7 +290,7 @@ m_buttons_per_row = static_cast<int>(std::ceil(NUM_CATEGORY_BUTTONS / ROWS)); // number of buttons in a typical row const GG::X BUTTON_WIDTH = (USABLE_WIDTH - (m_buttons_per_row - 1)*BUTTON_SEPARATION) / m_buttons_per_row; - const GG::Y BUTTON_HEIGHT = m_category_buttons.back()->Height(); + const GG::Y BUTTON_HEIGHT = m_category_buttons.back()->MinUsableSize().y; m_col_offset = BUTTON_WIDTH + BUTTON_SEPARATION; // horizontal distance between each column of buttons m_row_offset = BUTTON_HEIGHT + BUTTON_SEPARATION; // vertical distance between each row of buttons |
From: <mar...@us...> - 2014-08-27 08:15:56
|
Revision: 7632 http://sourceforge.net/p/freeorion/code/7632 Author: marcel_metz Date: 2014-08-27 08:15:48 +0000 (Wed, 27 Aug 2014) Log Message: ----------- Made auto turn and fleet aggression buttons icon based buttons. Modified Paths: -------------- trunk/FreeOrion/UI/FleetWnd.cpp trunk/FreeOrion/UI/MapWnd.cpp Modified: trunk/FreeOrion/UI/FleetWnd.cpp =================================================================== --- trunk/FreeOrion/UI/FleetWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) +++ trunk/FreeOrion/UI/FleetWnd.cpp 2014-08-27 08:15:48 UTC (rev 7632) @@ -1167,8 +1167,10 @@ int client_empire_id = HumanClientApp::GetApp()->EmpireID(); if (fleet->OwnedBy(client_empire_id) || fleet->GetVisibility(client_empire_id) >= VIS_FULL_VISIBILITY) { - m_aggression_toggle = new CUIButton(""); - m_aggression_toggle->SetColor(GG::CLR_WHITE); + m_aggression_toggle = new CUIButton( + GG::SubTexture(FleetAggressiveIcon()), + GG::SubTexture(FleetPassiveIcon()), + GG::SubTexture(FleetAggressiveMouseoverIcon())); AttachChild(m_aggression_toggle); GG::Connect(m_aggression_toggle->LeftClickedSignal, &FleetDataPanel::AggressionToggleButtonPressed, this); } @@ -1197,8 +1199,10 @@ AttachChild(m_fleet_name_text); m_fleet_destination_text = new CUILabel("", GG::FORMAT_RIGHT); AttachChild(m_fleet_destination_text); - m_aggression_toggle = new CUIButton(""); - m_aggression_toggle->SetColor(GG::CLR_WHITE); + m_aggression_toggle = new CUIButton( + GG::SubTexture(FleetAggressiveIcon()), + GG::SubTexture(FleetPassiveIcon()), + GG::SubTexture(FleetAggressiveMouseoverIcon())); AttachChild(m_aggression_toggle); GG::Connect(m_aggression_toggle->LeftClickedSignal, &FleetDataPanel::AggressionToggleButtonPressed, this); Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-27 07:46:19 UTC (rev 7631) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-27 08:15:48 UTC (rev 7632) @@ -626,9 +626,14 @@ GG::Connect(m_btn_turn->LeftClickedSignal, boost::bind(&MapWnd::EndTurn, this)); GG::Connect(m_btn_turn->LeftClickedSignal, &PlayTurnButtonClickSound); + boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; + // auto turn button - m_btn_auto_turn = new CUIButton(""); - m_btn_auto_turn->SetColor(GG::CLR_WHITE); + m_btn_auto_turn = new CUIButton( + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "manual_turn.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "auto_turn.png")), + GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "manual_turn_mouseover.png"))); + GG::Connect(m_btn_auto_turn->LeftClickedSignal, &MapWnd::ToggleAutoEndTurn, this); m_btn_auto_turn->Resize(GG::Pt(GG::X(24), GG::Y(24))); m_btn_auto_turn->SetMinSize(GG::Pt(GG::X(24), GG::Y(24))); @@ -640,8 +645,6 @@ m_FPS = new FPSIndicator(); m_FPS->Hide(); - boost::filesystem::path button_texture_dir = ClientUI::ArtDir() / "icons" / "buttons"; - // Menu button m_btn_menu = new SettableInWindowCUIButton( GG::SubTexture(ClientUI::GetTexture(button_texture_dir / "menu.png")), |
From: <mar...@us...> - 2014-08-29 10:25:57
|
Revision: 7655 http://sourceforge.net/p/freeorion/code/7655 Author: marcel_metz Date: 2014-08-29 10:25:50 +0000 (Fri, 29 Aug 2014) Log Message: ----------- Removed window flags parameter from CUITabBar. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/CUIStyle.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-29 10:25:32 UTC (rev 7654) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-29 10:25:50 UTC (rev 7655) @@ -448,8 +448,8 @@ // class CUITabBar /////////////////////////////////////// CUITabBar::CUITabBar(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color, - GG::TabBarStyle style, GG::Flags<GG::WndFlag> flags) : - GG::TabBar(GG::X0, GG::Y0, GG::X1, font, color, text_color, style, flags) + GG::TabBarStyle style) : + GG::TabBar(GG::X0, GG::Y0, GG::X1, font, color, text_color, style) {} void CUITabBar::DistinguishCurrentTab(const std::vector<GG::StateButton*>& tab_buttons) { Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-29 10:25:32 UTC (rev 7654) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-29 10:25:50 UTC (rev 7655) @@ -149,7 +149,7 @@ /** \name Structors */ ///@{ /** Basic ctor. */ CUITabBar(const boost::shared_ptr<GG::Font>& font, GG::Clr color, - GG::Clr text_color, GG::TabBarStyle style, GG::Flags<GG::WndFlag> flags); + GG::Clr text_color, GG::TabBarStyle style); //@} private: Modified: trunk/FreeOrion/UI/CUIStyle.cpp =================================================================== --- trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-29 10:25:32 UTC (rev 7654) +++ trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-29 10:25:50 UTC (rev 7655) @@ -31,7 +31,7 @@ GG::TabBar* CUIStyle::NewTabBar(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/, GG::TabBarStyle style/* = GG::TAB_BAR_ATTACHED*/) const -{ return new CUITabBar(font, color, text_color, style, GG::INTERACTIVE); } +{ return new CUITabBar(font, color, text_color, style); } GG::Button* CUIStyle::NewScrollUpButton(GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/) const { return 0; } |
From: <mar...@us...> - 2014-08-29 10:28:13
|
Revision: 7663 http://sourceforge.net/p/freeorion/code/7663 Author: marcel_metz Date: 2014-08-29 10:28:11 +0000 (Fri, 29 Aug 2014) Log Message: ----------- Removed window flags parameter from LinkText. Modified Paths: -------------- trunk/FreeOrion/UI/LinkText.cpp trunk/FreeOrion/UI/LinkText.h Modified: trunk/FreeOrion/UI/LinkText.cpp =================================================================== --- trunk/FreeOrion/UI/LinkText.cpp 2014-08-29 10:27:54 UTC (rev 7662) +++ trunk/FreeOrion/UI/LinkText.cpp 2014-08-29 10:28:11 UTC (rev 7663) @@ -50,8 +50,8 @@ // LinkText /////////////////////////////////////// LinkText::LinkText(GG::X x, GG::Y y, GG::X w, const std::string& str, const boost::shared_ptr<GG::Font>& font, - GG::Flags<GG::TextFormat> format/* = GG::FORMAT_NONE*/, GG::Clr color/* = GG::CLR_BLACK*/, GG::Flags<GG::WndFlag> flags/* = GG::INTERACTIVE*/) : - GG::TextControl(x, y, w, GG::Y1, str, font, color, format, flags), + GG::Flags<GG::TextFormat> format/* = GG::FORMAT_NONE*/, GG::Clr color/* = GG::CLR_BLACK*/) : + GG::TextControl(x, y, w, GG::Y1, str, font, color, format, GG::INTERACTIVE), TextLinker(), m_raw_text(str) { @@ -61,8 +61,8 @@ } LinkText::LinkText(GG::X x, GG::Y y, const std::string& str, const boost::shared_ptr<GG::Font>& font, - GG::Clr color/* = GG::CLR_BLACK*/, GG::Flags<GG::WndFlag> flags/* = GG::INTERACTIVE*/) : - GG::TextControl(x, y, GG::X1, GG::Y1, str, font, color, GG::FORMAT_NOWRAP, flags), + GG::Clr color/* = GG::CLR_BLACK*/) : + GG::TextControl(x, y, GG::X1, GG::Y1, str, font, color, GG::FORMAT_NOWRAP, GG::INTERACTIVE), TextLinker(), m_raw_text(str) { Modified: trunk/FreeOrion/UI/LinkText.h =================================================================== --- trunk/FreeOrion/UI/LinkText.h 2014-08-29 10:27:54 UTC (rev 7662) +++ trunk/FreeOrion/UI/LinkText.h 2014-08-29 10:28:11 UTC (rev 7663) @@ -119,12 +119,12 @@ class LinkText : public GG::TextControl, public TextLinker { public: /** \name Structors */ //@{ - LinkText(GG::X x, GG::Y y, GG::X w, const std::string& str, const boost::shared_ptr<GG::Font>& font, GG::Flags<GG::TextFormat> format = GG::FORMAT_NONE, GG::Clr color = GG::CLR_BLACK, GG::Flags<GG::WndFlag> flags = GG::INTERACTIVE); ///< ctor taking a font directly + LinkText(GG::X x, GG::Y y, GG::X w, const std::string& str, const boost::shared_ptr<GG::Font>& font, GG::Flags<GG::TextFormat> format = GG::FORMAT_NONE, GG::Clr color = GG::CLR_BLACK); ///< ctor taking a font directly /** ctor that does not require window size. Window size is determined from the string and font; the window will be large enough to fit the text as rendered, and no larger. \see DynamicText::DynamicText() */ - LinkText(GG::X x, GG::Y y, const std::string& str, const boost::shared_ptr<GG::Font>& font, GG::Clr color = GG::CLR_BLACK, GG::Flags<GG::WndFlag> flags = GG::INTERACTIVE); + LinkText(GG::X x, GG::Y y, const std::string& str, const boost::shared_ptr<GG::Font>& font, GG::Clr color = GG::CLR_BLACK); //@} /** \name Accessors */ //@{ |
From: <mar...@us...> - 2014-08-30 08:51:03
|
Revision: 7677 http://sourceforge.net/p/freeorion/code/7677 Author: marcel_metz Date: 2014-08-30 08:50:55 +0000 (Sat, 30 Aug 2014) Log Message: ----------- Removed position parameter from CUISlider constructor. Modified Paths: -------------- trunk/FreeOrion/UI/CUISlider.h trunk/FreeOrion/UI/CUIStyle.cpp trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/OptionsWnd.cpp Modified: trunk/FreeOrion/UI/CUISlider.h =================================================================== --- trunk/FreeOrion/UI/CUISlider.h 2014-08-29 21:48:14 UTC (rev 7676) +++ trunk/FreeOrion/UI/CUISlider.h 2014-08-30 08:50:55 UTC (rev 7677) @@ -12,10 +12,9 @@ { public: /** \name Structors */ //@{ - CUISlider(GG::X x, GG::Y y, GG::X w, GG::Y h, T min, T max, + CUISlider(T min, T max, GG::Orientation orientation, GG::Flags<GG::WndFlag> flags = GG::INTERACTIVE) : - GG::Slider<T>(x, y, w, h, min, max, orientation, ClientUI::CtrlColor(), - orientation == GG::VERTICAL ? Value(w) : Value(h), 5, flags) + GG::Slider<T>(GG::X0, GG::Y0, GG::X1, GG::Y1, min, max, orientation, ClientUI::CtrlColor(), ClientUI::ScrollWidth(), 5, flags) {} //@} Modified: trunk/FreeOrion/UI/CUIStyle.cpp =================================================================== --- trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-29 21:48:14 UTC (rev 7676) +++ trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-30 08:50:55 UTC (rev 7677) @@ -25,7 +25,7 @@ GG::Slider<int>* CUIStyle::NewIntSlider(int min, int max, GG::Orientation orientation, GG::Clr color, int tab_width, int line_width/* = 5*/) const -{ return new CUISlider<int>(GG::X0, GG::Y0, GG::X1, GG::Y1, min, max, orientation); } +{ return new CUISlider<int>(min, max, orientation); } GG::TabBar* CUIStyle::NewTabBar(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/, Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-08-29 21:48:14 UTC (rev 7676) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-08-30 08:50:55 UTC (rev 7677) @@ -1086,9 +1086,9 @@ // Zoom slider const int ZOOM_SLIDER_MIN = static_cast<int>(ZOOM_IN_MIN_STEPS), ZOOM_SLIDER_MAX = static_cast<int>(ZOOM_IN_MAX_STEPS); - m_zoom_slider = new CUISlider<double>(m_btn_turn->Left(), m_scale_line->Bottom() + GG::Y(LAYOUT_MARGIN), - GG::X(ClientUI::ScrollWidth()), ZOOM_SLIDER_HEIGHT, - ZOOM_SLIDER_MIN, ZOOM_SLIDER_MAX, GG::VERTICAL, GG::INTERACTIVE | GG::ONTOP); + m_zoom_slider = new CUISlider<double>(ZOOM_SLIDER_MIN, ZOOM_SLIDER_MAX, GG::VERTICAL, GG::INTERACTIVE | GG::ONTOP); + m_zoom_slider->MoveTo(GG::Pt(m_btn_turn->Left(), m_scale_line->Bottom() + GG::Y(LAYOUT_MARGIN))); + m_zoom_slider->Resize(GG::Pt(GG::X(ClientUI::ScrollWidth()), ZOOM_SLIDER_HEIGHT)); m_zoom_slider->SlideTo(m_zoom_steps_in); GG::GUI::GetGUI()->Register(m_zoom_slider); m_zoom_slider->Hide(); Modified: trunk/FreeOrion/UI/OptionsWnd.cpp =================================================================== --- trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-29 21:48:14 UTC (rev 7676) +++ trunk/FreeOrion/UI/OptionsWnd.cpp 2014-08-30 08:50:55 UTC (rev 7677) @@ -830,7 +830,7 @@ button->SetCheck(GetOptionsDB().Get<bool>("UI.sound.music-enabled")); boost::shared_ptr<const RangedValidator<int> > validator = boost::dynamic_pointer_cast<const RangedValidator<int> >(GetOptionsDB().GetValidator("UI.sound.music-volume")); assert(validator); - CUISlider<int>* slider = new CUISlider<int>(GG::X0, GG::Y0, GG::X1, GG::Y(14), validator->m_min, validator->m_max, GG::HORIZONTAL); + CUISlider<int>* slider = new CUISlider<int>(validator->m_min, validator->m_max, GG::HORIZONTAL); slider->SlideTo(GetOptionsDB().Get<int>("UI.sound.music-volume")); GG::Layout* layout = new GG::Layout(GG::X0, GG::Y0, GG::X1, GG::Y1, 1, 2, 0, 5); layout->Add(button, 0, 0); @@ -855,7 +855,7 @@ button->SetCheck(toggle_value); boost::shared_ptr<const RangedValidator<int> > validator = boost::dynamic_pointer_cast<const RangedValidator<int> >(GetOptionsDB().GetValidator(volume_option_name)); assert(validator); - CUISlider<int>* slider = new CUISlider<int>(GG::X0, GG::Y0, GG::X1, GG::Y(14), validator->m_min, validator->m_max, GG::HORIZONTAL); + CUISlider<int>* slider = new CUISlider<int>(validator->m_min, validator->m_max, GG::HORIZONTAL); slider->SlideTo(GetOptionsDB().Get<int>(volume_option_name)); GG::Layout* layout = new GG::Layout(GG::X0, GG::Y0, GG::X1, GG::Y1, 1, 2, 0, 5); layout->Add(button, 0, 0); |
From: <mar...@us...> - 2014-08-31 08:52:05
|
Revision: 7683 http://sourceforge.net/p/freeorion/code/7683 Author: marcel_metz Date: 2014-08-31 08:51:57 +0000 (Sun, 31 Aug 2014) Log Message: ----------- Moved background fill flag into CUIArrowButton. Modified Paths: -------------- trunk/FreeOrion/UI/CUIControls.cpp trunk/FreeOrion/UI/CUIControls.h trunk/FreeOrion/UI/CUIStyle.cpp Modified: trunk/FreeOrion/UI/CUIControls.cpp =================================================================== --- trunk/FreeOrion/UI/CUIControls.cpp 2014-08-30 17:50:43 UTC (rev 7682) +++ trunk/FreeOrion/UI/CUIControls.cpp 2014-08-31 08:51:57 UTC (rev 7683) @@ -229,11 +229,11 @@ /////////////////////////////////////// // class CUIArrowButton /////////////////////////////////////// -CUIArrowButton::CUIArrowButton(ShapeOrientation orientation, +CUIArrowButton::CUIArrowButton(ShapeOrientation orientation, bool fill_background, GG::Flags<GG::WndFlag> flags/* = GG::INTERACTIVE*/) : Button("", boost::shared_ptr<GG::Font>(), ClientUI::DropDownListArrowColor(), GG::CLR_ZERO, flags), m_orientation(orientation), - m_fill_background_with_wnd_color (false) + m_fill_background_with_wnd_color(fill_background) { GG::Connect(LeftClickedSignal, &PlayButtonClickSound, -1); } bool CUIArrowButton::InWindow(const GG::Pt& pt) const { @@ -245,9 +245,6 @@ } } -bool CUIArrowButton::FillBackgroundWithWndColor() const -{ return m_fill_background_with_wnd_color; } - void CUIArrowButton::MouseHere(const GG::Pt& pt, GG::Flags<GG::ModKey> mod_keys) { if (!Disabled()) { if (State() != BN_ROLLOVER) @@ -256,9 +253,6 @@ } } -void CUIArrowButton::FillBackgroundWithWndColor(bool fill) -{ m_fill_background_with_wnd_color = fill; } - void CUIArrowButton::RenderPressed() { GG::Pt ul = UpperLeft(), lr = LowerRight(); if (m_fill_background_with_wnd_color) Modified: trunk/FreeOrion/UI/CUIControls.h =================================================================== --- trunk/FreeOrion/UI/CUIControls.h 2014-08-30 17:50:43 UTC (rev 7682) +++ trunk/FreeOrion/UI/CUIControls.h 2014-08-31 08:51:57 UTC (rev 7683) @@ -93,18 +93,16 @@ class CUIArrowButton : public GG::Button { public: /** \name Structors */ //@{ - CUIArrowButton(ShapeOrientation orientation, + CUIArrowButton(ShapeOrientation orientation, bool fill_background, GG::Flags<GG::WndFlag> flags = GG::INTERACTIVE); ///< basic ctor //@} /** \name Accessors */ //@{ virtual bool InWindow(const GG::Pt& pt) const; - bool FillBackgroundWithWndColor() const; //@} /** \name Mutators */ //@{ virtual void MouseHere(const GG::Pt& pt, GG::Flags<GG::ModKey> mod_keys); - void FillBackgroundWithWndColor(bool fill); //@} protected: Modified: trunk/FreeOrion/UI/CUIStyle.cpp =================================================================== --- trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-30 17:50:43 UTC (rev 7682) +++ trunk/FreeOrion/UI/CUIStyle.cpp 2014-08-31 08:51:57 UTC (rev 7683) @@ -102,10 +102,10 @@ { return new CUIScroll::ScrollTab(GG::HORIZONTAL, 0, ClientUI::CtrlColor(), ClientUI::CtrlBorderColor()); } GG::Button* CUIStyle::NewSpinIncrButton(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/) const -{ return new CUIArrowButton(SHAPE_UP, GG::INTERACTIVE | GG::REPEAT_BUTTON_DOWN); } +{ return new CUIArrowButton(SHAPE_UP, false, GG::INTERACTIVE | GG::REPEAT_BUTTON_DOWN); } GG::Button* CUIStyle::NewSpinDecrButton(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/) const -{ return new CUIArrowButton(SHAPE_DOWN, GG::INTERACTIVE | GG::REPEAT_BUTTON_DOWN); } +{ return new CUIArrowButton(SHAPE_DOWN, false, GG::INTERACTIVE | GG::REPEAT_BUTTON_DOWN); } GG::StateButton* CUIStyle::NewTabBarTab(const std::string& str, const boost::shared_ptr<GG::Font>& font, GG::Flags<GG::TextFormat> format, GG::Clr color, @@ -118,18 +118,10 @@ } GG::Button* CUIStyle::NewTabBarLeftButton(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/) const -{ - CUIArrowButton* retval = new CUIArrowButton(SHAPE_LEFT, GG::INTERACTIVE); - retval->FillBackgroundWithWndColor(true); - return retval; -} +{ return new CUIArrowButton(SHAPE_LEFT, true, GG::INTERACTIVE); } GG::Button* CUIStyle::NewTabBarRightButton(const boost::shared_ptr<GG::Font>& font, GG::Clr color, GG::Clr text_color/* = GG::CLR_BLACK*/) const -{ - CUIArrowButton* retval = new CUIArrowButton(SHAPE_RIGHT, GG::INTERACTIVE); - retval->FillBackgroundWithWndColor(true); - return retval; -} +{ return new CUIArrowButton(SHAPE_RIGHT, true, GG::INTERACTIVE); } void CUIStyle::DeleteWnd(GG::Wnd* wnd) const { delete wnd; } |
From: <mar...@us...> - 2014-09-04 21:25:57
|
Revision: 7694 http://sourceforge.net/p/freeorion/code/7694 Author: marcel_metz Date: 2014-09-04 21:25:51 +0000 (Thu, 04 Sep 2014) Log Message: ----------- Removed position parameters from GalaxySetupPanel constructor. Modified Paths: -------------- trunk/FreeOrion/UI/GalaxySetupWnd.cpp trunk/FreeOrion/UI/GalaxySetupWnd.h trunk/FreeOrion/UI/MultiplayerLobbyWnd.cpp Modified: trunk/FreeOrion/UI/GalaxySetupWnd.cpp =================================================================== --- trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2014-09-04 19:20:06 UTC (rev 7693) +++ trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2014-09-04 21:25:51 UTC (rev 7694) @@ -55,8 +55,8 @@ //////////////////////////////////////////////// const GG::X GalaxySetupPanel::DEFAULT_WIDTH(305); -GalaxySetupPanel::GalaxySetupPanel(GG::X x, GG::Y y, GG::X w/* = DEFAULT_WIDTH*/) : - GG::Control(x, y, w, GAL_SETUP_PANEL_HT, GG::NO_WND_FLAGS), +GalaxySetupPanel::GalaxySetupPanel() : + GG::Control(GG::X0, GG::Y0, GalaxySetupPanel::DEFAULT_WIDTH, GAL_SETUP_PANEL_HT, GG::NO_WND_FLAGS), m_seed_label(0), m_seed_edit(0), m_random(0), @@ -490,7 +490,7 @@ { Sound::TempUISoundDisabler sound_disabler; - m_galaxy_setup_panel = new GalaxySetupPanel(GG::X0, GG::Y(4)); + m_galaxy_setup_panel = new GalaxySetupPanel(); const GG::X LABELS_WIDTH = (GalaxySetupPanel::DEFAULT_WIDTH - 5) / 2; Modified: trunk/FreeOrion/UI/GalaxySetupWnd.h =================================================================== --- trunk/FreeOrion/UI/GalaxySetupWnd.h 2014-09-04 19:20:06 UTC (rev 7693) +++ trunk/FreeOrion/UI/GalaxySetupWnd.h 2014-09-04 21:25:51 UTC (rev 7694) @@ -22,7 +22,7 @@ static const GG::X DEFAULT_WIDTH; /** \name Structors*/ //!@{ - GalaxySetupPanel(GG::X x, GG::Y y, GG::X w = DEFAULT_WIDTH); + GalaxySetupPanel(); //!@} /** \name Accessors*/ //!@{ Modified: trunk/FreeOrion/UI/MultiplayerLobbyWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MultiplayerLobbyWnd.cpp 2014-09-04 19:20:06 UTC (rev 7693) +++ trunk/FreeOrion/UI/MultiplayerLobbyWnd.cpp 2014-09-04 21:25:51 UTC (rev 7694) @@ -399,7 +399,7 @@ m_chat_box = new CUIMultiEdit("", GG::MULTI_LINEWRAP | GG::MULTI_READ_ONLY | GG::MULTI_TERMINAL_STYLE); m_chat_box->SetMaxLinesOfHistory(250); - m_galaxy_setup_panel = new GalaxySetupPanel(GG::X0, GG::Y0, GG::X1); + m_galaxy_setup_panel = new GalaxySetupPanel(); m_new_load_game_buttons = new GG::RadioButtonGroup(GG::VERTICAL); m_new_load_game_buttons->AddButton( |
From: <geo...@us...> - 2014-10-03 14:12:47
|
Revision: 7736 http://sourceforge.net/p/freeorion/code/7736 Author: geoffthemedio Date: 2014-10-03 14:12:35 +0000 (Fri, 03 Oct 2014) Log Message: ----------- Modified patch by vincele deleting various child Wnds to avoid potential memory leaks. Modified Paths: -------------- trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp trunk/FreeOrion/UI/EncyclopediaDetailPanel.h trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/UI/ModeratorActionsWnd.cpp trunk/FreeOrion/UI/ModeratorActionsWnd.h trunk/FreeOrion/UI/ObjectListWnd.cpp Modified: trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp =================================================================== --- trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/EncyclopediaDetailPanel.cpp 2014-10-03 14:12:35 UTC (rev 7736) @@ -560,6 +560,9 @@ AddItem(TextLinker::ENCYCLOPEDIA_TAG, "ENC_INDEX"); } +EncyclopediaDetailPanel::~EncyclopediaDetailPanel() +{ delete m_graph; } + void EncyclopediaDetailPanel::DoLayout() { const int PTS = ClientUI::Pts(); const int NAME_PTS = PTS*3/2; Modified: trunk/FreeOrion/UI/EncyclopediaDetailPanel.h =================================================================== --- trunk/FreeOrion/UI/EncyclopediaDetailPanel.h 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/EncyclopediaDetailPanel.h 2014-10-03 14:12:35 UTC (rev 7736) @@ -30,6 +30,7 @@ public: //! \name Structors //!@{ EncyclopediaDetailPanel(GG::X w, GG::Y h, GG::Flags<GG::WndFlag> flags = GG::ONTOP | GG::INTERACTIVE | GG::DRAGABLE | GG::RESIZABLE | CLOSABLE | PINABLE ); + virtual ~EncyclopediaDetailPanel(); //!@} /** \name Mutators */ //@{ Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/MapWnd.cpp 2014-10-03 14:12:35 UTC (rev 7736) @@ -288,6 +288,9 @@ UpdateEnabled(); } + ~MapScaleLine() + { delete m_label; } + virtual void Render() { if (!m_enabled) return; @@ -1135,6 +1138,7 @@ delete m_research_wnd; delete m_production_wnd; delete m_design_wnd; + delete m_side_panel; } void MapWnd::DoLayout() { Modified: trunk/FreeOrion/UI/ModeratorActionsWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ModeratorActionsWnd.cpp 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/ModeratorActionsWnd.cpp 2014-10-03 14:12:35 UTC (rev 7736) @@ -175,6 +175,13 @@ DoLayout(); } +ModeratorActionsWnd::~ModeratorActionsWnd() { + delete m_star_type_drop; + delete m_planet_type_drop; + delete m_planet_size_drop; + delete m_empire_drop; +} + void ModeratorActionsWnd::NoActionClicked() { m_selected_action = MAS_NoAction; NoActionSelectedSignal(); Modified: trunk/FreeOrion/UI/ModeratorActionsWnd.h =================================================================== --- trunk/FreeOrion/UI/ModeratorActionsWnd.h 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/ModeratorActionsWnd.h 2014-10-03 14:12:35 UTC (rev 7736) @@ -19,6 +19,7 @@ public: //! \name Structors //!@{ ModeratorActionsWnd(GG::X w, GG::Y h); + virtual ~ModeratorActionsWnd(); //!@} /** \name Accessors */ //@{ Modified: trunk/FreeOrion/UI/ObjectListWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-10-02 21:37:43 UTC (rev 7735) +++ trunk/FreeOrion/UI/ObjectListWnd.cpp 2014-10-03 14:12:35 UTC (rev 7736) @@ -1630,6 +1630,11 @@ GG::Connect(GetUniverse().UniverseObjectDeleteSignal, &ObjectListBox::UniverseObjectDeleted, this); } + virtual ~ObjectListBox() { + delete m_filter_condition; + delete m_header_row; + } + virtual void SizeMove(const GG::Pt& ul, const GG::Pt& lr) { const GG::Pt old_size = Size(); Wnd::SizeMove(ul, lr); |
From: <geo...@us...> - 2015-03-12 10:45:21
|
Revision: 8028 http://sourceforge.net/p/freeorion/code/8028 Author: geoffthemedio Date: 2015-03-12 10:45:14 +0000 (Thu, 12 Mar 2015) Log Message: ----------- Patch by vincele making objects list retain selections when right-click menu ordering planet focus changes. Modified Paths: -------------- trunk/FreeOrion/UI/ObjectListWnd.cpp trunk/FreeOrion/UI/ObjectListWnd.h Modified: trunk/FreeOrion/UI/ObjectListWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.cpp 2015-03-12 04:44:21 UTC (rev 8027) +++ trunk/FreeOrion/UI/ObjectListWnd.cpp 2015-03-12 10:45:14 UTC (rev 8028) @@ -2219,6 +2219,34 @@ ClientUI::GetClientUI()->ZoomToObject(object_id); } +std::set<int> ObjectListWnd::SelectedObjectIDs() const { + std::set<int> sel_ids; + const GG::ListBox::SelectionSet sel = m_list_box->Selections(); + for (GG::ListBox::SelectionSet::const_iterator it = sel.begin(); it != sel.end(); ++it) { + ObjectRow *row = dynamic_cast<ObjectRow *>(**it); + if (row) { + int selected_object_id = row->ObjectID(); + if (selected_object_id != INVALID_OBJECT_ID) + sel_ids.insert(selected_object_id); + } + } + return sel_ids; +} + +void ObjectListWnd::SetSelectedObjects(std::set<int> sel_ids) { + for (GG::ListBox::iterator it = m_list_box->begin(); it != m_list_box->end(); ++it) { + ObjectRow *row = dynamic_cast<ObjectRow *>(*it); + if (row) { + int selected_object_id = row->ObjectID(); + if (selected_object_id != INVALID_OBJECT_ID) { + if (sel_ids.find(selected_object_id) != sel_ids.end()) { + m_list_box->SelectRow(it); + } + } + } + } +} + void ObjectListWnd::ObjectRightClicked(GG::ListBox::iterator it, const GG::Pt& pt) { int object_id = ObjectInRow(it); if (object_id == INVALID_OBJECT_ID) @@ -2319,7 +2347,10 @@ } } } + std::set<int> sel_ids = SelectedObjectIDs(); Refresh(); + SetSelectedObjects(sel_ids); + ObjectSelectionChanged(m_list_box->Selections()); break; } } Modified: trunk/FreeOrion/UI/ObjectListWnd.h =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.h 2015-03-12 04:44:21 UTC (rev 8027) +++ trunk/FreeOrion/UI/ObjectListWnd.h 2015-03-12 10:45:14 UTC (rev 8028) @@ -35,6 +35,9 @@ void ObjectRightClicked(GG::ListBox::iterator it, const GG::Pt& pt); int ObjectInRow(GG::ListBox::iterator it) const; + void SetSelectedObjects(std::set<int> sel_ids); + std::set<int> SelectedObjectIDs() const; + void FilterClicked(); void CollapseExpandClicked(); virtual void CloseClicked(); |