From: <geo...@us...> - 2012-10-27 01:52:14
|
Revision: 5340 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=5340&view=rev Author: geoffthemedio Date: 2012-10-27 01:52:07 +0000 (Sat, 27 Oct 2012) Log Message: ----------- -Reduced max batch and repeat size to 99 to reduce space needed for droplists. -Hid production location on queue panels if width is low due to lack of space. -grooming Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2012-10-26 22:23:20 UTC (rev 5339) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2012-10-27 01:52:07 UTC (rev 5340) @@ -62,7 +62,6 @@ width(0), m_quant(quantity) { - SetDragDropDataType("QuantRow"); QuantLabel* newLabel = new QuantLabel(m_quant, designID, font, nwidth, h, inProgress); width = newLabel->Width(); height = newLabel->Height(); @@ -83,10 +82,8 @@ /** \name Structors */ QuantitySelector(const ProductionQueue::Element &build, GG::X xoffset, GG::Y yoffset, GG::Y h, boost::shared_ptr<GG::Font> font, bool inProgress, GG::X nwidth, bool amBlockType) : - //CUIDropDownList(GG::X0, GG::Y0, GG::X(36),h, h, GG::CLR_ZERO, GG::FloatClr(0.0, 0.0, 0.0, 0.5)), CUIDropDownList(xoffset, yoffset, nwidth,h-GG::Y(2), h, inProgress ? GG::LightColor(ClientUI::ResearchableTechTextAndBorderColor()) : ClientUI::ResearchableTechTextAndBorderColor(), ( inProgress ? GG::LightColor(ClientUI::ResearchableTechFillColor()) : ClientUI::ResearchableTechFillColor() ) ), - //CUIDropDownList(xoffset, yoffset, GG::X(50),h, h, GG::Clr(0, 0, 0, 0), GG::FloatClr(0.0, 0.0, 0.0, 0.0)), quantity(build.remaining), prevQuant(build.remaining), blocksize(build.blocksize), @@ -103,7 +100,7 @@ //m_quantityBox->SetColWidth(0, GG::X(14)); //m_quantityBox->LockColWidths(); - int quantInts[] = {1, 5, 10, 20, 50, 100}; + int quantInts[] = {1, 5, 10, 20, 50, 99}; std::set<int> myQuantSet(quantInts,quantInts+6); if (amBlockType) myQuantSet.insert(blocksize); //as currently implemented this one not actually necessary since blocksize has no other way to change @@ -148,8 +145,8 @@ SetNumCols(1); //m_quantityBox->SetColWidth(0, GG::X(14)); //m_quantityBox->LockColWidths(); - - int quantInts[] = {1, 5, 10, 20, 50, 100}; + + int quantInts[] = {1, 5, 10, 20, 50, 99}; std::set<int> myQuantSet(quantInts,quantInts+6); myQuantSet.insert(build.remaining); for (std::set<int>::iterator it=myQuantSet.begin(); it != myQuantSet.end(); it++ ) { @@ -340,29 +337,22 @@ // get graphic and player-visible name text for item boost::shared_ptr<GG::Texture> graphic; std::string name_text; - std::string spacer_text = " "; if (build.item.build_type == BT_BUILDING) { graphic = ClientUI::BuildingIcon(build.item.name); name_text = UserString(build.item.name); - spacer_text = ""; } else if (build.item.build_type == BT_SHIP) { graphic = ClientUI::ShipDesignIcon(build.item.design_id); name_text = GetShipDesign(build.item.design_id)->Name(); } else { graphic = ClientUI::GetTexture(""); // get "missing texture" texture by supply intentionally bad path name_text = UserString("FW_UNKNOWN_DESIGN_NAME"); - spacer_text = ""; } - // things other than buildings can be built in multiple copies with one order - //if (build.item.build_type != BT_BUILDING) - //name_text = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_MULTIPLES")) % number) + name_text; - //name_text = " "; // leave blank to not interfere with quantitybox - //name_text = name_text; // get location indicator text std::string location_text; - if (const UniverseObject* location = GetUniverseObject(build.location)) - location_text = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_ITEM_LOCATION")) % location->Name()); + if (w > GG::X(300)) + if (const UniverseObject* location = GetUniverseObject(build.location)) + location_text = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_ITEM_LOCATION")) % location->Name()); // create and arrange widgets to display info GG::Y top(MARGIN); @@ -376,10 +366,10 @@ left += GRAPHIC_SIZE + MARGIN; if (m_build.item.build_type == BT_SHIP) { - m_quantityBox = new QuantitySelector(m_build, left, GG::Y(MARGIN), GG::Y(FONT_PTS-2*MARGIN), font, m_in_progress, GG::X(FONT_PTS*3.5), false); + m_quantityBox = new QuantitySelector(m_build, left, GG::Y(MARGIN), GG::Y(FONT_PTS-2*MARGIN), font, m_in_progress, GG::X(FONT_PTS*2.5), false); GG::Connect(m_quantityBox->SelChangedSignal, &QuantitySelector::SelectionChanged, m_quantityBox); left += m_quantityBox->Width(); - m_blockBox = new QuantitySelector(m_build, left, GG::Y(MARGIN), GG::Y(FONT_PTS-2*MARGIN), font, m_in_progress, GG::X(FONT_PTS*3.5), true); + m_blockBox = new QuantitySelector(m_build, left, GG::Y(MARGIN), GG::Y(FONT_PTS-2*MARGIN), font, m_in_progress, GG::X(FONT_PTS*2.5), true); GG::Connect(m_blockBox->SelChangedSignal, &QuantitySelector::SelectionChanged, m_blockBox); left += m_blockBox->Width(); } |
From: <geo...@us...> - 2012-11-26 02:26:07
|
Revision: 5465 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=5465&view=rev Author: geoffthemedio Date: 2012-11-26 02:26:01 +0000 (Mon, 26 Nov 2012) Log Message: ----------- Patch by Dilvish to label repetitions with ?\226?\159?\179 instead of x in production queue items. Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2012-11-26 02:21:34 UTC (rev 5464) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2012-11-26 02:26:01 UTC (rev 5465) @@ -40,11 +40,15 @@ class QuantLabel : public GG::Control { public: - QuantLabel(int quantity, int designID, boost::shared_ptr<GG::Font> font, GG::X nwidth, GG::Y h, bool inProgress) : + QuantLabel(int quantity, int designID, boost::shared_ptr<GG::Font> font, GG::X nwidth, GG::Y h, bool inProgress, bool amBlockType) : Control(GG::X0, GG::Y0, nwidth, h, GG::Flags<GG::WndFlag>()) { GG::Clr txtClr = inProgress ? GG::LightColor(ClientUI::ResearchableTechTextAndBorderColor()) : ClientUI::ResearchableTechTextAndBorderColor(); - std::string nameText = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_MULTIPLES")) % quantity); + std::string nameText; + if (amBlockType) + nameText = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_MULTIPLES")) % quantity); + else + nameText = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_REPETITIONS")) % quantity); //nameText += GetShipDesign(designID)->Name(); GG::TextControl* text = new GG::TextControl(GG::X0, GG::Y0, nameText, font, txtClr, GG::FORMAT_TOP | GG::FORMAT_LEFT); text->OffsetMove(GG::Pt(GG::X0, GG::Y(-3))); // @@ -57,12 +61,12 @@ class QuantRow : public GG::ListBox::Row { public: - QuantRow(int quantity, int designID, boost::shared_ptr<GG::Font> font, GG::X nwidth, GG::Y h, bool inProgress) : + QuantRow(int quantity, int designID, boost::shared_ptr<GG::Font> font, GG::X nwidth, GG::Y h, bool inProgress, bool amBlockType) : GG::ListBox::Row(), width(0), m_quant(quantity) { - QuantLabel* newLabel = new QuantLabel(m_quant, designID, font, nwidth, h, inProgress); + QuantLabel* newLabel = new QuantLabel(m_quant, designID, font, nwidth, h, inProgress,amBlockType); width = newLabel->Width(); height = newLabel->Height(); push_back(newLabel); @@ -108,7 +112,7 @@ myQuantSet.insert(quantity); GG::Y height; for (std::set<int>::iterator it=myQuantSet.begin(); it != myQuantSet.end(); it++ ) { - QuantRow* newRow = new QuantRow(*it, build.item.design_id, font, nwidth, h, inProgress); + QuantRow* newRow = new QuantRow(*it, build.item.design_id, font, nwidth, h, inProgress,amBlockType); if (newRow->width) width = newRow->width; GG::DropDownList::iterator latest_it = Insert(newRow); @@ -150,7 +154,7 @@ std::set<int> myQuantSet(quantInts,quantInts+6); myQuantSet.insert(build.remaining); for (std::set<int>::iterator it=myQuantSet.begin(); it != myQuantSet.end(); it++ ) { - GG::DropDownList::iterator latest_it = Insert(new QuantRow(*it, 0, ClientUI::GetFont(), GG::X1, h, false)); + GG::DropDownList::iterator latest_it = Insert(new QuantRow(*it, 0, ClientUI::GetFont(), GG::X1, h, false, amBlockType)); if (build.remaining == *it) Select(latest_it); } |
From: <geo...@us...> - 2012-12-18 06:40:44
|
Revision: 5555 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=5555&view=rev Author: geoffthemedio Date: 2012-12-18 06:40:38 +0000 (Tue, 18 Dec 2012) Log Message: ----------- Added 2, 3, and 4 repeat options for production item repeat droplists. Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2012-12-18 03:43:55 UTC (rev 5554) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2012-12-18 06:40:38 UTC (rev 5555) @@ -104,8 +104,8 @@ //m_quantityBox->SetColWidth(0, GG::X(14)); //m_quantityBox->LockColWidths(); - int quantInts[] = {1, 5, 10, 20, 50, 99}; - std::set<int> myQuantSet(quantInts,quantInts+6); + int quantInts[] = {1, 2, 3, 4, 5, 10, 20, 50, 99}; + std::set<int> myQuantSet(quantInts,quantInts+9); if (amBlockType) myQuantSet.insert(blocksize); //as currently implemented this one not actually necessary since blocksize has no other way to change else @@ -127,7 +127,7 @@ //Resize(GG::Pt(width, height)); //doesn't work on DropDownList itself, goes by Row } // set dropheight. shrink to fit a small number, but cap at a reasonable max - SetDropHeight(GG::Y(std::min( 8, int(myQuantSet.size() ) )*height + 4)); + SetDropHeight(GG::Y(std::max( 8, int(myQuantSet.size() ) )*height + 4)); //QuantLabel ref1 = QuantLabel(quantity, ClientUI::Pts()); //QuantLabel ref2 = QuantLabel(100, ClientUI::Pts()); //OffsetMove(GG::Pt(ref1.Width()-GG::X(50) +GG::X(8), GG::Y(-4))); |
From: <dil...@us...> - 2013-09-14 18:59:51
|
Revision: 6416 http://sourceforge.net/p/freeorion/code/6416 Author: dilvish-fo Date: 2013-09-14 18:59:50 +0000 (Sat, 14 Sep 2013) Log Message: ----------- an implemention of BraveSirKevin's idea of modifying the production windown to highlight build panels whose build location is in the currently selected System. Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2013-09-14 18:52:03 UTC (rev 6415) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2013-09-14 18:59:50 UTC (rev 6416) @@ -6,6 +6,7 @@ #include "ClientUI.h" #include "CUIControls.h" #include "QueueListBox.h" +#include "SidePanel.h" #include "../Empire/Empire.h" #include "../client/human/HumanClientApp.h" #include "../util/i18n.h" @@ -356,9 +357,12 @@ // get location indicator text std::string location_text; - if (w > GG::X(300)) - if (TemporaryPtr<const UniverseObject> location = GetUniverseObject(build.location)) - location_text = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_ITEM_LOCATION")) % location->Name()); + bool system_selected = false; + if (TemporaryPtr<const UniverseObject> location = GetUniverseObject(build.location)) { + system_selected = (location->SystemID() != -1 && location ->SystemID() == SidePanel::SystemID()); + if (w > GG::X(300)) + location_text = boost::io::str(FlexibleFormat(UserString("PRODUCTION_QUEUE_ITEM_LOCATION")) % location->Name())+" "; + } // create and arrange widgets to display info GG::Y top(MARGIN); @@ -384,7 +388,18 @@ m_name_text = new GG::TextControl(left, top, NAME_WIDTH, GG::Y(FONT_PTS + 2*MARGIN), name_text, font, clr, GG::FORMAT_TOP | GG::FORMAT_LEFT); m_name_text->ClipText(true); - m_location_text = new GG::TextControl(left, top, NAME_WIDTH, GG::Y(FONT_PTS + 2*MARGIN), location_text, font, clr, GG::FORMAT_TOP | GG::FORMAT_RIGHT); + GG::Clr location_clr = clr; + boost::shared_ptr<GG::Font> location_font = font; + int client_empire_id = HumanClientApp::GetApp()->EmpireID(); + const Empire* this_client_empire = Empires().Lookup(client_empire_id); + if (this_client_empire && system_selected) { + location_font = ClientUI::GetBoldFont(); // + //location_clr = m_in_progress ? GG::LightColor(this_client_empire->Color()) : this_client_empire->Color(); + location_clr = this_client_empire->Color(); + m_location_text = new ShadowedTextControl(left, top, NAME_WIDTH, GG::Y(FONT_PTS + 2*MARGIN), location_text, location_font, location_clr, GG::FORMAT_TOP | GG::FORMAT_RIGHT); + } else { + m_location_text = new GG::TextControl(left, top, NAME_WIDTH, GG::Y(FONT_PTS + 2*MARGIN), location_text, location_font, location_clr, GG::FORMAT_TOP | GG::FORMAT_RIGHT); + } top += m_name_text->Height(); left = GG::X(GRAPHIC_SIZE + MARGIN*2); @@ -575,8 +590,13 @@ void ProductionWnd::SelectDefaultPlanet() { m_build_designator_wnd->SelectDefaultPlanet(); } -void ProductionWnd::SelectSystem(int system_id) -{ m_build_designator_wnd->SelectSystem(system_id); } +void ProductionWnd::SelectSystem(int system_id) { + if (system_id != SidePanel::SystemID()) { + m_build_designator_wnd->SelectSystem(system_id); + // refresh so as to correctly highlight builds for selected system + Update(); + } +} void ProductionWnd::QueueItemMoved(GG::ListBox::Row* row, std::size_t position) { HumanClientApp::GetApp()->Orders().IssueOrder( |
From: <geo...@us...> - 2014-02-03 02:14:27
|
Revision: 6819 http://sourceforge.net/p/freeorion/code/6819 Author: geoffthemedio Date: 2014-02-03 02:14:22 +0000 (Mon, 03 Feb 2014) Log Message: ----------- minor grooming Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2014-02-03 02:11:26 UTC (rev 6818) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2014-02-03 02:14:22 UTC (rev 6819) @@ -108,14 +108,14 @@ //m_quantityBox->LockColWidths(); int quantInts[] = {1, 2, 3, 4, 5, 10, 20, 50, 99}; - std::set<int> myQuantSet(quantInts,quantInts+9); + std::set<int> myQuantSet(quantInts, quantInts+9); if (amBlockType) myQuantSet.insert(blocksize); //as currently implemented this one not actually necessary since blocksize has no other way to change else myQuantSet.insert(quantity); GG::Y height; for (std::set<int>::iterator it=myQuantSet.begin(); it != myQuantSet.end(); it++ ) { - QuantRow* newRow = new QuantRow(*it, build.item.design_id, font, nwidth, h, inProgress,amBlockType); + QuantRow* newRow = new QuantRow(*it, build.item.design_id, font, nwidth, h, inProgress, amBlockType); if (newRow->width) width = newRow->width; GG::DropDownList::iterator latest_it = Insert(newRow); |
From: <dil...@us...> - 2014-03-02 17:19:27
|
Revision: 6939 http://sourceforge.net/p/freeorion/code/6939 Author: dilvish-fo Date: 2014-03-02 17:19:24 +0000 (Sun, 02 Mar 2014) Log Message: ----------- added 'move to top' and 'move to bottom' popup menu entries for ProductionQueue items Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2014-03-02 16:38:51 UTC (rev 6938) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2014-03-02 17:19:24 UTC (rev 6939) @@ -624,6 +624,8 @@ void ProdQueueListBox::ItemRightClicked(GG::ListBox::iterator it, const GG::Pt& pt) { GG::MenuItem menu_contents; menu_contents.next_level.push_back(GG::MenuItem(UserString("DELETE_QUEUE_ITEM"), 1, false, false)); + menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_UP_QUEUE_ITEM"), 2, false, false)); + menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_DOWN_QUEUE_ITEM"), 3, false, false)); GG::PopupMenu popup(pt.x, pt.y, ClientUI::GetFont(), menu_contents, GG::CLR_RED, ClientUI::WndOuterBorderColor(), ClientUI::WndColor(), ClientUI::EditHiliteColor()); if (popup.Run()) { @@ -633,6 +635,20 @@ DoubleClickedSignal(it); break; } + case 2: { // move item to top + // emit a signal so that the ProductionWnd can take necessary steps + if (QueueRow* queue_row = boost::polymorphic_downcast<QueueRow*>(*it)) { + QueueItemMoved(queue_row, 0); + } + break; + } + case 3: { // moe item to bottom + // emit a signal so that the ProductionWnd can take necessary steps + if (QueueRow* queue_row = boost::polymorphic_downcast<QueueRow*>(*it)) { + QueueItemMoved(queue_row, NumRows()); + } + break; + } default: break; |
From: <dil...@us...> - 2014-03-02 17:24:26
|
Revision: 6940 http://sourceforge.net/p/freeorion/code/6940 Author: dilvish-fo Date: 2014-03-02 17:24:22 +0000 (Sun, 02 Mar 2014) Log Message: ----------- re-ordered the items in the ProductionQueue popup menu so that delete is last Modified Paths: -------------- trunk/FreeOrion/UI/ProductionWnd.cpp Modified: trunk/FreeOrion/UI/ProductionWnd.cpp =================================================================== --- trunk/FreeOrion/UI/ProductionWnd.cpp 2014-03-02 17:19:24 UTC (rev 6939) +++ trunk/FreeOrion/UI/ProductionWnd.cpp 2014-03-02 17:24:22 UTC (rev 6940) @@ -623,32 +623,32 @@ * being interpreted correctly (can instead be treated as simply two unrelated left clicks) */ void ProdQueueListBox::ItemRightClicked(GG::ListBox::iterator it, const GG::Pt& pt) { GG::MenuItem menu_contents; - menu_contents.next_level.push_back(GG::MenuItem(UserString("DELETE_QUEUE_ITEM"), 1, false, false)); - menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_UP_QUEUE_ITEM"), 2, false, false)); - menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_DOWN_QUEUE_ITEM"), 3, false, false)); + menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_UP_QUEUE_ITEM"), 1, false, false)); + menu_contents.next_level.push_back(GG::MenuItem(UserString("MOVE_DOWN_QUEUE_ITEM"), 2, false, false)); + menu_contents.next_level.push_back(GG::MenuItem(UserString("DELETE_QUEUE_ITEM"), 3, false, false)); GG::PopupMenu popup(pt.x, pt.y, ClientUI::GetFont(), menu_contents, GG::CLR_RED, ClientUI::WndOuterBorderColor(), ClientUI::WndColor(), ClientUI::EditHiliteColor()); if (popup.Run()) { switch (popup.MenuID()) { - case 1: { // delete item + case 1: { // move item to top // emit a signal so that the ProductionWnd can take necessary steps - DoubleClickedSignal(it); - break; - } - case 2: { // move item to top - // emit a signal so that the ProductionWnd can take necessary steps if (QueueRow* queue_row = boost::polymorphic_downcast<QueueRow*>(*it)) { QueueItemMoved(queue_row, 0); } break; } - case 3: { // moe item to bottom + case 2: { // moe item to bottom // emit a signal so that the ProductionWnd can take necessary steps if (QueueRow* queue_row = boost::polymorphic_downcast<QueueRow*>(*it)) { QueueItemMoved(queue_row, NumRows()); } break; } + case 3: { // delete item + // emit a signal so that the ProductionWnd can take necessary steps + DoubleClickedSignal(it); + break; + } default: break; |