seed r766 - trunk/examples/browser



Author: hortont
Date: Mon Jan 19 08:38:46 2009
New Revision: 766
URL: http://svn.gnome.org/viewvc/seed?rev=766&view=rev

Log:
Reimplement open-in-new-window. Unfortuately installed properties don't work as construction properties (they aren't available in init) (Robb?), so this is a (hopefully) temporary hack to workaround that.



Modified:
   trunk/examples/browser/BrowserTab.js
   trunk/examples/browser/BrowserView.js
   trunk/examples/browser/TabbedBrowser.js

Modified: trunk/examples/browser/BrowserTab.js
==============================================================================
--- trunk/examples/browser/BrowserTab.js	(original)
+++ trunk/examples/browser/BrowserTab.js	Mon Jan 19 08:38:46 2009
@@ -4,18 +4,20 @@
     class_init: function(klass, prototype)
     {
         // TODO: Robb is promising a prettier interface to this.
-        klass.c_install_property(GObject.param_spec_object("web_view",
+        // FIXME: Right now, constructor properties don't show up within init.
+        
+        /*klass.c_install_property(GObject.param_spec_object("web_view",
                                  "WebView",
                                  "WebView to display",
                                  GObject.TYPE_OBJECT,
                                  GObject.ParamFlags.READABLE |
-                                     GObject.ParamFlags.WRITABLE));
+                                     GObject.ParamFlags.WRITABLE));*/
     },
     init: function (klass)
     {
         // Private
         var toolbar = new BrowserToolbar();
-        var local_web_view;
+        var web_view = new BrowserView();
         var scroll_view = new Gtk.ScrolledWindow();
         var tab_label;
         
@@ -25,9 +27,18 @@
             return toolbar;
         };
         
+        this.set_web_view = function (new_web_view)
+        {
+            scroll_view.remove(web_view);
+            web_view = new_web_view;
+            scroll_view.add(web_view);
+            web_view.set_tab(this);
+            web_view.show();
+        };
+        
         this.get_web_view = function ()
         {
-            return local_web_view;
+            return web_view;
         };
         
         this.set_tab_label = function (new_tab_label)
@@ -41,23 +52,10 @@
         };
         
         // Implementation
-        
-        Seed.print("Wv:"); Seed.print(this.web_view);
-        
-        if(this.web_view == null)
-        {
-            Seed.print("creating new webview");
-            local_web_view = new BrowserView();
-        }
-        else
-        {
-            local_web_view = this.web_view;
-        }
-        
-        local_web_view.set_tab(this);
+        web_view.set_tab(this);
         
         scroll_view.smooth_scroll = true;
-        scroll_view.add(local_web_view);
+        scroll_view.add(web_view);
         scroll_view.set_policy(Gtk.PolicyType.AUTOMATIC,
                                Gtk.PolicyType.AUTOMATIC);
 

Modified: trunk/examples/browser/BrowserView.js
==============================================================================
--- trunk/examples/browser/BrowserView.js	(original)
+++ trunk/examples/browser/BrowserView.js	Mon Jan 19 08:38:46 2009
@@ -6,14 +6,6 @@
         // Private
         var tab;
         
-        var install_signals = function (web_view)
-        {
-            web_view.set_scroll_adjustments(null, null);
-            web_view.signal.title_changed.connect(update_title);
-            web_view.signal.load_committed.connect(update_url);
-            web_view.signal.create_web_view.connect(create_new_tab);
-        }
-        
         var update_title = function (web_view, web_frame, title)
         {
             if(title.length > 25)
@@ -33,16 +25,16 @@
         
         var create_new_tab = function (web_view, web_frame, new_web_view)
         {
-            new_web_view = new WebKit.WebView();
+            new_web_view = new BrowserView();
             new_web_view.signal.web_view_ready.connect(show_new_tab);
             return new_web_view;
         }
         
         var show_new_tab = function (new_web_view)
         {
-            Seed.print("new tab!");
-            //install_signals(new_web_view);
             browser.new_tab("", new_web_view);
+            
+            return false;
         };
         
         // Public
@@ -65,6 +57,9 @@
         };
         
         // Implementation
-        install_signals(this);
+        this.set_scroll_adjustments(null, null);
+        this.signal.title_changed.connect(update_title);
+        this.signal.load_committed.connect(update_url);
+        this.signal.create_web_view.connect(create_new_tab);
     }
 });

Modified: trunk/examples/browser/TabbedBrowser.js
==============================================================================
--- trunk/examples/browser/TabbedBrowser.js	(original)
+++ trunk/examples/browser/TabbedBrowser.js	Mon Jan 19 08:38:46 2009
@@ -19,10 +19,11 @@
         {
             var new_tab;
             
-            Seed.print(new_web_view);
-            
             if(new_web_view != null)
-                new_tab = new BrowserTab({web_view:new_web_view});
+            {
+                new_tab = new BrowserTab();
+                new_tab.set_web_view(new_web_view);
+            }
             else
                 new_tab = new BrowserTab();
             



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