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/worldview.cc')
-rw-r--r--src/client/worldview.cc27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/client/worldview.cc b/src/client/worldview.cc
index dc8370d..cb46a17 100644
--- a/src/client/worldview.cc
+++ b/src/client/worldview.cc
@@ -5,6 +5,7 @@
*/
#include "core/application.h"
+#include "client/targeticonbutton.h"
#include "client/worldview.h"
#include "client/video.h"
#include "ui/ui.h"
@@ -28,6 +29,10 @@ WorldView::WorldView(ui::Widget *parent) : ui::Widget(parent)
// icon buttons
view_menubutton = new ui::IconButton(this, "icons/button_menu", "ui_menu");
+
+ view_launchbutton = new ui::IconButton(this, "icons/button_launch", "launch");
+ view_dockbutton = new TargetIconButton(this, "icons/button_dock", "dock", core::Entity::Dockable);
+
view_chatbutton = new ui::IconButton(this, "icons/button_chat", "ui_chat");
view_mapbutton = new ui::IconButton(this, "icons/button_map", "ui_map");
}
@@ -63,13 +68,16 @@ void WorldView::resize()
// icons
const float icon_margin = 4.0f;
const float icon_size = 48.0f;
- const float icon_count = 4;
+ const float icon_count = 6;
const float l = (width() -((icon_count +1) * icon_margin) - (icon_count * icon_size)) * 0.5f;
view_menubutton->set_geometry(l, icon_margin, icon_size, icon_size);
// spacer
- view_chatbutton->set_geometry( l + 2.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
- view_mapbutton->set_geometry( l + 3.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
+ view_dockbutton->set_geometry( l + 2.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
+ view_launchbutton->set_geometry( l + 2.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
+ // spacer
+ view_chatbutton->set_geometry( l + 4.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
+ view_mapbutton->set_geometry( l + 5.0f * (icon_margin + icon_size), icon_margin, icon_size, icon_size);
}
void WorldView::clear()
@@ -91,13 +99,24 @@ void WorldView::draw()
view_statsinfo->set_visible(draw_stats->value() ? true : false);
view_keyinfo->set_visible(draw_keypress->value() ? true : false);
- if (ui::root()->active() || !core::game()->interactive() || !core::localcontrol()) {
+ if (ui::root()->active() || !core::game()->interactive() || !core::localcontrol() || (core::localplayer()->view() && !core::localplayer()->view()->menus().size()) ) {
view_playerview->hide();
view_menubutton->hide();
+ view_dockbutton->hide();
+ view_launchbutton->hide();
view_chatbutton->hide();
view_mapbutton->hide();
} else {
view_playerview->show();
+
+ if (core::localcontrol()->state() == core::Entity::Docked) {
+ view_launchbutton->show();
+ view_dockbutton->hide();
+ } else {
+ view_launchbutton->hide();
+ view_dockbutton->show();
+ }
+
view_menubutton->show();
view_chatbutton->show();
view_mapbutton->show();