mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-03 17:33:25 +00:00

This would allow to enable, configure or disable drag ability of a GimpColorArea ater its creation. I tested that it works correctly in binding. For instance in Python: > area.enable_drag(0) > area.enable_drag(Gdk.ModifierType.BUTTON1_MASK | > Gdk.ModifierType.BUTTON2_MASK) … correctly disable then reanable the drag with buttons 1 and 2 (in particular, I wanted to verify there was any reason why the property was G_PARAM_CONSTRUCT_ONLY. Turns out there was no good reason). I was interested by such API because having long list of parameters in various APIs is very annoying. It is much nicer to have simple constructors with decent defaults and proper API to modify a widget afterwards in order to cater to special needs.
100 lines
3.8 KiB
C
100 lines
3.8 KiB
C
/* LIBGIMP - The GIMP Library
|
|
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
|
*
|
|
* gimpcolorarea.h
|
|
* Copyright (C) 2001-2002 Sven Neumann <sven@gimp.org>
|
|
*
|
|
* 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/>.
|
|
*/
|
|
|
|
/* This provides a color preview area. The preview
|
|
* can handle transparency by showing the checkerboard and
|
|
* handles drag'n'drop.
|
|
*/
|
|
|
|
#if !defined (__GIMP_WIDGETS_H_INSIDE__) && !defined (GIMP_WIDGETS_COMPILATION)
|
|
#error "Only <libgimpwidgets/gimpwidgets.h> can be included directly."
|
|
#endif
|
|
|
|
#ifndef __GIMP_COLOR_AREA_H__
|
|
#define __GIMP_COLOR_AREA_H__
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
|
#define GIMP_TYPE_COLOR_AREA (gimp_color_area_get_type ())
|
|
#define GIMP_COLOR_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_COLOR_AREA, GimpColorArea))
|
|
#define GIMP_COLOR_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_COLOR_AREA, GimpColorAreaClass))
|
|
#define GIMP_IS_COLOR_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_COLOR_AREA))
|
|
#define GIMP_IS_COLOR_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_COLOR_AREA))
|
|
#define GIMP_COLOR_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_COLOR_AREA, GimpColorAreaClass))
|
|
|
|
|
|
typedef struct _GimpColorAreaPrivate GimpColorAreaPrivate;
|
|
typedef struct _GimpColorAreaClass GimpColorAreaClass;
|
|
|
|
struct _GimpColorArea
|
|
{
|
|
GtkDrawingArea parent_instance;
|
|
|
|
GimpColorAreaPrivate *priv;
|
|
};
|
|
|
|
struct _GimpColorAreaClass
|
|
{
|
|
GtkDrawingAreaClass parent_class;
|
|
|
|
void (* color_changed) (GimpColorArea *area);
|
|
|
|
/* Padding for future expansion */
|
|
void (* _gimp_reserved1) (void);
|
|
void (* _gimp_reserved2) (void);
|
|
void (* _gimp_reserved3) (void);
|
|
void (* _gimp_reserved4) (void);
|
|
void (* _gimp_reserved5) (void);
|
|
void (* _gimp_reserved6) (void);
|
|
void (* _gimp_reserved7) (void);
|
|
void (* _gimp_reserved8) (void);
|
|
};
|
|
|
|
|
|
GType gimp_color_area_get_type (void) G_GNUC_CONST;
|
|
|
|
GtkWidget * gimp_color_area_new (const GimpRGB *color,
|
|
GimpColorAreaType type,
|
|
GdkModifierType drag_mask);
|
|
|
|
void gimp_color_area_set_color (GimpColorArea *area,
|
|
const GimpRGB *color);
|
|
void gimp_color_area_get_color (GimpColorArea *area,
|
|
GimpRGB *color);
|
|
|
|
gboolean gimp_color_area_has_alpha (GimpColorArea *area);
|
|
void gimp_color_area_set_type (GimpColorArea *area,
|
|
GimpColorAreaType type);
|
|
void gimp_color_area_enable_drag (GimpColorArea *area,
|
|
GdkModifierType drag_mask);
|
|
void gimp_color_area_set_draw_border (GimpColorArea *area,
|
|
gboolean draw_border);
|
|
void gimp_color_area_set_out_of_gamut (GimpColorArea *area,
|
|
gboolean out_of_gamut);
|
|
|
|
void gimp_color_area_set_color_config (GimpColorArea *area,
|
|
GimpColorConfig *config);
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GIMP_COLOR_AREA_H__ */
|