]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktipsquery.c
fix up if-condition to only set the true arrow type if show_sort_indicator
[~andy/gtk] / gtk / gtktipsquery.c
index 0d5530cbd3cf4972fee4560bf565baa5eb1cc611..f6e482aa33d9c008a69bfc45ba443c0dada58e71 100644 (file)
@@ -5,33 +5,38 @@
  * Copyright (C) 1998 Tim Janik
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
 
 /*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#undef GTK_DISABLE_DEPRECATED
+
+#include       <config.h>
 #include       "gtktipsquery.h"
 #include       "gtksignal.h"
 #include       "gtktooltips.h"
 #include       "gtkmain.h"
+#include        "gtkmarshalers.h"
 #include       "gtkintl.h"
+#include "gtkalias.h"
 
 
 
@@ -84,7 +89,7 @@ static guint           tips_query_signals[SIGNAL_LAST] = { 0 };
 GtkType
 gtk_tips_query_get_type (void)
 {
-  static guint tips_query_type = 0;
+  static GtkType tips_query_type = 0;
 
   if (!tips_query_type)
     {
@@ -100,6 +105,7 @@ gtk_tips_query_get_type (void)
        (GtkClassInitFunc) NULL,
       };
 
+      I_("GtkTipsQuery");
       tips_query_type = gtk_type_unique (gtk_label_get_type (), &tips_query_info);
     }
 
@@ -117,58 +123,59 @@ gtk_tips_query_class_init (GtkTipsQueryClass *class)
 
   parent_class = gtk_type_class (gtk_label_get_type ());
 
-  gtk_object_add_arg_type ("GtkTipsQuery::emit_always", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_EMIT_ALWAYS);
-  gtk_object_add_arg_type ("GtkTipsQuery::caller", GTK_TYPE_WIDGET, GTK_ARG_READWRITE, ARG_CALLER);
-  gtk_object_add_arg_type ("GtkTipsQuery::label_inactive", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_LABEL_INACTIVE);
-  gtk_object_add_arg_type ("GtkTipsQuery::label_no_tip", GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_LABEL_NO_TIP);
+
+  object_class->set_arg = gtk_tips_query_set_arg;
+  object_class->get_arg = gtk_tips_query_get_arg;
+  object_class->destroy = gtk_tips_query_destroy;
+
+  widget_class->event = gtk_tips_query_event;
+
+  class->start_query = gtk_tips_query_real_start_query;
+  class->stop_query = gtk_tips_query_real_stop_query;
+  class->widget_entered = gtk_tips_query_widget_entered;
+  class->widget_selected = NULL;
+
+  gtk_object_add_arg_type ("GtkTipsQuery::emit-always", GTK_TYPE_BOOL, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_EMIT_ALWAYS);
+  gtk_object_add_arg_type ("GtkTipsQuery::caller", GTK_TYPE_WIDGET, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_CALLER);
+  gtk_object_add_arg_type ("GtkTipsQuery::label-inactive", GTK_TYPE_STRING, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_LABEL_INACTIVE);
+  gtk_object_add_arg_type ("GtkTipsQuery::label-no-tip", GTK_TYPE_STRING, GTK_ARG_READWRITE | G_PARAM_STATIC_NAME, ARG_LABEL_NO_TIP);
 
   tips_query_signals[SIGNAL_START_QUERY] =
-    gtk_signal_new ("start_query",
+    gtk_signal_new (I_("start_query"),
                    GTK_RUN_FIRST,
-                   object_class->type,
+                   GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkTipsQueryClass, start_query),
-                   gtk_marshal_NONE__NONE,
+                   _gtk_marshal_VOID__VOID,
                    GTK_TYPE_NONE, 0);
   tips_query_signals[SIGNAL_STOP_QUERY] =
-    gtk_signal_new ("stop_query",
+    gtk_signal_new (I_("stop_query"),
                    GTK_RUN_FIRST,
-                   object_class->type,
+                   GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkTipsQueryClass, stop_query),
-                   gtk_marshal_NONE__NONE,
+                   _gtk_marshal_VOID__VOID,
                    GTK_TYPE_NONE, 0);
   tips_query_signals[SIGNAL_WIDGET_ENTERED] =
-    gtk_signal_new ("widget_entered",
+    gtk_signal_new (I_("widget_entered"),
                    GTK_RUN_LAST,
-                   object_class->type,
+                   GTK_CLASS_TYPE (object_class),
                    GTK_SIGNAL_OFFSET (GtkTipsQueryClass, widget_entered),
-                   gtk_marshal_NONE__POINTER_STRING_STRING,
+                   _gtk_marshal_VOID__OBJECT_STRING_STRING,
                    GTK_TYPE_NONE, 3,
                    GTK_TYPE_WIDGET,
                    GTK_TYPE_STRING,
                    GTK_TYPE_STRING);
   tips_query_signals[SIGNAL_WIDGET_SELECTED] =
-    gtk_signal_new ("widget_selected",
-                   GTK_RUN_LAST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTipsQueryClass, widget_selected),
-                   gtk_marshal_BOOL__POINTER_STRING_STRING_POINTER,
-                   GTK_TYPE_BOOL, 4,
-                   GTK_TYPE_WIDGET,
-                   GTK_TYPE_STRING,
-                   GTK_TYPE_STRING,
-                   GTK_TYPE_GDK_EVENT);
-  gtk_object_class_add_signals (object_class, tips_query_signals, SIGNAL_LAST);
-
-  object_class->set_arg = gtk_tips_query_set_arg;
-  object_class->get_arg = gtk_tips_query_get_arg;
-  object_class->destroy = gtk_tips_query_destroy;
-
-  widget_class->event = gtk_tips_query_event;
-
-  class->start_query = gtk_tips_query_real_start_query;
-  class->stop_query = gtk_tips_query_real_stop_query;
-  class->widget_entered = gtk_tips_query_widget_entered;
-  class->widget_selected = NULL;
+    g_signal_new (I_("widget_selected"),
+                  G_TYPE_FROM_CLASS(object_class),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET(GtkTipsQueryClass, widget_selected),
+                  _gtk_boolean_handled_accumulator, NULL,
+                  _gtk_marshal_BOOLEAN__OBJECT_STRING_STRING_BOXED,
+                  G_TYPE_BOOLEAN, 4,
+                  GTK_TYPE_WIDGET,
+                  G_TYPE_STRING,
+                  G_TYPE_STRING,
+                  GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
 }
 
 static void
@@ -247,7 +254,6 @@ gtk_tips_query_destroy (GtkObject   *object)
 {
   GtkTipsQuery *tips_query;
 
-  g_return_if_fail (object != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (object));
 
   tips_query = GTK_TIPS_QUERY (object);
@@ -257,6 +263,11 @@ gtk_tips_query_destroy (GtkObject  *object)
 
   gtk_tips_query_set_caller (tips_query, NULL);
 
+  g_free (tips_query->label_inactive);
+  tips_query->label_inactive = NULL;
+  g_free (tips_query->label_no_tip);
+  tips_query->label_no_tip = NULL;
+
   if (GTK_OBJECT_CLASS (parent_class)->destroy)
     (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
 }
@@ -278,7 +289,6 @@ gtk_tips_query_set_labels (GtkTipsQuery   *tips_query,
 {
   gchar *old;
 
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   g_return_if_fail (label_inactive != NULL);
   g_return_if_fail (label_no_tip != NULL);
@@ -295,7 +305,6 @@ void
 gtk_tips_query_set_caller (GtkTipsQuery   *tips_query,
                           GtkWidget       *caller)
 {
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   g_return_if_fail (tips_query->in_query == FALSE);
   if (caller)
@@ -313,7 +322,6 @@ gtk_tips_query_set_caller (GtkTipsQuery   *tips_query,
 void
 gtk_tips_query_start_query (GtkTipsQuery *tips_query)
 {
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   g_return_if_fail (tips_query->in_query == FALSE);
   g_return_if_fail (GTK_WIDGET_REALIZED (tips_query));
@@ -325,7 +333,6 @@ gtk_tips_query_start_query (GtkTipsQuery *tips_query)
 void
 gtk_tips_query_stop_query (GtkTipsQuery *tips_query)
 {
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   g_return_if_fail (tips_query->in_query == TRUE);
 
@@ -338,10 +345,10 @@ gtk_tips_query_real_start_query (GtkTipsQuery *tips_query)
 {
   gint failure;
   
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   
-  tips_query->query_cursor = gdk_cursor_new (GDK_QUESTION_ARROW);
+  tips_query->query_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (tips_query)),
+                                                        GDK_QUESTION_ARROW);
   failure = gdk_pointer_grab (GTK_WIDGET (tips_query)->window,
                              TRUE,
                              GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
@@ -351,7 +358,7 @@ gtk_tips_query_real_start_query (GtkTipsQuery *tips_query)
                              GDK_CURRENT_TIME);
   if (failure)
     {
-      gdk_cursor_destroy (tips_query->query_cursor);
+      gdk_cursor_unref (tips_query->query_cursor);
       tips_query->query_cursor = NULL;
     }
   gtk_grab_add (GTK_WIDGET (tips_query));
@@ -360,14 +367,14 @@ gtk_tips_query_real_start_query (GtkTipsQuery *tips_query)
 static void
 gtk_tips_query_real_stop_query (GtkTipsQuery *tips_query)
 {
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
   
   gtk_grab_remove (GTK_WIDGET (tips_query));
   if (tips_query->query_cursor)
     {
-      gdk_pointer_ungrab (GDK_CURRENT_TIME);
-      gdk_cursor_destroy (tips_query->query_cursor);
+      gdk_display_pointer_ungrab (gtk_widget_get_display (GTK_WIDGET (tips_query)),
+                                 GDK_CURRENT_TIME);
+      gdk_cursor_unref (tips_query->query_cursor);
       tips_query->query_cursor = NULL;
     }
   if (tips_query->last_crossed)
@@ -385,7 +392,6 @@ gtk_tips_query_widget_entered (GtkTipsQuery   *tips_query,
                               const gchar    *tip_text,
                               const gchar    *tip_private)
 {
-  g_return_if_fail (tips_query != NULL);
   g_return_if_fail (GTK_IS_TIPS_QUERY (tips_query));
 
   if (!tip_text)
@@ -442,7 +448,6 @@ gtk_tips_query_event (GtkWidget            *widget,
   GtkWidget *event_widget;
   gboolean event_handled;
   
-  g_return_val_if_fail (widget != NULL, FALSE);
   g_return_val_if_fail (GTK_IS_TIPS_QUERY (widget), FALSE);
 
   tips_query = GTK_TIPS_QUERY (widget);
@@ -514,3 +519,6 @@ gtk_tips_query_event (GtkWidget            *widget,
 
   return event_handled;
 }
+
+#define __GTK_TIPS_QUERY_C__
+#include "gtkaliasdef.c"