[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3948 - in trunk/pingus: . src/components
From: |
jsalmon3 |
Subject: |
[Pingus-CVS] r3948 - in trunk/pingus: . src/components |
Date: |
Mon, 15 Dec 2008 03:40:07 +0100 |
Author: jsalmon3
Date: 2008-12-15 03:40:00 +0100 (Mon, 15 Dec 2008)
New Revision: 3948
Modified:
trunk/pingus/TODO
trunk/pingus/src/components/button_panel.cpp
trunk/pingus/src/components/button_panel.hpp
Log:
Added tooltips for actions
Modified: trunk/pingus/TODO
===================================================================
--- trunk/pingus/TODO 2008-12-15 01:42:04 UTC (rev 3947)
+++ trunk/pingus/TODO 2008-12-15 02:40:00 UTC (rev 3948)
@@ -64,8 +64,6 @@
* clicking while the screen changes is weird
-* tooltip missing for actions (got removed in refactoring)
-
* fullscreen must use a different size then the current window size (round to
nearest 'normal' resolution or so)
* input recording in the ScreenManager can't work when the underlying
Modified: trunk/pingus/src/components/button_panel.cpp
===================================================================
--- trunk/pingus/src/components/button_panel.cpp 2008-12-15 01:42:04 UTC
(rev 3947)
+++ trunk/pingus/src/components/button_panel.cpp 2008-12-15 02:40:00 UTC
(rev 3948)
@@ -32,7 +32,9 @@
session(s),
background("core/buttons/buttonbackground"),
highlight("core/buttons/buttonbackgroundhl"),
- current_button(0)
+ current_button(0),
+ show_tip(false),
+ tip_button(0)
{
ActionHolder* aholder = session->get_server()->get_action_holder();
@@ -75,6 +77,11 @@
std::string str =
StringUtil::to_string(aholder->get_available(buttons[i].name));
gc.print_center(Fonts::pingus_small, Vector2i(rect.left + 46, rect.top +
5 + 38*i), str);
+
+ if (show_tip && tip_button == i)
+ {
+ gc.print_left(Fonts::pingus_small, Vector2i(rect.left + 65, rect.top
+ 5 + 38*i), action_to_screenname(buttons[i].name));
+ }
}
}
@@ -132,6 +139,25 @@
}
void
+ButtonPanel::on_pointer_enter()
+{
+ show_tip = true;
+}
+
+void
+ButtonPanel::on_pointer_leave()
+{
+ show_tip = false;
+}
+
+void
+ButtonPanel::on_pointer_move(int x, int y)
+{
+ int action = (y - rect.top) / 38;
+ tip_button = Math::clamp(0, action, int(buttons.size()-1));
+}
+
+void
ButtonPanel::set_pos(const Vector2i& pos)
{
set_rect(Rect(Vector2i(pos.x, pos.y - (buttons.size() * 38)/2),
Modified: trunk/pingus/src/components/button_panel.hpp
===================================================================
--- trunk/pingus/src/components/button_panel.hpp 2008-12-15 01:42:04 UTC
(rev 3947)
+++ trunk/pingus/src/components/button_panel.hpp 2008-12-15 02:40:00 UTC
(rev 3948)
@@ -39,6 +39,9 @@
std::vector<ActionButton> buttons;
std::vector<ActionButton>::size_type current_button;
+ bool show_tip;
+ std::vector<ActionButton>::size_type tip_button;
+
public:
ButtonPanel(GameSession* s, const Vector2i& pos);
virtual ~ButtonPanel();
@@ -57,6 +60,10 @@
void on_primary_button_press(int x, int y);
void on_primary_button_release(int x, int y);
+ void on_pointer_enter();
+ void on_pointer_leave();
+ void on_pointer_move(int x, int y);
+
void set_pos(const Vector2i& pos);
private:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3948 - in trunk/pingus: . src/components,
jsalmon3 <=