diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index f26012b39e2..d14f9f6e3d1 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -43,6 +43,18 @@ tbutton::tbutton() &tbutton::signal_handler_left_button_click, this, _2, _3)); } +void tbutton::connect_signal_mouse_left_click( + const event::tsignal_function& signal) +{ + connect_signal( signal); +} + +void tbutton::disconnect_signal_mouse_left_click( + const event::tsignal_function& signal) +{ + disconnect_signal(signal); +} + #ifdef GUI2_OLD_EVENT_HANDLING void tbutton::mouse_enter(tevent_handler&) { diff --git a/src/gui/widgets/button.hpp b/src/gui/widgets/button.hpp index 2922ac3a449..a4c8a925099 100644 --- a/src/gui/widgets/button.hpp +++ b/src/gui/widgets/button.hpp @@ -27,9 +27,31 @@ class tbutton : public tcontrol public: tbutton(); + /** @deprecated use (dis)connect_signal_mouse_left_click instead. */ void set_callback_mouse_left_click(void (*callback) (twidget*)) { callback_mouse_left_click_ = callback; } + /** + * Connects a signal handler for a left mouse button click. + * + * @todo Implement everywhere. + * + * The signal should be used for all common cases (which now have + * set_callback_xxx). The those set functions can be removed. + * + * @param signal The signal to connect. + */ + void connect_signal_mouse_left_click(const event::tsignal_function& signal); + + /** + * Disconnects a signal handler for a left mouse button click. + * + * @param signal The signal to disconnect (should be the same + * as send to the connect call. + */ + void disconnect_signal_mouse_left_click( + const event::tsignal_function& signal); + /***** ***** ***** ***** Inherited ***** ***** ***** *****/ #ifdef GUI2_OLD_EVENT_HANDLING