[gtk+/refactor: 49/96] gtk/gtkmenushell.c: use accessor functions to access GtkWidget



commit a0ebe1d84b5463c98303a265843e15de3d10de71
Author: Javier Jardón <jjardon gnome org>
Date:   Wed Aug 11 23:07:50 2010 +0200

    gtk/gtkmenushell.c: use accessor functions to access GtkWidget

 gtk/gtkmenushell.c |   45 ++++++++++++++++++++++++++++-----------------
 1 files changed, 28 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index 3fb8ee6..b071de2 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -515,15 +515,19 @@ gtk_menu_shell_deactivate (GtkMenuShell *menu_shell)
 static void
 gtk_menu_shell_realize (GtkWidget *widget)
 {
+  GtkAllocation allocation;
+  GdkWindow *window;
   GdkWindowAttr attributes;
   gint attributes_mask;
 
   gtk_widget_set_realized (widget, TRUE);
 
-  attributes.x = widget->allocation.x;
-  attributes.y = widget->allocation.y;
-  attributes.width = widget->allocation.width;
-  attributes.height = widget->allocation.height;
+  gtk_widget_get_allocation (widget, &allocation);
+
+  attributes.x = allocation.x;
+  attributes.y = allocation.y;
+  attributes.width = allocation.width;
+  attributes.height = allocation.height;
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
@@ -537,11 +541,14 @@ gtk_menu_shell_realize (GtkWidget *widget)
 			    GDK_LEAVE_NOTIFY_MASK);
 
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-  widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
-  gdk_window_set_user_data (widget->window, widget);
 
-  widget->style = gtk_style_attach (widget->style, widget->window);
-  gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
+  window = gdk_window_new (gtk_widget_get_parent_window (widget),
+                           &attributes, attributes_mask);
+  gtk_widget_set_window (widget, window);
+  gdk_window_set_user_data (window, widget);
+
+  gtk_widget_style_attach (widget);
+  gtk_style_set_background (gtk_widget_get_style (widget), window, GTK_STATE_NORMAL);
 }
 
 void
@@ -567,6 +574,7 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
 {
   GtkMenuShell *menu_shell;
   GtkWidget *menu_item;
+  GtkWidget *parent;
 
   if (event->type != GDK_BUTTON_PRESS)
     return FALSE;
@@ -577,9 +585,10 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
     return gtk_widget_event (menu_shell->parent_menu_shell, (GdkEvent*) event);
 
   menu_item = gtk_menu_shell_get_item (menu_shell, (GdkEvent *)event);
+  parent = gtk_widget_get_parent (menu_item);
 
   if (menu_item && _gtk_menu_item_is_selectable (menu_item) &&
-      menu_item != GTK_MENU_SHELL (menu_item->parent)->active_menu_item)
+      menu_item != GTK_MENU_SHELL (parent)->active_menu_item)
     {
       /*  select the menu item *before* activating the shell, so submenus
        *  which might be open are closed the friendly way. If we activate
@@ -588,9 +597,9 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
        *  menu item also fixes up the state as if enter_notify() would
        *  have run before (which normally selects the item).
        */
-      if (GTK_MENU_SHELL_GET_CLASS (menu_item->parent)->submenu_placement != GTK_TOP_BOTTOM)
+      if (GTK_MENU_SHELL_GET_CLASS (parent)->submenu_placement != GTK_TOP_BOTTOM)
         {
-          gtk_menu_shell_select_item (GTK_MENU_SHELL (menu_item->parent), menu_item);
+          gtk_menu_shell_select_item (GTK_MENU_SHELL (parent), menu_item);
         }
     }
 
@@ -603,7 +612,7 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
       if (menu_item)
         {
           if (_gtk_menu_item_is_selectable (menu_item) &&
-              menu_item->parent == widget &&
+              parent == widget &&
               menu_item != menu_shell->active_menu_item)
             {
               _gtk_menu_shell_activate (menu_shell);
@@ -656,7 +665,7 @@ gtk_menu_shell_button_press (GtkWidget      *widget,
 
       _gtk_menu_item_popup_submenu (menu_item, FALSE);
 
-      priv = GTK_MENU_SHELL_GET_PRIVATE (menu_item->parent);
+      priv = GTK_MENU_SHELL_GET_PRIVATE (parent);
       priv->activated_submenu = TRUE;
     }
 
@@ -927,6 +936,7 @@ gtk_menu_shell_enter_notify (GtkWidget        *widget,
   if (menu_shell->active)
     {
       GtkWidget *menu_item;
+      GtkWidget *parent;
 
       menu_item = gtk_get_event_widget ((GdkEvent*) event);
 
@@ -944,7 +954,8 @@ gtk_menu_shell_enter_notify (GtkWidget        *widget,
           return TRUE;
         }
 
-      if (menu_item->parent == widget &&
+      parent = gtk_widget_get_parent (menu_item);
+      if (parent == widget &&
 	  GTK_IS_MENU_ITEM (menu_item))
 	{
 	  if (menu_shell->ignore_enter)
@@ -968,7 +979,7 @@ gtk_menu_shell_enter_notify (GtkWidget        *widget,
                 {
                   GtkMenuShellPrivate *priv;
 
-                  priv = GTK_MENU_SHELL_GET_PRIVATE (menu_item->parent);
+                  priv = GTK_MENU_SHELL_GET_PRIVATE (parent);
                   priv->activated_submenu = TRUE;
 
                   if (!gtk_widget_get_visible (GTK_MENU_ITEM (menu_item)->submenu))
@@ -1153,7 +1164,7 @@ gtk_menu_shell_is_item (GtkMenuShell *menu_shell,
   g_return_val_if_fail (GTK_IS_MENU_SHELL (menu_shell), FALSE);
   g_return_val_if_fail (child != NULL, FALSE);
 
-  parent = child->parent;
+  parent = gtk_widget_get_parent (child);
   while (GTK_IS_MENU_SHELL (parent))
     {
       if (parent == (GtkWidget*) menu_shell)
@@ -1173,7 +1184,7 @@ gtk_menu_shell_get_item (GtkMenuShell *menu_shell,
   menu_item = gtk_get_event_widget ((GdkEvent*) event);
   
   while (menu_item && !GTK_IS_MENU_ITEM (menu_item))
-    menu_item = menu_item->parent;
+    menu_item = gtk_widget_get_parent (menu_item);
 
   if (menu_item && gtk_menu_shell_is_item (menu_shell, menu_item))
     return menu_item;



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