diff options
author | Stijn Buys <ingar@osirion.org> | 2013-11-05 19:07:50 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2013-11-05 19:07:50 +0000 |
commit | 85c5f8e91fc69c55c138b00fdc505005b2b3e932 (patch) | |
tree | 41a270893508e09e82879e9ec7ede84ddc799e39 /src/client/inventorywindow.cc | |
parent | 29c26acef59a342179fd21405867ff6fee58f58e (diff) |
Show both entity and info name on map target info and inventory ship info,
moved the modelview widgets to the top of the widget stack to make sure it gets rendered behind anything else.
Diffstat (limited to 'src/client/inventorywindow.cc')
-rw-r--r-- | src/client/inventorywindow.cc | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/src/client/inventorywindow.cc b/src/client/inventorywindow.cc index 4ab7f25..0a60259 100644 --- a/src/client/inventorywindow.cc +++ b/src/client/inventorywindow.cc @@ -23,6 +23,13 @@ InventoryWindow::InventoryWindow(ui::Widget *parent) : ui::Window(parent) inventorywindow_inforecord = 0; inventorywindow_amount = 0; + // modelview, add it first so it gets rendered before anything else + inventorywindow_modelview = new ui::ModelView(this); + inventorywindow_modelview->set_label("modelview"); + inventorywindow_modelview->set_background(false); + inventorywindow_modelview->set_border(false); + + // window title inventorywindow_titlelabel = new ui::Label(this); inventorywindow_titlelabel->set_label("title"); inventorywindow_titlelabel->set_background(false); @@ -33,12 +40,7 @@ InventoryWindow::InventoryWindow(ui::Widget *parent) : ui::Window(parent) // close button inventorywindow_closebutton = new ui::IconButton(inventorywindow_titlelabel, "bitmaps/icons/window_close"); - - inventorywindow_modelview = new ui::ModelView(this); - inventorywindow_modelview->set_label("modelview"); - inventorywindow_modelview->set_background(false); - inventorywindow_modelview->set_border(false); - + inventorywindow_modeltitlelabel = new ui::Label(inventorywindow_modelview); inventorywindow_modeltitlelabel->set_background(false); inventorywindow_modeltitlelabel->set_border(false); @@ -306,8 +308,12 @@ void InventoryWindow::draw() void InventoryWindow::show() { inventorywindow_listview->deselect(); - set_info(core::localcontrol() ? core::localcontrol()->info() : 0, 0); - inventorywindow_modeltitlelabel->set_text("Ship Info"); + inventorywindow_modelnamelabel->set_text(core::localplayer()->name()); + if (core::localcontrol() && core::localcontrol()->info()) { + set_info(core::localcontrol()->info(), 0); + } else { + set_info(0, 0); + } Window::show(); } @@ -316,7 +322,7 @@ void InventoryWindow::show_eject_dialog(const core::Info *info, const int amount if (!info || amount < 0) return; - inventorywindow_modeltitlelabel->set_text("Eject Cargo"); + inventorywindow_modelnamelabel->set_text("Eject cargo"); inventorywindow_infotext.clear(); inventorywindow_ejectconfirmbutton->show(); @@ -325,17 +331,17 @@ void InventoryWindow::show_eject_dialog(const core::Info *info, const int amount inventorywindow_ejectslider->set_range(1, amount); inventorywindow_ejectslider->set_value(amount); inventorywindow_ejectslider->show(); - show_eject_amount(amount); + show_eject_amount(info, amount); //std::string text("Select amount to eject"); //inventorywindow_infotext.push_back(text); } -void InventoryWindow::show_eject_amount(const int amount) +void InventoryWindow::show_eject_amount(const core::Info *info, const int amount) { std::ostringstream str; - str << "Eject Cargo"; + str << "Eject " << (info ? info->name() : "cargo"); if (amount > 0) { str << " ("; @@ -409,13 +415,13 @@ void InventoryWindow::set_info(const core::Info *info, const int amount) inventorywindow_ejectslider->hide(); if (!info) { - inventorywindow_modelview->clear(); - inventorywindow_modeltitlelabel->set_text(""); + inventorywindow_modelview->clear(); inventorywindow_modelnamelabel->set_text(""); + inventorywindow_modeltitlelabel->set_text(""); } else { core::game()->request_info(info->id()); inventorywindow_modelview->set_modelname(info->modelname()); - inventorywindow_modelnamelabel->set_text(info->name()); + inventorywindow_modeltitlelabel->set_text(info->name()); inventorywindow_modelview->set_colors(core::localplayer()->color(), core::localplayer()->color_second()); for (core::Info::Text::const_iterator it = inventorywindow_inforecord->text().begin(); it != inventorywindow_inforecord->text().end(); it++) { @@ -435,7 +441,7 @@ bool InventoryWindow::on_emit(Widget *sender, const Event event, void *data) if (sender == inventorywindow_shipbutton) { inventorywindow_listview->deselect(); set_info(core::localcontrol() ? core::localcontrol()->info() : 0, 0); - inventorywindow_modeltitlelabel->set_text("Ship Info"); + inventorywindow_modelnamelabel->set_text(core::localplayer()->name()); } else if (sender == inventorywindow_ejectbutton) { if (inventorywindow_listview->selected()) { show_eject_dialog(inventorywindow_listview->selected()->info(), inventorywindow_listview->selected()->item()->amount()); @@ -455,7 +461,7 @@ bool InventoryWindow::on_emit(Widget *sender, const Event event, void *data) } else if (event == ui::Widget::EventListViewChanged) { if (sender == inventorywindow_listview) { - inventorywindow_modeltitlelabel->set_text("Cargo Info"); + inventorywindow_modelnamelabel->set_text("Cargo Info"); show_item_info(inventorywindow_listview->selected()); } @@ -464,7 +470,7 @@ bool InventoryWindow::on_emit(Widget *sender, const Event event, void *data) } else if (event == ui::Widget::EventSliderChanged) { if (sender == inventorywindow_ejectslider) { - show_eject_amount(inventorywindow_ejectslider->value()); + show_eject_amount(inventorywindow_inforecord, inventorywindow_ejectslider->value()); } return true; } |