[the-board] [ui] Factor out MainToolbar from mainWindow.js



commit 2f1dede8abff3cc273da04662101ab99c2270539
Author: Lucas Rocha <lucasr gnome org>
Date:   Mon Feb 7 23:18:10 2011 +0000

    [ui] Factor out MainToolbar from mainWindow.js

 src/Makefile-js.am       |    1 +
 src/js/ui/mainToolbar.js |   67 ++++++++++++++++++++++++++++++++++++++++++++++
 src/js/ui/mainWindow.js  |   36 +++---------------------
 3 files changed, 73 insertions(+), 31 deletions(-)
---
diff --git a/src/Makefile-js.am b/src/Makefile-js.am
index 826288d..9854f30 100644
--- a/src/Makefile-js.am
+++ b/src/Makefile-js.am
@@ -10,6 +10,7 @@ dist_jsui_DATA = \
     js/ui/application.js \
     js/ui/background.js \
     js/ui/main.js \
+    js/ui/mainToolbar.js \
     js/ui/mainWindow.js \
     js/ui/page.js \
     js/ui/pageButton.js \
diff --git a/src/js/ui/mainToolbar.js b/src/js/ui/mainToolbar.js
new file mode 100644
index 0000000..35e540b
--- /dev/null
+++ b/src/js/ui/mainToolbar.js
@@ -0,0 +1,67 @@
+// standard imports
+const Lang = imports.lang;
+
+// ui imports
+const Toolbar = imports.ui.toolbar;
+const ToolBoxBackgrounds = imports.ui.toolBoxBackgrounds;
+const ToolBoxPages = imports.ui.toolBoxPages;
+const ToolBoxThings = imports.ui.toolBoxThings;
+
+function MainToolbar(args) {
+    this._init(args);
+}
+
+MainToolbar.prototype = {
+    __proto__: Toolbar.Toolbar.prototype,
+
+    _init : function(args) {
+        if ('context' in args) {
+            this._context = args.context;
+        } else {
+            throw new Error("MainToolbar context is required");
+        }
+
+        Toolbar.Toolbar.prototype._init.apply(this, [args]);
+
+        this._createToolBoxPages();
+        this._createToolBoxThings();
+        this._createToolBoxBackgrounds();
+    },
+
+    _createToolBoxPages : function() {
+        this._toolBoxPages =
+            new ToolBoxPages.ToolBoxPages({ context: this._context });
+
+        this.addToolBox(this._toolBoxPages);
+    },
+
+    _createToolBoxThings : function() {
+        let mainWindow = this._context.mainWindow;
+
+        this._toolBoxThings =
+            new ToolBoxThings.ToolBoxThings({ mainWindow: mainWindow });
+
+        this.addToolBox(this._toolBoxThings);
+    },
+
+    _createToolBoxBackgrounds : function() {
+        let mainWindow = this._context.mainWindow;
+
+        this._toolBoxBackgrounds =
+            new ToolBoxBackgrounds.ToolBoxBackgrounds({ mainWindow: mainWindow });
+
+        this.addToolBox(this._toolBoxBackgrounds);
+    },
+
+    // FIXME: remove once MainWindow is not using
+    // this getter anymore
+    get toolBoxBackgrounds() {
+        return this._toolBoxBackgrounds;
+    },
+
+    // FIXME: remove once MainWindow is not using
+    // this getter anymore
+    get toolBoxPages() {
+        return this._toolBoxPages;
+    }
+}
diff --git a/src/js/ui/mainWindow.js b/src/js/ui/mainWindow.js
index b944463..c24c0ca 100644
--- a/src/js/ui/mainWindow.js
+++ b/src/js/ui/mainWindow.js
@@ -14,14 +14,12 @@ const GtkClutter = imports.gi.GtkClutter;
 const Mx = imports.gi.Mx;
 
 // ui imports
+const MainToolbar = imports.ui.mainToolbar;
 const Page = imports.ui.page;
 const PhotoThing = imports.ui.things.photo;
 const Thing = imports.ui.thing;
 const ToolBox = imports.ui.toolBox;
-const ToolBoxBackgrounds = imports.ui.toolBoxBackgrounds;
 const Toolbar = imports.ui.toolbar;
-const ToolBoxPages = imports.ui.toolBoxPages;
-const ToolBoxThings = imports.ui.toolBoxThings;
 
 // model imports
 const PageManager = imports.model.pageManager;
@@ -209,14 +207,11 @@ MainWindow.prototype = {
     },
 
     _createMainToolbar : function() {
-        this._mainToolbar = new Toolbar.Toolbar();
+        this._mainToolbar =
+            new MainToolbar.MainToolbar({ context: this._context });
 
         this._mainToolbar.actor.depth = _LAYER_TOOLBAR;
 
-        this._createToolBoxPages();
-        this._createToolBoxThings();
-        this._createToolBoxBackgrounds();
-
         this._contentBox.append(this._mainToolbar.actor,
                                 Tb.BoxPackFlags.FIXED);
 
@@ -269,13 +264,6 @@ MainWindow.prototype = {
                                             Tb.BoxAlignment.START);
     },
 
-    _createToolBoxPages : function() {
-        this._toolBoxPages =
-            new ToolBoxPages.ToolBoxPages({ context: this._context });
-
-        this._mainToolbar.addToolBox(this._toolBoxPages);
-    },
-
     _createToolBoxAlign : function() {
         this._toolBoxAlign =
             new ToolBox.ToolBox({ title: Gettext.gettext("Align") });
@@ -329,20 +317,6 @@ MainWindow.prototype = {
         this._selectionToolbar.addToolBox(this._toolBoxRemove);
     },
 
-    _createToolBoxThings : function() {
-        this._toolBoxThings =
-            new ToolBoxThings.ToolBoxThings({ mainWindow: this });
-
-        this._mainToolbar.addToolBox(this._toolBoxThings);
-    },
-
-    _createToolBoxBackgrounds : function() {
-        this._toolBoxBackgrounds =
-            new ToolBoxBackgrounds.ToolBoxBackgrounds({ mainWindow: this });
-
-        this._mainToolbar.addToolBox(this._toolBoxBackgrounds);
-    },
-
     _createContext : function() {
         this._context = { application: this._application,
                           gtkWindow: this._gtkWindow,
@@ -879,7 +853,7 @@ MainWindow.prototype = {
             // once model of current page is loaded, it's safe to
             // update tool box with current state
             let backgroundId = this._currentPage.model.background;
-            this._toolBoxBackgrounds.setCurrentBackground(backgroundId);
+            this._mainToolbar.toolBoxBackgrounds.setCurrentBackground(backgroundId);
         }
     },
 
@@ -912,7 +886,7 @@ MainWindow.prototype = {
         this._currentPage = new Page.Page({ context: this._context,
                                             model: pageModel });
 
-        this._toolBoxPages.setCurrentPage(pageModel);
+        this._mainToolbar.toolBoxPages.setCurrentPage(pageModel);
 
         this._currentPage.actor.depth = _LAYER_PAGE;
 



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