diff options
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; } |