new file to hold the types gfig uses. This makes the sources easier to
* plug-ins/gfig/gfig-types.h: new file to hold the types gfig uses. This makes the sources easier to read. * plug-ins/gfig/Makefile.am: added gfig-types.h * plug-ins/gfig/gfig.h: removed some types definitions and put them in gfig-types.h and ... * plug-ins/gfig/gfig-dobject.h * plug-ins/gfig/gfig-style.h: ...into these files.
This commit is contained in:
parent
6ecc7378b1
commit
e681ca8061
6 changed files with 239 additions and 189 deletions
13
ChangeLog
13
ChangeLog
|
|
@ -1,3 +1,16 @@
|
|||
2004-11-01 DindinX <dindinx@gimp.org>
|
||||
|
||||
* plug-ins/gfig/gfig-types.h: new file to hold the types gfig uses.
|
||||
This makes the sources easier to read.
|
||||
|
||||
* plug-ins/gfig/Makefile.am: added gfig-types.h
|
||||
|
||||
* plug-ins/gfig/gfig.h: removed some types definitions and put them
|
||||
in gfig-types.h and ...
|
||||
|
||||
* plug-ins/gfig/gfig-dobject.h
|
||||
* plug-ins/gfig/gfig-style.h: ...into these files.
|
||||
|
||||
2004-10-31 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* Made 2.2-pre1 release.
|
||||
|
|
|
|||
|
|
@ -48,7 +48,8 @@ gfig_SOURCES = \
|
|||
gfig-stock.c \
|
||||
gfig-stock.h \
|
||||
gfig-style.c \
|
||||
gfig-style.h
|
||||
gfig-style.h \
|
||||
gfig-types.h
|
||||
|
||||
EXTRA_DIST = README
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,76 @@
|
|||
#ifndef __GFIG_DOBJECT_H__
|
||||
#define __GFIG_DOBJECT_H__
|
||||
|
||||
#include "gfig-types.h"
|
||||
#include "gfig-style.h"
|
||||
|
||||
struct Dobject; /* fwd declaration for DobjFunc */
|
||||
|
||||
typedef void (*DobjFunc) (struct Dobject *);
|
||||
typedef struct Dobject *(*DobjGenFunc) (struct Dobject *);
|
||||
typedef struct Dobject *(*DobjLoadFunc) (FILE *);
|
||||
typedef void (*DobjSaveFunc) (struct Dobject *, GString *);
|
||||
typedef struct Dobject *(*DobjCreateFunc) (gint, gint);
|
||||
|
||||
typedef struct DobjPoints
|
||||
{
|
||||
struct DobjPoints *next;
|
||||
GdkPoint pnt;
|
||||
gint found_me;
|
||||
} DobjPoints;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DobjType type; /* the object type for this class */
|
||||
gchar *name;
|
||||
DobjFunc drawfunc; /* How do I draw myself */
|
||||
DobjFunc paintfunc; /* Draw me on canvas */
|
||||
DobjGenFunc copyfunc; /* copy */
|
||||
} DobjClass;
|
||||
|
||||
DobjClass dobj_class[10];
|
||||
|
||||
/* The object itself */
|
||||
typedef struct Dobject
|
||||
{
|
||||
DobjType type; /* What is the type? */
|
||||
DobjClass *class; /* What class does it belong to? */
|
||||
gint type_data; /* Extra data needed by the object */
|
||||
DobjPoints *points; /* List of points */
|
||||
Style style; /* this object's individual style settings */
|
||||
gint style_no; /* style index of this specific object */
|
||||
} Dobject;
|
||||
|
||||
typedef struct DAllObjs
|
||||
{
|
||||
struct DAllObjs *next;
|
||||
Dobject *obj; /* Object on list */
|
||||
} DAllObjs;
|
||||
|
||||
/* States of the object */
|
||||
#define GFIG_OK 0x0
|
||||
#define GFIG_MODIFIED 0x1
|
||||
#define GFIG_READONLY 0x2
|
||||
|
||||
extern Dobject *obj_creating;
|
||||
extern Dobject *tmp_line;
|
||||
|
||||
void d_pnt_add_line (Dobject *obj,
|
||||
gint x,
|
||||
gint y,
|
||||
gint pos);
|
||||
|
||||
DobjPoints *new_dobjpoint (gint x, gint y);
|
||||
void do_save_obj (Dobject *obj,
|
||||
GString *to);
|
||||
|
||||
DobjPoints *d_copy_dobjpoints (DobjPoints * pnts);
|
||||
void free_one_obj (Dobject *obj);
|
||||
void d_delete_dobjpoints (DobjPoints * pnts);
|
||||
void object_update (GdkPoint *pnt);
|
||||
DAllObjs *copy_all_objs (DAllObjs *objs);
|
||||
void draw_objects (DAllObjs *objs, gint show_single);
|
||||
|
||||
Dobject *d_load_object (gchar *desc,
|
||||
FILE *fp);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,29 @@
|
|||
#ifndef __GFIG_STYLE_H__
|
||||
#define __GFIG_STYLE_H__
|
||||
|
||||
#include <libgimp/gimpui.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gchar *name;
|
||||
gchar *brush_name;
|
||||
gint brush_width;
|
||||
gint brush_height;
|
||||
gint brush_spacing;
|
||||
BrushType brush_type;
|
||||
gdouble brushfade;
|
||||
gdouble brushgradient;
|
||||
gdouble airbrushpressure;
|
||||
FillType fill_type;
|
||||
gdouble fill_opacity;
|
||||
gchar *pattern;
|
||||
gchar *gradient;
|
||||
PaintType paint_type;
|
||||
GimpRGB foreground;
|
||||
GimpRGB background;
|
||||
gboolean reverselines;
|
||||
} Style;
|
||||
|
||||
void set_foreground_callback (GimpColorButton *button,
|
||||
gpointer data);
|
||||
|
||||
|
|
|
|||
113
plug-ins/gfig/gfig-types.h
Normal file
113
plug-ins/gfig/gfig-types.h
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* This is a plug-in for the GIMP.
|
||||
*
|
||||
* Generates images containing vector type drawings.
|
||||
*
|
||||
* Copyright (C) 1997 Andy Thomas alt@picnic.demon.co.uk
|
||||
*
|
||||
* 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 __GFIG_ENUMS_H__
|
||||
#define __GFIG_ENUMS_H__
|
||||
|
||||
typedef enum
|
||||
{
|
||||
RECT_GRID = 0,
|
||||
POLAR_GRID,
|
||||
ISO_GRID
|
||||
} GridType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ADD = 0,
|
||||
SUBTRACT,
|
||||
REPLACE,
|
||||
INTERSECT
|
||||
} SelectionType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ARC_SEGMENT = 0,
|
||||
ARC_SECTOR
|
||||
} ArcType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FILL_NONE = 0,
|
||||
FILL_FOREGROUND,
|
||||
FILL_BACKGROUND,
|
||||
FILL_PATTERN,
|
||||
FILL_GRADIENT
|
||||
} FillType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ORIGINAL_LAYER = 0,
|
||||
SINGLE_LAYER,
|
||||
MULTI_LAYER
|
||||
} DrawonLayers;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LAYER_TRANS_BG = 0,
|
||||
LAYER_BG_BG,
|
||||
LAYER_FG_BG,
|
||||
LAYER_WHITE_BG,
|
||||
LAYER_COPY_BG
|
||||
} LayersBGType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PAINT_BRUSH_TYPE = 0,
|
||||
PAINT_SELECTION_TYPE,
|
||||
PAINT_SELECTION_FILL_TYPE
|
||||
} PaintType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BRUSH_BRUSH_TYPE = 0,
|
||||
BRUSH_PENCIL_TYPE,
|
||||
BRUSH_AIRBRUSH_TYPE,
|
||||
BRUSH_PATTERN_TYPE
|
||||
} BrushType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
OBJ_TYPE_NONE = 0,
|
||||
LINE,
|
||||
CIRCLE,
|
||||
ELLIPSE,
|
||||
ARC,
|
||||
POLY,
|
||||
STAR,
|
||||
SPIRAL,
|
||||
BEZIER,
|
||||
NUM_OBJ_TYPES,
|
||||
MOVE_OBJ,
|
||||
MOVE_POINT,
|
||||
COPY_OBJ,
|
||||
MOVE_COPY_OBJ,
|
||||
DEL_OBJ,
|
||||
SELECT_OBJ,
|
||||
NULL_OPER
|
||||
} DobjType;
|
||||
|
||||
typedef struct _GFigObj GFigObj;
|
||||
|
||||
#endif /* __GFIG_ENUMS_H__ */
|
||||
|
|
@ -26,24 +26,12 @@
|
|||
#ifndef __GFIG_H__
|
||||
#define __GFIG_H__
|
||||
|
||||
#include "gfig-types.h"
|
||||
#include "gfig-dobject.h"
|
||||
|
||||
#define MAX_UNDO 10
|
||||
#define MIN_UNDO 1
|
||||
|
||||
struct Dobject; /* fwd declaration for DobjFunc */
|
||||
|
||||
typedef void (*DobjFunc) (struct Dobject *);
|
||||
typedef struct Dobject *(*DobjGenFunc) (struct Dobject *);
|
||||
typedef struct Dobject *(*DobjLoadFunc) (FILE *);
|
||||
typedef void (*DobjSaveFunc) (struct Dobject *, GString *);
|
||||
typedef struct Dobject *(*DobjCreateFunc) (gint, gint);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
RECT_GRID = 0,
|
||||
POLAR_GRID,
|
||||
ISO_GRID
|
||||
} GridType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gint gridspacing;
|
||||
|
|
@ -54,29 +42,6 @@ typedef struct
|
|||
gboolean showcontrol;
|
||||
} GfigOpts;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ADD = 0,
|
||||
SUBTRACT,
|
||||
REPLACE,
|
||||
INTERSECT
|
||||
} SelectionType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ARC_SEGMENT = 0,
|
||||
ARC_SECTOR
|
||||
} ArcType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FILL_NONE = 0,
|
||||
FILL_FOREGROUND,
|
||||
FILL_BACKGROUND,
|
||||
FILL_PATTERN,
|
||||
FILL_GRADIENT
|
||||
} FillType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SelectionType type; /* ADD etc .. */
|
||||
|
|
@ -88,137 +53,6 @@ typedef struct
|
|||
gdouble fill_opacity; /* You can guess this one */
|
||||
} selection_option;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ORIGINAL_LAYER = 0,
|
||||
SINGLE_LAYER,
|
||||
MULTI_LAYER
|
||||
} DrawonLayers;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LAYER_TRANS_BG = 0,
|
||||
LAYER_BG_BG,
|
||||
LAYER_FG_BG,
|
||||
LAYER_WHITE_BG,
|
||||
LAYER_COPY_BG
|
||||
} LayersBGType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PAINT_BRUSH_TYPE = 0,
|
||||
PAINT_SELECTION_TYPE,
|
||||
PAINT_SELECTION_FILL_TYPE
|
||||
} PaintType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BRUSH_BRUSH_TYPE = 0,
|
||||
BRUSH_PENCIL_TYPE,
|
||||
BRUSH_AIRBRUSH_TYPE,
|
||||
BRUSH_PATTERN_TYPE
|
||||
} BrushType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gchar *name;
|
||||
gchar *brush_name;
|
||||
gint brush_width;
|
||||
gint brush_height;
|
||||
gint brush_spacing;
|
||||
BrushType brush_type;
|
||||
gdouble brushfade;
|
||||
gdouble brushgradient;
|
||||
gdouble airbrushpressure;
|
||||
FillType fill_type;
|
||||
gdouble fill_opacity;
|
||||
gchar *pattern;
|
||||
gchar *gradient;
|
||||
PaintType paint_type;
|
||||
GimpRGB foreground;
|
||||
GimpRGB background;
|
||||
gboolean reverselines;
|
||||
} Style;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
OBJ_TYPE_NONE = 0,
|
||||
LINE,
|
||||
CIRCLE,
|
||||
ELLIPSE,
|
||||
ARC,
|
||||
POLY,
|
||||
STAR,
|
||||
SPIRAL,
|
||||
BEZIER,
|
||||
NUM_OBJ_TYPES,
|
||||
MOVE_OBJ,
|
||||
MOVE_POINT,
|
||||
COPY_OBJ,
|
||||
MOVE_COPY_OBJ,
|
||||
DEL_OBJ,
|
||||
SELECT_OBJ,
|
||||
NULL_OPER
|
||||
} DobjType;
|
||||
|
||||
typedef struct DobjPoints
|
||||
{
|
||||
struct DobjPoints *next;
|
||||
GdkPoint pnt;
|
||||
gint found_me;
|
||||
} DobjPoints;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DobjType type; /* the object type for this class */
|
||||
gchar *name;
|
||||
DobjFunc drawfunc; /* How do I draw myself */
|
||||
DobjFunc paintfunc; /* Draw me on canvas */
|
||||
DobjGenFunc copyfunc; /* copy */
|
||||
} DobjClass;
|
||||
|
||||
DobjClass dobj_class[10];
|
||||
|
||||
/* The object itself */
|
||||
typedef struct Dobject
|
||||
{
|
||||
DobjType type; /* What is the type? */
|
||||
DobjClass *class; /* What class does it belong to? */
|
||||
gint type_data; /* Extra data needed by the object */
|
||||
DobjPoints *points; /* List of points */
|
||||
Style style; /* this object's individual style settings */
|
||||
gint style_no; /* style index of this specific object */
|
||||
} Dobject;
|
||||
|
||||
typedef struct DAllObjs
|
||||
{
|
||||
struct DAllObjs *next;
|
||||
Dobject *obj; /* Object on list */
|
||||
} DAllObjs;
|
||||
|
||||
/* States of the object */
|
||||
#define GFIG_OK 0x0
|
||||
#define GFIG_MODIFIED 0x1
|
||||
#define GFIG_READONLY 0x2
|
||||
|
||||
extern Dobject *obj_creating;
|
||||
|
||||
void d_pnt_add_line (Dobject *obj,
|
||||
gint x,
|
||||
gint y,
|
||||
gint pos);
|
||||
|
||||
DobjPoints *new_dobjpoint (gint x, gint y);
|
||||
void do_save_obj (Dobject *obj,
|
||||
GString *to);
|
||||
|
||||
DobjPoints *d_copy_dobjpoints (DobjPoints * pnts);
|
||||
void free_one_obj (Dobject *obj);
|
||||
void d_delete_dobjpoints (DobjPoints * pnts);
|
||||
void object_update (GdkPoint *pnt);
|
||||
DAllObjs *copy_all_objs (DAllObjs *objs);
|
||||
void draw_objects (DAllObjs *objs, gint show_single);
|
||||
|
||||
void object_start (GdkPoint *pnt, gint);
|
||||
void object_operation (GdkPoint *pnt, gint);
|
||||
void object_operation_start (GdkPoint *pnt, gint shift_down);
|
||||
|
|
@ -230,17 +64,15 @@ void object_end (GdkPoint *pnt, gint shift_down);
|
|||
|
||||
#define HELP_ID "plug-in-gfig"
|
||||
|
||||
extern gint line_no;
|
||||
extern gint preview_width, preview_height;
|
||||
extern gint need_to_scale;
|
||||
extern GdkGC *gfig_gc;
|
||||
extern gdouble scale_x_factor, scale_y_factor;
|
||||
extern gint line_no;
|
||||
extern gint preview_width, preview_height;
|
||||
extern gint need_to_scale;
|
||||
extern GdkGC *gfig_gc;
|
||||
extern gdouble scale_x_factor, scale_y_factor;
|
||||
extern GdkPixbuf *back_pixbuf;
|
||||
|
||||
extern GtkWidget *pic_preview;
|
||||
extern Dobject *tmp_line;
|
||||
extern gint obj_show_single;
|
||||
|
||||
extern gint obj_show_single;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
|
@ -262,7 +94,7 @@ typedef struct
|
|||
DobjType otype;
|
||||
} SelectItVals;
|
||||
|
||||
typedef struct DFigObj
|
||||
struct _GFigObj
|
||||
{
|
||||
gchar *name; /* Trailing name of file */
|
||||
gchar *filename; /* Filename itself */
|
||||
|
|
@ -274,7 +106,7 @@ typedef struct DFigObj
|
|||
GtkWidget *list_item;
|
||||
GtkWidget *label_widget;
|
||||
GtkWidget *pixmap_widget;
|
||||
} GFigObj;
|
||||
};
|
||||
|
||||
/* this is temp, should be able to get rid of */
|
||||
typedef struct BrushDesc
|
||||
|
|
@ -293,13 +125,13 @@ typedef struct BrushDesc
|
|||
|
||||
typedef struct
|
||||
{
|
||||
gboolean debug_styles;
|
||||
gboolean show_background; /* show thumbnail of image behind figure */
|
||||
gint32 image_id; /* Gimp image id */
|
||||
gint32 drawable_id; /* Gimp drawable to paint on */
|
||||
GFigObj *current_obj;
|
||||
Dobject *selected_obj;
|
||||
GtkWidget *preview;
|
||||
gboolean debug_styles;
|
||||
gboolean show_background; /* show thumbnail of image behind figure */
|
||||
gint32 image_id; /* Gimp image id */
|
||||
gint32 drawable_id; /* Gimp drawable to paint on */
|
||||
GFigObj *current_obj;
|
||||
Dobject *selected_obj;
|
||||
GtkWidget *preview;
|
||||
Style *style[1000]; /* hack, but hopefully way more than enough! */
|
||||
gint num_styles;
|
||||
Style gimp_style;
|
||||
|
|
@ -404,6 +236,4 @@ GimpDrawable *gfig_drawable;
|
|||
GList *gfig_list;
|
||||
gdouble org_scale_x_factor, org_scale_y_factor;
|
||||
|
||||
|
||||
|
||||
#endif /* __GFIG_H__ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue