home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / plug-ins / fp / fp.h < prev   
Encoding:
C/C++ Source or Header  |  2000-08-24  |  5.1 KB  |  219 lines

  1. #define MAX_PREVIEW_SIZE   125
  2. #define MAX_ROUGHNESS      128
  3. #define RANGE_HEIGHT       15
  4. #define PR_BX_BRDR         4
  5. #define ALL                255
  6. #define MARGIN             4
  7.  
  8. #define RANGE_ADJUST_MASK GDK_EXPOSURE_MASK | \
  9.                         GDK_ENTER_NOTIFY_MASK | \
  10.                         GDK_BUTTON_PRESS_MASK | \
  11.                         GDK_BUTTON_RELEASE_MASK | \
  12.                         GDK_BUTTON1_MOTION_MASK | \
  13.                         GDK_POINTER_MOTION_HINT_MASK
  14.  
  15.  
  16. typedef struct {
  17.   gint run;
  18. } fpInterface;
  19.  
  20. typedef double hsv;
  21.  
  22. typedef struct {
  23.   gint      width;
  24.   gint      height;
  25.   guchar    *rgb;
  26.   hsv       *hsv;
  27.   guchar    *mask;
  28. } ReducedImage;
  29.  
  30. typedef enum {
  31.   SHADOWS,
  32.   MIDTONES,
  33.   HIGHLIGHTS,
  34.   INTENSITIES
  35. }FP_Intensity;
  36.  
  37. enum {
  38.   NONEATALL  =0,
  39.   CURRENT    =1,
  40.   HUE        =2, 
  41.   SATURATION =4,
  42.   VALUE      =8
  43. };
  44.  
  45.  
  46. enum {
  47.   RED,
  48.   GREEN,
  49.   BLUE,
  50.   CYAN,
  51.   YELLOW,
  52.   MAGENTA,
  53.   ALL_PRIMARY
  54. };
  55.  
  56. enum {
  57.   DOWN = -1,
  58.   UP   =  1
  59. };
  60.  
  61. enum {
  62.   BY_HUE, 
  63.   BY_SAT, 
  64.   BY_VAL, 
  65.   JUDGE_BY
  66. };
  67.  
  68.  
  69. typedef struct {
  70.   GtkWidget *window;
  71.   GtkWidget *shadowsEntry;
  72.   GtkWidget *midtonesEntry;
  73.   GtkWidget *rangePreview;
  74.   GtkWidget *aliasingPreview;
  75.   GtkObject *aliasingData;
  76.   GtkWidget *aliasingGraph;
  77. } AdvancedWindow;
  78.  
  79.  
  80. typedef struct {
  81.   int Color;
  82.   float Rough;
  83.   GtkWidget *roughnessScale;
  84.   float Alias;
  85.   GtkWidget *aliasingScale;
  86.   float PreviewSize;
  87.   GtkWidget *previewSizeScale;
  88.   FP_Intensity Range;
  89.   gint ValueBy;
  90.   gint SlctnOnly;
  91.   gint  RealTime;
  92.   guchar Offset;
  93.   guchar VisibleFrames;
  94.   guchar Cutoffs[INTENSITIES];
  95.   gint Touched[JUDGE_BY];
  96.   gint redAdj[JUDGE_BY][256];
  97.   gint blueAdj[JUDGE_BY][256];
  98.   gint greenAdj[JUDGE_BY][256];
  99.   gint satAdj[JUDGE_BY][256];
  100.   GtkWidget *rangeLabels[12];
  101. }FP_Params;
  102.  
  103. GtkWidget *fp_create_bna(void);
  104. GtkWidget *fp_create_rough(void);
  105. GtkWidget *fp_create_range(void);
  106. GtkWidget *fp_create_circle_palette(void);
  107. GtkWidget *fp_create_lnd(void);
  108. GtkWidget *fp_create_show(void);
  109. GtkWidget *fp_create_msnls();
  110. GtkWidget *fp_create_frame_select();  
  111. GtkWidget *fp_create_pixels_select_by();
  112.  
  113. void  fp_show_hide_frame(GtkWidget *button,
  114.              GtkWidget *frame);
  115.  
  116. ReducedImage  *Reduce_The_Image   (GimpDrawable *,
  117.                    GimpDrawable *,
  118.                    gint,
  119.                    gint);
  120.  
  121. void      fp_render_preview  (GtkWidget *,
  122.                   gint,
  123.                   gint         );
  124.  
  125. void      Update_Current_FP  (gint,
  126.                   gint         );
  127.  
  128. void      fp_Create_Nudge    (gint*        );
  129.  
  130. gint      fp_dialog          (void);
  131. gint      fp_advanced_dialog (void);
  132.  
  133. void      fp_advanced_call   (void);
  134.  
  135. void      fp_entire_image                (GtkWidget *,
  136.                       gpointer     );
  137. void      fp_selection_only              (GtkWidget *,
  138.                       gpointer     );
  139.  
  140. void      fp_selection_in_context        (GtkWidget *,
  141.                       gpointer     );
  142.  
  143. void      selectionMade                  (GtkWidget *,
  144.                       gpointer     );
  145. void      fp_close_callback              (GtkWidget *,
  146.                       gpointer     );
  147. void      fp_ok_callback                 (GtkWidget *,
  148.                       gpointer     );
  149. void      fp_scale_update                (GtkAdjustment *,
  150.                       float*       );
  151. void      fp_change_current_range        (GtkAdjustment*,
  152.                       gint*        );
  153. void      fp_change_current_pixels_by    (GtkWidget *,
  154.                       gint      *);
  155. void      resetFilterPacks               (void);
  156.  
  157. void      update_range_labels            (void);
  158.  
  159. void      fp_create_smoothness_graph     (GtkWidget*    );
  160.  
  161. void      fp_range_preview_spill         (GtkWidget*, 
  162.                       gint           );
  163.  
  164. void      Create_A_Preview        (GtkWidget  **,
  165.                    GtkWidget  **, 
  166.                    int,
  167.                    int           );
  168.  
  169. void      Create_A_Table_Entry    (GtkWidget  **,
  170.                    GtkWidget  *,
  171.                    const char *);
  172.  
  173. GSList*   Button_In_A_Box        (GtkWidget  *,
  174.                   GSList     *,
  175.                   guchar     *,
  176.                   GtkSignalFunc,
  177.                   gpointer,
  178.                   int           );
  179.  
  180. void Check_Button_In_A_Box       (GtkWidget     *,
  181.                   guchar        *label,
  182.                   GtkSignalFunc func,
  183.                   gpointer      data,
  184.                   int           clicked);
  185.  
  186. void Frames_Check_Button_In_A_Box (GtkWidget     *,
  187.                    guchar        *label,
  188.                    GtkSignalFunc func,
  189.                    GtkWidget     *frame,
  190.                    int           clicked);
  191.  
  192. void      Adjust_Preview_Sizes     (int width, 
  193.                     int height   );
  194. void      refreshPreviews          (int);
  195. void      initializeFilterPacks    (void);
  196.  
  197. void      fp                       (GimpDrawable  *drawable);
  198. void      fp_row                   (const guchar *src_row,
  199.                     guchar *dest_row,
  200.                     gint row,
  201.                     gint row_width,
  202.                     gint bytes);
  203.  
  204. void      draw_slider              (GdkWindow *window,
  205.                     GdkGC     *border_gc,
  206.                     GdkGC     *fill_gc,
  207.                     int        xpos);
  208. gint     FP_Range_Change_Events    (GtkWidget *, 
  209.                     GdkEvent *, 
  210.                     FP_Params *);
  211.  
  212. void     As_You_Drag               (GtkWidget *button);
  213. void     preview_size_scale_update (GtkAdjustment *adjustment,
  214.                     float         *scale_val);
  215.  
  216.  
  217. void     fp_advanced_ok();
  218. gint     fp_fake_transparency(gint i, gint j);
  219.