gimp/plug-ins/fp/fp.h

219 lines
4.9 KiB
C
Raw Normal View History

#define MAX_PREVIEW_SIZE 125
#define MAX_ROUGHNESS 128
#define RANGE_HEIGHT 15
1999-12-28 00:18:06 +08:00
#define PR_BX_BRDR 4
#define ALL 255
1999-12-28 00:18:06 +08:00
#define MARGIN 4
#define RANGE_ADJUST_MASK GDK_EXPOSURE_MASK | \
GDK_ENTER_NOTIFY_MASK | \
GDK_BUTTON_PRESS_MASK | \
GDK_BUTTON_RELEASE_MASK | \
GDK_BUTTON1_MOTION_MASK | \
GDK_POINTER_MOTION_HINT_MASK
typedef struct {
gint run;
} fpInterface;
typedef double hsv;
typedef struct {
gint width;
gint height;
guchar *rgb;
hsv *hsv;
guchar *mask;
} ReducedImage;
typedef enum {
SHADOWS,
MIDTONES,
HIGHLIGHTS,
INTENSITIES
}FP_Intensity;
enum {
NONEATALL =0,
CURRENT =1,
HUE =2,
SATURATION =4,
VALUE =8
};
enum {
RED,
GREEN,
BLUE,
CYAN,
YELLOW,
MAGENTA,
ALL_PRIMARY
};
enum {
DOWN = -1,
UP = 1
};
enum {
BY_HUE,
BY_SAT,
BY_VAL,
JUDGE_BY
};
typedef struct {
GtkWidget *window;
GtkWidget *shadowsEntry;
GtkWidget *midtonesEntry;
GtkWidget *rangePreview;
GtkWidget *aliasingPreview;
GtkObject *aliasingData;
GtkWidget *aliasingGraph;
} AdvancedWindow;
typedef struct {
int Color;
float Rough;
GtkWidget *roughnessScale;
float Alias;
GtkWidget *aliasingScale;
float PreviewSize;
GtkWidget *previewSizeScale;
FP_Intensity Range;
gint ValueBy;
gint SlctnOnly;
gint RealTime;
guchar Offset;
guchar VisibleFrames;
guchar Cutoffs[INTENSITIES];
gint Touched[JUDGE_BY];
gint redAdj[JUDGE_BY][256];
gint blueAdj[JUDGE_BY][256];
gint greenAdj[JUDGE_BY][256];
gint satAdj[JUDGE_BY][256];
GtkWidget *rangeLabels[12];
}FP_Params;
GtkWidget *fp_create_bna(void);
GtkWidget *fp_create_rough(void);
GtkWidget *fp_create_range(void);
GtkWidget *fp_create_circle_palette(void);
GtkWidget *fp_create_lnd(void);
GtkWidget *fp_create_show(void);
GtkWidget *fp_create_msnls();
GtkWidget *fp_create_frame_select();
GtkWidget *fp_create_pixels_select_by();
void fp_show_hide_frame(GtkWidget *button,
GtkWidget *frame);
ReducedImage *Reduce_The_Image (GDrawable *,
GDrawable *,
gint,
gint);
void fp_render_preview (GtkWidget *,
gint,
gint );
void Update_Current_FP (gint,
gint );
void fp_Create_Nudge (gint* );
gint fp_dialog (void);
gint fp_advanced_dialog (void);
void fp_advanced_call (void);
void fp_entire_image (GtkWidget *,
gpointer );
void fp_selection_only (GtkWidget *,
gpointer );
void fp_selection_in_context (GtkWidget *,
gpointer );
void selectionMade (GtkWidget *,
gpointer );
void fp_close_callback (GtkWidget *,
gpointer );
void fp_ok_callback (GtkWidget *,
gpointer );
void fp_scale_update (GtkAdjustment *,
float* );
void fp_change_current_range (GtkAdjustment*,
gint* );
void fp_change_current_pixels_by (GtkWidget *,
gint *);
void resetFilterPacks (void);
void update_range_labels (void);
void fp_create_smoothness_graph (GtkWidget* );
void fp_range_preview_spill (GtkWidget*,
gint );
void Create_A_Preview (GtkWidget **,
GtkWidget **,
int,
int );
void Create_A_Table_Entry (GtkWidget **,
GtkWidget *,
const char *);
GSList* Button_In_A_Box (GtkWidget *,
GSList *,
guchar *,
GtkSignalFunc,
gpointer,
int );
void Check_Button_In_A_Box (GtkWidget *,
guchar *label,
GtkSignalFunc func,
gpointer data,
int clicked);
applied gimp-lecorfec-99041[02]-0, changes follow * applied gimp-lecorfec-99041[02]-0, changes follow * plug-ins/FractalExplorer/Dialogs.h (make_color_map): replaced free with g_free to fix segfault. * plug-ins/Lighting/lighting_preview.c (compute_preview): allocate xpostab and ypostab only when needed (it could also be allocated on stack with a compilation-fixed size like MapObject). It avoids to lose some Kb on each preview :) Also reindented (unfortunate C-c C-q) some other lines. * plug-ins/Lighting/lighting_main.c (run): release allocated postabs. * plug-ins/Lighting/lighting_ui.c: callbacks now have only one argument because gck widget use gtk_signal_connect_object. Caused segfault for scale widget. * plug-ins/autocrop/autocrop.c (doit): return if image has only background (thus fixing a segfault). * plug-ins/emboss/emboss.c (pluginCore, emboss_do_preview): replaced malloc/free with g_malloc/g_free (unneeded, but shouldn't everyone use glib calls ? :) * plug-ins/flame/flame.c : replaced a segfaulting free, and several harmless malloc/free pairs. * plug-ins/flame/megawidget.c (mw_preview_build): replaced harmless malloc/free pair. Note : mwp->bits is malloc'ed but seems to be never freed. * plug-ins/fractaltrace/fractaltrace.c (pixels_free): replaced a bunch of segfaulting free. (pixels_get, dialog_show): replaced gtk_signal_connect_object with gtk_signal_connect to accomodate callbacks (caused STRANGE dialog behaviour, coz you destroyed buttons one by one). * plug-ins/illusion/illusion.c (dialog): same gtk_signal_connect_object replacement for same reasons. * plug-ins/libgck/gck/gckcolor.c : changed all gck_rgb_to_color* functions to use a static GdkColor instead of a malloc'ed area. Provided reentrant functions with the old behaviour (gck_rgb_to_color*_r). Made some private functions static, too. gck_rgb_to_gdkcolor now use the new functions while gck_rgb_to_gdkcolor_r is the reentrant version. Also affected by this change: gck_gc_set_foreground and gck_gc_set_background (no more free(color)). * plug-ins/libgck/gck/gckcolor.h : added the gck_rgb_to_gdkcolor_r proto. * plug-ins/lic/lic.c (ok_button_clicked, cancel_button_clicked) : segfault on gtk_widget_destroy, now calls gtk_main_quit. (dialog_destroy) : segfault on window closure when called by "destroy" event. Now called by "delete_event". * plug-ins/megawidget/megawidget.c (mw_preview_build): replaced harmless malloc/free pair. Note : mwp->bits is malloc'ed but seems to be never freed. * plug-ins/png/png.c (load_image): replaced 2 segfaulting free. * plug-ins/print/print-ps.c (ps_print): replaced a segfaulting free (called many times :). * plug-ins/sgi/sgi.c (load_image, save_image): replaced a bunch of segfaulting free, and did some harmless inits to avoid a few gcc warnings. * plug-ins/wind/wind.c (render_wind): replaced a segfaulting free. (render_blast): replaced harmless malloc/free pair. * plug-ins/bmp/bmpread.c (ReadImage): yet another free()/g_free() problem fixed. * plug-ins/exchange/exchange.c (real_exchange): ditto. * plug-ins/fp/fp.h: added Frames_Check_Button_In_A_Box proto. * plug-ins/fp/fp_gtk.c: closing subdialogs via window manager wasn't handled, thus leading to errors and crashes. Now delete_event signals the dialog control button to close a dialog with the good way. * plug-ins/ifscompose/ifscompose.c (value_pair_create): tried to set events mask on scale widget (a NO_WINDOW widget). * plug-ins/png/png.c (save_image): Replaced 2 free() with g_free() for g_malloc'ed memory. Mysteriously I corrected the loading bug but not the saving one :) -Yosh
1999-04-16 05:49:09 +08:00
void Frames_Check_Button_In_A_Box (GtkWidget *,
guchar *label,
GtkSignalFunc func,
GtkWidget *frame,
int clicked);
void Adjust_Preview_Sizes (int width,
int height );
void refreshPreviews (int);
void initializeFilterPacks (void);
void fp (GDrawable *drawable);
void fp_row (const guchar *src_row,
guchar *dest_row,
gint row,
gint row_width,
gint bytes);
void draw_slider (GdkWindow *window,
GdkGC *border_gc,
GdkGC *fill_gc,
int xpos);
gint FP_Range_Change_Events (GtkWidget *,
GdkEvent *,
FP_Params *);
void As_You_Drag (GtkWidget *button);
void preview_size_scale_update (GtkAdjustment *adjustment,
float *scale_val);
void fp_advanced_ok();
gint fp_fake_transparency(gint i, gint j);