diff options
author | Stijn Buys <ingar@osirion.org> | 2011-08-04 21:09:45 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2011-08-04 21:09:45 +0000 |
commit | 85dccc86bb76ff9e81d92e311da4110d223c7e23 (patch) | |
tree | a8e31170858c54fe849515e0ab6f6873afa2cf60 /src/client/trademenu.cc | |
parent | c21cbc3f7b9ac6f9e04fb09fa04ee483dd71a82b (diff) |
Added provisionary close button to map, inventory and trade window,
always show the trade window buy button, disable it if approriate.
Diffstat (limited to 'src/client/trademenu.cc')
-rw-r--r-- | src/client/trademenu.cc | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/client/trademenu.cc b/src/client/trademenu.cc index d86a04a..c762867 100644 --- a/src/client/trademenu.cc +++ b/src/client/trademenu.cc @@ -59,6 +59,9 @@ TradeMenu::TradeMenu(ui::Widget *parent, const char * label) : ui::Window(parent menu_namelabel->set_alignment(ui::AlignCenter); menu_namelabel->show(); + // close button + menu_closebutton = new ui::IconButton(menu_namelabel, "bitmaps/icons/window_close"); + menu_inventorylistview = new InventoryListView(menu_tradewindow); menu_inventorylistview->set_label("inventorylistview"); //menu_inventorylistview->set_background(false); @@ -87,8 +90,6 @@ TradeMenu::TradeMenu(ui::Widget *parent, const char * label) : ui::Window(parent menu_tradertext->set_border(true); menu_tradertext->set_font(ui::root()->font_small()); - menu_closebutton = new ui::Button(menu_tradewindow, "Return", "view hide"); - menu_closebutton->hide(); menu_buybutton = new ui::Button(menu_tradewindow, "Buy"); menu_listitem = 0; @@ -144,7 +145,7 @@ void TradeMenu::set_item(ui::ListItem *item) menu_slider->hide(); menu_buybutton->set_command(""); - menu_buybutton->hide(); // FIXME enable/disable button + menu_buybutton->disable(); if (item != menu_listitem) { menu_slider->set_range(0, 2); @@ -175,6 +176,8 @@ void TradeMenu::set_item(ui::ListItem *item) if (item->parent() == menu_inventorylistview) { + menu_buybutton->set_text("Sell"); + // item in ship inventory selected (SELL) menu_traderlistview->deselect(); @@ -191,11 +194,7 @@ void TradeMenu::set_item(ui::ListItem *item) std::ostringstream commandstr; commandstr << "remote sell " << item->info()->type()->label() << " " << item->info()->label() << " " << amount; menu_buybutton->set_command(commandstr.str()); - - menu_buybutton->set_text("Sell"); - menu_buybutton->enable(); - menu_buybutton->show(); } if (amount < 1) { @@ -217,6 +216,8 @@ void TradeMenu::set_item(ui::ListItem *item) } else if (item->parent() == menu_traderlistview) { + menu_buybutton->set_text("Buy"); + // item in trader inventory selected (BUY) menu_inventorylistview->deselect(); @@ -239,10 +240,7 @@ void TradeMenu::set_item(ui::ListItem *item) commandstr << "remote buy " << item->info()->type()->label() << " " << item->info()->label() << " " << amount; menu_buybutton->set_command(commandstr.str()); - menu_buybutton->set_text("Buy"); - menu_buybutton->enable(); - menu_buybutton->show(); } if (amount < 1) { @@ -291,6 +289,10 @@ void TradeMenu::resize() menu_namelabel->set_size(menu_tradewindow->width() - fontmargin * 2.0f, menu_namelabel->font()->height()); menu_namelabel->set_location(fontmargin, fontmargin); + // resize close button + menu_closebutton->set_size(menu_namelabel->font()->height(), menu_namelabel->font()->height()); + menu_closebutton->set_location(menu_namelabel->width() - menu_closebutton->width(), 0); + // resize player inventory text menu_inventorytext->set_size( ui::UI::elementsize.width(), @@ -362,9 +364,6 @@ void TradeMenu::resize() fontmargin * 2.0f + ui::UI::elementsize.width(), menu_buybutton->bottom() + fontmargin ); - - //menu_closebutton->set_size(ui::UI::elementsize); - //menu_closebutton->set_location(menu_tradewindow->width() * 0.5f + smallmargin * 2.0f, menu_tradewindow->height() - smallmargin * 1.5f); } bool TradeMenu::on_emit(Widget *sender, const Event event, void *data) @@ -387,6 +386,11 @@ bool TradeMenu::on_emit(Widget *sender, const Event event, void *data) set_item(menu_inventorylistview->selected()); } return true; + } else if (event == ui::Widget::EventButtonClicked) { + if (sender == menu_closebutton) { + hide(); + } + return true; } return ui::Window::on_emit(sender, event, data); |