#include /* include previer images */ #include "preview/original.xpm" /* Artistic */ #include "preview/apply_canvas.xpm" #include "preview/cubism.xpm" #include "preview/gimpressionist.xpm" #include "preview/oilify.xpm" /* Blur */ #include "preview/blur.xpm" #include "preview/gauss_iir.xpm" #include "preview/gauss_rle.xpm" #include "preview/mblur.xpm" #include "preview/pixelize.xpm" #include "preview/sel_gauss.xpm" /* Colors */ #include "preview/borderaverage.xpm" #include "preview/colortoalpha.xpm" #include "preview/colorify.xpm" #include "preview/hot.xpm" #include "preview/max_rgb.xpm" #include "preview/semiflatten.xpm" #include "preview/smooth_palette.xpm" #include "preview/vinvert.xpm" #include "preview/color_adjust.xpm" #include "preview/alienmap2.xpm" #include "preview/alienmap.xpm" #include "preview/exchange.xpm" #include "preview/color_map.xpm" #include "preview/gradmap.xpm" #include "preview/sample_colorize.xpm" /* Distors */ #include "preview/blinds.xpm" #include "preview/curve_bend.xpm" #include "preview/emboss.xpm" #include "preview/engrave.xpm" #include "preview/iwarp.xpm" #include "preview/newsprint.xpm" #include "preview/pagecurl.xpm" #include "preview/polar_coords.xpm" #include "preview/ripple.xpm" #include "preview/shift.xpm" #include "preview/vpropagate.xpm" #include "preview/video.xpm" #include "preview/waves.xpm" #include "preview/whirl_pinch.xpm" #include "preview/wind.xpm" /* Edge-Detect */ #include "preview/edge.xpm" #include "preview/laplace.xpm" #include "preview/sobel.xpm" /* Enhance */ #include "preview/deinterlace.xpm" #include "preview/despeckle.xpm" #include "preview/destripe.xpm" #include "preview/nlfilt.xpm" #include "preview/sharpen.xpm" #include "preview/unsharp_mask.xpm" /* Glass Effects */ #include "preview/applylens.xpm" #include "preview/glasstile.xpm" /* Light Effects */ #include "preview/flarefx.xpm" #include "preview/gflare.xpm" #include "preview/lighting.xpm" #include "preview/sparkle.xpm" #include "preview/nova.xpm" /* Map */ #include "preview/bump_map.xpm" #include "preview/displace.xpm" #include "preview/fractal_trace.xpm" #include "preview/illusion.xpm" #include "preview/make_seamless.xpm" #include "preview/map_object.xpm" #include "preview/papertile.xpm" #include "preview/small_tiles.xpm" #include "preview/tile.xpm" #include "preview/lic.xpm" #include "preview/warp.xpm" /* Noise */ #include "preview/randomize_hurl.xpm" #include "preview/noisify.xpm" #include "preview/randomize_pick.xpm" #include "preview/scatter_hsv.xpm" #include "preview/randomize_slur.xpm" #include "preview/spread.xpm" /* Render */ #include "preview/dynamic_text.xpm" #include "preview/gfig.xpm" #include "preview/sinus.xpm" #include "preview/plasma.xpm" #include "preview/solid_noise.xpm" #include "preview/flame.xpm" #include "preview/ifs_compose.xpm" #include "preview/CML_explorer.xpm" #include "preview/checkerboard.xpm" #include "preview/diffraction.xpm" #include "preview/fractalexplorer.xpm" #include "preview/grid.xpm" #include "preview/jigsaw.xpm" #include "preview/maze.xpm" #include "preview/mosaic.xpm" #include "preview/qbist.xpm" /* Other */ /* Generic */ #include "preview/convmatrix.xpm" /* Combine */ #include "preview/depth_merge.xpm" #include "preview/film.xpm" /* Toys */ #include "preview/the_old_egg.xpm" typedef enum { ARTISTIC, BLUR, COLORS, DISTORS, EDGE_DETECT, ENHANCE, GLASS_EFFECTS, LIGHT_EFFECTS, MAP, NOISE, RENDER, OTHERS } FilterCategoryEnmu; /* --- Typedefs --- */ typedef struct _FilterData FilterData; struct _FilterData { gchar *filter_name; gchar *pdb_name; gchar *image_types; gchar **filter_pixmap; }; typedef struct _FilterCategory FilterCategory; struct _FilterCategory { gint filter_num; FilterData *filter_data; }; /* --- Variables --- */ /* Artistic */ FilterData filter_artistic[] = { {N_("Apply Canvas"), "plug_in_apply_canvas", "RGB* GRAY*", apply_canvas_xpm}, {N_("Cubism"), "plug_in_cubism", "RGB* GRAY*", cubism_xpm}, {N_("The GIMPressionist!!"), "plug_in_gimpressionist", "RGB* GRAY*", gimpressionist_xpm}, {N_("Oilify"), "plug_in_oilify", "RGB* GRAY*", oilify_xpm} }; /* Blur */ FilterData filter_blur[] = { {N_("Blur 2.0"), "plug_in_blur", "RGB* GRAY*", blur_xpm}, {N_("IIR Gaussian Blur"), "plug_in_gauss_iir", "RGB* GRAY*", gauss_iir_xpm}, {N_("RLE Gaussian Blur"), "plug_in_gauss_rle", "RGB* GRAY*", gauss_rle_xpm}, {N_("Motion Blur"), "plug_in_mblur", "RGB* GRAY*", mblur_xpm}, {N_("Pixelize"), "plug_in_pixelize", "RGB* GRAY*", pixelize_xpm}, {N_("Selective Gaussian Blur"), "plug_in_sel_gauss", "RGB* GRAY*", sel_gauss_xpm} }; /* Colors */ FilterData filter_colors[] = { {N_("Borderaverage"), "plug_in_borderaverage", "RGB*", borderaverage_xpm}, {N_("Color to Alpha"), "plug_in_colortoalpha", "RGB*", colortoalpha_xpm}, {N_("Colorify"), "plug_in_colorify", "RGB*", colorify_xpm}, {N_("Hot"), "plug_in_hot", "RGB", hot_xpm}, {N_("Max RGB"), "plug_in_max_rgb", "RGB*", max_rgb_xpm}, {N_("Semi-Flatten"), "plug_in_semiflatten", "RGBA", semiflatten_xpm}, {N_("Smooth Palette"), "plug_in_smooth_palette", "RGB*", smooth_palette_xpm}, {N_("Value Invert"), "plug_in_vinvert", "RGB* INDEXED*", vinvert_xpm}, /* Map */ {N_("Adjust FG-BG"), "plug_in_color_adjust", "RGB* ", color_adjust_xpm}, {N_("AlienMap2"), "plug_in_alienmap2", "RGB*", alienmap2_xpm}, {N_("AlienMap"), "plug_in_alienmap", "RGB*", alienmap_xpm}, {N_("Color Exchange"), "plug_in_exchange", "RGB*", exchange_xpm}, {N_("Color Range Mapping"), "plug_in_color_map", "RGB*", color_map_xpm}, {N_("Gradient Map"), "plug_in_gradmap", "RGB* GRAY*", gradmap_xpm}, {N_("Sample Colorize"), "plug_in_sample_colorize", "RGB* GRAY*", sample_colorize_xpm} }; /* Distors */ FilterData filter_distors[] = { {N_("Blinds"), "plug_in_blinds", "RGB* GRAY*", blinds_xpm}, {N_("Curve Bend"), "plug_in_curve_bend", "RGB* GRAY*", curve_bend_xpm}, {N_("Emboss"), "plug_in_emboss", "RGB*", emboss_xpm}, {N_("Engrave"), "plug_in_engrave", "RGBA GRAYA", engrave_xpm}, {N_("IWarp"), "plug_in_iwarp", "RGB* GRAY*", iwarp_xpm}, {N_("Newsprint"), "plug_in_newsprint", "RGB* GRAY*", newsprint_xpm}, {N_("Pagecurl Effect"), "plug_in_pagecurl", "RGBA GRAYA", pagecurl_xpm}, {N_("Polarize"), "plug_in_polar_coords", "RGB* GRAY*", polar_coords_xpm}, {N_("Ripple"), "plug_in_ripple", "RGB* GRAY*", ripple_xpm}, {N_("Shift"), "plug_in_shift", "RGB* GRAY*", shift_xpm}, {N_("Value Propagate"), "plug_in_vpropagate", "RGB* GRAY*", vpropagate_xpm}, {N_("Video"), "plug_in_video", "RGB*", video_xpm}, {N_("Waves"), "plug_in_waves", "RGB* GRAY*", waves_xpm}, {N_("Whirl and Pinch"), "plug_in_whirl_pinch", "RGB* GRAY*", whirl_pinch_xpm}, {N_("Wind"), "plug_in_wind", "RGB*", wind_xpm} }; /* Edge-Detect */ FilterData filter_edge_detect[] = { {N_("Edge Detection"), "plug_in_edge", "RGB* GRAY*", edge_xpm}, {N_("Laplace"), "plug_in_laplace", "RGB* GRAY*", laplace_xpm}, {N_("Sobel Edge Detection"), "plug_in_sobel", "RGB* GRAY*", sobel_xpm} }; /* Enhance */ FilterData filter_enhance[] = { {N_("Deinterlace"), "plug_in_deinterlace", "RGB* GRAY*", deinterlace_xpm}, {N_("Despeckle"), "plug_in_despeckle", "RGB* GRAY*", despeckle_xpm}, {N_("Destripe"), "plug_in_destripe", "RGB* GRAY*", destripe_xpm}, {N_("NL Filter"), "plug_in_nlfilt", "RGB", nlfilt_xpm}, {N_("Sharpen - %s"), "plug_in_sharpen", "RGB* GRAY*", sharpen_xpm}, {N_("Unsharp Mask"), "plug_in_unsharp_mask", "RGB* GRAY*", unsharp_mask_xpm} }; /* Glass Effects */ FilterData filter_glass_effects[] = { {N_("Lens Effect"), "plug_in_applylens", "RGB* GRAY* INDEXED*", applylens_xpm}, {N_("Glass Tile"), "plug_in_glasstile", "RGB* GRAY*", glasstile_xpm} }; /* Lighting Effects */ FilterData filter_light_effects[] = { {N_("FlareFX"), "plug_in_flarefx", "RGB*", flarefx_xpm}, {N_("GFlare"), "plug_in_gflare", "RGB* GRAY*", gflare_xpm}, {N_("Lighting Effects"), "plug_in_lighting", "RGB*", lighting_xpm}, {N_("Sparkle"), "plug_in_sparkle", "RGB* GRAY*", sparkle_xpm}, {N_("SuperNova"), "plug_in_nova", "RGB* GRAY*", nova_xpm} }; /* Map */ FilterData filter_map[] = { {N_("Bump Map"), "plug_in_bump_map", "RGB* GRAY*", bump_map_xpm}, {N_("Displace"), "plug_in_displace", "RGB* GRAY*", displace_xpm}, {N_("Fractal Trace"), "plug_in_fractal_trace", "RGB* GRAY*", fractal_trace_xpm}, {N_("Illusion"), "plug_in_illusion", "RGB* GRAY*", illusion_xpm}, {N_("Make Seamless"), "plug_in_make_seamless", "RGB* GRAY*", make_seamless_xpm}, {N_("Map to Object"), "plug_in_map_object", "RGB*", map_object_xpm}, {N_("Paper Tile"), "plug_in_papertile", "RGB*", papertile_xpm}, {N_("TileIt"), "plug_in_small_tiles", "RGB* GRAY* INDEXED*", small_tiles_xpm}, {N_("Tile"), "plug_in_tile", "RGB* GRAY*", tile_xpm}, {N_("Van Gogh (LIC)"), "plug_in_lic", "RGB", lic_xpm}, {N_("Warp"), "plug_in_warp", "RGB* GRAY*", warp_xpm} }; /* Noise */ FilterData filter_noise[] = { {N_("Random Hurl 1.7"), "plug_in_randomize_hurl", "RGB* GRAY* INDEXED*", randomize_hurl_xpm}, {N_("Noisify"), "plug_in_noisify", "RGB* GRAY*", noisify_xpm}, {N_("Random Pick 1.7"), "plug_in_randomize_pick", "RGB* GRAY* INDEXED*", randomize_pick_xpm}, {N_("Scatter HSV"), "plug_in_scatter_hsv", "RGB*", scatter_hsv_xpm}, {N_("Random Slur 1.7"), "plug_in_randomize_slur", "RGB* GRAY* INDEXED*", randomize_slur_xpm}, {N_("Spread"), "plug_in_spread", "RGB* GRAY*", spread_xpm} }; /* Render */ FilterData filter_render[] = { {N_("GDynText"), "plug_in_dynamic_text", "RGB* GRAY* INDEXED*", dynamic_text_xpm}, {N_("GFig"), "plug_in_gfig", "RGB* GRAY*", gfig_xpm}, {N_("Sinus"), "plug_in_sinus", "RGB* GRAY*", sinus_xpm}, /* Clouds */ {N_("Plasma"), "plug_in_plasma", "RGB* GRAY*", plasma_xpm}, {N_("Solid Noise"), "plug_in_solid_noise", "RGB* GRAY*", solid_noise_xpm}, /* Nature */ {N_("Flame"), "plug_in_flame", "RGB*", flame_xpm}, {N_("Ifs Compose"), "plug_in_ifs_compose", "RGB* GRAY*", ifs_compose_xpm}, /* Pattern */ {N_("CML Explorer"), "plug_in_CML_explorer", "RGB* GRAY*", CML_explorer_xpm}, {N_("Checkerboard"), "plug_in_checkerboard", "RGB* GRAY*", checkerboard_xpm}, {N_("Diffraction Patterns"), "plug_in_diffraction", "RGB*", diffraction_xpm}, {N_("Fractal Explorer"), "plug_in_fractalexplorer", "RGB*", fractalexplorer_xpm}, {N_("Grid"), "plug_in_grid", "RGB* GRAY* INDEXED*", grid_xpm}, {N_("Jigsaw"), "plug_in_jigsaw", "RGB*", jigsaw_xpm}, {N_("Maze"), "plug_in_maze", "RGB* GRAY* INDEXED*", maze_xpm}, {N_("Mosaic"), "plug_in_mosaic", "RGB* GRAY*", mosaic_xpm}, {N_("G-Qbist 1.10"), "plug_in_qbist", "RGB*", qbist_xpm} }; /* Others */ FilterData filter_others[] = { {N_("Animated Filter apply"), "plug_in_gap_layers_run_animfilter", "RGB* GRAY* INDEXED*", original_xpm}, /* Generic */ {N_("Convolution Matrix"), "plug_in_convmatrix", "RGB* GRAY*", convmatrix_xpm}, /* Web */ {N_("ImageMap"), "plug_in_imagemap", "RGB* GRAY* INDEXED*", original_xpm}, /* Animation */ {N_("Animation Optimaize"), "plug_in_animationoptimize", "RGB* GRAY*", original_xpm}, {N_("Animation Playback"), "plug_in_animationplay", "RGB* GRAY*", original_xpm}, {N_("Animation UnOptimaize"), "plug_in_animationunoptimize", "RGB* GRAY*", original_xpm}, /* Combine */ {N_("Depth Merge"), "plug_in_depth_merge", "RGB* GRAY*", depth_merge_xpm}, {N_("Film"), "plug_in_film", "RGB* GRAY* INDEXED*", film_xpm}, /* Toys */ {N_("Gee-Zoom"), "plug_in_the_old_egg", "RGB* GRAY* INDEXED*", the_old_egg_xpm}, }; static const gint filter_category_num[] = { 4, /* Artistic */ 6, /* Blur */ (8 + 7), /* Colors */ 15, /* Distors */ 3, /* Edge-Detect */ 6, /* Enhance */ 2, /* Glass-Effects */ 5, /* Light-Effects */ 11, /* Map */ 6, /* Noise */ (3 + 2 + 2 + 9), /* Render */ (1 + 1 + 3 + 2 + 1 + 1) /* Others */ }; static FilterCategory filters = { 4, filter_artistic };