home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / plug-ins / gimpressionist / gimpressionist.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-10  |  4.7 KB  |  206 lines

  1. #ifdef HAVE_CONFIG_H
  2. #include "config.h"
  3. #endif
  4.  
  5. #ifndef SRAND_FUNC
  6. #define SRAND_FUNC srand
  7. #endif
  8. #ifndef RAND_FUNC
  9. #define RAND_FUNC rand
  10. #endif
  11.  
  12. #include <gtk/gtk.h>
  13.  
  14. #define PLUG_IN_NAME "plug_in_gimpressionist"
  15. #define PLUG_IN_VERSION "v0.99.6, August 1999"
  16.  
  17. #ifndef DEFAULTPATH
  18. #define DEFAULTPATH "~/.gimp/gimpressionist:/usr/local/share/gimp/gimpressionist"
  19. #endif
  20.  
  21. #define PREVIEWSIZE 150
  22. #define MAXORIENTVECT 50
  23. #define MAXSIZEVECT 50
  24.  
  25. #ifndef G_PI
  26. #define G_PI    3.14159265358979323846
  27. #endif
  28.  
  29. #ifndef G_PI_2
  30. #define G_PI_2  (G_PI / 2.0)
  31. #endif
  32.  
  33. /* Type declaration and definitions */
  34.  
  35. struct vector_t {
  36.   double x, y;
  37.   double dir;
  38.   double dx, dy;
  39.   double str;
  40.   int type;
  41. };
  42.  
  43. struct smvector_t {
  44.   double x, y;
  45.   double siz;
  46.   double str;
  47. };
  48.  
  49. typedef struct {
  50.   int orientnum;
  51.   double orientfirst;
  52.   double orientlast;
  53.   int orienttype;
  54.   double brushrelief;
  55.   double brushscale;
  56.   double brushdensity;
  57.   double brushgamma;
  58.   int generalbgtype;
  59.   double generaldarkedge;
  60.   double paperrelief;
  61.   double paperscale;
  62.   int paperinvert;
  63.   int run;
  64.   char selectedbrush[100];
  65.   char selectedpaper[100];
  66.   guchar color[3];
  67.   int generalpaintedges;
  68.   int placetype;
  69.   struct vector_t orientvector[MAXORIENTVECT];
  70.   int numorientvector;
  71.   int placecenter;
  72.   double brushaspect;
  73.   double orientangoff;
  74.   double orientstrexp;
  75.   int generaltileable;
  76.   int paperoverlay;
  77.   int orientvoronoi;
  78.   int colorbrushes;
  79.   int generaldropshadow;
  80.   double generalshadowdarkness;
  81.   int sizenum;
  82.   double sizefirst;
  83.   double sizelast;
  84.   int sizetype;
  85.   double devthresh;
  86.  
  87.   struct smvector_t sizevector[MAXSIZEVECT];
  88.   int numsizevector;
  89.   double sizestrexp;
  90.   int sizevoronoi;
  91.  
  92.   int generalshadowdepth;
  93.   int generalshadowblur;
  94.  
  95.   int colortype;
  96.   double colornoise;
  97. } gimpressionist_vals_t;
  98.  
  99. /* Globals */
  100.  
  101. extern GtkTooltips *tooltips;
  102.  
  103. extern char *standalone;
  104.  
  105. extern unsigned char logobuffer[];
  106.  
  107. extern gimpressionist_vals_t pcvals;
  108. extern gimpressionist_vals_t defaultpcvals;
  109. extern char *path;
  110. extern struct ppm infile;
  111. extern struct ppm inalpha;
  112. extern GtkWidget *window;
  113. extern GtkWidget *omwindow;
  114.  
  115. extern int brushfile;
  116. extern struct ppm brushppm;
  117.  
  118. extern GtkWidget *brushlist;
  119. extern GtkObject *brushscaleadjust;
  120. extern GtkObject *brushaspectadjust;
  121. extern GtkObject *brushreliefadjust;
  122. extern GtkObject *brushdensityadjust;
  123. extern GtkObject *brushgammaadjust;
  124.  
  125. extern GtkWidget *paperlist;
  126. extern GtkObject *paperscaleadjust;
  127. extern GtkObject *paperreliefadjust;
  128. extern GtkWidget *paperinvert;
  129. extern GtkWidget *paperoverlay;
  130.  
  131. extern GtkObject *orientnumadjust;
  132. extern GtkObject *orientfirstadjust;
  133. extern GtkObject *orientlastadjust;
  134. extern int orientationtype;
  135. extern GtkWidget *orientradio[];
  136.  
  137. extern GtkWidget *sizeradio[];
  138.  
  139. extern GtkObject *sizenumadjust;
  140. extern GtkObject *sizefirstadjust;
  141. extern GtkObject *sizelastadjust;
  142.  
  143. extern GtkObject *generaldarkedgeadjust;
  144. extern int generalbgtype;
  145. extern GtkWidget *generalpaintedges;
  146. extern GtkWidget *generaltileable;
  147. extern GtkWidget *generaldropshadow;
  148. extern GtkObject *generalshadowadjust;
  149. extern GtkObject *generalshadowdepth;
  150. extern GtkObject *generalshadowblur;
  151. extern GtkObject *devthreshadjust;
  152.  
  153. extern GtkWidget *colortype;
  154. extern GtkObject *colornoiseadjust;
  155.  
  156. extern GtkWidget *placecenter;
  157.  
  158. extern GtkWidget *previewbutton;
  159.  
  160. extern GtkWidget *presetsavebutton;
  161.  
  162. extern gint img_has_alpha;
  163.  
  164. /* Prototypes */
  165.  
  166. GList *parsepath(void);
  167.  
  168. int create_dialog(void);
  169.  
  170. void create_paperpage(GtkNotebook *);
  171. void create_brushpage(GtkNotebook *);
  172. void create_orientationpage(GtkNotebook *);
  173. void create_sizepage(GtkNotebook *);
  174. void create_generalpage(GtkNotebook *);
  175. void create_presetpage(GtkNotebook *);
  176. void create_placementpage(GtkNotebook *);
  177. void create_colorpage(GtkNotebook *);
  178.  
  179. GtkWidget* create_preview();
  180. void updatepreviewprev(GtkWidget *wg, void *d);
  181.  
  182. void grabarea(void);
  183. void storevals(void);
  184. void restorevals(void);
  185. char *findfile(char *);
  186.  
  187. void unselectall(GtkWidget *list);
  188. void reselect(GtkWidget *list, char *fname);
  189. void readdirintolist(char *subdir, GtkWidget *list, char *selected);
  190. void drawcolor(GtkWidget *w);
  191. void orientchange(GtkWidget *wg, void *d, int num);
  192. void sizechange(GtkWidget *wg, void *d, int num);
  193. void placechange(GtkWidget *wg, void *d, int num);
  194. void colorchange(GtkWidget *wg, void *d, int num);
  195. void generalbgchange(GtkWidget *wg, void *d, int num);
  196.  
  197. void reloadbrush(char *fn, struct ppm *p);
  198.  
  199. void create_orientmap_dialog(void);
  200. void update_orientmap_dialog(void);
  201. int pixval(double dir);
  202. double getdir(double x, double y, int from);
  203.  
  204. void create_sizemap_dialog(void);
  205. double getsiz(double x, double y, int from);
  206.