added virtual function GimpViewable::get_size() and public API
2005-05-25 Michael Natterer <mitch@gimp.org> * app/core/gimpviewable.[ch]: added virtual function GimpViewable::get_size() and public API gimp_viewable_get_size() which return width and height and a boolean indicating if the viewable has a size at all. Added default implementation of GimpViewable::get_popup_size() using the new get_size() API. * app/core/gimpbrush.c * app/core/gimpbuffer.c * app/core/gimpdrawable.c * app/core/gimpimage.c * app/core/gimppattern.c: implement GimpViewable::get_size(). * app/core/gimpbrush.c * app/core/gimppattern.c: removed GimpViewable::get_popup_size() implementations, the default one is good enough. * app/core/gimpbrushpipe.c (gimp_brush_pipe_get_popup_size): redirect to gimp_viewable_get_size() instead of duplicating its return values. * app/widgets/gimpcontainertreeview.c * app/widgets/gimpview.c: allow pixbuf dragging out of any viewable that has a size. * app/widgets/gimpdrawabletreeview.c: removed pixbuf dragging code here. * app/widgets/gimpdnd.c: set gimp busy around encoding/decoding pixbufs into/from GtkSelectionData, because it can be a time consuming operation.
This commit is contained in:
committed by
Michael Natterer
parent
4bbeec9640
commit
7abaab62e0
@ -41,6 +41,9 @@ static void gimp_buffer_finalize (GObject *object);
|
||||
static gint64 gimp_buffer_get_memsize (GimpObject *object,
|
||||
gint64 *gui_size);
|
||||
|
||||
static gboolean gimp_buffer_get_size (GimpViewable *viewable,
|
||||
gint *width,
|
||||
gint *height);
|
||||
static void gimp_buffer_get_preview_size (GimpViewable *viewable,
|
||||
gint size,
|
||||
gboolean is_popup,
|
||||
@ -105,6 +108,7 @@ gimp_buffer_class_init (GimpBufferClass *klass)
|
||||
gimp_object_class->get_memsize = gimp_buffer_get_memsize;
|
||||
|
||||
viewable_class->default_stock_id = "gtk-paste";
|
||||
viewable_class->get_size = gimp_buffer_get_size;
|
||||
viewable_class->get_preview_size = gimp_buffer_get_preview_size;
|
||||
viewable_class->get_popup_size = gimp_buffer_get_popup_size;
|
||||
viewable_class->get_new_preview = gimp_buffer_get_new_preview;
|
||||
@ -135,11 +139,9 @@ static gint64
|
||||
gimp_buffer_get_memsize (GimpObject *object,
|
||||
gint64 *gui_size)
|
||||
{
|
||||
GimpBuffer *buffer;
|
||||
GimpBuffer *buffer = GIMP_BUFFER (object);
|
||||
gint64 memsize = 0;
|
||||
|
||||
buffer = GIMP_BUFFER (object);
|
||||
|
||||
if (buffer->tiles)
|
||||
memsize += tile_manager_get_memsize (buffer->tiles, FALSE);
|
||||
|
||||
@ -147,6 +149,19 @@ gimp_buffer_get_memsize (GimpObject *object,
|
||||
gui_size);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gimp_buffer_get_size (GimpViewable *viewable,
|
||||
gint *width,
|
||||
gint *height)
|
||||
{
|
||||
GimpBuffer *buffer = GIMP_BUFFER (viewable);
|
||||
|
||||
*width = gimp_buffer_get_width (buffer);
|
||||
*height = gimp_buffer_get_height (buffer);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_buffer_get_preview_size (GimpViewable *viewable,
|
||||
gint size,
|
||||
|
||||
Reference in New Issue
Block a user