]> Pileus Git - ~andy/gtk/blobdiff - tests/testselection.c
Make color selection and selection examples work.
[~andy/gtk] / tests / testselection.c
index 4f7f6b7e0b7cc28952893da8bbd05c13ce5a3ef5..303075235e6bde04c029b083bdda898c3817e382 100644 (file)
@@ -27,7 +27,7 @@
 #include <stdio.h>
 #include <string.h>
 #define GTK_ENABLE_BROKEN
-#include "gtk.h"
+#include "gtk/gtk.h"
 
 typedef enum {
   SEL_TYPE_NONE,
@@ -105,6 +105,7 @@ static int num_targets = sizeof(targets)/sizeof(Target);
 
 static int have_selection = FALSE;
 
+GtkWidget *selection_widget;
 GtkWidget *selection_text;
 GtkWidget *selection_button;
 GString *selection_string = NULL;
@@ -140,7 +141,7 @@ selection_toggled (GtkWidget *widget)
 {
   if (GTK_TOGGLE_BUTTON(widget)->active)
     {
-      have_selection = gtk_selection_owner_set (widget,
+      have_selection = gtk_selection_owner_set (selection_widget,
                                                GDK_SELECTION_PRIMARY,
                                                GDK_CURRENT_TIME);
       if (!have_selection)
@@ -196,7 +197,7 @@ gint
 selection_clear (GtkWidget *widget, GdkEventSelection *event)
 {
   have_selection = FALSE;
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(widget), FALSE);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(selection_button), FALSE);
 
   return TRUE;
 }
@@ -289,9 +290,8 @@ selection_received (GtkWidget *widget, GtkSelectionData *data)
   if (seltype == SEL_TYPE_NONE)
     {
       char *name = gdk_atom_name (data->type);
-      g_print("Don't know how to handle type: %s (%ld)\n",
-             name?name:"<unknown>",
-             data->type);
+      g_print("Don't know how to handle type: %s\n",
+             name?name:"<unknown>");
       return;
     }
 
@@ -335,9 +335,8 @@ selection_received (GtkWidget *widget, GtkSelectionData *data)
        default:
          {
            char *name = gdk_atom_name (data->type);
-           g_print("Can't convert type %s (%ld) to string\n",
-                   name?name:"<unknown>",
-                   data->type);
+           g_print("Can't convert type %s to string\n",
+                   name?name:"<unknown>");
            position = data->length;
            continue;
          }
@@ -357,7 +356,7 @@ selection_received (GtkWidget *widget, GtkSelectionData *data)
 void
 paste (GtkWidget *widget, GtkWidget *entry)
 {
-  char *name;
+  const char *name;
   GdkAtom atom;
 
   name = gtk_entry_get_text (GTK_ENTRY(entry));
@@ -369,7 +368,7 @@ paste (GtkWidget *widget, GtkWidget *entry)
       return;
     }
 
-  gtk_selection_convert (selection_button, GDK_SELECTION_PRIMARY, atom, 
+  gtk_selection_convert (selection_widget, GDK_SELECTION_PRIMARY, atom, 
                         GDK_CURRENT_TIME);
 }
 
@@ -402,6 +401,8 @@ main (int argc, char *argv[])
 
   init_atoms();
 
+  selection_widget = gtk_invisible_new ();
+
   dialog = gtk_dialog_new ();
   gtk_widget_set_name (dialog, "Test Input");
   gtk_container_set_border_width (GTK_CONTAINER(dialog), 0);
@@ -427,15 +428,15 @@ main (int argc, char *argv[])
 
   gtk_signal_connect (GTK_OBJECT(selection_button), "toggled",
                      GTK_SIGNAL_FUNC (selection_toggled), NULL);
-  gtk_signal_connect (GTK_OBJECT(selection_button), "selection_clear_event",
+  gtk_signal_connect (GTK_OBJECT(selection_widget), "selection_clear_event",
                      GTK_SIGNAL_FUNC (selection_clear), NULL);
-  gtk_signal_connect (GTK_OBJECT(selection_button), "selection_received",
+  gtk_signal_connect (GTK_OBJECT(selection_widget), "selection_received",
                      GTK_SIGNAL_FUNC (selection_received), NULL);
 
-  gtk_selection_add_targets (selection_button, GDK_SELECTION_PRIMARY,
+  gtk_selection_add_targets (selection_widget, GDK_SELECTION_PRIMARY,
                             targetlist, ntargets);
 
-  gtk_signal_connect (GTK_OBJECT(selection_button), "selection_get",
+  gtk_signal_connect (GTK_OBJECT(selection_widget), "selection_get",
                      GTK_SIGNAL_FUNC (selection_get), NULL);
 
   selection_text = gtk_text_new (NULL, NULL);