[the-board] [ui] Add support for button actions in ToolBox



commit 31205be4ba98b0f973614e2b27fa4951d3ede4db
Author: Lucas Rocha <lucasr gnome org>
Date:   Sun Nov 7 19:52:07 2010 +0000

    [ui] Add support for button actions in ToolBox

 src/js/ui/toolBox.js |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)
---
diff --git a/src/js/ui/toolBox.js b/src/js/ui/toolBox.js
index 225b494..202a344 100644
--- a/src/js/ui/toolBox.js
+++ b/src/js/ui/toolBox.js
@@ -104,8 +104,15 @@ ToolBox.prototype = {
     },
 
     _removeButton : function(button) {
-        button.disconnect(button._ToolBox_clickedId);
-        delete button._ToolBox_clickedId;
+        if (button._ToolBox_clickedId) {
+            button.disconnect(button._ToolBox_clickedId);
+            delete button._ToolBox_clickedId;
+        }
+
+        if (button._ToolBox_clickedForActionId) {
+            button.disconnect(button._ToolBox_clickedForActionId);
+            delete button._ToolBox_clickedForActionId;
+        }
 
         let indexToRemove = this._buttons.indexOf(button);
         this._buttons.splice(indexToRemove, 1);
@@ -113,14 +120,31 @@ ToolBox.prototype = {
         button.destroy();
     },
 
+    _onButtonActionClicked : function(button, actionName, actionArgs) {
+        this.emit('action', actionName, actionArgs);
+    },
+
     addButton : function(args) {
         let button =
             new Mx.Button({ label: args.label.toUpperCase(),
                             isToggle: this._isButtonGroup,
                             name: "tool-box-button" });
 
-        button._ToolBox_clickedId =
-            button.connect("clicked", args.onClicked);
+        if ('onClicked' in args) {
+            button._ToolBox_clickedId =
+                button.connect("clicked", args.onClicked);
+        }
+
+        if ('actionName' in args) {
+            args.actionArgs = args.actionArgs || {};
+
+            button._ToolBox_clickedForActionId =
+                button.connect("clicked",
+                               Lang.bind(this,
+                                         this._onButtonActionClicked,
+                                         args.actionName,
+                                         args.actionArgs));
+        }
 
         this._buttonBox.append(button,
                                Tb.BoxPackFlags.NONE);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]