clipboard: Implement gdk_clipboard_read()
This commit is contained in:
@@ -113,6 +113,14 @@ gdk_clipboard_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (gdk_clipboard_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static GInputStream *
|
||||
gdk_clipboard_real_read (GdkClipboard *clipboard,
|
||||
const char *mime_type)
|
||||
{
|
||||
/* whoop whooop */
|
||||
return g_memory_input_stream_new ();
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_clipboard_class_init (GdkClipboardClass *class)
|
||||
{
|
||||
@@ -122,6 +130,8 @@ gdk_clipboard_class_init (GdkClipboardClass *class)
|
||||
object_class->set_property = gdk_clipboard_set_property;
|
||||
object_class->finalize = gdk_clipboard_finalize;
|
||||
|
||||
class->read = gdk_clipboard_real_read;
|
||||
|
||||
/**
|
||||
* GdkClipboard:display:
|
||||
*
|
||||
@@ -227,6 +237,19 @@ gdk_clipboard_get_formats (GdkClipboard *clipboard)
|
||||
return priv->formats;
|
||||
}
|
||||
|
||||
GInputStream *
|
||||
gdk_clipboard_read (GdkClipboard *clipboard,
|
||||
const char *mime_type)
|
||||
{
|
||||
GdkClipboardPrivate *priv = gdk_clipboard_get_instance_private (clipboard);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_CLIPBOARD (clipboard), NULL);
|
||||
g_return_val_if_fail (mime_type != NULL, NULL);
|
||||
g_return_val_if_fail (gdk_content_formats_contain_mime_type (priv->formats, mime_type), NULL);
|
||||
|
||||
return GDK_CLIPBOARD_GET_CLASS (clipboard)->read (clipboard, mime_type);
|
||||
}
|
||||
|
||||
GdkClipboard *
|
||||
gdk_clipboard_new (GdkDisplay *display)
|
||||
{
|
||||
|
||||
@@ -42,6 +42,9 @@ GdkDisplay * gdk_clipboard_get_display (GdkClipboard *
|
||||
GDK_AVAILABLE_IN_3_94
|
||||
GdkContentFormats * gdk_clipboard_get_formats (GdkClipboard *clipboard);
|
||||
|
||||
GDK_AVAILABLE_IN_3_94
|
||||
GInputStream * gdk_clipboard_read (GdkClipboard *clipboard,
|
||||
const char *mime_type);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -38,9 +38,11 @@ struct _GdkClipboardClass
|
||||
GObjectClass parent_class;
|
||||
|
||||
/* signals */
|
||||
void (* changed) (GdkClipboard *clipboard);
|
||||
void (* changed) (GdkClipboard *clipboard);
|
||||
|
||||
/* vfuncs */
|
||||
GInputStream * (* read) (GdkClipboard *clipboard,
|
||||
const char *mime_type);
|
||||
};
|
||||
|
||||
GdkClipboard * gdk_clipboard_new (GdkDisplay *display);
|
||||
|
||||
@@ -180,13 +180,27 @@ gdk_x11_clipboard_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (gdk_x11_clipboard_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static GInputStream *
|
||||
gdk_x11_clipboard_read (GdkClipboard *clipboard,
|
||||
const char *mime_type)
|
||||
{
|
||||
GdkX11Clipboard *cb = GDK_X11_CLIPBOARD (clipboard);
|
||||
|
||||
return gdk_x11_selection_input_stream_new (gdk_clipboard_get_display (GDK_CLIPBOARD (cb)),
|
||||
cb->selection,
|
||||
mime_type,
|
||||
cb->timestamp);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_x11_clipboard_class_init (GdkX11ClipboardClass *class)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (class);
|
||||
//GdkClipboardClass *clipboard_class = GDK_CLIPBOARD_CLASS (class);
|
||||
GdkClipboardClass *clipboard_class = GDK_CLIPBOARD_CLASS (class);
|
||||
|
||||
object_class->finalize = gdk_x11_clipboard_finalize;
|
||||
|
||||
clipboard_class->read = gdk_x11_clipboard_read;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user