mirror of https://github.com/GNOME/gimp.git
libgimp: rename Gimp*SelectButton widgets to Gimp*Chooser.
This name was really irking me because it's not a button (anymore? Maybe it used to be just a button). Depending on the specific widget, it will have several sub-widgets, including a label. And it can theoretically even be something else than a button. So let's just rename these widgets with the more generic "chooser" name.
This commit is contained in:
parent
55d6f6c26e
commit
62a3889617
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpbrushselectbutton.c
|
||||
* gimpbrushchooser.c
|
||||
* Copyright (C) 1998 Andy Thomas
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
|
@ -29,15 +29,15 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimpbrushselectbutton.h"
|
||||
#include "gimpbrushchooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimpbrushselectbutton
|
||||
* @title: GimpBrushSelectButton
|
||||
* SECTION: gimpbrushchooser
|
||||
* @title: GimpBrushChooser
|
||||
* @short_description: A button which pops up a brush selection dialog.
|
||||
*
|
||||
* A button which pops up a brush selection dialog.
|
||||
|
@ -48,61 +48,61 @@
|
|||
|
||||
#define CELL_SIZE 40
|
||||
|
||||
struct _GimpBrushSelectButton
|
||||
struct _GimpBrushChooser
|
||||
{
|
||||
GimpResourceSelectButton parent_instance;
|
||||
GimpResourceChooser parent_instance;
|
||||
|
||||
GtkWidget *preview;
|
||||
GtkWidget *popup;
|
||||
GtkWidget *preview;
|
||||
GtkWidget *popup;
|
||||
|
||||
GimpBrush *brush;
|
||||
gint width;
|
||||
gint height;
|
||||
GeglBuffer *buffer;
|
||||
GeglBuffer *mask;
|
||||
GimpBrush *brush;
|
||||
gint width;
|
||||
gint height;
|
||||
GeglBuffer *buffer;
|
||||
GeglBuffer *mask;
|
||||
};
|
||||
|
||||
|
||||
static void gimp_brush_select_button_finalize (GObject *object);
|
||||
static void gimp_brush_chooser_finalize (GObject *object);
|
||||
|
||||
static gboolean gimp_brush_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpBrushSelectButton *button);
|
||||
static gboolean gimp_brush_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpBrushChooser *button);
|
||||
|
||||
static void gimp_brush_select_preview_draw (GimpBrushSelectButton *chooser,
|
||||
GimpPreviewArea *area);
|
||||
static void gimp_brush_select_preview_draw (GimpBrushChooser *chooser,
|
||||
GimpPreviewArea *area);
|
||||
|
||||
static void gimp_brush_select_button_draw (GimpBrushSelectButton *self);
|
||||
static void gimp_brush_select_button_get_brush_bitmap (GimpBrushSelectButton *self,
|
||||
gint width,
|
||||
gint height);
|
||||
static void gimp_brush_chooser_draw (GimpBrushChooser *self);
|
||||
static void gimp_brush_chooser_get_brush_bitmap (GimpBrushChooser *self,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/* Popup methods. */
|
||||
static void gimp_brush_select_button_open_popup (GimpBrushSelectButton *button,
|
||||
gint x,
|
||||
gint y);
|
||||
static void gimp_brush_select_button_close_popup (GimpBrushSelectButton *button);
|
||||
static void gimp_brush_chooser_open_popup (GimpBrushChooser *button,
|
||||
gint x,
|
||||
gint y);
|
||||
static void gimp_brush_chooser_close_popup (GimpBrushChooser *button);
|
||||
|
||||
|
||||
static const GtkTargetEntry drag_target = { "application/x-gimp-brush-name", 0, 0 };
|
||||
|
||||
G_DEFINE_FINAL_TYPE (GimpBrushSelectButton, gimp_brush_select_button, GIMP_TYPE_RESOURCE_SELECT_BUTTON)
|
||||
G_DEFINE_FINAL_TYPE (GimpBrushChooser, gimp_brush_chooser, GIMP_TYPE_RESOURCE_CHOOSER)
|
||||
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_class_init (GimpBrushSelectButtonClass *klass)
|
||||
gimp_brush_chooser_class_init (GimpBrushChooserClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
GimpResourceSelectButtonClass *res_class = GIMP_RESOURCE_SELECT_BUTTON_CLASS (klass);
|
||||
GimpResourceChooserClass *res_class = GIMP_RESOURCE_CHOOSER_CLASS (klass);
|
||||
|
||||
res_class->draw_interior = (void (*)(GimpResourceSelectButton *)) gimp_brush_select_button_draw;
|
||||
res_class->draw_interior = (void (*)(GimpResourceChooser *)) gimp_brush_chooser_draw;
|
||||
res_class->resource_type = GIMP_TYPE_BRUSH;
|
||||
|
||||
object_class->finalize = gimp_brush_select_button_finalize;
|
||||
object_class->finalize = gimp_brush_chooser_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_init (GimpBrushSelectButton *chooser)
|
||||
gimp_brush_chooser_init (GimpBrushChooser *chooser)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
gint scale_factor = gtk_widget_get_scale_factor (GTK_WIDGET (chooser));
|
||||
|
@ -124,7 +124,7 @@ gimp_brush_select_button_init (GimpBrushSelectButton *chooser)
|
|||
gtk_widget_show (chooser->preview);
|
||||
|
||||
g_signal_connect_swapped (chooser->preview, "size-allocate",
|
||||
G_CALLBACK (gimp_brush_select_button_draw),
|
||||
G_CALLBACK (gimp_brush_chooser_draw),
|
||||
chooser);
|
||||
|
||||
g_signal_connect (chooser->preview, "event",
|
||||
|
@ -134,28 +134,28 @@ gimp_brush_select_button_init (GimpBrushSelectButton *chooser)
|
|||
widget = gtk_button_new_with_mnemonic (_("_Browse..."));
|
||||
gtk_box_pack_start (GTK_BOX (chooser), widget, FALSE, FALSE, 0);
|
||||
|
||||
gimp_resource_select_button_set_drag_target (GIMP_RESOURCE_SELECT_BUTTON (chooser),
|
||||
gimp_resource_chooser_set_drag_target (GIMP_RESOURCE_CHOOSER (chooser),
|
||||
chooser->preview,
|
||||
&drag_target);
|
||||
|
||||
gimp_resource_select_button_set_clickable (GIMP_RESOURCE_SELECT_BUTTON (chooser),
|
||||
gimp_resource_chooser_set_clickable (GIMP_RESOURCE_CHOOSER (chooser),
|
||||
widget);
|
||||
gtk_widget_show (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_finalize (GObject *object)
|
||||
gimp_brush_chooser_finalize (GObject *object)
|
||||
{
|
||||
GimpBrushSelectButton *chooser = GIMP_BRUSH_SELECT_BUTTON (object);
|
||||
GimpBrushChooser *chooser = GIMP_BRUSH_CHOOSER (object);
|
||||
|
||||
g_clear_object (&chooser->buffer);
|
||||
g_clear_object (&chooser->mask);
|
||||
|
||||
G_OBJECT_CLASS (gimp_brush_select_button_parent_class)->finalize (object);
|
||||
G_OBJECT_CLASS (gimp_brush_chooser_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_brush_select_button_new:
|
||||
* gimp_brush_chooser_new:
|
||||
* @title: (nullable): Title of the dialog to use or %NULL to use the default title.
|
||||
* @label: (nullable): Button label or %NULL for no label.
|
||||
* @resource: (nullable): Initial brush.
|
||||
|
@ -170,9 +170,9 @@ gimp_brush_select_button_finalize (GObject *object)
|
|||
* Since: 2.4
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_brush_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
gimp_brush_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
{
|
||||
GtkWidget *self;
|
||||
|
||||
|
@ -180,13 +180,13 @@ gimp_brush_select_button_new (const gchar *title,
|
|||
resource = GIMP_RESOURCE (gimp_context_get_brush ());
|
||||
|
||||
if (title)
|
||||
self = g_object_new (GIMP_TYPE_BRUSH_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_BRUSH_CHOOSER,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
else
|
||||
self = g_object_new (GIMP_TYPE_BRUSH_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_BRUSH_CHOOSER,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
|
@ -197,20 +197,20 @@ gimp_brush_select_button_new (const gchar *title,
|
|||
/* private functions */
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_draw (GimpBrushSelectButton *chooser)
|
||||
gimp_brush_chooser_draw (GimpBrushChooser *chooser)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (chooser->preview, &allocation);
|
||||
|
||||
gimp_brush_select_button_get_brush_bitmap (chooser, allocation.width, allocation.height);
|
||||
gimp_brush_chooser_get_brush_bitmap (chooser, allocation.width, allocation.height);
|
||||
gimp_brush_select_preview_draw (chooser, GIMP_PREVIEW_AREA (chooser->preview));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_get_brush_bitmap (GimpBrushSelectButton *chooser,
|
||||
gint width,
|
||||
gint height)
|
||||
gimp_brush_chooser_get_brush_bitmap (GimpBrushChooser *chooser,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GimpBrush *brush;
|
||||
|
||||
|
@ -297,9 +297,9 @@ gimp_brush_select_button_get_brush_bitmap (GimpBrushSelectButton *chooser,
|
|||
|
||||
/* On mouse events in self's preview, popup a zoom view of entire brush */
|
||||
static gboolean
|
||||
gimp_brush_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpBrushSelectButton *self)
|
||||
gimp_brush_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpBrushChooser *self)
|
||||
{
|
||||
GdkEventButton *bevent;
|
||||
|
||||
|
@ -311,7 +311,7 @@ gimp_brush_select_on_preview_events (GtkWidget *widget,
|
|||
if (bevent->button == 1)
|
||||
{
|
||||
gtk_grab_add (widget);
|
||||
gimp_brush_select_button_open_popup (self,
|
||||
gimp_brush_chooser_open_popup (self,
|
||||
bevent->x, bevent->y);
|
||||
}
|
||||
break;
|
||||
|
@ -322,7 +322,7 @@ gimp_brush_select_on_preview_events (GtkWidget *widget,
|
|||
if (bevent->button == 1)
|
||||
{
|
||||
gtk_grab_remove (widget);
|
||||
gimp_brush_select_button_close_popup (self);
|
||||
gimp_brush_chooser_close_popup (self);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -335,8 +335,8 @@ gimp_brush_select_on_preview_events (GtkWidget *widget,
|
|||
|
||||
/* Draw a GimpPreviewArea with a given bitmap. */
|
||||
static void
|
||||
gimp_brush_select_preview_draw (GimpBrushSelectButton *chooser,
|
||||
GimpPreviewArea *preview)
|
||||
gimp_brush_select_preview_draw (GimpBrushChooser *chooser,
|
||||
GimpPreviewArea *preview)
|
||||
{
|
||||
GimpPreviewArea *area = GIMP_PREVIEW_AREA (preview);
|
||||
GeglBuffer *src_buffer;
|
||||
|
@ -394,9 +394,9 @@ gimp_brush_select_preview_draw (GimpBrushSelectButton *chooser,
|
|||
/* popup methods. */
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_open_popup (GimpBrushSelectButton *chooser,
|
||||
gint x,
|
||||
gint y)
|
||||
gimp_brush_chooser_open_popup (GimpBrushChooser *chooser,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *preview;
|
||||
|
@ -406,7 +406,7 @@ gimp_brush_select_button_open_popup (GimpBrushSelectButton *chooser,
|
|||
gint y_org;
|
||||
|
||||
if (chooser->popup)
|
||||
gimp_brush_select_button_close_popup (chooser);
|
||||
gimp_brush_chooser_close_popup (chooser);
|
||||
|
||||
if (chooser->width <= CELL_SIZE && chooser->height <= CELL_SIZE)
|
||||
return;
|
||||
|
@ -450,7 +450,7 @@ gimp_brush_select_button_open_popup (GimpBrushSelectButton *chooser,
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_brush_select_button_close_popup (GimpBrushSelectButton *self)
|
||||
gimp_brush_chooser_close_popup (GimpBrushChooser *self)
|
||||
{
|
||||
g_clear_pointer (&self->popup, gtk_widget_destroy);
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpfontselectbutton.h
|
||||
* gimpbrushchooser.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -22,25 +22,22 @@
|
|||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_FONT_SELECT_BUTTON_H__
|
||||
#define __GIMP_FONT_SELECT_BUTTON_H__
|
||||
#ifndef __GIMP_BRUSH_CHOOSER_H__
|
||||
#define __GIMP_BRUSH_CHOOSER_H__
|
||||
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_FONT_SELECT_BUTTON (gimp_font_select_button_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpFontSelectButton,
|
||||
gimp_font_select_button,
|
||||
GIMP, FONT_SELECT_BUTTON,
|
||||
GimpResourceSelectButton)
|
||||
#define GIMP_TYPE_BRUSH_CHOOSER (gimp_brush_chooser_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpBrushChooser, gimp_brush_chooser, GIMP, BRUSH_CHOOSER, GimpResourceChooser)
|
||||
|
||||
|
||||
GtkWidget * gimp_font_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_brush_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_FONT_SELECT_BUTTON_H__ */
|
||||
#endif /* __GIMP_BRUSH_CHOOSER_H__ */
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpfontselectbutton.c
|
||||
* gimpfontchooser.c
|
||||
* Copyright (C) 2003 Sven Neumann <sven@gimp.org>
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
|
@ -29,50 +29,48 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimpfontselectbutton.h"
|
||||
#include "gimpfontchooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimpfontselectbutton
|
||||
* @title: GimpFontSelectButton
|
||||
* SECTION: gimpfontchooser
|
||||
* @title: GimpFontChooser
|
||||
* @short_description: A button which pops up a font selection dialog.
|
||||
*
|
||||
* A button which pops up a font selection dialog.
|
||||
**/
|
||||
|
||||
struct _GimpFontSelectButton
|
||||
struct _GimpFontChooser
|
||||
{
|
||||
GimpResourceSelectButton parent_instance;
|
||||
GimpResourceChooser parent_instance;
|
||||
|
||||
GtkWidget *label;
|
||||
GtkWidget *label;
|
||||
};
|
||||
|
||||
|
||||
static void gimp_font_select_button_draw_interior (GimpResourceSelectButton *self);
|
||||
static void gimp_font_chooser_draw_interior (GimpResourceChooser *self);
|
||||
|
||||
|
||||
static const GtkTargetEntry drag_target = { "application/x-gimp-font-name", 0, 0 };
|
||||
|
||||
|
||||
G_DEFINE_FINAL_TYPE (GimpFontSelectButton,
|
||||
gimp_font_select_button,
|
||||
GIMP_TYPE_RESOURCE_SELECT_BUTTON)
|
||||
G_DEFINE_FINAL_TYPE (GimpFontChooser, gimp_font_chooser, GIMP_TYPE_RESOURCE_CHOOSER)
|
||||
|
||||
|
||||
static void
|
||||
gimp_font_select_button_class_init (GimpFontSelectButtonClass *klass)
|
||||
gimp_font_chooser_class_init (GimpFontChooserClass *klass)
|
||||
{
|
||||
GimpResourceSelectButtonClass *superclass = GIMP_RESOURCE_SELECT_BUTTON_CLASS (klass);
|
||||
GimpResourceChooserClass *superclass = GIMP_RESOURCE_CHOOSER_CLASS (klass);
|
||||
|
||||
superclass->draw_interior = gimp_font_select_button_draw_interior;
|
||||
superclass->draw_interior = gimp_font_chooser_draw_interior;
|
||||
superclass->resource_type = GIMP_TYPE_FONT;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_font_select_button_init (GimpFontSelectButton *self)
|
||||
gimp_font_chooser_init (GimpFontChooser *self)
|
||||
{
|
||||
GtkWidget *button;
|
||||
GtkWidget *hbox;
|
||||
|
@ -93,22 +91,20 @@ gimp_font_select_button_init (GimpFontSelectButton *self)
|
|||
|
||||
gtk_widget_show_all (GTK_WIDGET (self));
|
||||
|
||||
gimp_resource_select_button_set_drag_target (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
hbox,
|
||||
&drag_target);
|
||||
gimp_resource_chooser_set_drag_target (GIMP_RESOURCE_CHOOSER (self),
|
||||
hbox, &drag_target);
|
||||
|
||||
gimp_resource_select_button_set_clickable (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
button);
|
||||
gimp_resource_chooser_set_clickable (GIMP_RESOURCE_CHOOSER (self), button);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_font_select_button_draw_interior (GimpResourceSelectButton *self)
|
||||
gimp_font_chooser_draw_interior (GimpResourceChooser *self)
|
||||
{
|
||||
GimpFontSelectButton *font_select= GIMP_FONT_SELECT_BUTTON (self);
|
||||
GimpResource *resource;
|
||||
gchar *name = NULL;
|
||||
GimpFontChooser *font_select= GIMP_FONT_CHOOSER (self);
|
||||
GimpResource *resource;
|
||||
gchar *name = NULL;
|
||||
|
||||
resource = gimp_resource_select_button_get_resource (self);
|
||||
resource = gimp_resource_chooser_get_resource (self);
|
||||
|
||||
if (resource)
|
||||
name = gimp_resource_get_name (resource);
|
||||
|
@ -118,7 +114,7 @@ gimp_font_select_button_draw_interior (GimpResourceSelectButton *self)
|
|||
|
||||
|
||||
/**
|
||||
* gimp_font_select_button_new:
|
||||
* gimp_font_chooser_new:
|
||||
* @title: (nullable): Title of the dialog to use or %NULL to use the default title.
|
||||
* @label: (nullable): Button label or %NULL for no label.
|
||||
* @resource: (nullable): Initial font.
|
||||
|
@ -133,11 +129,11 @@ gimp_font_select_button_draw_interior (GimpResourceSelectButton *self)
|
|||
* Since: 2.4
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_font_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
gimp_font_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
{
|
||||
GtkWidget *self;
|
||||
GtkWidget *chooser;
|
||||
|
||||
g_return_val_if_fail (resource == NULL || GIMP_IS_FONT (resource), NULL);
|
||||
|
||||
|
@ -145,18 +141,18 @@ gimp_font_select_button_new (const gchar *title,
|
|||
resource = GIMP_RESOURCE (gimp_context_get_font ());
|
||||
|
||||
if (title)
|
||||
self = g_object_new (GIMP_TYPE_FONT_SELECT_BUTTON,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
chooser = g_object_new (GIMP_TYPE_FONT_CHOOSER,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
else
|
||||
self = g_object_new (GIMP_TYPE_FONT_SELECT_BUTTON,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
chooser = g_object_new (GIMP_TYPE_FONT_CHOOSER,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
|
||||
gimp_font_select_button_draw_interior (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
gimp_font_chooser_draw_interior (GIMP_RESOURCE_CHOOSER (chooser));
|
||||
|
||||
return self;
|
||||
return chooser;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpbrushselectbutton.h
|
||||
* gimpfontchooser.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -22,25 +22,22 @@
|
|||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_BRUSH_SELECT_BUTTON_H__
|
||||
#define __GIMP_BRUSH_SELECT_BUTTON_H__
|
||||
#ifndef __GIMP_FONT_CHOOSER_H__
|
||||
#define __GIMP_FONT_CHOOSER_H__
|
||||
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_BRUSH_SELECT_BUTTON (gimp_brush_select_button_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpBrushSelectButton,
|
||||
gimp_brush_select_button,
|
||||
GIMP, BRUSH_SELECT_BUTTON,
|
||||
GimpResourceSelectButton)
|
||||
#define GIMP_TYPE_FONT_CHOOSER (gimp_font_chooser_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpFontChooser, gimp_font_chooser, GIMP, FONT_CHOOSER, GimpResourceChooser)
|
||||
|
||||
|
||||
GtkWidget * gimp_brush_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_font_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_BRUSH_SELECT_BUTTON_H__ */
|
||||
#endif /* __GIMP_FONT_CHOOSER_H__ */
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpgradientselectbutton.c
|
||||
* gimpgradientchooser.c
|
||||
* Copyright (C) 1998 Andy Thomas
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
|
@ -29,62 +29,62 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimpgradientselectbutton.h"
|
||||
#include "gimpgradientchooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimpgradientselectbutton
|
||||
* @title: GimpGradientSelectButton
|
||||
* SECTION: gimpgradientchooser
|
||||
* @title: GimpGradientChooser
|
||||
* @short_description: A button which pops up a gradient select dialog.
|
||||
*
|
||||
* A button which pops up a gradient select dialog.
|
||||
**/
|
||||
|
||||
|
||||
struct _GimpGradientSelectButton
|
||||
struct _GimpGradientChooser
|
||||
{
|
||||
GimpResourceSelectButton parent_instance;
|
||||
GimpResourceChooser parent_instance;
|
||||
|
||||
GtkWidget *preview;
|
||||
GtkWidget *preview;
|
||||
};
|
||||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static void gimp_gradient_select_button_draw_interior (GimpResourceSelectButton *self);
|
||||
static void gimp_gradient_chooser_draw_interior (GimpResourceChooser *self);
|
||||
|
||||
static void gimp_gradient_select_preview_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation,
|
||||
GimpGradientSelectButton *self);
|
||||
static gboolean gimp_gradient_select_preview_draw_handler (GtkWidget *preview,
|
||||
cairo_t *cr,
|
||||
GimpGradientSelectButton *self);
|
||||
static void gimp_gradient_select_preview_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation,
|
||||
GimpGradientChooser *self);
|
||||
static gboolean gimp_gradient_select_preview_draw_handler (GtkWidget *preview,
|
||||
cairo_t *cr,
|
||||
GimpGradientChooser *self);
|
||||
|
||||
|
||||
static const GtkTargetEntry drag_target = { "application/x-gimp-gradient-name", 0 };
|
||||
|
||||
G_DEFINE_FINAL_TYPE (GimpGradientSelectButton,
|
||||
gimp_gradient_select_button,
|
||||
GIMP_TYPE_RESOURCE_SELECT_BUTTON)
|
||||
G_DEFINE_FINAL_TYPE (GimpGradientChooser,
|
||||
gimp_gradient_chooser,
|
||||
GIMP_TYPE_RESOURCE_CHOOSER)
|
||||
|
||||
/* Initial dimensions of widget. */
|
||||
#define CELL_HEIGHT 18
|
||||
#define CELL_WIDTH 84
|
||||
|
||||
static void
|
||||
gimp_gradient_select_button_class_init (GimpGradientSelectButtonClass *klass)
|
||||
gimp_gradient_chooser_class_init (GimpGradientChooserClass *klass)
|
||||
{
|
||||
GimpResourceSelectButtonClass *superclass = GIMP_RESOURCE_SELECT_BUTTON_CLASS (klass);
|
||||
GimpResourceChooserClass *superclass = GIMP_RESOURCE_CHOOSER_CLASS (klass);
|
||||
|
||||
superclass->draw_interior = gimp_gradient_select_button_draw_interior;
|
||||
superclass->draw_interior = gimp_gradient_chooser_draw_interior;
|
||||
superclass->resource_type = GIMP_TYPE_GRADIENT;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_gradient_select_button_init (GimpGradientSelectButton *self)
|
||||
gimp_gradient_chooser_init (GimpGradientChooser *self)
|
||||
{
|
||||
GtkWidget *button;
|
||||
|
||||
|
@ -105,25 +105,23 @@ gimp_gradient_select_button_init (GimpGradientSelectButton *self)
|
|||
|
||||
gtk_widget_show_all (GTK_WIDGET (self));
|
||||
|
||||
gimp_resource_select_button_set_drag_target (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
self->preview,
|
||||
&drag_target);
|
||||
gimp_resource_chooser_set_drag_target (GIMP_RESOURCE_CHOOSER (self),
|
||||
self->preview, &drag_target);
|
||||
|
||||
gimp_resource_select_button_set_clickable (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
button);
|
||||
gimp_resource_chooser_set_clickable (GIMP_RESOURCE_CHOOSER (self), button);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_gradient_select_button_draw_interior (GimpResourceSelectButton *self)
|
||||
gimp_gradient_chooser_draw_interior (GimpResourceChooser *self)
|
||||
{
|
||||
GimpGradientSelectButton *gradient_select = GIMP_GRADIENT_SELECT_BUTTON (self);
|
||||
GimpGradientChooser *gradient_select = GIMP_GRADIENT_CHOOSER (self);
|
||||
|
||||
gtk_widget_queue_draw (gradient_select->preview);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gimp_gradient_select_button_new:
|
||||
* gimp_gradient_chooser_new:
|
||||
* @title: (nullable): Title of the dialog to use or %NULL to use the default title.
|
||||
* @label: (nullable): Button label or %NULL for no label.
|
||||
* @gradient: (nullable): Initial gradient.
|
||||
|
@ -136,9 +134,9 @@ gimp_gradient_select_button_draw_interior (GimpResourceSelectButton *self)
|
|||
* Since: 2.4
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_gradient_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *gradient)
|
||||
gimp_gradient_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *gradient)
|
||||
{
|
||||
GtkWidget *self;
|
||||
|
||||
|
@ -146,18 +144,18 @@ gimp_gradient_select_button_new (const gchar *title,
|
|||
gradient = GIMP_RESOURCE (gimp_context_get_gradient ());
|
||||
|
||||
if (title)
|
||||
self = g_object_new (GIMP_TYPE_GRADIENT_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_GRADIENT_CHOOSER,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", gradient,
|
||||
NULL);
|
||||
else
|
||||
self = g_object_new (GIMP_TYPE_GRADIENT_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_GRADIENT_CHOOSER,
|
||||
"label", label,
|
||||
"resource", gradient,
|
||||
NULL);
|
||||
|
||||
gimp_gradient_select_button_draw_interior (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
gimp_gradient_chooser_draw_interior (GIMP_RESOURCE_CHOOSER (self));
|
||||
|
||||
return self;
|
||||
}
|
||||
|
@ -170,10 +168,10 @@ gimp_gradient_select_button_new (const gchar *title,
|
|||
* Return success.
|
||||
*/
|
||||
static gboolean
|
||||
get_gradient_data (GimpGradientSelectButton *self,
|
||||
gint allocation_width,
|
||||
gint *sample_count,
|
||||
gdouble **sample_array)
|
||||
get_gradient_data (GimpGradientChooser *self,
|
||||
gint allocation_width,
|
||||
gint *sample_count,
|
||||
gdouble **sample_array)
|
||||
{
|
||||
GimpGradient *gradient;
|
||||
gboolean result;
|
||||
|
@ -204,9 +202,9 @@ get_gradient_data (GimpGradientSelectButton *self,
|
|||
|
||||
/* Called on widget resized. */
|
||||
static void
|
||||
gimp_gradient_select_preview_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation,
|
||||
GimpGradientSelectButton *self)
|
||||
gimp_gradient_select_preview_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation,
|
||||
GimpGradientChooser *self)
|
||||
{
|
||||
/* Do nothing.
|
||||
*
|
||||
|
@ -225,10 +223,10 @@ gimp_gradient_select_preview_size_allocate (GtkWidget *widget,
|
|||
* This understands mostly cairo, and little about gradient.
|
||||
*/
|
||||
static void
|
||||
gimp_gradient_select_preview_draw (cairo_t *cr,
|
||||
gint src_width,
|
||||
gint dest_width,
|
||||
gdouble *src)
|
||||
gimp_gradient_select_preview_draw (cairo_t *cr,
|
||||
gint src_width,
|
||||
gint dest_width,
|
||||
gdouble *src)
|
||||
{
|
||||
cairo_pattern_t *pattern;
|
||||
cairo_surface_t *surface;
|
||||
|
@ -270,8 +268,6 @@ gimp_gradient_select_preview_draw (cairo_t *cr,
|
|||
cairo_paint (cr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Handles a draw signal.
|
||||
* Draw self, i.e. interior of button.
|
||||
*
|
||||
|
@ -280,9 +276,9 @@ gimp_gradient_select_preview_draw (cairo_t *cr,
|
|||
* Is passed neither gradient nor attributes of gradient: get them now from self.
|
||||
*/
|
||||
static gboolean
|
||||
gimp_gradient_select_preview_draw_handler (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
GimpGradientSelectButton *self)
|
||||
gimp_gradient_select_preview_draw_handler (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
GimpGradientChooser *self)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimppatternselectbutton.h
|
||||
* gimpgradientchooser.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -22,25 +22,22 @@
|
|||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_PATTERN_SELECT_BUTTON_H__
|
||||
#define __GIMP_PATTERN_SELECT_BUTTON_H__
|
||||
#ifndef __GIMP_GRADIENT_CHOOSER_H__
|
||||
#define __GIMP_GRADIENT_CHOOSER_H__
|
||||
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_PATTERN_SELECT_BUTTON (gimp_pattern_select_button_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpPatternSelectButton,
|
||||
gimp_pattern_select_button,
|
||||
GIMP, PATTERN_SELECT_BUTTON,
|
||||
GimpResourceSelectButton)
|
||||
#define GIMP_TYPE_GRADIENT_CHOOSER (gimp_gradient_chooser_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpGradientChooser, gimp_gradient_chooser, GIMP, GRADIENT_CHOOSER, GimpResourceChooser)
|
||||
|
||||
|
||||
GtkWidget * gimp_pattern_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_gradient_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *gradient);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_PATTERN_SELECT_BUTTON_H__ */
|
||||
#endif /* __GIMP_GRADIENT_CHOOSER_H__ */
|
|
@ -1,47 +0,0 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpgradientselectbutton.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined (__GIMP_UI_H_INSIDE__) && !defined (GIMP_COMPILATION)
|
||||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_GRADIENT_SELECT_BUTTON_H__
|
||||
#define __GIMP_GRADIENT_SELECT_BUTTON_H__
|
||||
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_GRADIENT_SELECT_BUTTON (gimp_gradient_select_button_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpGradientSelectButton,
|
||||
gimp_gradient_select_button,
|
||||
GIMP,
|
||||
GRADIENT_SELECT_BUTTON,
|
||||
GimpResourceSelectButton)
|
||||
|
||||
|
||||
GtkWidget * gimp_gradient_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *gradient);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_GRADIENT_SELECT_BUTTON_H__ */
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimppaletteselectbutton.c
|
||||
* gimppalettechooser.c
|
||||
* Copyright (C) 2004 Michael Natterer <mitch@gimp.org>
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
|
@ -29,51 +29,49 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimppaletteselectbutton.h"
|
||||
#include "gimppalettechooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimppaletteselectbutton
|
||||
* @title: GimpPaletteSelectButton
|
||||
* SECTION: gimppalettechooser
|
||||
* @title: GimpPaletteChooser
|
||||
* @short_description: A button which pops up a palette selection dialog.
|
||||
*
|
||||
* A button which pops up a palette selection dialog.
|
||||
**/
|
||||
|
||||
struct _GimpPaletteSelectButton
|
||||
struct _GimpPaletteChooser
|
||||
{
|
||||
GimpResourceSelectButton parent_instance;
|
||||
GimpResourceChooser parent_instance;
|
||||
|
||||
GtkWidget *label;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *button;
|
||||
};
|
||||
|
||||
|
||||
static void gimp_palette_select_button_draw_interior (GimpResourceSelectButton *self);
|
||||
static void gimp_palette_chooser_draw_interior (GimpResourceChooser *self);
|
||||
|
||||
|
||||
static const GtkTargetEntry drag_target = { "application/x-gimp-palette-name", 0, 0 };
|
||||
|
||||
|
||||
G_DEFINE_FINAL_TYPE (GimpPaletteSelectButton,
|
||||
gimp_palette_select_button,
|
||||
GIMP_TYPE_RESOURCE_SELECT_BUTTON)
|
||||
G_DEFINE_FINAL_TYPE (GimpPaletteChooser, gimp_palette_chooser, GIMP_TYPE_RESOURCE_CHOOSER)
|
||||
|
||||
|
||||
static void
|
||||
gimp_palette_select_button_class_init (GimpPaletteSelectButtonClass *klass)
|
||||
gimp_palette_chooser_class_init (GimpPaletteChooserClass *klass)
|
||||
{
|
||||
GimpResourceSelectButtonClass *superclass = GIMP_RESOURCE_SELECT_BUTTON_CLASS (klass);
|
||||
GimpResourceChooserClass *superclass = GIMP_RESOURCE_CHOOSER_CLASS (klass);
|
||||
|
||||
superclass->draw_interior = gimp_palette_select_button_draw_interior;
|
||||
superclass->draw_interior = gimp_palette_chooser_draw_interior;
|
||||
superclass->resource_type = GIMP_TYPE_PALETTE;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_palette_select_button_init (GimpPaletteSelectButton *self)
|
||||
gimp_palette_chooser_init (GimpPaletteChooser *self)
|
||||
{
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *image;
|
||||
|
@ -93,21 +91,19 @@ gimp_palette_select_button_init (GimpPaletteSelectButton *self)
|
|||
|
||||
gtk_widget_show_all (GTK_WIDGET (self));
|
||||
|
||||
gimp_resource_select_button_set_drag_target (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
hbox,
|
||||
&drag_target);
|
||||
gimp_resource_select_button_set_clickable (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
self->button);
|
||||
gimp_resource_chooser_set_drag_target (GIMP_RESOURCE_CHOOSER (self),
|
||||
hbox, &drag_target);
|
||||
gimp_resource_chooser_set_clickable (GIMP_RESOURCE_CHOOSER (self), self->button);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_palette_select_button_draw_interior (GimpResourceSelectButton *self)
|
||||
gimp_palette_chooser_draw_interior (GimpResourceChooser *self)
|
||||
{
|
||||
GimpPaletteSelectButton *palette_select= GIMP_PALETTE_SELECT_BUTTON (self);
|
||||
GimpPaletteChooser *palette_select= GIMP_PALETTE_CHOOSER (self);
|
||||
GimpResource *resource;
|
||||
gchar *name = NULL;
|
||||
|
||||
resource = gimp_resource_select_button_get_resource (self);
|
||||
resource = gimp_resource_chooser_get_resource (self);
|
||||
|
||||
if (resource)
|
||||
name = gimp_resource_get_name (resource);
|
||||
|
@ -115,9 +111,8 @@ gimp_palette_select_button_draw_interior (GimpResourceSelectButton *self)
|
|||
gtk_label_set_text (GTK_LABEL (palette_select->label), name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gimp_palette_select_button_new:
|
||||
* gimp_palette_chooser_new:
|
||||
* @title: (nullable): Title of the dialog to use or %NULL to use the default title.
|
||||
* @label: (nullable): Button label or %NULL for no label.
|
||||
* @resource: (nullable): Initial palette.
|
||||
|
@ -132,9 +127,9 @@ gimp_palette_select_button_draw_interior (GimpResourceSelectButton *self)
|
|||
* Since: 2.4
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_palette_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
gimp_palette_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
{
|
||||
GtkWidget *self;
|
||||
|
||||
|
@ -142,18 +137,18 @@ gimp_palette_select_button_new (const gchar *title,
|
|||
resource = GIMP_RESOURCE (gimp_context_get_palette ());
|
||||
|
||||
if (title)
|
||||
self = g_object_new (GIMP_TYPE_PALETTE_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_PALETTE_CHOOSER,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
else
|
||||
self = g_object_new (GIMP_TYPE_PALETTE_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_PALETTE_CHOOSER,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
|
||||
gimp_palette_select_button_draw_interior (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
gimp_palette_chooser_draw_interior (GIMP_RESOURCE_CHOOSER (self));
|
||||
|
||||
return self;
|
||||
}
|
|
@ -22,25 +22,22 @@
|
|||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_PALETTE_SELECT_BUTTON_H__
|
||||
#define __GIMP_PALETTE_SELECT_BUTTON_H__
|
||||
#ifndef __GIMP_PALETTE_CHOOSER_H__
|
||||
#define __GIMP_PALETTE_CHOOSER_H__
|
||||
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_PALETTE_SELECT_BUTTON (gimp_palette_select_button_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpPaletteSelectButton,
|
||||
gimp_palette_select_button,
|
||||
GIMP, PALETTE_SELECT_BUTTON,
|
||||
GimpResourceSelectButton)
|
||||
#define GIMP_TYPE_PALETTE_CHOOSER (gimp_palette_chooser_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpPaletteChooser, gimp_palette_chooser, GIMP, PALETTE_CHOOSER, GimpResourceChooser)
|
||||
|
||||
|
||||
GtkWidget * gimp_palette_select_button_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_palette_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_PALETTE_SELECT_BUTTON_H__ */
|
||||
#endif /* __GIMP_PALETTE_CHOOSER_H__ */
|
|
@ -1,7 +1,7 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimppatternselectbutton.c
|
||||
* gimppatternchooser.c
|
||||
* Copyright (C) 1998 Andy Thomas
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
|
@ -29,15 +29,15 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimppatternselectbutton.h"
|
||||
#include "gimppatternchooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimppatternselectbutton
|
||||
* @title: GimpPatternSelectButton
|
||||
* SECTION: gimppatternchooser
|
||||
* @title: GimpPatternChooser
|
||||
* @short_description: A button which pops up a pattern selection dialog.
|
||||
*
|
||||
* A button which pops up a pattern selection dialog.
|
||||
|
@ -48,39 +48,39 @@
|
|||
|
||||
#define CELL_SIZE 40
|
||||
|
||||
struct _GimpPatternSelectButton
|
||||
struct _GimpPatternChooser
|
||||
{
|
||||
GimpResourceSelectButton parent_instance;
|
||||
GimpResourceChooser parent_instance;
|
||||
|
||||
GtkWidget *preview;
|
||||
GtkWidget *popup;
|
||||
GtkWidget *preview;
|
||||
GtkWidget *popup;
|
||||
|
||||
GimpPattern *pattern;
|
||||
GeglBuffer *buffer;
|
||||
gint width;
|
||||
gint height;
|
||||
GimpPattern *pattern;
|
||||
GeglBuffer *buffer;
|
||||
gint width;
|
||||
gint height;
|
||||
};
|
||||
|
||||
/* local */
|
||||
|
||||
static gboolean gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpPatternSelectButton *button);
|
||||
static gboolean gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpPatternChooser *button);
|
||||
|
||||
/* local drawing methods. */
|
||||
static void gimp_pattern_select_preview_fill_draw (GimpPatternSelectButton *chooser,
|
||||
GimpPreviewArea *area);
|
||||
static void gimp_pattern_select_preview_fill_draw (GimpPatternChooser *chooser,
|
||||
GimpPreviewArea *area);
|
||||
|
||||
static void gimp_pattern_select_button_draw (GimpResourceSelectButton *self);
|
||||
static void gimp_pattern_select_button_get_pattern_image (GimpPatternSelectButton *self,
|
||||
gint width,
|
||||
gint height);
|
||||
static void gimp_pattern_chooser_draw (GimpResourceChooser *self);
|
||||
static void gimp_pattern_chooser_get_pattern_image (GimpPatternChooser *self,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/* Popup methods. */
|
||||
static void gimp_pattern_select_button_open_popup (GimpPatternSelectButton *button,
|
||||
gint x,
|
||||
gint y);
|
||||
static void gimp_pattern_select_button_close_popup (GimpPatternSelectButton *button);
|
||||
static void gimp_pattern_chooser_open_popup (GimpPatternChooser *button,
|
||||
gint x,
|
||||
gint y);
|
||||
static void gimp_pattern_chooser_close_popup (GimpPatternChooser *button);
|
||||
|
||||
|
||||
/* A GtkTargetEntry has a string and two ints.
|
||||
|
@ -88,20 +88,20 @@ static void gimp_pattern_select_button_close_popup (GimpPatternSelectB
|
|||
*/
|
||||
static const GtkTargetEntry drag_target = { "application/x-gimp-pattern-name", 0, 0 };
|
||||
|
||||
G_DEFINE_FINAL_TYPE (GimpPatternSelectButton, gimp_pattern_select_button, GIMP_TYPE_RESOURCE_SELECT_BUTTON)
|
||||
G_DEFINE_FINAL_TYPE (GimpPatternChooser, gimp_pattern_chooser, GIMP_TYPE_RESOURCE_CHOOSER)
|
||||
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_class_init (GimpPatternSelectButtonClass *klass)
|
||||
gimp_pattern_chooser_class_init (GimpPatternChooserClass *klass)
|
||||
{
|
||||
GimpResourceSelectButtonClass *superclass = GIMP_RESOURCE_SELECT_BUTTON_CLASS (klass);
|
||||
GimpResourceChooserClass *superclass = GIMP_RESOURCE_CHOOSER_CLASS (klass);
|
||||
|
||||
superclass->draw_interior = gimp_pattern_select_button_draw;
|
||||
superclass->draw_interior = gimp_pattern_chooser_draw;
|
||||
superclass->resource_type = GIMP_TYPE_PATTERN;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_init (GimpPatternSelectButton *self)
|
||||
gimp_pattern_chooser_init (GimpPatternChooser *self)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *button;
|
||||
|
@ -119,7 +119,7 @@ gimp_pattern_select_button_init (GimpPatternSelectButton *self)
|
|||
gtk_widget_show (self->preview);
|
||||
|
||||
g_signal_connect_swapped (self->preview, "size-allocate",
|
||||
G_CALLBACK (gimp_pattern_select_button_draw),
|
||||
G_CALLBACK (gimp_pattern_chooser_draw),
|
||||
self);
|
||||
|
||||
g_signal_connect (self->preview, "event",
|
||||
|
@ -129,17 +129,15 @@ gimp_pattern_select_button_init (GimpPatternSelectButton *self)
|
|||
button = gtk_button_new_with_mnemonic (_("_Browse..."));
|
||||
gtk_box_pack_start (GTK_BOX (self), button, FALSE, FALSE, 0);
|
||||
|
||||
gimp_resource_select_button_set_drag_target (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
self->preview,
|
||||
&drag_target);
|
||||
gimp_resource_chooser_set_drag_target (GIMP_RESOURCE_CHOOSER (self),
|
||||
self->preview, &drag_target);
|
||||
|
||||
gimp_resource_select_button_set_clickable (GIMP_RESOURCE_SELECT_BUTTON (self),
|
||||
button);
|
||||
gimp_resource_chooser_set_clickable (GIMP_RESOURCE_CHOOSER (self), button);
|
||||
gtk_widget_show (button);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_pattern_select_button_new:
|
||||
* gimp_pattern_chooser_new:
|
||||
* @title: (nullable): Title of the dialog to use or %NULL to use the default title.
|
||||
* @label: (nullable): Button label or %NULL for no label.
|
||||
* @resource: (nullable): Initial pattern.
|
||||
|
@ -154,7 +152,7 @@ gimp_pattern_select_button_init (GimpPatternSelectButton *self)
|
|||
* Since: 2.4
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_pattern_select_button_new (const gchar *title,
|
||||
gimp_pattern_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource)
|
||||
{
|
||||
|
@ -165,39 +163,39 @@ gimp_pattern_select_button_new (const gchar *title,
|
|||
g_return_val_if_fail (GIMP_IS_PATTERN (resource), NULL);
|
||||
|
||||
if (title)
|
||||
self = g_object_new (GIMP_TYPE_PATTERN_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_PATTERN_CHOOSER,
|
||||
"title", title,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
else
|
||||
self = g_object_new (GIMP_TYPE_PATTERN_SELECT_BUTTON,
|
||||
self = g_object_new (GIMP_TYPE_PATTERN_CHOOSER,
|
||||
"label", label,
|
||||
"resource", resource,
|
||||
NULL);
|
||||
|
||||
gimp_pattern_select_button_draw (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
gimp_pattern_chooser_draw (GIMP_RESOURCE_CHOOSER (self));
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_draw (GimpResourceSelectButton *chooser)
|
||||
gimp_pattern_chooser_draw (GimpResourceChooser *chooser)
|
||||
{
|
||||
GimpPatternSelectButton *pchooser = GIMP_PATTERN_SELECT_BUTTON (chooser);
|
||||
GtkAllocation allocation;
|
||||
GimpPatternChooser *pchooser = GIMP_PATTERN_CHOOSER (chooser);
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (pchooser->preview, &allocation);
|
||||
|
||||
gimp_pattern_select_button_get_pattern_image (pchooser, allocation.width, allocation.height);
|
||||
gimp_pattern_chooser_get_pattern_image (pchooser, allocation.width, allocation.height);
|
||||
gimp_pattern_select_preview_fill_draw (pchooser, GIMP_PREVIEW_AREA (pchooser->preview));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_get_pattern_image (GimpPatternSelectButton *chooser,
|
||||
gint width,
|
||||
gint height)
|
||||
gimp_pattern_chooser_get_pattern_image (GimpPatternChooser *chooser,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GimpPattern *pattern;
|
||||
|
||||
|
@ -224,9 +222,9 @@ gimp_pattern_select_button_get_pattern_image (GimpPatternSelectButton *chooser,
|
|||
|
||||
/* On mouse events in self's preview, popup a zoom view of entire pattern */
|
||||
static gboolean
|
||||
gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpPatternSelectButton *self)
|
||||
gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpPatternChooser *self)
|
||||
{
|
||||
GdkEventButton *bevent;
|
||||
|
||||
|
@ -238,7 +236,7 @@ gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
|||
if (bevent->button == 1)
|
||||
{
|
||||
gtk_grab_add (widget);
|
||||
gimp_pattern_select_button_open_popup (self,
|
||||
gimp_pattern_chooser_open_popup (self,
|
||||
bevent->x, bevent->y);
|
||||
}
|
||||
break;
|
||||
|
@ -249,7 +247,7 @@ gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
|||
if (bevent->button == 1)
|
||||
{
|
||||
gtk_grab_remove (widget);
|
||||
gimp_pattern_select_button_close_popup (self);
|
||||
gimp_pattern_chooser_close_popup (self);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -262,8 +260,8 @@ gimp_pattern_select_on_preview_events (GtkWidget *widget,
|
|||
|
||||
/* Fill a GimpPreviewArea with a image then draw. */
|
||||
static void
|
||||
gimp_pattern_select_preview_fill_draw (GimpPatternSelectButton *chooser,
|
||||
GimpPreviewArea *area)
|
||||
gimp_pattern_select_preview_fill_draw (GimpPatternChooser *chooser,
|
||||
GimpPreviewArea *area)
|
||||
{
|
||||
GeglBuffer *src_buffer;
|
||||
const Babl *format;
|
||||
|
@ -323,9 +321,9 @@ gimp_pattern_select_preview_fill_draw (GimpPatternSelectButton *chooser,
|
|||
/* popup methods. */
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_open_popup (GimpPatternSelectButton *chooser,
|
||||
gint x,
|
||||
gint y)
|
||||
gimp_pattern_chooser_open_popup (GimpPatternChooser *chooser,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *preview;
|
||||
|
@ -335,7 +333,7 @@ gimp_pattern_select_button_open_popup (GimpPatternSelectButton *chooser,
|
|||
gint y_org;
|
||||
|
||||
if (chooser->popup)
|
||||
gimp_pattern_select_button_close_popup (chooser);
|
||||
gimp_pattern_chooser_close_popup (chooser);
|
||||
|
||||
if (chooser->width <= CELL_SIZE && chooser->height <= CELL_SIZE)
|
||||
return;
|
||||
|
@ -377,7 +375,7 @@ gimp_pattern_select_button_open_popup (GimpPatternSelectButton *chooser,
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_pattern_select_button_close_popup (GimpPatternSelectButton *self)
|
||||
gimp_pattern_chooser_close_popup (GimpPatternChooser *self)
|
||||
{
|
||||
g_clear_pointer (&self->popup, gtk_widget_destroy);
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimppatternchooser.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined (__GIMP_UI_H_INSIDE__) && !defined (GIMP_COMPILATION)
|
||||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_PATTERN_CHOOSER_H__
|
||||
#define __GIMP_PATTERN_CHOOSER_H__
|
||||
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_PATTERN_CHOOSER (gimp_pattern_chooser_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GimpPatternChooser, gimp_pattern_chooser, GIMP, PATTERN_CHOOSER, GimpResourceChooser)
|
||||
|
||||
|
||||
GtkWidget * gimp_pattern_chooser_new (const gchar *title,
|
||||
const gchar *label,
|
||||
GimpResource *resource);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_PATTERN_CHOOSER_H__ */
|
|
@ -836,8 +836,8 @@ gimp_procedure_dialog_get_widget (GimpProcedureDialog *dialog,
|
|||
{
|
||||
if (GIMP_IS_LABELED (widget))
|
||||
label = gimp_labeled_get_label (GIMP_LABELED (widget));
|
||||
else if (GIMP_IS_RESOURCE_SELECT_BUTTON (widget))
|
||||
label = gimp_resource_select_button_get_label (GIMP_RESOURCE_SELECT_BUTTON (widget));
|
||||
else if (GIMP_IS_RESOURCE_CHOOSER (widget))
|
||||
label = gimp_resource_chooser_get_label (GIMP_RESOURCE_CHOOSER (widget));
|
||||
}
|
||||
if (label != NULL)
|
||||
gtk_size_group_add_widget (dialog->priv->label_group, label);
|
||||
|
|
|
@ -58,7 +58,7 @@ gimp_prop_brush_chooser_new (GObject *config,
|
|||
const gchar *property_name,
|
||||
const gchar *chooser_title)
|
||||
{
|
||||
return gimp_prop_resource_chooser_factory (gimp_brush_select_button_new,
|
||||
return gimp_prop_resource_chooser_factory (gimp_brush_chooser_new,
|
||||
config, property_name, chooser_title);
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ gimp_prop_font_chooser_new (GObject *config,
|
|||
const gchar *property_name,
|
||||
const gchar *chooser_title)
|
||||
{
|
||||
return gimp_prop_resource_chooser_factory (gimp_font_select_button_new,
|
||||
return gimp_prop_resource_chooser_factory (gimp_font_chooser_new,
|
||||
config, property_name, chooser_title);
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ gimp_prop_gradient_chooser_new (GObject *config,
|
|||
const gchar *property_name,
|
||||
const gchar *chooser_title)
|
||||
{
|
||||
return gimp_prop_resource_chooser_factory (gimp_gradient_select_button_new,
|
||||
return gimp_prop_resource_chooser_factory (gimp_gradient_chooser_new,
|
||||
config, property_name, chooser_title);
|
||||
}
|
||||
|
||||
|
@ -121,7 +121,7 @@ gimp_prop_palette_chooser_new (GObject *config,
|
|||
const gchar *property_name,
|
||||
const gchar *chooser_title)
|
||||
{
|
||||
return gimp_prop_resource_chooser_factory (gimp_palette_select_button_new,
|
||||
return gimp_prop_resource_chooser_factory (gimp_palette_chooser_new,
|
||||
config, property_name, chooser_title);
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ gimp_prop_pattern_chooser_new (GObject *config,
|
|||
const gchar *property_name,
|
||||
const gchar *chooser_title)
|
||||
{
|
||||
return gimp_prop_resource_chooser_factory (gimp_pattern_select_button_new,
|
||||
return gimp_prop_resource_chooser_factory (gimp_pattern_chooser_new,
|
||||
config, property_name, chooser_title);
|
||||
}
|
||||
|
||||
|
@ -175,7 +175,7 @@ gimp_prop_resource_chooser_factory (GimpResourceWidgetCreator widget_creator_fu
|
|||
|
||||
label = g_param_spec_get_nick (param_spec);
|
||||
|
||||
/* Create the wrapped widget. For example, call gimp_font_select_button_new.
|
||||
/* Create the wrapped widget. For example, call gimp_font_chooser_new.
|
||||
* When initial_resource is NULL, the widget creator will set it's resource
|
||||
* property from context.
|
||||
*/
|
||||
|
|
|
@ -26,15 +26,15 @@
|
|||
#include "gimp.h"
|
||||
|
||||
#include "gimpuitypes.h"
|
||||
#include "gimpresourceselectbutton.h"
|
||||
#include "gimpresourcechooser.h"
|
||||
#include "gimpuimarshal.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
||||
/**
|
||||
* SECTION: gimpresourceselectbutton
|
||||
* @title: GimpResourceSelectButton
|
||||
* SECTION: gimpresourcechooser
|
||||
* @title: GimpResourceChooser
|
||||
* @short_description: Base class for buttons that popup a resource
|
||||
* selection dialog.
|
||||
*
|
||||
|
@ -92,63 +92,63 @@ typedef struct
|
|||
gchar *callback;
|
||||
|
||||
GtkWidget *label_widget;
|
||||
} GimpResourceSelectButtonPrivate;
|
||||
} GimpResourceChooserPrivate;
|
||||
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static void gimp_resource_select_button_constructed (GObject *object);
|
||||
static void gimp_resource_select_button_dispose (GObject *object);
|
||||
static void gimp_resource_select_button_finalize (GObject *object);
|
||||
static void gimp_resource_chooser_constructed (GObject *object);
|
||||
static void gimp_resource_chooser_dispose (GObject *object);
|
||||
static void gimp_resource_chooser_finalize (GObject *object);
|
||||
|
||||
static void gimp_resource_select_button_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gimp_resource_select_button_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gimp_resource_chooser_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gimp_resource_chooser_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
static void gimp_resource_select_button_clicked (GimpResourceSelectButton *self);
|
||||
static void gimp_resource_chooser_clicked (GimpResourceChooser *self);
|
||||
|
||||
static void gimp_resource_select_button_callback (GimpResource *resource,
|
||||
gboolean dialog_closing,
|
||||
gpointer user_data);
|
||||
static void gimp_resource_chooser_callback (GimpResource *resource,
|
||||
gboolean dialog_closing,
|
||||
gpointer user_data);
|
||||
|
||||
static void gimp_resource_select_drag_data_received (GimpResourceSelectButton *self,
|
||||
GdkDragContext *context,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkSelectionData *selection,
|
||||
guint info,
|
||||
guint time);
|
||||
static void gimp_resource_select_drag_data_received (GimpResourceChooser *self,
|
||||
GdkDragContext *context,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkSelectionData *selection,
|
||||
guint info,
|
||||
guint time);
|
||||
|
||||
static void gimp_resource_select_button_set_remote_dialog (GimpResourceSelectButton *self,
|
||||
GimpResource *resource);
|
||||
static void gimp_resource_chooser_set_remote_dialog (GimpResourceChooser *self,
|
||||
GimpResource *resource);
|
||||
|
||||
|
||||
static guint resource_button_signals[LAST_SIGNAL] = { 0 };
|
||||
static GParamSpec *resource_button_props[N_PROPS] = { NULL, };
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GimpResourceSelectButton, gimp_resource_select_button, GTK_TYPE_BOX)
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GimpResourceChooser, gimp_resource_chooser, GTK_TYPE_BOX)
|
||||
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
||||
gimp_resource_chooser_class_init (GimpResourceChooserClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->constructed = gimp_resource_select_button_constructed;
|
||||
object_class->dispose = gimp_resource_select_button_dispose;
|
||||
object_class->finalize = gimp_resource_select_button_finalize;
|
||||
object_class->set_property = gimp_resource_select_button_set_property;
|
||||
object_class->get_property = gimp_resource_select_button_get_property;
|
||||
object_class->constructed = gimp_resource_chooser_constructed;
|
||||
object_class->dispose = gimp_resource_chooser_dispose;
|
||||
object_class->finalize = gimp_resource_chooser_finalize;
|
||||
object_class->set_property = gimp_resource_chooser_set_property;
|
||||
object_class->get_property = gimp_resource_chooser_get_property;
|
||||
|
||||
klass->resource_set = NULL;
|
||||
|
||||
/**
|
||||
* GimpResourceSelectButton:title:
|
||||
* GimpResourceChooser:title:
|
||||
*
|
||||
* The title to be used for the resource selection popup dialog.
|
||||
*
|
||||
|
@ -163,7 +163,7 @@ gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
|||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* GimpResourceSelectButton:label:
|
||||
* GimpResourceChooser:label:
|
||||
*
|
||||
* Label text with mnemonic.
|
||||
*
|
||||
|
@ -178,7 +178,7 @@ gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
|||
G_PARAM_CONSTRUCT_ONLY);
|
||||
|
||||
/**
|
||||
* GimpResourceSelectButton:resource:
|
||||
* GimpResourceChooser:resource:
|
||||
*
|
||||
* The currently selected resource.
|
||||
*
|
||||
|
@ -195,7 +195,7 @@ gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
|||
N_PROPS, resource_button_props);
|
||||
|
||||
/**
|
||||
* GimpResourceSelectButton::resource-set:
|
||||
* GimpResourceChooser::resource-set:
|
||||
* @widget: the object which received the signal.
|
||||
* @resource: the currently selected resource.
|
||||
* @dialog_closing: whether the dialog was closed or not.
|
||||
|
@ -208,7 +208,7 @@ gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
|||
g_signal_new ("resource-set",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
G_STRUCT_OFFSET (GimpResourceSelectButtonClass, resource_set),
|
||||
G_STRUCT_OFFSET (GimpResourceChooserClass, resource_set),
|
||||
NULL, NULL,
|
||||
_gimpui_marshal_VOID__POINTER_BOOLEAN,
|
||||
G_TYPE_NONE, 2,
|
||||
|
@ -217,11 +217,11 @@ gimp_resource_select_button_class_init (GimpResourceSelectButtonClass *klass)
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_init (GimpResourceSelectButton *self)
|
||||
gimp_resource_chooser_init (GimpResourceChooser *self)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
priv = gimp_resource_chooser_get_instance_private (GIMP_RESOURCE_CHOOSER (self));
|
||||
|
||||
gtk_orientable_set_orientation (GTK_ORIENTABLE (self),
|
||||
GTK_ORIENTATION_HORIZONTAL);
|
||||
|
@ -232,25 +232,25 @@ gimp_resource_select_button_init (GimpResourceSelectButton *self)
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_constructed (GObject *object)
|
||||
gimp_resource_chooser_constructed (GObject *object)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (GIMP_RESOURCE_SELECT_BUTTON (object));
|
||||
priv = gimp_resource_chooser_get_instance_private (GIMP_RESOURCE_CHOOSER (object));
|
||||
gtk_label_set_text_with_mnemonic (GTK_LABEL (priv->label_widget), priv->label);
|
||||
gtk_widget_show (GTK_WIDGET (priv->label_widget));
|
||||
|
||||
G_OBJECT_CLASS (gimp_resource_select_button_parent_class)->constructed (object);
|
||||
G_OBJECT_CLASS (gimp_resource_chooser_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_dispose (GObject *self)
|
||||
gimp_resource_chooser_dispose (GObject *self)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceSelectButtonClass *klass;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
GimpResourceChooserClass *klass;
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (GIMP_RESOURCE_SELECT_BUTTON (self));
|
||||
klass = GIMP_RESOURCE_SELECT_BUTTON_GET_CLASS (self);
|
||||
priv = gimp_resource_chooser_get_instance_private (GIMP_RESOURCE_CHOOSER (self));
|
||||
klass = GIMP_RESOURCE_CHOOSER_GET_CLASS (self);
|
||||
|
||||
if (priv->callback)
|
||||
{
|
||||
|
@ -273,24 +273,24 @@ gimp_resource_select_button_dispose (GObject *self)
|
|||
g_clear_pointer (&priv->callback, g_free);
|
||||
}
|
||||
|
||||
G_OBJECT_CLASS (gimp_resource_select_button_parent_class)->dispose (self);
|
||||
G_OBJECT_CLASS (gimp_resource_chooser_parent_class)->dispose (self);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_finalize (GObject *object)
|
||||
gimp_resource_chooser_finalize (GObject *object)
|
||||
{
|
||||
GimpResourceSelectButton *self = GIMP_RESOURCE_SELECT_BUTTON (object);
|
||||
GimpResourceSelectButtonPrivate *priv = gimp_resource_select_button_get_instance_private (self);
|
||||
GimpResourceChooser *self = GIMP_RESOURCE_CHOOSER (object);
|
||||
GimpResourceChooserPrivate *priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
g_clear_pointer (&priv->title, g_free);
|
||||
g_clear_pointer (&priv->label, g_free);
|
||||
|
||||
G_OBJECT_CLASS (gimp_resource_select_button_parent_class)->finalize (object);
|
||||
G_OBJECT_CLASS (gimp_resource_chooser_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_resource_select_button_set_drag_target:
|
||||
* @self: A [class@ResourceSelectButton]
|
||||
* gimp_resource_chooser_set_drag_target:
|
||||
* @self: A [class@ResourceChooser]
|
||||
* @drag_region_widget: An interior widget to be a droppable region
|
||||
* and emit "drag-data-received" signal
|
||||
* @drag_target: The drag target to accept
|
||||
|
@ -304,11 +304,11 @@ gimp_resource_select_button_finalize (GObject *object)
|
|||
* Since: 3.0
|
||||
**/
|
||||
void
|
||||
gimp_resource_select_button_set_drag_target (GimpResourceSelectButton *self,
|
||||
GtkWidget *drag_region_widget,
|
||||
const GtkTargetEntry *drag_target)
|
||||
gimp_resource_chooser_set_drag_target (GimpResourceChooser *self,
|
||||
GtkWidget *drag_region_widget,
|
||||
const GtkTargetEntry *drag_target)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (self));
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_CHOOSER (self));
|
||||
g_return_if_fail (drag_target != NULL);
|
||||
g_return_if_fail (drag_region_widget != NULL);
|
||||
|
||||
|
@ -326,8 +326,8 @@ gimp_resource_select_button_set_drag_target (GimpResourceSelectButton *self,
|
|||
}
|
||||
|
||||
/**
|
||||
* gimp_resource_select_button_set_clickable:
|
||||
* @self: A [class@ResourceSelectButton]
|
||||
* gimp_resource_chooser_set_clickable:
|
||||
* @self: A [class@ResourceChooser]
|
||||
* @widget: An interior widget that emits "clicked" signal
|
||||
*
|
||||
* Called by a subclass init to specialize the instance.
|
||||
|
@ -339,22 +339,22 @@ gimp_resource_select_button_set_drag_target (GimpResourceSelectButton *self,
|
|||
* Since: 3.0
|
||||
**/
|
||||
void
|
||||
gimp_resource_select_button_set_clickable (GimpResourceSelectButton *self,
|
||||
GtkWidget *widget)
|
||||
gimp_resource_chooser_set_clickable (GimpResourceChooser *self,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (self));
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_CHOOSER (self));
|
||||
g_return_if_fail (widget != NULL);
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
|
||||
/* Require the widget have a signal "clicked", usually a button. */
|
||||
g_signal_connect_swapped (widget, "clicked",
|
||||
G_CALLBACK (gimp_resource_select_button_clicked),
|
||||
G_CALLBACK (gimp_resource_chooser_clicked),
|
||||
self);
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_resource_select_button_get_resource:
|
||||
* @self: A #GimpResourceSelectButton
|
||||
* gimp_resource_chooser_get_resource:
|
||||
* @self: A #GimpResourceChooser
|
||||
*
|
||||
* Gets the currently selected resource.
|
||||
*
|
||||
|
@ -363,20 +363,20 @@ gimp_resource_select_button_set_clickable (GimpResourceSelectButton *self,
|
|||
* Since: 3.0
|
||||
*/
|
||||
GimpResource *
|
||||
gimp_resource_select_button_get_resource (GimpResourceSelectButton *self)
|
||||
gimp_resource_chooser_get_resource (GimpResourceChooser *self)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (self), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_RESOURCE_CHOOSER (self), NULL);
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (self);
|
||||
priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
return priv->resource;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_resource_select_button_set_resource:
|
||||
* @self: A #GimpResourceSelectButton
|
||||
* gimp_resource_chooser_set_resource:
|
||||
* @self: A #GimpResourceChooser
|
||||
* @resource: Resource to set.
|
||||
*
|
||||
* Sets the currently selected resource.
|
||||
|
@ -385,15 +385,15 @@ gimp_resource_select_button_get_resource (GimpResourceSelectButton *self)
|
|||
* Since: 3.0
|
||||
*/
|
||||
void
|
||||
gimp_resource_select_button_set_resource (GimpResourceSelectButton *self,
|
||||
GimpResource *resource)
|
||||
gimp_resource_chooser_set_resource (GimpResourceChooser *self,
|
||||
GimpResource *resource)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (self));
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_CHOOSER (self));
|
||||
g_return_if_fail (resource != NULL);
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (self);
|
||||
priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
if (priv->callback)
|
||||
{
|
||||
|
@ -402,18 +402,18 @@ gimp_resource_select_button_set_resource (GimpResourceSelectButton *self,
|
|||
* (since all views of the resource must be consistent.)
|
||||
* That will call back, which will change our own view of the resource.
|
||||
*/
|
||||
gimp_resource_select_button_set_remote_dialog (self, resource);
|
||||
gimp_resource_chooser_set_remote_dialog (self, resource);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Call our own setter. */
|
||||
gimp_resource_select_button_callback (resource, FALSE, self);
|
||||
gimp_resource_chooser_callback (resource, FALSE, self);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_resource_select_button_get_label:
|
||||
* @widget: A [class@ResourceSelectButton].
|
||||
* gimp_resource_chooser_get_label:
|
||||
* @widget: A [class@ResourceChooser].
|
||||
*
|
||||
* Returns the label widget.
|
||||
*
|
||||
|
@ -421,13 +421,13 @@ gimp_resource_select_button_set_resource (GimpResourceSelectButton *self,
|
|||
* Since: 3.0
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_resource_select_button_get_label (GimpResourceSelectButton *widget)
|
||||
gimp_resource_chooser_get_label (GimpResourceChooser *widget)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (widget), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_RESOURCE_CHOOSER (widget), NULL);
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (widget);
|
||||
priv = gimp_resource_chooser_get_instance_private (widget);
|
||||
return priv->label_widget;
|
||||
}
|
||||
|
||||
|
@ -435,17 +435,17 @@ gimp_resource_select_button_get_label (GimpResourceSelectButton *widget)
|
|||
/* private functions */
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_set_remote_dialog (GimpResourceSelectButton *self,
|
||||
GimpResource *resource)
|
||||
gimp_resource_chooser_set_remote_dialog (GimpResourceChooser *self,
|
||||
GimpResource *resource)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv;
|
||||
GimpResourceSelectButtonClass *klass;
|
||||
GimpResourceChooserPrivate *priv;
|
||||
GimpResourceChooserClass *klass;
|
||||
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_SELECT_BUTTON (self));
|
||||
g_return_if_fail (GIMP_IS_RESOURCE_CHOOSER (self));
|
||||
g_return_if_fail (resource != NULL);
|
||||
|
||||
priv = gimp_resource_select_button_get_instance_private (self);
|
||||
klass = GIMP_RESOURCE_SELECT_BUTTON_GET_CLASS (self);
|
||||
priv = gimp_resource_chooser_get_instance_private (self);
|
||||
klass = GIMP_RESOURCE_CHOOSER_GET_CLASS (self);
|
||||
|
||||
g_return_if_fail (klass->resource_type != G_TYPE_INVALID);
|
||||
g_return_if_fail (klass->resource_type == G_TYPE_FROM_INSTANCE (resource));
|
||||
|
@ -454,13 +454,13 @@ gimp_resource_select_button_set_remote_dialog (GimpResourceSelectButton *self,
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *gvalue,
|
||||
GParamSpec *pspec)
|
||||
gimp_resource_chooser_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *gvalue,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GimpResourceSelectButton *self = GIMP_RESOURCE_SELECT_BUTTON (object);
|
||||
GimpResourceSelectButtonPrivate *priv = gimp_resource_select_button_get_instance_private (self);
|
||||
GimpResourceChooser *self = GIMP_RESOURCE_CHOOSER (object);
|
||||
GimpResourceChooserPrivate *priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
|
@ -483,13 +483,13 @@ gimp_resource_select_button_set_property (GObject *object,
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
gimp_resource_chooser_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GimpResourceSelectButton *self = GIMP_RESOURCE_SELECT_BUTTON (object);
|
||||
GimpResourceSelectButtonPrivate *priv = gimp_resource_select_button_get_instance_private (self);
|
||||
GimpResourceChooser *self = GIMP_RESOURCE_CHOOSER (object);
|
||||
GimpResourceChooserPrivate *priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
|
@ -521,16 +521,16 @@ gimp_resource_select_button_get_property (GObject *object,
|
|||
* Update the view, since model changed.
|
||||
*/
|
||||
static void
|
||||
gimp_resource_select_button_callback (GimpResource *resource,
|
||||
gboolean dialog_closing,
|
||||
gpointer user_data)
|
||||
gimp_resource_chooser_callback (GimpResource *resource,
|
||||
gboolean dialog_closing,
|
||||
gpointer user_data)
|
||||
{
|
||||
GimpResourceSelectButton *self = GIMP_RESOURCE_SELECT_BUTTON (user_data);
|
||||
GimpResourceSelectButtonPrivate *priv = gimp_resource_select_button_get_instance_private (self);
|
||||
GimpResourceChooser *self = GIMP_RESOURCE_CHOOSER (user_data);
|
||||
GimpResourceChooserPrivate *priv = gimp_resource_chooser_get_instance_private (self);
|
||||
|
||||
priv->resource = resource;
|
||||
|
||||
GIMP_RESOURCE_SELECT_BUTTON_GET_CLASS (self)->draw_interior (self);
|
||||
GIMP_RESOURCE_CHOOSER_GET_CLASS (self)->draw_interior (self);
|
||||
|
||||
if (dialog_closing)
|
||||
g_clear_pointer (&priv->callback, g_free);
|
||||
|
@ -540,15 +540,15 @@ gimp_resource_select_button_callback (GimpResource *resource,
|
|||
}
|
||||
|
||||
static void
|
||||
gimp_resource_select_button_clicked (GimpResourceSelectButton *self)
|
||||
gimp_resource_chooser_clicked (GimpResourceChooser *self)
|
||||
{
|
||||
GimpResourceSelectButtonPrivate *priv = gimp_resource_select_button_get_instance_private (self);
|
||||
GimpResourceSelectButtonClass *klass = GIMP_RESOURCE_SELECT_BUTTON_GET_CLASS (self);
|
||||
GimpResourceChooserPrivate *priv = gimp_resource_chooser_get_instance_private (self);
|
||||
GimpResourceChooserClass *klass = GIMP_RESOURCE_CHOOSER_GET_CLASS (self);
|
||||
|
||||
if (priv->callback)
|
||||
{
|
||||
/* Popup already created. Calling setter raises the popup. */
|
||||
gimp_resource_select_button_set_remote_dialog (self, priv->resource);
|
||||
gimp_resource_chooser_set_remote_dialog (self, priv->resource);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -562,10 +562,10 @@ gimp_resource_select_button_clicked (GimpResourceSelectButton *self)
|
|||
handle,
|
||||
priv->resource,
|
||||
klass->resource_type,
|
||||
gimp_resource_select_button_callback,
|
||||
gimp_resource_chooser_callback,
|
||||
self,
|
||||
NULL));
|
||||
gimp_resource_select_button_set_remote_dialog (self, priv->resource);
|
||||
gimp_resource_chooser_set_remote_dialog (self, priv->resource);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -573,20 +573,20 @@ gimp_resource_select_button_clicked (GimpResourceSelectButton *self)
|
|||
/* Drag methods. */
|
||||
|
||||
static void
|
||||
gimp_resource_select_drag_data_received (GimpResourceSelectButton *self,
|
||||
GdkDragContext *context,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkSelectionData *selection,
|
||||
guint info,
|
||||
guint time)
|
||||
gimp_resource_select_drag_data_received (GimpResourceChooser *self,
|
||||
GdkDragContext *context,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkSelectionData *selection,
|
||||
guint info,
|
||||
guint time)
|
||||
{
|
||||
gint length = gtk_selection_data_get_length (selection);
|
||||
gchar *str;
|
||||
|
||||
GimpResourceSelectButtonClass *klass;
|
||||
GimpResourceChooserClass *klass;
|
||||
|
||||
klass = GIMP_RESOURCE_SELECT_BUTTON_GET_CLASS (self);
|
||||
klass = GIMP_RESOURCE_CHOOSER_GET_CLASS (self);
|
||||
/* Require class resource_type was initialized. */
|
||||
g_assert (klass->resource_type != 0);
|
||||
|
||||
|
@ -614,7 +614,7 @@ gimp_resource_select_drag_data_received (GimpResourceSelectButton *self,
|
|||
GimpResource *resource;
|
||||
|
||||
resource = gimp_resource_get_by_name (klass->resource_type, name);
|
||||
gimp_resource_select_button_set_resource (self, resource);
|
||||
gimp_resource_chooser_set_resource (self, resource);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined (__GIMP_UI_H_INSIDE__) && !defined (GIMP_COMPILATION)
|
||||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_RESOURCE_CHOOSER_H__
|
||||
#define __GIMP_RESOURCE_CHOOSER_H__
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_RESOURCE_CHOOSER (gimp_resource_chooser_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (GimpResourceChooser, gimp_resource_chooser, GIMP, RESOURCE_CHOOSER, GtkBox)
|
||||
|
||||
struct _GimpResourceChooserClass
|
||||
{
|
||||
GtkBoxClass parent_class;
|
||||
|
||||
/* Signals */
|
||||
void (* resource_set) (GimpResourceChooser *chooser,
|
||||
GimpResource *resource,
|
||||
gboolean dialog_closing);
|
||||
|
||||
/* Abstract methods and class variables */
|
||||
void (*draw_interior) (GimpResourceChooser *chooser);
|
||||
|
||||
GType resource_type;
|
||||
|
||||
/* Padding for future expansion */
|
||||
gpointer padding[8];
|
||||
};
|
||||
|
||||
GimpResource * gimp_resource_chooser_get_resource (GimpResourceChooser *chooser);
|
||||
void gimp_resource_chooser_set_resource (GimpResourceChooser *chooser,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_resource_chooser_get_label (GimpResourceChooser *widget);
|
||||
|
||||
|
||||
/* API from below, used by subclasses e.g. GimpBrushChooser */
|
||||
|
||||
void gimp_resource_chooser_set_drag_target (GimpResourceChooser *chooser,
|
||||
GtkWidget *drag_region_widget,
|
||||
const GtkTargetEntry *drag_target);
|
||||
void gimp_resource_chooser_set_clickable (GimpResourceChooser *chooser,
|
||||
GtkWidget *widget);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_RESOURCE_CHOOSER_H__ */
|
|
@ -1,65 +0,0 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined (__GIMP_UI_H_INSIDE__) && !defined (GIMP_COMPILATION)
|
||||
#error "Only <libgimp/gimpui.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_RESOURCE_SELECT_BUTTON_H__
|
||||
#define __GIMP_RESOURCE_SELECT_BUTTON_H__
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_RESOURCE_SELECT_BUTTON (gimp_resource_select_button_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (GimpResourceSelectButton, gimp_resource_select_button, GIMP, RESOURCE_SELECT_BUTTON, GtkBox)
|
||||
|
||||
struct _GimpResourceSelectButtonClass
|
||||
{
|
||||
GtkBoxClass parent_class;
|
||||
|
||||
/* Signals */
|
||||
void (* resource_set) (GimpResourceSelectButton *self,
|
||||
GimpResource *resource,
|
||||
gboolean dialog_closing);
|
||||
|
||||
/* Abstract methods and class variables */
|
||||
void (*draw_interior) (GimpResourceSelectButton *self);
|
||||
|
||||
GType resource_type;
|
||||
|
||||
/* Padding for future expansion */
|
||||
gpointer padding[8];
|
||||
};
|
||||
|
||||
GimpResource * gimp_resource_select_button_get_resource (GimpResourceSelectButton *self);
|
||||
void gimp_resource_select_button_set_resource (GimpResourceSelectButton *self,
|
||||
GimpResource *resource);
|
||||
GtkWidget * gimp_resource_select_button_get_label (GimpResourceSelectButton *widget);
|
||||
|
||||
|
||||
/* API from below, used by subclasses e.g. GimpBrushSelectButton */
|
||||
|
||||
void gimp_resource_select_button_set_drag_target (GimpResourceSelectButton *self,
|
||||
GtkWidget *drag_region_widget,
|
||||
const GtkTargetEntry *drag_target);
|
||||
void gimp_resource_select_button_set_clickable (GimpResourceSelectButton *self,
|
||||
GtkWidget *widget);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_RESOURCE_SELECT_BUTTON_H__ */
|
|
@ -1,8 +1,8 @@
|
|||
EXPORTS
|
||||
gimp_aspect_preview_get_type
|
||||
gimp_aspect_preview_new_from_drawable
|
||||
gimp_brush_select_button_get_type
|
||||
gimp_brush_select_button_new
|
||||
gimp_brush_chooser_get_type
|
||||
gimp_brush_chooser_new
|
||||
gimp_channel_combo_box_get_type
|
||||
gimp_channel_combo_box_new
|
||||
gimp_drawable_combo_box_get_type
|
||||
|
@ -13,18 +13,18 @@ EXPORTS
|
|||
gimp_export_dialog_get_content_area
|
||||
gimp_export_dialog_new
|
||||
gimp_export_image
|
||||
gimp_font_select_button_get_type
|
||||
gimp_font_select_button_new
|
||||
gimp_gradient_select_button_get_type
|
||||
gimp_gradient_select_button_new
|
||||
gimp_font_chooser_get_type
|
||||
gimp_font_chooser_new
|
||||
gimp_gradient_chooser_get_type
|
||||
gimp_gradient_chooser_new
|
||||
gimp_image_combo_box_get_type
|
||||
gimp_image_combo_box_new
|
||||
gimp_layer_combo_box_get_type
|
||||
gimp_layer_combo_box_new
|
||||
gimp_palette_select_button_get_type
|
||||
gimp_palette_select_button_new
|
||||
gimp_pattern_select_button_get_type
|
||||
gimp_pattern_select_button_new
|
||||
gimp_palette_chooser_get_type
|
||||
gimp_palette_chooser_new
|
||||
gimp_pattern_chooser_get_type
|
||||
gimp_pattern_chooser_new
|
||||
gimp_proc_browser_dialog_get_selected
|
||||
gimp_proc_browser_dialog_get_type
|
||||
gimp_proc_browser_dialog_new
|
||||
|
@ -63,12 +63,12 @@ EXPORTS
|
|||
gimp_prop_gradient_chooser_new
|
||||
gimp_prop_palette_chooser_new
|
||||
gimp_prop_pattern_chooser_new
|
||||
gimp_resource_select_button_get_label
|
||||
gimp_resource_select_button_get_resource
|
||||
gimp_resource_select_button_get_type
|
||||
gimp_resource_select_button_set_clickable
|
||||
gimp_resource_select_button_set_drag_target
|
||||
gimp_resource_select_button_set_resource
|
||||
gimp_resource_chooser_get_label
|
||||
gimp_resource_chooser_get_resource
|
||||
gimp_resource_chooser_get_type
|
||||
gimp_resource_chooser_set_clickable
|
||||
gimp_resource_chooser_set_drag_target
|
||||
gimp_resource_chooser_set_resource
|
||||
gimp_save_procedure_dialog_add_metadata
|
||||
gimp_save_procedure_dialog_get_type
|
||||
gimp_save_procedure_dialog_new
|
||||
|
|
|
@ -30,16 +30,16 @@
|
|||
#include <libgimp/gimpuitypes.h>
|
||||
|
||||
#include <libgimp/gimpaspectpreview.h>
|
||||
#include <libgimp/gimpbrushselectbutton.h>
|
||||
#include <libgimp/gimpbrushchooser.h>
|
||||
#include <libgimp/gimpdrawablepreview.h>
|
||||
#include <libgimp/gimpexport.h>
|
||||
#include <libgimp/gimpresourceselectbutton.h>
|
||||
#include <libgimp/gimpfontselectbutton.h>
|
||||
#include <libgimp/gimpgradientselectbutton.h>
|
||||
#include <libgimp/gimpresourcechooser.h>
|
||||
#include <libgimp/gimpfontchooser.h>
|
||||
#include <libgimp/gimpgradientchooser.h>
|
||||
#include <libgimp/gimpimagecombobox.h>
|
||||
#include <libgimp/gimpitemcombobox.h>
|
||||
#include <libgimp/gimppaletteselectbutton.h>
|
||||
#include <libgimp/gimppatternselectbutton.h>
|
||||
#include <libgimp/gimppalettechooser.h>
|
||||
#include <libgimp/gimppatternchooser.h>
|
||||
#include <libgimp/gimpprocbrowserdialog.h>
|
||||
#include <libgimp/gimpproceduredialog.h>
|
||||
#include <libgimp/gimpprocview.h>
|
||||
|
|
|
@ -43,12 +43,12 @@ typedef struct _GimpLayerComboBox GimpLayerComboBox;
|
|||
typedef struct _GimpVectorsComboBox GimpVectorsComboBox;
|
||||
typedef struct _GimpImageComboBox GimpImageComboBox;
|
||||
|
||||
typedef struct _GimpSelectButton GimpSelectButton;
|
||||
typedef struct _GimpBrushSelectButton GimpBrushSelectButton;
|
||||
typedef struct _GimpFontSelectButton GimpFontSelectButton;
|
||||
typedef struct _GimpGradientSelectButton GimpGradientSelectButton;
|
||||
typedef struct _GimpPaletteSelectButton GimpPaletteSelectButton;
|
||||
typedef struct _GimpPatternSelectButton GimpPatternSelectButton;
|
||||
typedef struct _GimpResourceChooser GimpResourceChooser;
|
||||
typedef struct _GimpBrushChooser GimpBrushChooser;
|
||||
typedef struct _GimpFontChooser GimpFontChooser;
|
||||
typedef struct _GimpGradientChooser GimpGradientChooser;
|
||||
typedef struct _GimpPaletteChooser GimpPaletteChooser;
|
||||
typedef struct _GimpPatternChooser GimpPatternChooser;
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -268,21 +268,21 @@ libgimp_headers = [
|
|||
|
||||
libgimpui_sources_introspectable = [
|
||||
'gimpaspectpreview.c',
|
||||
'gimpbrushselectbutton.c',
|
||||
'gimpbrushchooser.c',
|
||||
'gimpdrawablepreview.c',
|
||||
'gimpexport.c',
|
||||
'gimpfontselectbutton.c',
|
||||
'gimpgradientselectbutton.c',
|
||||
'gimpfontchooser.c',
|
||||
'gimpgradientchooser.c',
|
||||
'gimpimagecombobox.c',
|
||||
'gimpitemcombobox.c',
|
||||
'gimppaletteselectbutton.c',
|
||||
'gimppatternselectbutton.c',
|
||||
'gimppalettechooser.c',
|
||||
'gimppatternchooser.c',
|
||||
'gimpprocbrowserdialog.c',
|
||||
'gimpproceduredialog.c',
|
||||
'gimpprocview.c',
|
||||
'gimpprogressbar.c',
|
||||
'gimppropwidgets.c',
|
||||
'gimpresourceselectbutton.c',
|
||||
'gimpresourcechooser.c',
|
||||
'gimpsaveproceduredialog.c',
|
||||
'gimpui.c',
|
||||
'gimpzoompreview.c',
|
||||
|
@ -300,21 +300,21 @@ libgimpui_headers_introspectable = [
|
|||
|
||||
# Other headers
|
||||
'gimpaspectpreview.h',
|
||||
'gimpbrushselectbutton.h',
|
||||
'gimpbrushchooser.h',
|
||||
'gimpdrawablepreview.h',
|
||||
'gimpexport.h',
|
||||
'gimpfontselectbutton.h',
|
||||
'gimpgradientselectbutton.h',
|
||||
'gimpfontchooser.h',
|
||||
'gimpgradientchooser.h',
|
||||
'gimpimagecombobox.h',
|
||||
'gimpitemcombobox.h',
|
||||
'gimppaletteselectbutton.h',
|
||||
'gimppatternselectbutton.h',
|
||||
'gimppalettechooser.h',
|
||||
'gimppatternchooser.h',
|
||||
'gimpprocbrowserdialog.h',
|
||||
'gimpproceduredialog.h',
|
||||
'gimpprocview.h',
|
||||
'gimpprogressbar.h',
|
||||
'gimppropwidgets.h',
|
||||
'gimpresourceselectbutton.h',
|
||||
'gimpresourcechooser.h',
|
||||
'gimpsaveproceduredialog.h',
|
||||
'gimpzoompreview.h',
|
||||
]
|
||||
|
|
|
@ -1159,8 +1159,8 @@ explorer_dialog (void)
|
|||
&n_gradient_samples,
|
||||
&gradient_samples);
|
||||
|
||||
gradient_button = gimp_gradient_select_button_new (_("FractalExplorer Gradient"),
|
||||
NULL, GIMP_RESOURCE (gradient));
|
||||
gradient_button = gimp_gradient_chooser_new (_("FractalExplorer Gradient"),
|
||||
NULL, GIMP_RESOURCE (gradient));
|
||||
g_signal_connect (gradient_button, "resource-set",
|
||||
G_CALLBACK (explorer_gradient_select_callback), NULL);
|
||||
|
||||
|
|
|
@ -507,8 +507,8 @@ gfig_dialog (GimpGfig *gfig)
|
|||
|
||||
/* brush selector in Stroke frame */
|
||||
gfig_context->brush_select
|
||||
= gimp_brush_select_button_new ("Brush", "Brush",
|
||||
GIMP_RESOURCE (gfig_context->default_style.brush));
|
||||
= gimp_brush_chooser_new ("Brush", "Brush",
|
||||
GIMP_RESOURCE (gfig_context->default_style.brush));
|
||||
g_signal_connect (gfig_context->brush_select, "resource-set",
|
||||
G_CALLBACK (gfig_brush_changed_callback), NULL);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), gfig_context->brush_select,
|
||||
|
@ -573,8 +573,8 @@ gfig_dialog (GimpGfig *gfig)
|
|||
|
||||
/* A page for the pattern selector */
|
||||
gfig_context->pattern_select
|
||||
= gimp_pattern_select_button_new ("Pattern", "Pattern",
|
||||
GIMP_RESOURCE (gfig_context->default_style.pattern));
|
||||
= gimp_pattern_chooser_new ("Pattern", "Pattern",
|
||||
GIMP_RESOURCE (gfig_context->default_style.pattern));
|
||||
g_signal_connect (gfig_context->pattern_select, "resource-set",
|
||||
G_CALLBACK (gfig_pattern_changed_callback), NULL);
|
||||
gtk_widget_show (gfig_context->pattern_select);
|
||||
|
@ -583,8 +583,8 @@ gfig_dialog (GimpGfig *gfig)
|
|||
|
||||
/* A page for the gradient selector */
|
||||
gfig_context->gradient_select
|
||||
= gimp_gradient_select_button_new ("Gradient", "Gradient",
|
||||
GIMP_RESOURCE (gfig_context->default_style.gradient));
|
||||
= gimp_gradient_chooser_new ("Gradient", "Gradient",
|
||||
GIMP_RESOURCE (gfig_context->default_style.gradient));
|
||||
g_signal_connect (gfig_context->gradient_select, "resource-set",
|
||||
G_CALLBACK (gfig_gradient_changed_callback), NULL);
|
||||
gtk_widget_show (gfig_context->gradient_select);
|
||||
|
|
|
@ -697,14 +697,14 @@ gfig_style_set_context_from_style (Style *style)
|
|||
|
||||
gimp_context_set_brush_default_size ();
|
||||
|
||||
gimp_resource_select_button_set_resource (GIMP_RESOURCE_SELECT_BUTTON (gfig_context->brush_select),
|
||||
GIMP_RESOURCE (style->brush));
|
||||
gimp_resource_chooser_set_resource (GIMP_RESOURCE_CHOOSER (gfig_context->brush_select),
|
||||
GIMP_RESOURCE (style->brush));
|
||||
|
||||
gimp_resource_select_button_set_resource (GIMP_RESOURCE_SELECT_BUTTON (gfig_context->pattern_select),
|
||||
GIMP_RESOURCE (style->pattern));
|
||||
gimp_resource_chooser_set_resource (GIMP_RESOURCE_CHOOSER (gfig_context->pattern_select),
|
||||
GIMP_RESOURCE (style->pattern));
|
||||
|
||||
gimp_resource_select_button_set_resource (GIMP_RESOURCE_SELECT_BUTTON (gfig_context->gradient_select),
|
||||
GIMP_RESOURCE (style->gradient));
|
||||
gimp_resource_chooser_set_resource (GIMP_RESOURCE_CHOOSER (gfig_context->gradient_select),
|
||||
GIMP_RESOURCE (style->gradient));
|
||||
|
||||
set_context_bdesc (style->brush);
|
||||
|
||||
|
|
|
@ -606,23 +606,23 @@ script_fu_resource_widget (const gchar *title,
|
|||
|
||||
if (g_type_is_a (resource_type, GIMP_TYPE_FONT))
|
||||
{
|
||||
result_widget = gimp_font_select_button_new (title, title, resource);
|
||||
result_widget = gimp_font_chooser_new (title, title, resource);
|
||||
}
|
||||
else if (g_type_is_a (resource_type, GIMP_TYPE_BRUSH))
|
||||
{
|
||||
result_widget = gimp_brush_select_button_new (title, title, resource);
|
||||
result_widget = gimp_brush_chooser_new (title, title, resource);
|
||||
}
|
||||
else if (g_type_is_a (resource_type, GIMP_TYPE_GRADIENT))
|
||||
{
|
||||
result_widget = gimp_gradient_select_button_new (title, title, resource);
|
||||
result_widget = gimp_gradient_chooser_new (title, title, resource);
|
||||
}
|
||||
else if (g_type_is_a (resource_type, GIMP_TYPE_PALETTE))
|
||||
{
|
||||
result_widget = gimp_palette_select_button_new (title, title, resource);
|
||||
result_widget = gimp_palette_chooser_new (title, title, resource);
|
||||
}
|
||||
else if (g_type_is_a (resource_type, GIMP_TYPE_PATTERN))
|
||||
{
|
||||
result_widget = gimp_pattern_select_button_new (title, title, resource);
|
||||
result_widget = gimp_pattern_chooser_new (title, title, resource);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -961,8 +961,8 @@ script_fu_reset (SFScript *script)
|
|||
case SF_PATTERN:
|
||||
case SF_GRADIENT:
|
||||
case SF_BRUSH:
|
||||
gimp_resource_select_button_set_resource (GIMP_RESOURCE_SELECT_BUTTON (widget),
|
||||
NULL);
|
||||
gimp_resource_chooser_set_resource (GIMP_RESOURCE_CHOOSER (widget),
|
||||
NULL);
|
||||
break;
|
||||
|
||||
case SF_OPTION:
|
||||
|
|
Loading…
Reference in New Issue