]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtklist.c
Deprecate widget flag: GTK_WIDGET_VISIBLE
[~andy/gtk] / gtk / gtklist.c
index 1ec1471dc8024a40c4e04ed5e267ebf2b52d58fd..9b9f4f08a3d66809969b0991cfda5f388234dfcf 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
-#undef GTK_DISABLE_DEPRECATED
-
+#include "config.h"
 #include <string.h> /* memset */
 
+#undef GTK_DISABLE_DEPRECATED
+#define __GTK_LIST_C__
+
 #include "gtklist.h"
 #include "gtklistitem.h"
 #include "gtkmain.h"
 #include "gtksignal.h"
 #include "gtklabel.h"
 #include "gtkmarshalers.h"
+#include "gtkintl.h"
+
+#include "gtkalias.h"
 
 enum {
   SELECTION_CHANGED,
@@ -192,6 +197,7 @@ gtk_list_get_type (void)
         (GtkClassInitFunc) NULL,
       };
 
+      I_("GtkList");
       list_type = gtk_type_unique (GTK_TYPE_CONTAINER, &list_info);
     }
 
@@ -243,14 +249,14 @@ gtk_list_class_init (GtkListClass *class)
   class->unselect_child = gtk_real_list_unselect_child;
 
   list_signals[SELECTION_CHANGED] =
-    gtk_signal_new ("selection_changed",
+    gtk_signal_new (I_("selection-changed"),
                    GTK_RUN_FIRST,
                    GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkListClass, selection_changed),
                    _gtk_marshal_VOID__VOID,
                    GTK_TYPE_NONE, 0);
   list_signals[SELECT_CHILD] =
-    gtk_signal_new ("select_child",
+    gtk_signal_new (I_("select-child"),
                    GTK_RUN_FIRST,
                    GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkListClass, select_child),
@@ -258,7 +264,7 @@ gtk_list_class_init (GtkListClass *class)
                    GTK_TYPE_NONE, 1,
                    GTK_TYPE_WIDGET);
   list_signals[UNSELECT_CHILD] =
-    gtk_signal_new ("unselect_child",
+    gtk_signal_new (I_("unselect-child"),
                    GTK_RUN_FIRST,
                    GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkListClass, unselect_child),
@@ -266,8 +272,9 @@ gtk_list_class_init (GtkListClass *class)
                    GTK_TYPE_NONE, 1,
                    GTK_TYPE_WIDGET);
   
-  gtk_object_add_arg_type ("GtkList::selection_mode",
-                          GTK_TYPE_SELECTION_MODE, GTK_ARG_READWRITE,
+  gtk_object_add_arg_type ("GtkList::selection-mode",
+                          GTK_TYPE_SELECTION_MODE, 
+                          GTK_ARG_READWRITE | G_PARAM_STATIC_NAME,
                           ARG_SELECTION_MODE);
 }
 
@@ -362,14 +369,10 @@ static void
 gtk_list_size_request (GtkWidget      *widget,
                       GtkRequisition *requisition)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (widget);
   GtkWidget *child;
   GList *children;
 
-  g_return_if_fail (GTK_IS_LIST (widget));
-  g_return_if_fail (requisition != NULL);
-
-  list = GTK_LIST (widget);
   requisition->width = 0;
   requisition->height = 0;
 
@@ -379,7 +382,7 @@ gtk_list_size_request (GtkWidget      *widget,
       child = children->data;
       children = children->next;
 
-      if (GTK_WIDGET_VISIBLE (child))
+      if (gtk_widget_get_visible (child))
        {
          GtkRequisition child_requisition;
          
@@ -402,16 +405,11 @@ static void
 gtk_list_size_allocate (GtkWidget     *widget,
                        GtkAllocation *allocation)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (widget);
   GtkWidget *child;
   GtkAllocation child_allocation;
   GList *children;
 
-  g_return_if_fail (GTK_IS_LIST (widget));
-  g_return_if_fail (allocation != NULL);
-
-  list = GTK_LIST (widget);
-
   widget->allocation = *allocation;
   if (GTK_WIDGET_REALIZED (widget))
     gdk_window_move_resize (widget->window,
@@ -432,7 +430,7 @@ gtk_list_size_allocate (GtkWidget     *widget,
          child = children->data;
          children = children->next;
 
-         if (GTK_WIDGET_VISIBLE (child))
+         if (gtk_widget_get_visible (child))
            {
              GtkRequisition child_requisition;
              gtk_widget_get_child_requisition (child, &child_requisition);
@@ -453,8 +451,6 @@ gtk_list_realize (GtkWidget *widget)
   GdkWindowAttr attributes;
   gint attributes_mask;
 
-  g_return_if_fail (GTK_IS_LIST (widget));
-
   GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
 
   attributes.window_type = GDK_WINDOW_CHILD;
@@ -489,15 +485,11 @@ list_has_grab (GtkList *list)
 static void
 gtk_list_unmap (GtkWidget *widget)
 {
-  GtkList *list;
-
-  g_return_if_fail (GTK_IS_LIST (widget));
+  GtkList *list = GTK_LIST (widget);
 
   if (!GTK_WIDGET_MAPPED (widget))
     return;
 
-  list = GTK_LIST (widget);
-
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
 
   if (list_has_grab (list))
@@ -515,7 +507,7 @@ static gint
 gtk_list_motion_notify (GtkWidget      *widget,
                        GdkEventMotion *event)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (widget);
   GtkWidget *item = NULL;
   GtkAdjustment *adj;
   GtkContainer *container;
@@ -526,11 +518,6 @@ gtk_list_motion_notify (GtkWidget      *widget,
   gint focus_row = 0;
   gint length = 0;
 
-  g_return_val_if_fail (GTK_IS_LIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  list = GTK_LIST (widget);
-
   if (!list->drag_selection || !list->children)
     return FALSE;
 
@@ -552,8 +539,8 @@ gtk_list_motion_notify (GtkWidget      *widget,
     {
       if (list->htimer == 0)
        {
-         list->htimer = g_timeout_add
-           (SCROLL_TIME, (GtkFunction) gtk_list_horizontal_timeout, widget);
+         list->htimer = gdk_threads_add_timeout
+           (SCROLL_TIME, (GSourceFunc) gtk_list_horizontal_timeout, widget);
          
          if (!((x < adj->value && adj->value <= 0) ||
                (x > adj->value + adj->page_size &&
@@ -600,8 +587,8 @@ gtk_list_motion_notify (GtkWidget      *widget,
 
   if (!((y < 0 && focus_row == 0) ||
        (y > widget->allocation.height && focus_row >= length - 1)))
-    list->vtimer = g_timeout_add (SCROLL_TIME,
-                                 (GtkFunction) gtk_list_vertical_timeout,
+    list->vtimer = gdk_threads_add_timeout (SCROLL_TIME,
+                                 (GSourceFunc) gtk_list_vertical_timeout,
                                  list);
 
   if (row != focus_row)
@@ -626,16 +613,12 @@ static gint
 gtk_list_button_press (GtkWidget      *widget,
                       GdkEventButton *event)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (widget);
   GtkWidget *item;
 
-  g_return_val_if_fail (GTK_IS_LIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
   if (event->button != 1)
     return FALSE;
 
-  list = GTK_LIST (widget);
   item = gtk_get_event_widget ((GdkEvent*) event);
 
   while (item && !GTK_IS_LIST_ITEM (item))
@@ -654,7 +637,7 @@ gtk_list_button_press (GtkWidget      *widget,
       else if (list_has_grab (list))
        gtk_list_end_drag_selection (list);
          
-      if (!GTK_WIDGET_HAS_FOCUS(item))
+      if (!gtk_widget_has_focus(item))
        gtk_widget_grab_focus (item);
 
       if (list->add_mode)
@@ -755,14 +738,9 @@ static gint
 gtk_list_button_release (GtkWidget     *widget,
                         GdkEventButton *event)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (widget);
   GtkWidget *item;
 
-  g_return_val_if_fail (GTK_IS_LIST (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  list = GTK_LIST (widget);
-
   /* we don't handle button 2 and 3 */
   if (event->button != 1)
     return FALSE;
@@ -807,8 +785,6 @@ static void
 gtk_list_style_set     (GtkWidget      *widget,
                         GtkStyle       *previous_style)
 {
-  g_return_if_fail (widget != NULL);
-
   if (previous_style && GTK_WIDGET_REALIZED (widget))
     gdk_window_set_background (widget->window, &widget->style->base[GTK_WIDGET_STATE (widget)]);
 }
@@ -827,7 +803,6 @@ gtk_list_add (GtkContainer *container,
 {
   GList *item_list;
 
-  g_return_if_fail (GTK_IS_LIST (container));
   g_return_if_fail (GTK_IS_LIST_ITEM (widget));
 
   item_list = g_list_alloc ();
@@ -841,9 +816,7 @@ gtk_list_remove (GtkContainer *container,
                 GtkWidget    *widget)
 {
   GList *item_list;
-  
-  g_return_if_fail (GTK_IS_LIST (container));
-  g_return_if_fail (widget != NULL);
+
   g_return_if_fail (container == GTK_CONTAINER (widget->parent));
   
   item_list = g_list_alloc ();
@@ -860,14 +833,10 @@ gtk_list_forall (GtkContainer  *container,
                 GtkCallback    callback,
                 gpointer       callback_data)
 {
-  GtkList *list;
+  GtkList *list = GTK_LIST (container);
   GtkWidget *child;
   GList *children;
 
-  g_return_if_fail (GTK_IS_LIST (container));
-  g_return_if_fail (callback != NULL);
-
-  list = GTK_LIST (container);
   children = list->children;
 
   while (children)
@@ -903,11 +872,11 @@ gtk_list_set_focus_child (GtkContainer *container,
       if (container->focus_child)
        {
          list->last_focus_child = container->focus_child;
-         gtk_widget_unref (container->focus_child);
+         g_object_unref (container->focus_child);
        }
       container->focus_child = child;
       if (container->focus_child)
-        gtk_widget_ref (container->focus_child);
+        g_object_ref (container->focus_child);
     }
 
   /* check for v adjustment */
@@ -951,7 +920,7 @@ gtk_list_focus (GtkWidget        *widget,
   container = GTK_CONTAINER (widget);
   
   if (container->focus_child == NULL ||
-      !GTK_WIDGET_HAS_FOCUS (container->focus_child))
+      !gtk_widget_has_focus (container->focus_child))
     {
       if (GTK_LIST (container)->last_focus_child)
        gtk_container_set_focus_child
@@ -1015,47 +984,47 @@ gtk_list_insert_items (GtkList *list,
       tmp_list = tmp_list->next;
 
       gtk_widget_set_parent (widget, GTK_WIDGET (list));
-      gtk_signal_connect (GTK_OBJECT (widget), "drag_begin",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_drag_begin),
+      gtk_signal_connect (GTK_OBJECT (widget), "drag-begin",
+                         G_CALLBACK (gtk_list_signal_drag_begin),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "toggle_focus_row",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_toggle_focus_row),
+      gtk_signal_connect (GTK_OBJECT (widget), "toggle-focus-row",
+                         G_CALLBACK (gtk_list_signal_toggle_focus_row),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "select_all",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_select_all),
+      gtk_signal_connect (GTK_OBJECT (widget), "select-all",
+                         G_CALLBACK (gtk_list_signal_select_all),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "unselect_all",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_unselect_all),
+      gtk_signal_connect (GTK_OBJECT (widget), "unselect-all",
+                         G_CALLBACK (gtk_list_signal_unselect_all),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "undo_selection",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_undo_selection),
+      gtk_signal_connect (GTK_OBJECT (widget), "undo-selection",
+                         G_CALLBACK (gtk_list_signal_undo_selection),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "start_selection",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_start_selection),
+      gtk_signal_connect (GTK_OBJECT (widget), "start-selection",
+                         G_CALLBACK (gtk_list_signal_start_selection),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "end_selection",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_end_selection),
+      gtk_signal_connect (GTK_OBJECT (widget), "end-selection",
+                         G_CALLBACK (gtk_list_signal_end_selection),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "extend_selection",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_extend_selection),
+      gtk_signal_connect (GTK_OBJECT (widget), "extend-selection",
+                         G_CALLBACK (gtk_list_signal_extend_selection),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "scroll_horizontal",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_scroll_horizontal),
+      gtk_signal_connect (GTK_OBJECT (widget), "scroll-horizontal",
+                         G_CALLBACK (gtk_list_signal_scroll_horizontal),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "scroll_vertical",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_scroll_vertical),
+      gtk_signal_connect (GTK_OBJECT (widget), "scroll-vertical",
+                         G_CALLBACK (gtk_list_signal_scroll_vertical),
                          list);
-      gtk_signal_connect (GTK_OBJECT (widget), "toggle_add_mode",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_toggle_add_mode),
+      gtk_signal_connect (GTK_OBJECT (widget), "toggle-add-mode",
+                         G_CALLBACK (gtk_list_signal_toggle_add_mode),
                          list);
       gtk_signal_connect (GTK_OBJECT (widget), "select",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_item_select),
+                         G_CALLBACK (gtk_list_signal_item_select),
                          list);
       gtk_signal_connect (GTK_OBJECT (widget), "deselect",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_item_deselect),
+                         G_CALLBACK (gtk_list_signal_item_deselect),
                          list);
       gtk_signal_connect (GTK_OBJECT (widget), "toggle",
-                         GTK_SIGNAL_FUNC (gtk_list_signal_item_toggle),
+                         G_CALLBACK (gtk_list_signal_item_toggle),
                          list);
     }
 
@@ -1191,7 +1160,7 @@ gtk_list_clear_items (GtkList *list,
          else if (list->children)
            new_focus_child = list->children->data;
 
-         if (GTK_WIDGET_HAS_FOCUS (container->focus_child))
+         if (gtk_widget_has_focus (container->focus_child))
            grab_focus = TRUE;
        }
     }
@@ -1202,7 +1171,7 @@ gtk_list_clear_items (GtkList *list,
       widget = tmp_list->data;
       tmp_list = tmp_list->next;
 
-      gtk_widget_ref (widget);
+      g_object_ref (widget);
 
       if (widget->state == GTK_STATE_SELECTED)
        gtk_list_unselect_child (list, widget);
@@ -1215,7 +1184,7 @@ gtk_list_clear_items (GtkList *list,
       if (widget == list->last_focus_child)
        list->last_focus_child = NULL;
 
-      gtk_widget_unref (widget);
+      g_object_unref (widget);
     }
 
   g_list_free (start_list);
@@ -1235,7 +1204,7 @@ gtk_list_clear_items (GtkList *list,
        }
     }
 
-  if (GTK_WIDGET_VISIBLE (list))
+  if (gtk_widget_get_visible (GTK_WIDGET (list)))
     gtk_widget_queue_resize (GTK_WIDGET (list));
 }
 
@@ -1311,7 +1280,7 @@ gtk_list_remove_items_internal (GtkList    *list,
   if (container->focus_child)
     {
       old_focus_child = new_focus_child = container->focus_child;
-      if (GTK_WIDGET_HAS_FOCUS (container->focus_child))
+      if (gtk_widget_has_focus (container->focus_child))
        grab_focus = TRUE;
     }
   else
@@ -1323,9 +1292,9 @@ gtk_list_remove_items_internal (GtkList    *list,
       widget = tmp_list->data;
       tmp_list = tmp_list->next;
 
-      gtk_widget_ref (widget);
+      g_object_ref (widget);
       if (no_unref)
-       gtk_widget_ref (widget);
+       g_object_ref (widget);
 
       if (widget == new_focus_child) 
        {
@@ -1351,7 +1320,7 @@ gtk_list_remove_items_internal (GtkList    *list,
       if (widget == list->last_focus_child)
        list->last_focus_child = NULL;
 
-      gtk_widget_unref (widget);
+      g_object_unref (widget);
     }
   
   if (new_focus_child && new_focus_child != old_focus_child)
@@ -1368,7 +1337,7 @@ gtk_list_remove_items_internal (GtkList    *list,
        }
     }
 
-  if (GTK_WIDGET_VISIBLE (list))
+  if (gtk_widget_get_visible (GTK_WIDGET (list)))
     gtk_widget_queue_resize (GTK_WIDGET (list));
 }
 
@@ -1845,7 +1814,7 @@ gtk_list_undo_selection (GtkList *list)
       container = GTK_CONTAINER (list);
 
       if (container->focus_child &&
-         GTK_WIDGET_HAS_FOCUS (container->focus_child))
+         gtk_widget_has_focus (container->focus_child))
        gtk_widget_grab_focus (list->undo_focus_child);
       else
        gtk_container_set_focus_child (container, list->undo_focus_child);
@@ -2333,26 +2302,18 @@ do_fake_motion (GtkWidget *list)
 static gint
 gtk_list_horizontal_timeout (GtkWidget *list)
 {
-  GDK_THREADS_ENTER ();
-
   GTK_LIST (list)->htimer = 0;
   do_fake_motion (list);
   
-  GDK_THREADS_LEAVE ();
-
   return FALSE;
 }
 
 static gint
 gtk_list_vertical_timeout (GtkWidget *list)
 {
-  GDK_THREADS_ENTER ();
-
   GTK_LIST (list)->vtimer = 0;
   do_fake_motion (list);
 
-  GDK_THREADS_LEAVE ();
-
   return FALSE;
 }
 
@@ -2516,7 +2477,7 @@ gtk_list_signal_item_select (GtkListItem *list_item,
       if (!sel_list)
        {
          list->selection = g_list_prepend (list->selection, list_item);
-         gtk_widget_ref (GTK_WIDGET (list_item));
+         g_object_ref (list_item);
        }
       gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
       break;
@@ -2544,7 +2505,7 @@ gtk_list_signal_item_deselect (GtkListItem *list_item,
     {
       list->selection = g_list_remove_link (list->selection, node);
       g_list_free_1 (node);
-      gtk_widget_unref (GTK_WIDGET (list_item));
+      g_object_unref (list_item);
       gtk_signal_emit (GTK_OBJECT (list), list_signals[SELECTION_CHANGED]);
     }
 }
@@ -2616,3 +2577,5 @@ gtk_list_drag_begin (GtkWidget      *widget,
        }
     }
 }
+
+#include "gtkaliasdef.c"