diff options
-rw-r--r-- | src/client/inventorywindow.cc | 42 | ||||
-rw-r--r-- | src/client/inventorywindow.h | 2 | ||||
-rw-r--r-- | src/client/mapwindow.cc | 38 | ||||
-rw-r--r-- | src/client/mapwindow.h | 1 |
4 files changed, 54 insertions, 29 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; } diff --git a/src/client/inventorywindow.h b/src/client/inventorywindow.h index 95c0a51..be2db40 100644 --- a/src/client/inventorywindow.h +++ b/src/client/inventorywindow.h @@ -53,7 +53,7 @@ private: void show_eject_dialog(const core::Info *info, const int amount); - void show_eject_amount(const int amount); + void show_eject_amount(const core::Info *info, const int amount); void act_eject(); diff --git a/src/client/mapwindow.cc b/src/client/mapwindow.cc index 19cf687..925f938 100644 --- a/src/client/mapwindow.cc +++ b/src/client/mapwindow.cc @@ -27,6 +27,12 @@ MapWindow::MapWindow(ui::Widget *parent) : ui::Window(parent) set_background(true); set_font(ui::root()->font_small()); + // modelview, add it first so it gets rendered before anything else + mapwindow_modelview = new ui::ModelView(this); + mapwindow_modelview->set_label("modelview"); + mapwindow_modelview->set_background(false); + mapwindow_modelview->set_border(false); + // window title mapwindow_titlelabel = new ui::Label(this); mapwindow_titlelabel->set_label("title"); @@ -60,20 +66,24 @@ MapWindow::MapWindow(ui::Widget *parent) : ui::Window(parent) // map buttons mapwindow_zonebutton = new ui::IconButton(this, "bitmaps/icons/button_map"); mapwindow_galaxybutton = new ui::IconButton(this, "bitmaps/icons/button_galaxy"); + - // modelview - mapwindow_modelview = new ui::ModelView(this); - mapwindow_modelview->set_label("modelview"); - mapwindow_modelview->set_background(false); - mapwindow_modelview->set_border(false); - - // target title (modelview child) + // target title mapwindow_targetlabel = new ui::Label(this); mapwindow_targetlabel->set_label("targetlabel"); mapwindow_targetlabel->set_background(false); mapwindow_targetlabel->set_border(false); mapwindow_targetlabel->set_alignment(ui::AlignCenter); + + + // info label (modelview child) + mapwindow_infolabel = new ui::Label(mapwindow_modelview); + mapwindow_infolabel ->set_label("infolabel"); + mapwindow_infolabel->set_background(false); + mapwindow_infolabel->set_border(false); + mapwindow_infolabel->set_alignment(ui::AlignCenter); + // target text mapwindow_scrollpane = new ui::ScrollPane(this, mapwindow_infotext); mapwindow_scrollpane->set_background(false); @@ -168,6 +178,10 @@ void MapWindow::resize() // resize target modelview mapwindow_modelview->set_size(mapwindow_targetlabel->width(), (height() - mapwindow_targetlabel->bottom() - padding * 3.0f) * 0.5f); mapwindow_modelview->set_location(mapwindow_mapwidget->right() + padding, mapwindow_targetlabel->bottom() + padding); + + // resize info label (modelview child) + mapwindow_infolabel->set_size(mapwindow_modelview->width(), mapwindow_infolabel->font()->height()); + mapwindow_infolabel->set_location(0.0f, mapwindow_modelview->height() - mapwindow_infolabel->height()); // resize target infopane text mapwindow_scrollpane->set_size(mapwindow_modelview->size()); @@ -201,16 +215,18 @@ void MapWindow::set_info(const core::Info *info) mapwindow_inforecord = 0; mapwindow_infotimestamp = 0; mapwindow_infotext.clear(); + mapwindow_infolabel->clear(); if (info) { mapwindow_inforecord = core::game()->request_info(info->id()); } if (mapwindow_inforecord) { + mapwindow_infolabel->set_text(mapwindow_inforecord->name()); for (core::Info::Text::const_iterator it = mapwindow_inforecord->text().begin(); it != mapwindow_inforecord->text().end(); it++) { mapwindow_infotext.push_back((*it)); } - mapwindow_infotimestamp = mapwindow_inforecord->timestamp(); + mapwindow_infotimestamp = mapwindow_inforecord->timestamp(); } else { mapwindow_infotext.push_back("Information is not available"); mapwindow_infotimestamp = 0; @@ -260,9 +276,11 @@ void MapWindow::show_entity_info(const core::Entity *entity) } else { set_info(0); - mapwindow_infotext.clear(); - mapwindow_targetlabel->clear(); + mapwindow_infotext.clear(); mapwindow_modelview->clear(); + + mapwindow_targetlabel->clear(); + mapwindow_infolabel->clear(); } } diff --git a/src/client/mapwindow.h b/src/client/mapwindow.h index d667ca4..b746d2b 100644 --- a/src/client/mapwindow.h +++ b/src/client/mapwindow.h @@ -68,6 +68,7 @@ private: ui::ModelView *mapwindow_modelview; ui::Label *mapwindow_targetlabel; + ui::Label *mapwindow_infolabel; ui::ScrollPane *mapwindow_scrollpane; ui::IconButton *mapwindow_closebutton; ui::IconButton *mapwindow_zonebutton; |