diff options
author | Stijn Buys <ingar@osirion.org> | 2013-11-08 17:53:54 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2013-11-08 17:53:54 +0000 |
commit | 995a12fca267302d267ea59cf1c7c631b9e1075f (patch) | |
tree | 41920a11a3963f0872eebb7b592259c8797c1bce /src/client/mapwindow.cc | |
parent | beefcbd30e5cb1b700c977090021cd4784989c1e (diff) |
Updated inventory, chat, map and reputation windows.
Diffstat (limited to 'src/client/mapwindow.cc')
-rw-r--r-- | src/client/mapwindow.cc | 155 |
1 files changed, 91 insertions, 64 deletions
diff --git a/src/client/mapwindow.cc b/src/client/mapwindow.cc index f12364d..6a5a6eb 100644 --- a/src/client/mapwindow.cc +++ b/src/client/mapwindow.cc @@ -27,68 +27,77 @@ MapWindow::MapWindow(ui::Widget *parent) : ui::Window(parent) set_background(true); set_font(ui::root()->font_small()); + // ---- right pane + mapwindow_pane_right = new ui::Widget(this); + mapwindow_pane_right->set_background(true); + mapwindow_pane_right->set_border(true); + // modelview, add it first so it gets rendered before anything else - mapwindow_modelview = new ui::ModelView(this); + mapwindow_modelview = new ui::ModelView(mapwindow_pane_right); 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"); - mapwindow_titlelabel->set_background(false); - mapwindow_titlelabel->set_border(false); - mapwindow_titlelabel->set_font(ui::root()->font_large()); - mapwindow_titlelabel->set_alignment(ui::AlignCenter); - mapwindow_titlelabel->set_text("STAR CHART"); + // target title + mapwindow_targetlabel = new ui::Label(mapwindow_pane_right); + mapwindow_targetlabel->set_label("targetlabel"); + mapwindow_targetlabel->set_background(false); + mapwindow_targetlabel->set_border(false); + mapwindow_targetlabel->set_alignment(ui::AlignCenter); - // close button - mapwindow_closebutton = new ui::IconButton(mapwindow_titlelabel, "bitmaps/icons/window_close"); + // info label (modelview child) + mapwindow_infolabel = new ui::Label(mapwindow_pane_right); + 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(mapwindow_pane_right, mapwindow_infotext); + mapwindow_scrollpane->set_background(false); + mapwindow_scrollpane->set_border(false); + mapwindow_scrollpane->set_alignment(ui::AlignTop); + + // ---- left pane + mapwindow_pane_left = new ui::Widget(this); + mapwindow_pane_left->set_background(true); + mapwindow_pane_left->set_border(true); // map widget - mapwindow_mapwidget = new MapWidget(this); + mapwindow_mapwidget = new MapWidget(mapwindow_pane_left); mapwindow_mapwidget->set_background(false); mapwindow_mapwidget->set_border(false); // galaxy map widget - mapwindow_galaxymapwidget = new GalaxyMapWidget(this); + mapwindow_galaxymapwidget = new GalaxyMapWidget(mapwindow_pane_left); mapwindow_galaxymapwidget->set_background(false); mapwindow_galaxymapwidget->set_border(false); mapwindow_galaxymapwidget->hide(); // map label - mapwindow_maplabel = new ui::Label(this); + mapwindow_maplabel = new ui::Label(mapwindow_pane_left); mapwindow_maplabel->set_label("maplabel"); mapwindow_maplabel->set_background(false); mapwindow_maplabel->set_border(false); mapwindow_maplabel->set_alignment(ui::AlignCenter); // map buttons - mapwindow_zonebutton = new ui::IconButton(this, "bitmaps/icons/button_map"); - mapwindow_galaxybutton = new ui::IconButton(this, "bitmaps/icons/button_galaxy"); - - - // 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); + mapwindow_zonebutton = new ui::IconButton(mapwindow_pane_left, "bitmaps/icons/button_map"); + mapwindow_galaxybutton = new ui::IconButton(mapwindow_pane_left, "bitmaps/icons/button_galaxy"); - + // ---- window title + mapwindow_titlelabel = new ui::Label(this); + mapwindow_titlelabel->set_label("title"); + mapwindow_titlelabel->set_background(false); + mapwindow_titlelabel->set_border(false); + mapwindow_titlelabel->set_font(ui::root()->font_large()); + mapwindow_titlelabel->set_alignment(ui::AlignCenter); + mapwindow_titlelabel->set_text("STAR CHART"); - // 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); + // close button + mapwindow_closebutton = new ui::IconButton(mapwindow_titlelabel, "bitmaps/icons/window_close"); - // target text - mapwindow_scrollpane = new ui::ScrollPane(this, mapwindow_infotext); - mapwindow_scrollpane->set_background(false); - mapwindow_scrollpane->set_border(false); - mapwindow_scrollpane->set_alignment(ui::AlignTop); + hide(); } @@ -149,43 +158,61 @@ void MapWindow::resize() 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 label - mapwindow_maplabel->set_size((width() - padding * 3.0f) * 0.5f, font()->height() ); - mapwindow_maplabel->set_location(padding, mapwindow_titlelabel->bottom() + padding); + // resize left pane + mapwindow_pane_left->set_size((width() - padding * 3.0f) * 0.5f, height() - mapwindow_titlelabel->bottom() - 2.0f * padding); + mapwindow_pane_left->set_location(padding, mapwindow_titlelabel->bottom() + padding); - // resize zone map widget - mapwindow_mapwidget->set_size(mapwindow_maplabel->width(), mapwindow_zonebutton->top() - mapwindow_maplabel->bottom() - 2.0f * padding); - mapwindow_mapwidget->set_location(mapwindow_maplabel->left(), mapwindow_maplabel->bottom() + padding); + { + const ui::Widget *pane = mapwindow_pane_left; + const float margin_horizontal = pane->font()->width(); + const float margin_vertical = pane->font()->height() * 0.5f; + + // resize map label + mapwindow_maplabel->set_size(pane->width() - 2.0f * margin_horizontal, mapwindow_maplabel->font()->height()); + mapwindow_maplabel->set_location(margin_horizontal, margin_vertical); + + // resize zone map widget + mapwindow_mapwidget->set_size(pane->width() - 2.0f * margin_horizontal, pane->height() - mapwindow_maplabel->bottom() - margin_vertical * 4.0f - icon_size); + mapwindow_mapwidget->set_location(margin_horizontal, mapwindow_maplabel->bottom() + margin_vertical); - // set galaxy map size equal to zone map size - mapwindow_galaxymapwidget->set_geometry(mapwindow_mapwidget->location(), mapwindow_mapwidget->size()); + // set galaxy map size equal to zone map size + mapwindow_galaxymapwidget->set_geometry(mapwindow_mapwidget->location(), mapwindow_mapwidget->size()); - // resize map buttons - float l = (mapwindow_mapwidget->width() - math::min(mapwindow_mapwidget->width(), mapwindow_mapwidget->height())) * 0.5f; + // resize map buttons + float l = (mapwindow_mapwidget->width() - math::min(mapwindow_mapwidget->width(), mapwindow_mapwidget->height())) * 0.5f; - mapwindow_zonebutton->set_size(icon_size, icon_size); - mapwindow_zonebutton->set_location(mapwindow_maplabel->left() + l, height() - padding - mapwindow_zonebutton->height()); + mapwindow_zonebutton->set_size(icon_size, icon_size); + mapwindow_zonebutton->set_location(mapwindow_maplabel->left() + l, mapwindow_mapwidget->bottom() + margin_vertical); - mapwindow_galaxybutton->set_size(icon_size, icon_size); - mapwindow_galaxybutton->set_location(mapwindow_maplabel->right() - l - mapwindow_galaxybutton->width(), - height() - padding - mapwindow_galaxybutton->height()); + mapwindow_galaxybutton->set_size(icon_size, icon_size); + mapwindow_galaxybutton->set_location(mapwindow_maplabel->right() - l - icon_size, mapwindow_mapwidget->bottom() + margin_vertical); + } + // resize right pane + mapwindow_pane_right->set_size(mapwindow_pane_left->size()); + mapwindow_pane_right->set_location(mapwindow_pane_left->right() + padding, mapwindow_titlelabel->bottom() + padding); + + { + const ui::Widget *pane = mapwindow_pane_right; + const float margin_horizontal = pane->font()->width(); + const float margin_vertical = pane->font()->height() * 0.5f; - // resize target label - mapwindow_targetlabel->set_size(width() - mapwindow_mapwidget->right() - padding * 2.0f, font()->height()); - mapwindow_targetlabel->set_location(mapwindow_maplabel->right() + padding, mapwindow_maplabel->top()); + // resize target label + mapwindow_targetlabel->set_size(pane->width() - margin_horizontal * 2.0f, mapwindow_targetlabel->font()->height()); + mapwindow_targetlabel->set_location(margin_horizontal, margin_vertical); + + // resize info label + mapwindow_infolabel->set_size(pane->width() - margin_horizontal * 2.0f, mapwindow_infolabel->font()->height()); + mapwindow_infolabel->set_location(margin_horizontal, pane->height() * 0.5f); - // 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 target modelview + mapwindow_modelview->set_size(mapwindow_targetlabel->width(), mapwindow_infolabel->top() - mapwindow_targetlabel->bottom() - margin_vertical * 2.0f); + mapwindow_modelview->set_location(margin_horizontal, mapwindow_targetlabel->bottom() + margin_vertical); - // 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()); - mapwindow_scrollpane->set_location(mapwindow_modelview->left(), mapwindow_modelview->bottom() + padding); + // resize target info text + mapwindow_scrollpane->set_size(mapwindow_infolabel->width(), pane->height() - mapwindow_infolabel->bottom() - margin_vertical * 2.0f); + mapwindow_scrollpane->set_location(mapwindow_modelview->left(), mapwindow_infolabel->bottom() + margin_vertical); + } } void MapWindow::draw() |