From: <geo...@us...> - 2012-08-15 07:24:14
|
Revision: 5132 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=5132&view=rev Author: geoffthemedio Date: 2012-08-15 07:24:08 +0000 (Wed, 15 Aug 2012) Log Message: ----------- Added some nonfunctional buttons and code skeleton functions and tweaked layout in objects list. Modified Paths: -------------- trunk/FreeOrion/UI/ObjectListWnd.cpp trunk/FreeOrion/UI/ObjectListWnd.h trunk/FreeOrion/default/eng_stringtable.txt Modified: trunk/FreeOrion/UI/ObjectListWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.cpp 2012-08-14 10:29:51 UTC (rev 5131) +++ trunk/FreeOrion/UI/ObjectListWnd.cpp 2012-08-15 07:24:08 UTC (rev 5132) @@ -17,12 +17,19 @@ #include <GG/DrawUtil.h> //////////////////////////////////////////////// +// FilterDialog +//////////////////////////////////////////////// +class FilterDialog { +}; + +//////////////////////////////////////////////// // ObjectListBox //////////////////////////////////////////////// class ObjectListBox : public CUIListBox { public: ObjectListBox() : - CUIListBox(GG::X0, GG::Y0, GG::X1, GG::Y1) + CUIListBox(GG::X0, GG::Y0, GG::X1, GG::Y1), + m_collapsed_objects() { // preinitialize listbox/row column widths, because what // ListBox::Insert does on default is not suitable for this case @@ -48,25 +55,82 @@ static GG::Y ListRowHeight() { return GG::Y(ClientUI::Pts() * 2); } + + void CollapseObject(int object_id = INVALID_OBJECT_ID) { + if (object_id == INVALID_OBJECT_ID) { + // collapse all objects + } else { + } + } + + void ExpandObject(int object_id = INVALID_OBJECT_ID) { + if (object_id == INVALID_OBJECT_ID) { + // collapse all objects + } else { + } + } +private: + std::set<int> m_collapsed_objects; }; ObjectListWnd::ObjectListWnd(GG::X w, GG::Y h) : CUIWnd(UserString("MAP_BTN_OBJECTS"), GG::X1, GG::Y1, w - 1, h - 1, GG::ONTOP | GG::INTERACTIVE | GG::DRAGABLE | GG::RESIZABLE), - m_list_box(0) + m_list_box(0), + m_filter_button(0), + m_sort_button(0), + m_columns_button(0), + m_collapse_button(0) { m_list_box = new ObjectListBox(); m_list_box->SetHiliteColor(GG::CLR_ZERO); m_list_box->SetStyle(GG::LIST_NOSEL | GG::LIST_NOSORT); GG::Connect(m_list_box->DoubleClickedSignal, &ObjectListWnd::ObjectDoubleClicked, this); GG::Connect(m_list_box->RightClickedSignal, &ObjectListWnd::ObjectRightClicked, this); + AttachChild(m_list_box); - AttachChild(m_list_box); + m_filter_button = new CUIButton(GG::X0, GG::Y0, GG::X(30), UserString("FILTERS")); + GG::Connect(m_filter_button->ClickedSignal, &ObjectListWnd::FilterClicked, this); + AttachChild(m_filter_button); + + m_sort_button = new CUIButton(GG::X0, GG::Y0, GG::X(30), UserString("SORT")); + GG::Connect(m_sort_button->ClickedSignal, &ObjectListWnd::SortClicked, this); + AttachChild(m_sort_button); + m_sort_button->Disable(); + + m_columns_button = new CUIButton(GG::X0, GG::Y0, GG::X(30), UserString("COLUMNS")); + GG::Connect(m_columns_button->ClickedSignal, &ObjectListWnd::ColumnsClicked, this); + AttachChild(m_columns_button); + m_columns_button->Disable(); + + m_collapse_button = new CUIButton(GG::X0, GG::Y0, GG::X(30), UserString("COLLAPSE_ALL")); + GG::Connect(m_collapse_button->ClickedSignal, &ObjectListWnd::CollapseExpandClicked, this); + AttachChild(m_collapse_button); + m_collapse_button->Disable(); + DoLayout(); } -void ObjectListWnd::DoLayout() -{ m_list_box->SizeMove(GG::Pt(), GG::Pt(ClientWidth(), ClientHeight() - GG::Y(INNER_BORDER_ANGLE_OFFSET))); } +void ObjectListWnd::DoLayout() { + GG::X BUTTON_WIDTH(ClientUI::Pts()*6); + GG::Y BUTTON_HEIGHT = m_filter_button->Height(); + int PAD(3); + GG::Pt button_ul(GG::X0, ClientHeight() - BUTTON_HEIGHT); + + m_filter_button->SizeMove(button_ul, button_ul + GG::Pt(BUTTON_WIDTH, BUTTON_HEIGHT)); + button_ul += GG::Pt(BUTTON_WIDTH + GG::X(PAD), GG::Y0); + m_sort_button->SizeMove(button_ul, button_ul + GG::Pt(BUTTON_WIDTH, BUTTON_HEIGHT)); + button_ul += GG::Pt(BUTTON_WIDTH + GG::X(PAD), GG::Y0); + m_columns_button->SizeMove(button_ul, button_ul + GG::Pt(BUTTON_WIDTH, BUTTON_HEIGHT)); + button_ul += GG::Pt(BUTTON_WIDTH + GG::X(PAD), GG::Y0); + m_collapse_button->SizeMove(button_ul, button_ul + GG::Pt(BUTTON_WIDTH, BUTTON_HEIGHT)); + button_ul += GG::Pt(BUTTON_WIDTH + GG::X(PAD), GG::Y0); + + m_list_box->SizeMove(GG::Pt(GG::X0, GG::Y0), GG::Pt(ClientWidth(), button_ul.y)); + + SetMinSize(GG::Pt(5*BUTTON_WIDTH, 6*BUTTON_HEIGHT)); +} + void ObjectListWnd::SizeMove(const GG::Pt& ul, const GG::Pt& lr) { GG::Pt old_size = GG::Wnd::Size(); @@ -427,3 +491,14 @@ return INVALID_OBJECT_ID; } +void ObjectListWnd::FilterClicked() { +} + +void ObjectListWnd::SortClicked() { +} + +void ObjectListWnd::ColumnsClicked() { +} + +void ObjectListWnd::CollapseExpandClicked() { +} Modified: trunk/FreeOrion/UI/ObjectListWnd.h =================================================================== --- trunk/FreeOrion/UI/ObjectListWnd.h 2012-08-14 10:29:51 UTC (rev 5131) +++ trunk/FreeOrion/UI/ObjectListWnd.h 2012-08-15 07:24:08 UTC (rev 5132) @@ -5,6 +5,12 @@ #include "CUIWnd.h" #include <GG/ListBox.h> +namespace GG { + class Button; +} +namespace Condition { + struct ConditionBase; +} class ObjectListBox; @@ -29,7 +35,18 @@ void ObjectRightClicked(GG::ListBox::iterator it, const GG::Pt& pt); int ObjectInRow(GG::ListBox::iterator it) const; - ObjectListBox* m_list_box; + void FilterClicked(); + void SortClicked(); + void ColumnsClicked(); + void CollapseExpandClicked(); + + Condition::ConditionBase* m_filter_condition; + + ObjectListBox* m_list_box; + GG::Button* m_filter_button; + GG::Button* m_sort_button; + GG::Button* m_columns_button; + GG::Button* m_collapse_button; }; #endif // _ObjectListWnd_h_ Modified: trunk/FreeOrion/default/eng_stringtable.txt =================================================================== --- trunk/FreeOrion/default/eng_stringtable.txt 2012-08-14 10:29:51 UTC (rev 5131) +++ trunk/FreeOrion/default/eng_stringtable.txt 2012-08-15 07:24:08 UTC (rev 5132) @@ -2620,7 +2620,22 @@ WAITING Waiting +#################### +## Objects Window ## +#################### +SORT +Sort + +COLUMNS +Columns + +COLLAPSE_ALL +Collapse All + +EXPAND_ALL +Expand All + ############################################################# #### S I T R E P #### ############################################################# |