]> spindle.queued.net Git - midori/commitdiff
Change MidoriView into a subclass of GtkVBox
authorArno Renevier <arno@renevier.net>
Tue, 30 Mar 2010 20:45:49 +0000 (22:45 +0200)
committerChristian Dywan <christian@twotoasts.de>
Tue, 30 Mar 2010 22:18:42 +0000 (00:18 +0200)
This change makes it possible to pack widgets, notably info bars,
into a MidoriView.

midori/midori-browser.c
midori/midori-view.c

index cf83bb86b44293a64e9b67ff574b1c37b297e393..371d83895a504031262d3997d84cf7df153b917b 100644 (file)
@@ -1270,9 +1270,9 @@ midori_browser_view_copy_history (GtkWidget* view_to,
     guint length_from;
     gint i;
 
-    copy_from = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (view_from)));
+    copy_from = WEBKIT_WEB_VIEW (midori_view_get_web_view (MIDORI_VIEW (view_from)));
     list_from = webkit_web_view_get_back_forward_list (copy_from);
-    copy_to = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (view_to)));
+    copy_to = WEBKIT_WEB_VIEW (midori_view_get_web_view (MIDORI_VIEW (view_to)));
     list_to = webkit_web_view_get_back_forward_list (copy_to);
     length_from = webkit_web_back_forward_list_get_back_length (list_from);
 
@@ -1672,8 +1672,6 @@ _midori_browser_add_tab (MidoriBrowser* browser,
     guint n;
 
     GTK_WIDGET_SET_FLAGS (view, GTK_CAN_FOCUS);
-    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (view),
-                                         GTK_SHADOW_ETCHED_IN);
 
     tab_label = midori_view_get_proxy_tab_label (MIDORI_VIEW (view));
 
@@ -2626,8 +2624,8 @@ _midori_browser_find_done (MidoriBrowser* browser)
     gtk_widget_hide (browser->find);
     browser->find_typing = FALSE;
     gtk_window_set_focus (GTK_WINDOW (browser),
-        gtk_bin_get_child (GTK_BIN (view)) ?
-        gtk_bin_get_child (GTK_BIN (view)) : view);
+        midori_view_get_web_view (MIDORI_VIEW (view)) ?
+        midori_view_get_web_view (MIDORI_VIEW (view)) : view);
 }
 
 static void
@@ -3476,7 +3474,7 @@ _action_view_encoding_activate (GtkAction*     action,
         GtkWidget* web_view;
 
         name = gtk_action_get_name (current);
-        web_view = gtk_bin_get_child (GTK_BIN (view));
+        web_view = midori_view_get_web_view (MIDORI_VIEW (view));
         if (!strcmp (name, "EncodingAutomatic"))
             g_object_set (web_view, "custom-encoding", NULL, NULL);
         else
@@ -3610,7 +3608,7 @@ _action_source_view_activate (GtkAction*     action,
         source = midori_view_new (browser->net);
         midori_view_set_settings (MIDORI_VIEW (source), browser->settings);
         midori_view_set_uri (MIDORI_VIEW (source), "");
-        web_view = gtk_bin_get_child (GTK_BIN (source));
+        web_view = midori_view_get_web_view (MIDORI_VIEW (source));
         webkit_web_view_set_view_source_mode (WEBKIT_WEB_VIEW (web_view), TRUE);
         webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), uri);
         gtk_widget_show (source);
@@ -3675,7 +3673,7 @@ _action_scroll_somewhere_activate (GtkAction*     action,
     view = midori_browser_get_current_tab (browser);
     if (!view)
         return;
-    web_view = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (view)));
+    web_view = WEBKIT_WEB_VIEW (midori_view_get_web_view (MIDORI_VIEW (view)));
     name = gtk_action_get_name (action);
 
     if (g_str_equal (name, "ScrollLeft"))
@@ -4355,12 +4353,14 @@ midori_browser_menu_middle_click_on_navigation_action (MidoriBrowser* browser,
     else if (g_str_equal (name, "Back"))
     {
         GtkWidget* view;
+        GtkWidget* page;
         WebKitWebBackForwardList* back_forward_list;
         WebKitWebHistoryItem* back_item;
         const gchar* back_uri;
         gint n;
 
-        view = gtk_bin_get_child (GTK_BIN (midori_browser_get_current_tab (browser)));
+        page = midori_browser_get_current_tab (browser);
+        view = midori_view_get_web_view (MIDORI_VIEW (page));
 
         back_forward_list =
             webkit_web_view_get_back_forward_list (WEBKIT_WEB_VIEW (view));
@@ -4378,12 +4378,14 @@ midori_browser_menu_middle_click_on_navigation_action (MidoriBrowser* browser,
     else if (g_str_equal (name, "Forward"))
     {
         GtkWidget *view;
+        GtkWidget *page;
         WebKitWebBackForwardList *back_forward_list;
         WebKitWebHistoryItem *forward_item;
         const gchar *forward_uri;
         gint n;
 
-        view = gtk_bin_get_child (GTK_BIN (midori_browser_get_current_tab (browser)));
+        page = midori_browser_get_current_tab (browser);
+        view = midori_view_get_web_view (MIDORI_VIEW (page));
 
         back_forward_list =
             webkit_web_view_get_back_forward_list (WEBKIT_WEB_VIEW (view));
@@ -4928,7 +4930,7 @@ _action_inspect_page_activate (GtkAction*     action,
                                MidoriBrowser* browser)
 {
     GtkWidget* view = midori_browser_get_current_tab (browser);
-    WebKitWebView* web_view = WEBKIT_WEB_VIEW (gtk_bin_get_child (GTK_BIN (view)));
+    WebKitWebView* web_view = WEBKIT_WEB_VIEW (midori_view_get_web_view (MIDORI_VIEW (view)));
     WebKitWebInspector* inspector = webkit_web_view_get_inspector (web_view);
     webkit_web_inspector_show (inspector);
 }
@@ -4958,7 +4960,7 @@ _action_tab_current_activate (GtkAction*     action,
                               MidoriBrowser* browser)
 {
     GtkWidget* view = midori_browser_get_current_tab (browser);
-    GtkWidget* child = gtk_bin_get_child (GTK_BIN (view));
+    GtkWidget* child = midori_view_get_web_view (MIDORI_VIEW (view));
     gtk_widget_grab_focus (child ? child : view);
 }
 
@@ -7496,7 +7498,7 @@ midori_browser_set_current_page (MidoriBrowser* browser,
     view = gtk_notebook_get_nth_page (GTK_NOTEBOOK (browser->notebook), n);
     if (view && midori_view_is_blank (MIDORI_VIEW (view)))
         gtk_action_activate (_action_by_name (browser, "Location"));
-    else if ((web_view = gtk_bin_get_child (GTK_BIN (view))))
+    else if ((web_view = midori_view_get_web_view (MIDORI_VIEW (view))))
         gtk_widget_grab_focus (web_view);
     else
         gtk_widget_grab_focus (view);
@@ -7565,7 +7567,7 @@ midori_browser_set_current_tab (MidoriBrowser* browser,
     gtk_notebook_set_current_page (GTK_NOTEBOOK (browser->notebook), n);
     if (view && midori_view_is_blank (MIDORI_VIEW (view)))
         gtk_action_activate (_action_by_name (browser, "Location"));
-    else if ((web_view = gtk_bin_get_child (GTK_BIN (view))))
+    else if ((web_view = midori_view_get_web_view (MIDORI_VIEW (view))))
         gtk_widget_grab_focus (web_view);
     else
         gtk_widget_grab_focus (view);
index 4a4475e53d7852a65457002dcbcb1cb300718d78..7a90c4dce0348532288e3f52c3f65e61cca3b3d2 100644 (file)
@@ -61,7 +61,7 @@ midori_view_item_meta_data_changed (KatzeItem*   item,
 
 struct _MidoriView
 {
-    KatzeScrolled parent_instance;
+    GtkVBox parent_instance;
 
     gchar* uri;
     gboolean special;
@@ -106,14 +106,16 @@ struct _MidoriView
 
     KatzeNet* net;
     GHashTable* memory;
+
+    GtkWidget* scrolled_window;
 };
 
 struct _MidoriViewClass
 {
-    KatzeScrolledClass parent_class;
+    GtkVBoxClass parent_class;
 };
 
-G_DEFINE_TYPE (MidoriView, midori_view, KATZE_TYPE_SCROLLED);
+G_DEFINE_TYPE (MidoriView, midori_view, GTK_TYPE_VBOX);
 
 GType
 midori_load_status_get_type (void)
@@ -1203,7 +1205,7 @@ midori_view_apply_scroll_position (MidoriView* view)
     {
         if (view->scrollh > 0)
         {
-            GtkAdjustment* adjustment = katze_object_get_object (view, "hadjustment");
+            GtkAdjustment* adjustment = katze_object_get_object (view->scrolled_window, "hadjustment");
             gtk_adjustment_set_value (adjustment, view->scrollh);
             g_object_unref (adjustment);
         }
@@ -1213,7 +1215,7 @@ midori_view_apply_scroll_position (MidoriView* view)
     {
         if (view->scrollv > 0)
         {
-            GtkAdjustment* adjustment = katze_object_get_object (view, "vadjustment");
+            GtkAdjustment* adjustment = katze_object_get_object (view->scrolled_window, "vadjustment");
             gtk_adjustment_set_value (adjustment, view->scrollv);
             g_object_unref (adjustment);
         }
@@ -2700,7 +2702,7 @@ midori_view_notify_hadjustment_cb (MidoriView* view,
                                    GParamSpec* pspec,
                                    gpointer    data)
 {
-    GtkAdjustment* hadjustment = katze_object_get_object (view, "hadjustment");
+    GtkAdjustment* hadjustment = katze_object_get_object (view->scrolled_window, "hadjustment");
     g_signal_connect (hadjustment, "notify::value",
         G_CALLBACK (midori_view_hadjustment_notify_value_cb), view);
     g_object_unref (hadjustment);
@@ -2721,7 +2723,7 @@ midori_view_notify_vadjustment_cb (MidoriView* view,
                                    GParamSpec* pspec,
                                    gpointer    data)
 {
-    GtkAdjustment* vadjustment = katze_object_get_object (view, "vadjustment");
+    GtkAdjustment* vadjustment = katze_object_get_object (view->scrolled_window, "vadjustment");
     g_signal_connect (vadjustment, "notify::value",
         G_CALLBACK (midori_view_vadjustment_notify_value_cb), view);
     g_object_unref (vadjustment);
@@ -2762,12 +2764,15 @@ midori_view_init (MidoriView* view)
     view->download_manager = NULL;
     view->news_aggregator = NULL;
     view->web_view = NULL;
-
     /* Adjustments are not created initially, but overwritten later */
-    g_object_set (view, "hadjustment", NULL, "vadjustment", NULL, NULL);
-    g_signal_connect (view, "notify::hadjustment",
+    view->scrolled_window = katze_scrolled_new (NULL, NULL);
+    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (view->scrolled_window),
+                                         GTK_SHADOW_ETCHED_OUT);
+    gtk_container_add (GTK_CONTAINER (view), view->scrolled_window);
+
+    g_signal_connect (view->scrolled_window, "notify::hadjustment",
         G_CALLBACK (midori_view_notify_hadjustment_cb), view);
-    g_signal_connect (view, "notify::vadjustment",
+    g_signal_connect (view->scrolled_window, "notify::vadjustment",
         G_CALLBACK (midori_view_notify_vadjustment_cb), view);
 }
 
@@ -2949,7 +2954,7 @@ _midori_view_update_settings (MidoriView* view)
     if (view->web_view)
         g_object_set (view->web_view,
                       "full-content-zoom", zoom_text_and_images, NULL);
-    g_object_set (view, "kinetic-scrolling", kinetic_scrolling, NULL);
+    g_object_set (view->scrolled_window, "kinetic-scrolling", kinetic_scrolling, NULL);
 }
 
 static void
@@ -3273,8 +3278,8 @@ midori_view_construct_web_view (MidoriView* view)
                 "zoom-text-and-images"), NULL);
     }
 
-    gtk_widget_show (view->web_view);
-    gtk_container_add (GTK_CONTAINER (view), view->web_view);
+    gtk_container_add (GTK_CONTAINER (view->scrolled_window), view->web_view);
+    gtk_widget_show_all (view->scrolled_window);
 
     inspector = katze_object_get_object (view->web_view, "web-inspector");
     g_object_connect (inspector,
@@ -4797,7 +4802,7 @@ midori_view_get_snapshot (MidoriView* view,
     GdkPixbuf* pixbuf;
 
     g_return_val_if_fail (MIDORI_IS_VIEW (view), NULL);
-    web_view = gtk_bin_get_child (GTK_BIN (view));
+    web_view = view->web_view;
     g_return_val_if_fail (web_view->window, NULL);
 
     x = web_view->allocation.x;