Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/inventorywindow.cc')
-rw-r--r--src/client/inventorywindow.cc42
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;
}