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

Reply via email to