Author: mordante
Date: Fri Jul 25 12:13:57 2008
New Revision: 28184
URL: http://svn.gna.org/viewcvs/wesnoth?rev=28184&view=rev
Log:
Add a state change callback to the selectable class and rename the left click
callback to the state change in the subclasses.
Modified:
trunk/src/gui/widgets/listbox.cpp
trunk/src/gui/widgets/menubar.cpp
trunk/src/gui/widgets/toggle_button.cpp
trunk/src/gui/widgets/toggle_button.hpp
trunk/src/gui/widgets/toggle_panel.cpp
trunk/src/gui/widgets/toggle_panel.hpp
trunk/src/gui/widgets/widget.hpp
Modified: trunk/src/gui/widgets/listbox.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/listbox.cpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/listbox.cpp (original)
+++ trunk/src/gui/widgets/listbox.cpp Fri Jul 25 12:13:57 2008
@@ -650,7 +650,7 @@
ttoggle_panel* panel =
dynamic_cast<ttoggle_panel*>(widget);
if(btn) {
-
btn->set_callback_mouse_left_click(callback_select_list_item);
+
btn->set_callback_state_change(callback_select_list_item);
std::map<std::string /* widget id */, std::map<
std::string /* member id */, t_string
/* member value */> >
::const_iterator itor =
data.find(btn->id());
@@ -662,7 +662,7 @@
btn->set_members(itor->second);
}
} else if(panel) {
-
panel->set_callback_mouse_left_click(callback_select_list_item);
+
panel->set_callback_state_change(callback_select_list_item);
panel->set_members(data);
} else if(child_grid) {
init_in_grid(child_grid, data);
Modified: trunk/src/gui/widgets/menubar.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/menubar.cpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/menubar.cpp (original)
+++ trunk/src/gui/widgets/menubar.cpp Fri Jul 25 12:13:57 2008
@@ -169,13 +169,10 @@
twidget* widget = grid().widget(row, col);
assert(widget);
- ttoggle_button* btn =
dynamic_cast<ttoggle_button*>(widget);
- ttoggle_panel* panel =
dynamic_cast<ttoggle_panel*>(widget);
+ tselectable_* btn = dynamic_cast<tselectable_*>(widget);
if(btn) {
-
btn->set_callback_mouse_left_click(callback_select_item);
- } else if(panel) {
-
panel->set_callback_mouse_left_click(callback_select_item);
+
btn->set_callback_state_change(callback_select_item);
} else {
std::cerr << "Widget type " <<
typeid(*widget).name() << ".\n";
assert(false);
Modified: trunk/src/gui/widgets/toggle_button.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/toggle_button.cpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/toggle_button.cpp (original)
+++ trunk/src/gui/widgets/toggle_button.cpp Fri Jul 25 12:13:57 2008
@@ -86,8 +86,8 @@
set_state(ENABLED_SELECTED);
}
- if(callback_mouse_left_click_) {
- callback_mouse_left_click_(this);
+ if(callback_state_change_) {
+ callback_state_change_(this);
}
}
Modified: trunk/src/gui/widgets/toggle_button.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/toggle_button.hpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/toggle_button.hpp (original)
+++ trunk/src/gui/widgets/toggle_button.hpp Fri Jul 25 12:13:57 2008
@@ -32,7 +32,7 @@
tcontrol(COUNT),
state_(ENABLED),
retval_(0),
- callback_mouse_left_click_(0),
+ callback_state_change_(0),
icon_name_()
{
}
@@ -82,8 +82,9 @@
void set_retval(const int retval);
- void set_callback_mouse_left_click(void (*callback) (twidget*))
- { callback_mouse_left_click_ = callback; }
+ /** Inherited from tselectable_. */
+ void set_callback_state_change(void (*callback) (twidget*))
+ { callback_state_change_ = callback; }
void set_icon_name(const std::string& icon_name)
{ icon_name_ = icon_name; set_canvas_text(); }
@@ -113,7 +114,7 @@
*/
tstate state_;
- /**
+ /**
* The return value of the button.
*
* If this value is not 0 and the button is double clicked it sets the
@@ -121,8 +122,8 @@
*/
int retval_;
- /** This callback is used when the control gets a left click. */
- void (*callback_mouse_left_click_) (twidget*);
+ /** See tselectable_::set_callback_state_change. */
+ void (*callback_state_change_) (twidget*);
/**
* The toggle button can contain an icon next to the text.
Modified: trunk/src/gui/widgets/toggle_panel.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/toggle_panel.cpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/toggle_panel.cpp (original)
+++ trunk/src/gui/widgets/toggle_panel.cpp Fri Jul 25 12:13:57 2008
@@ -85,8 +85,8 @@
set_state(ENABLED_SELECTED);
}
- if(callback_mouse_left_click_) {
- callback_mouse_left_click_(this);
+ if(callback_state_change_) {
+ callback_state_change_(this);
}
}
Modified: trunk/src/gui/widgets/toggle_panel.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/toggle_panel.hpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/toggle_panel.hpp (original)
+++ trunk/src/gui/widgets/toggle_panel.hpp Fri Jul 25 12:13:57 2008
@@ -33,7 +33,7 @@
tpanel(COUNT),
state_(ENABLED),
retval_(0),
- callback_mouse_left_click_(0)
+ callback_state_change_(0)
{
}
@@ -131,8 +131,9 @@
void set_retval(const int retval);
- void set_callback_mouse_left_click(void (*callback) (twidget*))
- { callback_mouse_left_click_ = callback; }
+ /** Inherited from tselectable_. */
+ void set_callback_state_change(void (*callback) (twidget*))
+ { callback_state_change_ = callback; }
private:
@@ -167,8 +168,8 @@
*/
int retval_;
- /** This callback is used when the control gets a left click. */
- void (*callback_mouse_left_click_) (twidget*);
+ /** See tselectable_::set_callback_state_change. */
+ void (*callback_state_change_) (twidget*);
/** Inherited from tpanel. */
const std::string& get_control_type() const
Modified: trunk/src/gui/widgets/widget.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/widgets/widget.hpp?rev=28184&r1=28183&r2=28184&view=diff
==============================================================================
--- trunk/src/gui/widgets/widget.hpp (original)
+++ trunk/src/gui/widgets/widget.hpp Fri Jul 25 12:13:57 2008
@@ -549,6 +549,12 @@
/** Select the control. */
virtual void set_value(const bool) = 0;
+
+ /**
+ * When the user does something to change the widget state this event is
+ * fired. Most of the time it will be a left click on the widget.
+ */
+ virtual void set_callback_state_change(void (*callback) (twidget*)) = 0;
};
/**
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits