1999-06-18 03:13:08 +08:00
|
|
|
/* The GIMP -- an image manipulation program
|
|
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
|
|
*
|
1999-10-19 23:52:32 +08:00
|
|
|
* gimpcontext.h: Copyright (C) 1999 Michael Natterer <mitch@gimp.org>
|
|
|
|
*
|
1999-06-18 03:13:08 +08:00
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program 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 General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
#ifndef __GIMP_CONTEXT_H__
|
|
|
|
#define __GIMP_CONTEXT_H__
|
|
|
|
|
1999-06-19 02:29:27 +08:00
|
|
|
#include <glib.h>
|
|
|
|
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
#include "apptypes.h"
|
1999-06-20 21:53:15 +08:00
|
|
|
#include "gdisplay.h"
|
1999-06-19 02:29:27 +08:00
|
|
|
#include "gimpimageF.h"
|
1999-10-27 02:27:27 +08:00
|
|
|
#include "gradient.h"
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
#include "patterns.h"
|
|
|
|
#include "toolsF.h"
|
|
|
|
|
1999-06-18 03:13:08 +08:00
|
|
|
#include "gimpobjectP.h"
|
|
|
|
|
|
|
|
#define GIMP_TYPE_CONTEXT (gimp_context_get_type ())
|
|
|
|
#define GIMP_CONTEXT(obj) (GIMP_CHECK_CAST ((obj), GIMP_TYPE_CONTEXT, GimpContext))
|
|
|
|
#define GIMP_CONTEXT_CLASS(klass) (GIMP_CHECK_CLASS_CAST (klass, GIMP_TYPE_CONTEXT, GimpContextClass))
|
|
|
|
#define GIMP_IS_CONTEXT(obj) (GIMP_CHECK_TYPE ((obj), GIMP_TYPE_CONTEXT))
|
|
|
|
#define GIMP_IS_CONTEXT_CLASS(klass) (GIMP_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CONTEXT))
|
|
|
|
|
1999-06-20 21:53:15 +08:00
|
|
|
typedef enum
|
|
|
|
{
|
1999-10-19 23:52:32 +08:00
|
|
|
GIMP_CONTEXT_ARG_IMAGE,
|
|
|
|
GIMP_CONTEXT_ARG_DISPLAY,
|
|
|
|
GIMP_CONTEXT_ARG_TOOL,
|
|
|
|
GIMP_CONTEXT_ARG_FOREGROUND,
|
|
|
|
GIMP_CONTEXT_ARG_BACKGROUND,
|
|
|
|
GIMP_CONTEXT_ARG_OPACITY,
|
|
|
|
GIMP_CONTEXT_ARG_PAINT_MODE,
|
|
|
|
GIMP_CONTEXT_ARG_BRUSH,
|
|
|
|
GIMP_CONTEXT_ARG_PATTERN,
|
|
|
|
GIMP_CONTEXT_ARG_GRADIENT,
|
|
|
|
GIMP_CONTEXT_NUM_ARGS
|
|
|
|
} GimpContextArgType;
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
GIMP_CONTEXT_IMAGE_MASK = 1 << 0,
|
|
|
|
GIMP_CONTEXT_DISPLAY_MASK = 1 << 1,
|
|
|
|
GIMP_CONTEXT_TOOL_MASK = 1 << 2,
|
|
|
|
GIMP_CONTEXT_FOREGROUND_MASK = 1 << 3,
|
|
|
|
GIMP_CONTEXT_BACKGROUND_MASK = 1 << 4,
|
|
|
|
GIMP_CONTEXT_OPACITY_MASK = 1 << 5,
|
|
|
|
GIMP_CONTEXT_PAINT_MODE_MASK = 1 << 6,
|
|
|
|
GIMP_CONTEXT_BRUSH_MASK = 1 << 7,
|
|
|
|
GIMP_CONTEXT_PATTERN_MASK = 1 << 8,
|
|
|
|
GIMP_CONTEXT_GRADIENT_MASK = 1 << 9,
|
|
|
|
|
|
|
|
/* aliases */
|
|
|
|
GIMP_CONTEXT_PAINT_ARGS_MASK = GIMP_CONTEXT_FOREGROUND_MASK |
|
|
|
|
GIMP_CONTEXT_BACKGROUND_MASK |
|
|
|
|
GIMP_CONTEXT_OPACITY_MASK |
|
|
|
|
GIMP_CONTEXT_PAINT_MODE_MASK |
|
|
|
|
GIMP_CONTEXT_BRUSH_MASK |
|
|
|
|
GIMP_CONTEXT_PATTERN_MASK |
|
|
|
|
GIMP_CONTEXT_GRADIENT_MASK,
|
|
|
|
GIMP_CONTEXT_ALL_ARGS_MASK = GIMP_CONTEXT_IMAGE_MASK |
|
|
|
|
GIMP_CONTEXT_DISPLAY_MASK |
|
|
|
|
GIMP_CONTEXT_TOOL_MASK |
|
|
|
|
GIMP_CONTEXT_PAINT_ARGS_MASK
|
|
|
|
} GimpContextArgMask;
|
1999-06-20 21:53:15 +08:00
|
|
|
|
1999-06-18 03:13:08 +08:00
|
|
|
typedef struct _GimpContext GimpContext;
|
|
|
|
typedef struct _GimpContextClass GimpContextClass;
|
|
|
|
|
|
|
|
struct _GimpContext
|
|
|
|
{
|
Actually use the enum types GimpImageType, GimpImageBaseType,
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
1999-08-19 07:41:39 +08:00
|
|
|
GimpObject object;
|
1999-06-19 02:29:27 +08:00
|
|
|
|
Actually use the enum types GimpImageType, GimpImageBaseType,
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
1999-08-19 07:41:39 +08:00
|
|
|
gchar *name;
|
|
|
|
GimpContext *parent;
|
1999-06-19 02:29:27 +08:00
|
|
|
|
1999-10-19 23:52:32 +08:00
|
|
|
guint32 defined_args;
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
1999-10-19 23:52:32 +08:00
|
|
|
GimpImage *image;
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
GDisplay *display;
|
|
|
|
|
|
|
|
ToolType tool;
|
|
|
|
|
|
|
|
guchar foreground[3];
|
|
|
|
guchar background[3];
|
1999-06-19 02:29:27 +08:00
|
|
|
|
Actually use the enum types GimpImageType, GimpImageBaseType,
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
1999-08-19 07:41:39 +08:00
|
|
|
gdouble opacity;
|
|
|
|
LayerModeEffects paint_mode;
|
1999-06-18 03:13:08 +08:00
|
|
|
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
GimpBrush *brush;
|
1999-10-27 02:27:27 +08:00
|
|
|
gchar *brush_name;
|
|
|
|
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
GPattern *pattern;
|
1999-10-27 02:27:27 +08:00
|
|
|
gchar *pattern_name;
|
|
|
|
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
gradient_t *gradient;
|
1999-10-27 02:27:27 +08:00
|
|
|
gchar *gradient_name;
|
1999-06-18 03:13:08 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct _GimpContextClass
|
|
|
|
{
|
|
|
|
GimpObjectClass parent_class;
|
|
|
|
|
1999-10-17 21:48:19 +08:00
|
|
|
void (* image_changed) (GimpContext *context,
|
|
|
|
GimpImage *image);
|
|
|
|
void (* display_changed) (GimpContext *context,
|
|
|
|
GDisplay *display);
|
|
|
|
|
|
|
|
void (* tool_changed) (GimpContext *context,
|
|
|
|
ToolType tool);
|
|
|
|
|
|
|
|
void (* foreground_changed) (GimpContext *context,
|
|
|
|
gint r,
|
|
|
|
gint g,
|
|
|
|
gint b);
|
|
|
|
void (* background_changed) (GimpContext *context,
|
|
|
|
gint r,
|
|
|
|
gint g,
|
|
|
|
gint b);
|
|
|
|
void (* opacity_changed) (GimpContext *context,
|
|
|
|
gdouble opacity);
|
|
|
|
void (* paint_mode_changed) (GimpContext *context,
|
|
|
|
LayerModeEffects paint_mode);
|
|
|
|
void (* brush_changed) (GimpContext *context,
|
|
|
|
GimpBrush *brush);
|
|
|
|
void (* pattern_changed) (GimpContext *context,
|
|
|
|
GPattern *pattern);
|
|
|
|
void (* gradient_changed) (GimpContext *context,
|
|
|
|
gradient_t *gradient);
|
1999-06-18 03:13:08 +08:00
|
|
|
};
|
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
GtkType gimp_context_get_type (void);
|
|
|
|
GimpContext * gimp_context_new (gchar *name,
|
|
|
|
GimpContext *template);
|
1999-06-19 02:29:27 +08:00
|
|
|
|
1999-10-19 23:52:32 +08:00
|
|
|
/* TODO: - gimp_context_find ()
|
1999-06-19 02:29:27 +08:00
|
|
|
*
|
|
|
|
* probably interacting with the context manager:
|
|
|
|
* - gimp_context_push () which will call gimp_context_set_parent()
|
|
|
|
* - gimp_context_push_new () to do a GL-style push
|
|
|
|
* - gimp_context_pop ()
|
|
|
|
*
|
|
|
|
* a proper mechanism to prevent silly operations like pushing
|
|
|
|
* the user context to some client stack etc.
|
|
|
|
*/
|
|
|
|
|
1999-06-18 03:13:08 +08:00
|
|
|
|
|
|
|
/* to be used by the context management system only
|
|
|
|
*/
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_set_current (GimpContext *context);
|
|
|
|
void gimp_context_set_user (GimpContext *context);
|
|
|
|
void gimp_context_set_default (GimpContext *context);
|
1999-06-19 02:29:27 +08:00
|
|
|
|
|
|
|
/* these are always available
|
|
|
|
*/
|
1999-10-27 02:27:27 +08:00
|
|
|
GimpContext * gimp_context_get_current (void);
|
|
|
|
GimpContext * gimp_context_get_user (void);
|
|
|
|
GimpContext * gimp_context_get_default (void);
|
|
|
|
GimpContext * gimp_context_get_standard (void);
|
1999-06-18 03:13:08 +08:00
|
|
|
|
|
|
|
/* functions for manipulating a single context
|
1999-10-19 23:52:32 +08:00
|
|
|
*/
|
1999-10-27 02:27:27 +08:00
|
|
|
gchar * gimp_context_get_name (GimpContext *context);
|
|
|
|
void gimp_context_set_name (GimpContext *context,
|
|
|
|
gchar *name);
|
1999-10-19 23:52:32 +08:00
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
GimpContext * gimp_context_get_parent (GimpContext *context);
|
|
|
|
void gimp_context_set_parent (GimpContext *context,
|
|
|
|
GimpContext *parent);
|
|
|
|
void gimp_context_unset_parent (GimpContext *context);
|
1999-10-19 23:52:32 +08:00
|
|
|
|
|
|
|
/* define / undefinine context arguments
|
1999-06-19 02:29:27 +08:00
|
|
|
*
|
1999-10-19 23:52:32 +08:00
|
|
|
* the value of an undefined argument will be taken from the parent context.
|
1999-06-18 03:13:08 +08:00
|
|
|
*/
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_define_arg (GimpContext *context,
|
|
|
|
GimpContextArgType arg,
|
|
|
|
gboolean defined);
|
1999-06-20 04:20:59 +08:00
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
gboolean gimp_context_arg_defined (GimpContext *context,
|
|
|
|
GimpContextArgType arg);
|
1999-06-20 04:20:59 +08:00
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_define_args (GimpContext *context,
|
2000-02-23 01:06:44 +08:00
|
|
|
GimpContextArgMask args_mask,
|
1999-10-27 02:27:27 +08:00
|
|
|
gboolean defined);
|
1999-10-19 23:52:32 +08:00
|
|
|
|
|
|
|
/* copying context arguments
|
|
|
|
*/
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_copy_arg (GimpContext *src,
|
|
|
|
GimpContext *dest,
|
|
|
|
GimpContextArgType arg);
|
1999-10-19 23:52:32 +08:00
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_copy_args (GimpContext *src,
|
|
|
|
GimpContext *dest,
|
|
|
|
GimpContextArgMask args_mask);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
1999-10-19 23:52:32 +08:00
|
|
|
/* image */
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
GimpImage * gimp_context_get_image (GimpContext *context);
|
|
|
|
void gimp_context_set_image (GimpContext *context,
|
|
|
|
GimpImage *image);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_image_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* display */
|
|
|
|
GDisplay * gimp_context_get_display (GimpContext *context);
|
|
|
|
void gimp_context_set_display (GimpContext *context,
|
|
|
|
GDisplay *display);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_display_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* tool */
|
|
|
|
ToolType gimp_context_get_tool (GimpContext *context);
|
|
|
|
void gimp_context_set_tool (GimpContext *context,
|
|
|
|
ToolType tool_type);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_tool_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* foreground color */
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_get_foreground (GimpContext *context,
|
|
|
|
guchar *r,
|
|
|
|
guchar *g,
|
|
|
|
guchar *b);
|
|
|
|
void gimp_context_set_foreground (GimpContext *context,
|
|
|
|
gint r,
|
|
|
|
gint g,
|
|
|
|
gint b);
|
|
|
|
void gimp_context_foreground_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* background color */
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_get_background (GimpContext *context,
|
|
|
|
guchar *r,
|
|
|
|
guchar *g,
|
|
|
|
guchar *b);
|
|
|
|
void gimp_context_set_background (GimpContext *context,
|
|
|
|
gint r,
|
|
|
|
gint g,
|
|
|
|
gint b);
|
|
|
|
void gimp_context_background_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
1999-10-27 02:27:27 +08:00
|
|
|
/* color utility functions */
|
|
|
|
void gimp_context_set_default_colors (GimpContext *context);
|
|
|
|
void gimp_context_swap_colors (GimpContext *context);
|
|
|
|
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
/* opacity */
|
|
|
|
gdouble gimp_context_get_opacity (GimpContext *context);
|
|
|
|
void gimp_context_set_opacity (GimpContext *context,
|
|
|
|
gdouble opacity);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_opacity_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* paint mode */
|
|
|
|
LayerModeEffects gimp_context_get_paint_mode (GimpContext *context);
|
|
|
|
void gimp_context_set_paint_mode (GimpContext *context,
|
|
|
|
LayerModeEffects paint_mode);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_paint_mode_changed (GimpContext *context);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* brush */
|
|
|
|
GimpBrush * gimp_context_get_brush (GimpContext *context);
|
|
|
|
void gimp_context_set_brush (GimpContext *context,
|
|
|
|
GimpBrush *brush);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_brush_changed (GimpContext *context);
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_refresh_brushes (void);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* pattern */
|
|
|
|
GPattern * gimp_context_get_pattern (GimpContext *context);
|
|
|
|
void gimp_context_set_pattern (GimpContext *context,
|
|
|
|
GPattern *pattern);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_pattern_changed (GimpContext *context);
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_refresh_patterns (void);
|
|
|
|
void gimp_context_update_patterns (GPattern *pattern);
|
added the possibility to store the current tool, FG/BG color, brush,
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
1999-10-17 20:28:38 +08:00
|
|
|
|
|
|
|
/* gradient */
|
|
|
|
gradient_t * gimp_context_get_gradient (GimpContext *context);
|
|
|
|
void gimp_context_set_gradient (GimpContext *context,
|
|
|
|
gradient_t *gradient);
|
2000-02-23 01:06:44 +08:00
|
|
|
void gimp_context_gradient_changed (GimpContext *context);
|
1999-10-27 02:27:27 +08:00
|
|
|
void gimp_context_refresh_gradients (void);
|
|
|
|
void gimp_context_update_gradients (gradient_t *gradient);
|
1999-06-18 03:13:08 +08:00
|
|
|
|
|
|
|
#endif /* __GIMP_CONTEXT_H__ */
|