forked from AuroraMiddleware/gtk
Make a GObject (#75970, James Henstridge)
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkclipboard.[ch]: Make a GObject (#75970, James Henstridge)
This commit is contained in:
parent
6a7d4ee3ae
commit
273f99112e
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Tue Sep 24 18:18:36 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkclipboard.[ch]: Make a GObject (#75970, James
|
||||||
|
Henstridge)
|
||||||
|
|
||||||
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Sep 24 19:45:55 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_get_colormap):
|
||||||
|
@ -34,11 +34,15 @@
|
|||||||
#include "win32/gdkwin32.h"
|
#include "win32/gdkwin32.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct _GtkClipboardClass GtkClipboardClass;
|
||||||
|
|
||||||
typedef struct _RequestContentsInfo RequestContentsInfo;
|
typedef struct _RequestContentsInfo RequestContentsInfo;
|
||||||
typedef struct _RequestTextInfo RequestTextInfo;
|
typedef struct _RequestTextInfo RequestTextInfo;
|
||||||
|
|
||||||
struct _GtkClipboard
|
struct _GtkClipboard
|
||||||
{
|
{
|
||||||
|
GObjectClass parent_instance;
|
||||||
|
|
||||||
GdkAtom selection;
|
GdkAtom selection;
|
||||||
|
|
||||||
GtkClipboardGetFunc get_func;
|
GtkClipboardGetFunc get_func;
|
||||||
@ -52,6 +56,11 @@ struct _GtkClipboard
|
|||||||
GdkDisplay *display;
|
GdkDisplay *display;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _GtkClipboardClass
|
||||||
|
{
|
||||||
|
GObjectClass parent_class;
|
||||||
|
};
|
||||||
|
|
||||||
struct _RequestContentsInfo
|
struct _RequestContentsInfo
|
||||||
{
|
{
|
||||||
GtkClipboardReceivedFunc callback;
|
GtkClipboardReceivedFunc callback;
|
||||||
@ -64,6 +73,9 @@ struct _RequestTextInfo
|
|||||||
gpointer user_data;
|
gpointer user_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void gtk_clipboard_class_init (GtkClipboardClass *class);
|
||||||
|
static void gtk_clipboard_finalize (GObject *object);
|
||||||
|
|
||||||
static void clipboard_unset (GtkClipboard *clipboard);
|
static void clipboard_unset (GtkClipboard *clipboard);
|
||||||
static void selection_received (GtkWidget *widget,
|
static void selection_received (GtkWidget *widget,
|
||||||
GtkSelectionData *selection_data,
|
GtkSelectionData *selection_data,
|
||||||
@ -81,7 +93,66 @@ static GQuark request_contents_key_id = 0;
|
|||||||
|
|
||||||
static const gchar *clipboards_owned_key = "gtk-clipboards-owned";
|
static const gchar *clipboards_owned_key = "gtk-clipboards-owned";
|
||||||
static GQuark clipboards_owned_key_id = 0;
|
static GQuark clipboards_owned_key_id = 0;
|
||||||
|
|
||||||
|
GObjectClass *parent_class;
|
||||||
|
|
||||||
|
GType
|
||||||
|
gtk_clipboard_get_type (void)
|
||||||
|
{
|
||||||
|
static GType clipboard_type = 0;
|
||||||
|
|
||||||
|
if (!clipboard_type)
|
||||||
|
{
|
||||||
|
static const GTypeInfo clipboard_info =
|
||||||
|
{
|
||||||
|
sizeof (GtkClipboardClass),
|
||||||
|
NULL, /* base_init */
|
||||||
|
NULL, /* base_finalize */
|
||||||
|
(GClassInitFunc) gtk_clipboard_class_init,
|
||||||
|
NULL, /* class_finalize */
|
||||||
|
NULL, /* class_data */
|
||||||
|
sizeof (GtkClipboard),
|
||||||
|
0, /* n_preallocs */
|
||||||
|
(GInstanceInitFunc) NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
clipboard_type = g_type_register_static (G_TYPE_OBJECT, "GtkClipboard", &clipboard_info, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return clipboard_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_clipboard_class_init (GtkClipboardClass *class)
|
||||||
|
{
|
||||||
|
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
|
||||||
|
|
||||||
|
parent_class = g_type_class_peek_parent (class);
|
||||||
|
|
||||||
|
gobject_class->finalize = gtk_clipboard_finalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_clipboard_finalize (GObject *object)
|
||||||
|
{
|
||||||
|
clipboard_unset (GTK_CLIPBOARD (object));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
clipboard_display_closed (GdkDisplay *display,
|
||||||
|
gboolean is_error,
|
||||||
|
GtkClipboard *clipboard)
|
||||||
|
{
|
||||||
|
GSList *clipboards;
|
||||||
|
|
||||||
|
clipboards = g_object_get_data (G_OBJECT (display), "gtk-clipboard-list");
|
||||||
|
g_object_run_dispose (G_OBJECT (clipboard));
|
||||||
|
g_object_unref (clipboard);
|
||||||
|
clipboards = g_slist_remove (clipboards, clipboard);
|
||||||
|
|
||||||
|
g_object_set_data (G_OBJECT (display), "gtk-clipboard-list", clipboards);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_clipboard_get_for_display:
|
* gtk_clipboard_get_for_display:
|
||||||
* @display: the display for which the clipboard is to be retrieved or created
|
* @display: the display for which the clipboard is to be retrieved or created
|
||||||
@ -128,6 +199,7 @@ gtk_clipboard_get_for_display (GdkDisplay *display, GdkAtom selection)
|
|||||||
GSList *tmp_list;
|
GSList *tmp_list;
|
||||||
|
|
||||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
|
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
|
||||||
|
g_return_val_if_fail (!display->closed, NULL);
|
||||||
|
|
||||||
if (selection == GDK_NONE)
|
if (selection == GDK_NONE)
|
||||||
selection = GDK_SELECTION_CLIPBOARD;
|
selection = GDK_SELECTION_CLIPBOARD;
|
||||||
@ -146,11 +218,13 @@ gtk_clipboard_get_for_display (GdkDisplay *display, GdkAtom selection)
|
|||||||
|
|
||||||
if (!tmp_list)
|
if (!tmp_list)
|
||||||
{
|
{
|
||||||
clipboard = g_new0 (GtkClipboard, 1);
|
clipboard = g_object_new (GTK_TYPE_CLIPBOARD, NULL);
|
||||||
clipboard->selection = selection;
|
clipboard->selection = selection;
|
||||||
clipboard->display = display;
|
clipboard->display = display;
|
||||||
clipboards = g_slist_prepend (clipboards, clipboard);
|
clipboards = g_slist_prepend (clipboards, clipboard);
|
||||||
g_object_set_data (G_OBJECT (display), "gtk-clipboard-list", clipboards);
|
g_object_set_data (G_OBJECT (display), "gtk-clipboard-list", clipboards);
|
||||||
|
g_signal_connect (display, "closed",
|
||||||
|
G_CALLBACK (clipboard_display_closed), clipboard);
|
||||||
}
|
}
|
||||||
|
|
||||||
return clipboard;
|
return clipboard;
|
||||||
|
@ -28,6 +28,9 @@ extern "C" {
|
|||||||
|
|
||||||
#include <gtk/gtkselection.h>
|
#include <gtk/gtkselection.h>
|
||||||
|
|
||||||
|
#define GTK_TYPE_CLIPBOARD (gtk_clipboard_get_type ())
|
||||||
|
#define GTK_CLIPBOARD(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_CLIPBOARD, GtkClipboard))
|
||||||
|
#define GTK_IS_CLIPBOARD(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_CLIPBOARD))
|
||||||
|
|
||||||
typedef void (* GtkClipboardReceivedFunc) (GtkClipboard *clipboard,
|
typedef void (* GtkClipboardReceivedFunc) (GtkClipboard *clipboard,
|
||||||
GtkSelectionData *selection_data,
|
GtkSelectionData *selection_data,
|
||||||
@ -47,6 +50,8 @@ typedef void (* GtkClipboardGetFunc) (GtkClipboard *clipboard,
|
|||||||
typedef void (* GtkClipboardClearFunc) (GtkClipboard *clipboard,
|
typedef void (* GtkClipboardClearFunc) (GtkClipboard *clipboard,
|
||||||
gpointer user_data_or_owner);
|
gpointer user_data_or_owner);
|
||||||
|
|
||||||
|
GType gtk_clipboard_get_type (void);
|
||||||
|
|
||||||
GtkClipboard *gtk_clipboard_get_for_display (GdkDisplay *display,
|
GtkClipboard *gtk_clipboard_get_for_display (GdkDisplay *display,
|
||||||
GdkAtom selection);
|
GdkAtom selection);
|
||||||
#ifndef GDK_MULTIHEAD_SAFE
|
#ifndef GDK_MULTIHEAD_SAFE
|
||||||
|
Loading…
Reference in New Issue
Block a user