diff options
Diffstat (limited to 'src/client/mapwindow.cc')
-rw-r--r-- | src/client/mapwindow.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/client/mapwindow.cc b/src/client/mapwindow.cc index d6e45bc..9744062 100644 --- a/src/client/mapwindow.cc +++ b/src/client/mapwindow.cc @@ -34,6 +34,9 @@ MapWindow::MapWindow(ui::Widget *parent) : ui::Window(parent) mapwindow_titlelabel->set_alignment(ui::AlignCenter); mapwindow_titlelabel->set_text("STAR CHART"); + // close button + mapwindow_closebutton = new ui::IconButton(mapwindow_titlelabel, "bitmaps/icons/window_close"); + // map widget mapwindow_mapwidget = new MapWidget(this); mapwindow_mapwidget->set_background(false); @@ -104,6 +107,10 @@ void MapWindow::resize() // resize title label mapwindow_titlelabel->set_size(width() - padding * 2.0f, mapwindow_titlelabel->font()->height()); mapwindow_titlelabel->set_location(padding, padding); + + // resize close button + mapwindow_closebutton->set_size(mapwindow_titlelabel->font()->height(), mapwindow_titlelabel->font()->height()); + mapwindow_closebutton->set_location(mapwindow_titlelabel->width() - mapwindow_closebutton->width(), 0); // resize map widget mapwindow_mapwidget->set_size((width() - padding * 3.0f) * 0.5f, height() - mapwindow_titlelabel->bottom() - padding * 2.0f ); @@ -318,7 +325,7 @@ void MapWindow::set_target(const core::Entity *entity) { mapwindow_targetlabel->set_text(mapwindow_target->name()); if (mapwindow_target->info()) - mapwindow_inforecord = core::game()->request_info(mapwindow_target->info()->id()); + mapwindow_inforecord = core::game()->request_info(mapwindow_target->info()->id()); else mapwindow_inforecord = 0; @@ -371,4 +378,16 @@ bool MapWindow::on_keypress(const int key, const unsigned int modifier) return false; } +bool MapWindow::on_emit(Widget *sender, const Event event, void *data) +{ + if (sender == mapwindow_closebutton) { + if (event == ui::Widget::EventButtonClicked) { + hide(); + return true; + } + } + + return Window::on_emit(sender, event, data); +} + } |