diff options
Diffstat (limited to 'plug-ins/fractal-explorer')
41 files changed, 6243 insertions, 0 deletions
diff --git a/plug-ins/fractal-explorer/Makefile.am b/plug-ins/fractal-explorer/Makefile.am new file mode 100644 index 0000000..2905f1f --- /dev/null +++ b/plug-ins/fractal-explorer/Makefile.am @@ -0,0 +1,55 @@ +## Process this file with automake to produce Makefile.in + +if OS_WIN32 +mwindows = -mwindows +else +libm = -lm +endif + +libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la +libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la +libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la +libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la +libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la +libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la +libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la + +if HAVE_WINDRES +include $(top_srcdir)/build/windows/gimprc-plug-ins.rule +fractal_explorer_RC = fractal-explorer.rc.o +endif + +AM_LDFLAGS = $(mwindows) + +SUBDIRS = examples + +libexecdir = $(gimpplugindir)/plug-ins/fractal-explorer + +libexec_PROGRAMS = fractal-explorer + +fractal_explorer_SOURCES = \ + fractal-explorer-dialogs.h \ + fractal-explorer-dialogs.c \ + fractal-explorer.c \ + fractal-explorer.h + +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + $(GTK_CFLAGS) \ + $(GEGL_CFLAGS) \ + -I$(includedir) + +LDADD = \ + $(libm) \ + $(libgimpui) \ + $(libgimpwidgets) \ + $(libgimpconfig) \ + $(libgimp) \ + $(libgimpcolor) \ + $(libgimpmath) \ + $(libgimpbase) \ + $(GTK_LIBS) \ + $(GEGL_LIBS) \ + $(RT_LIBS) \ + $(INTLLIBS) \ + $(fractal_explorer_RC) diff --git a/plug-ins/fractal-explorer/Makefile.in b/plug-ins/fractal-explorer/Makefile.in new file mode 100644 index 0000000..9fbc51a --- /dev/null +++ b/plug-ins/fractal-explorer/Makefile.in @@ -0,0 +1,1127 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Version resources for Microsoft Windows + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +libexec_PROGRAMS = fractal-explorer$(EXEEXT) +subdir = plug-ins/fractal-explorer +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/m4macros/alsa.m4 \ + $(top_srcdir)/m4macros/ax_compare_version.m4 \ + $(top_srcdir)/m4macros/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4macros/ax_gcc_func_attribute.m4 \ + $(top_srcdir)/m4macros/ax_prog_cc_for_build.m4 \ + $(top_srcdir)/m4macros/ax_prog_perl_version.m4 \ + $(top_srcdir)/m4macros/detectcflags.m4 \ + $(top_srcdir)/m4macros/pythondev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(libexecdir)" +PROGRAMS = $(libexec_PROGRAMS) +am_fractal_explorer_OBJECTS = fractal-explorer-dialogs.$(OBJEXT) \ + fractal-explorer.$(OBJEXT) +fractal_explorer_OBJECTS = $(am_fractal_explorer_OBJECTS) +fractal_explorer_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +fractal_explorer_DEPENDENCIES = $(am__DEPENDENCIES_1) $(libgimpui) \ + $(libgimpwidgets) $(libgimpconfig) $(libgimp) $(libgimpcolor) \ + $(libgimpmath) $(libgimpbase) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(fractal_explorer_RC) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/fractal-explorer-dialogs.Po \ + ./$(DEPDIR)/fractal-explorer.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(fractal_explorer_SOURCES) +DIST_SOURCES = $(fractal_explorer_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build/windows/gimprc-plug-ins.rule \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +AA_LIBS = @AA_LIBS@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALL_LINGUAS = @ALL_LINGUAS@ +ALSA_CFLAGS = @ALSA_CFLAGS@ +ALSA_LIBS = @ALSA_LIBS@ +ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPSTREAM_UTIL = @APPSTREAM_UTIL@ +AR = @AR@ +AS = @AS@ +ATK_CFLAGS = @ATK_CFLAGS@ +ATK_LIBS = @ATK_LIBS@ +ATK_REQUIRED_VERSION = @ATK_REQUIRED_VERSION@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BABL_CFLAGS = @BABL_CFLAGS@ +BABL_LIBS = @BABL_LIBS@ +BABL_REQUIRED_VERSION = @BABL_REQUIRED_VERSION@ +BUG_REPORT_URL = @BUG_REPORT_URL@ +BUILD_EXEEXT = @BUILD_EXEEXT@ +BUILD_OBJEXT = @BUILD_OBJEXT@ +BZIP2_LIBS = @BZIP2_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_PDF_CFLAGS = @CAIRO_PDF_CFLAGS@ +CAIRO_PDF_LIBS = @CAIRO_PDF_LIBS@ +CAIRO_PDF_REQUIRED_VERSION = @CAIRO_PDF_REQUIRED_VERSION@ +CAIRO_REQUIRED_VERSION = @CAIRO_REQUIRED_VERSION@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_VERSION = @CC_VERSION@ +CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DESKTOP_DATADIR = @DESKTOP_DATADIR@ +DESKTOP_FILE_VALIDATE = @DESKTOP_FILE_VALIDATE@ +DLLTOOL = @DLLTOOL@ +DOC_SHOOTER = @DOC_SHOOTER@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILE_AA = @FILE_AA@ +FILE_EXR = @FILE_EXR@ +FILE_HEIF = @FILE_HEIF@ +FILE_JP2_LOAD = @FILE_JP2_LOAD@ +FILE_JPEGXL = @FILE_JPEGXL@ +FILE_MNG = @FILE_MNG@ +FILE_PDF_SAVE = @FILE_PDF_SAVE@ +FILE_PS = @FILE_PS@ +FILE_WMF = @FILE_WMF@ +FILE_XMC = @FILE_XMC@ +FILE_XPM = @FILE_XPM@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FONTCONFIG_REQUIRED_VERSION = @FONTCONFIG_REQUIRED_VERSION@ +FREETYPE2_REQUIRED_VERSION = @FREETYPE2_REQUIRED_VERSION@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GDBUS_CODEGEN = @GDBUS_CODEGEN@ +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ +GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ +GEGL = @GEGL@ +GEGL_CFLAGS = @GEGL_CFLAGS@ +GEGL_LIBS = @GEGL_LIBS@ +GEGL_MAJOR_MINOR_VERSION = @GEGL_MAJOR_MINOR_VERSION@ +GEGL_REQUIRED_VERSION = @GEGL_REQUIRED_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GEXIV2_CFLAGS = @GEXIV2_CFLAGS@ +GEXIV2_LIBS = @GEXIV2_LIBS@ +GEXIV2_REQUIRED_VERSION = @GEXIV2_REQUIRED_VERSION@ +GIMP_API_VERSION = @GIMP_API_VERSION@ +GIMP_APP_VERSION = @GIMP_APP_VERSION@ +GIMP_BINARY_AGE = @GIMP_BINARY_AGE@ +GIMP_COMMAND = @GIMP_COMMAND@ +GIMP_DATA_VERSION = @GIMP_DATA_VERSION@ +GIMP_FULL_NAME = @GIMP_FULL_NAME@ +GIMP_INTERFACE_AGE = @GIMP_INTERFACE_AGE@ +GIMP_MAJOR_VERSION = @GIMP_MAJOR_VERSION@ +GIMP_MICRO_VERSION = @GIMP_MICRO_VERSION@ +GIMP_MINOR_VERSION = @GIMP_MINOR_VERSION@ +GIMP_MKENUMS = @GIMP_MKENUMS@ +GIMP_MODULES = @GIMP_MODULES@ +GIMP_PACKAGE_REVISION = @GIMP_PACKAGE_REVISION@ +GIMP_PKGCONFIG_VERSION = @GIMP_PKGCONFIG_VERSION@ +GIMP_PLUGINS = @GIMP_PLUGINS@ +GIMP_PLUGIN_VERSION = @GIMP_PLUGIN_VERSION@ +GIMP_REAL_VERSION = @GIMP_REAL_VERSION@ +GIMP_RELEASE = @GIMP_RELEASE@ +GIMP_SYSCONF_VERSION = @GIMP_SYSCONF_VERSION@ +GIMP_TOOL_VERSION = @GIMP_TOOL_VERSION@ +GIMP_UNSTABLE = @GIMP_UNSTABLE@ +GIMP_USER_VERSION = @GIMP_USER_VERSION@ +GIMP_VERSION = @GIMP_VERSION@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ +GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ +GIO_WINDOWS_CFLAGS = @GIO_WINDOWS_CFLAGS@ +GIO_WINDOWS_LIBS = @GIO_WINDOWS_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ +GMODULE_NO_EXPORT_CFLAGS = @GMODULE_NO_EXPORT_CFLAGS@ +GMODULE_NO_EXPORT_LIBS = @GMODULE_NO_EXPORT_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GS_LIBS = @GS_LIBS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_MAC_INTEGRATION_CFLAGS = @GTK_MAC_INTEGRATION_CFLAGS@ +GTK_MAC_INTEGRATION_LIBS = @GTK_MAC_INTEGRATION_LIBS@ +GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ +HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ +HARFBUZZ_REQUIRED_VERSION = @HARFBUZZ_REQUIRED_VERSION@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_FINITE = @HAVE_FINITE@ +HAVE_ISFINITE = @HAVE_ISFINITE@ +HAVE_VFORK = @HAVE_VFORK@ +HOST_GLIB_COMPILE_RESOURCES = @HOST_GLIB_COMPILE_RESOURCES@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_REQUIRED_VERSION = @INTLTOOL_REQUIRED_VERSION@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +ISO_CODES_LOCALEDIR = @ISO_CODES_LOCALEDIR@ +ISO_CODES_LOCATION = @ISO_CODES_LOCATION@ +JPEG_LIBS = @JPEG_LIBS@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +JXL_CFLAGS = @JXL_CFLAGS@ +JXL_LIBS = @JXL_LIBS@ +JXL_THREADS_CFLAGS = @JXL_THREADS_CFLAGS@ +JXL_THREADS_LIBS = @JXL_THREADS_LIBS@ +LCMS_CFLAGS = @LCMS_CFLAGS@ +LCMS_LIBS = @LCMS_LIBS@ +LCMS_REQUIRED_VERSION = @LCMS_REQUIRED_VERSION@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ +LIBBACKTRACE_LIBS = @LIBBACKTRACE_LIBS@ +LIBHEIF_CFLAGS = @LIBHEIF_CFLAGS@ +LIBHEIF_LIBS = @LIBHEIF_LIBS@ +LIBHEIF_REQUIRED_VERSION = @LIBHEIF_REQUIRED_VERSION@ +LIBJXL_REQUIRED_VERSION = @LIBJXL_REQUIRED_VERSION@ +LIBLZMA_REQUIRED_VERSION = @LIBLZMA_REQUIRED_VERSION@ +LIBMYPAINT_CFLAGS = @LIBMYPAINT_CFLAGS@ +LIBMYPAINT_LIBS = @LIBMYPAINT_LIBS@ +LIBMYPAINT_REQUIRED_VERSION = @LIBMYPAINT_REQUIRED_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBPNG_REQUIRED_VERSION = @LIBPNG_REQUIRED_VERSION@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBUNWIND_CFLAGS = @LIBUNWIND_CFLAGS@ +LIBUNWIND_LIBS = @LIBUNWIND_LIBS@ +LIBUNWIND_REQUIRED_VERSION = @LIBUNWIND_REQUIRED_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +LZMA_CFLAGS = @LZMA_CFLAGS@ +LZMA_LIBS = @LZMA_LIBS@ +MAIL = @MAIL@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MIME_INFO_CFLAGS = @MIME_INFO_CFLAGS@ +MIME_INFO_LIBS = @MIME_INFO_LIBS@ +MIME_TYPES = @MIME_TYPES@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@ +MNG_CFLAGS = @MNG_CFLAGS@ +MNG_LIBS = @MNG_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYPAINT_BRUSHES_CFLAGS = @MYPAINT_BRUSHES_CFLAGS@ +MYPAINT_BRUSHES_LIBS = @MYPAINT_BRUSHES_LIBS@ +NATIVE_GLIB_CFLAGS = @NATIVE_GLIB_CFLAGS@ +NATIVE_GLIB_LIBS = @NATIVE_GLIB_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENEXR_CFLAGS = @OPENEXR_CFLAGS@ +OPENEXR_LIBS = @OPENEXR_LIBS@ +OPENEXR_REQUIRED_VERSION = @OPENEXR_REQUIRED_VERSION@ +OPENJPEG_CFLAGS = @OPENJPEG_CFLAGS@ +OPENJPEG_LIBS = @OPENJPEG_LIBS@ +OPENJPEG_REQUIRED_VERSION = @OPENJPEG_REQUIRED_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGOCAIRO_CFLAGS = @PANGOCAIRO_CFLAGS@ +PANGOCAIRO_LIBS = @PANGOCAIRO_LIBS@ +PANGOCAIRO_REQUIRED_VERSION = @PANGOCAIRO_REQUIRED_VERSION@ +PATHSEP = @PATHSEP@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PERL_REQUIRED_VERSION = @PERL_REQUIRED_VERSION@ +PERL_VERSION = @PERL_VERSION@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PNG_CFLAGS = @PNG_CFLAGS@ +PNG_LIBS = @PNG_LIBS@ +POFILES = @POFILES@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_DATA_CFLAGS = @POPPLER_DATA_CFLAGS@ +POPPLER_DATA_LIBS = @POPPLER_DATA_LIBS@ +POPPLER_DATA_REQUIRED_VERSION = @POPPLER_DATA_REQUIRED_VERSION@ +POPPLER_LIBS = @POPPLER_LIBS@ +POPPLER_REQUIRED_VERSION = @POPPLER_REQUIRED_VERSION@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PYBIN_PATH = @PYBIN_PATH@ +PYCAIRO_CFLAGS = @PYCAIRO_CFLAGS@ +PYCAIRO_LIBS = @PYCAIRO_LIBS@ +PYGIMP_EXTRA_CFLAGS = @PYGIMP_EXTRA_CFLAGS@ +PYGTK_CFLAGS = @PYGTK_CFLAGS@ +PYGTK_CODEGEN = @PYGTK_CODEGEN@ +PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ +PYGTK_LIBS = @PYGTK_LIBS@ +PYLINK_LIBS = @PYLINK_LIBS@ +PYTHON = @PYTHON@ +PYTHON2_REQUIRED_VERSION = @PYTHON2_REQUIRED_VERSION@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_REQUIRED_VERSION = @RSVG_REQUIRED_VERSION@ +RT_LIBS = @RT_LIBS@ +SCREENSHOT_LIBS = @SCREENSHOT_LIBS@ +SED = @SED@ +SENDMAIL = @SENDMAIL@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOCKET_LIBS = @SOCKET_LIBS@ +SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@ +SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@ +SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@ +STRIP = @STRIP@ +SVG_CFLAGS = @SVG_CFLAGS@ +SVG_LIBS = @SVG_LIBS@ +SYMPREFIX = @SYMPREFIX@ +TIFF_LIBS = @TIFF_LIBS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WEBKIT_CFLAGS = @WEBKIT_CFLAGS@ +WEBKIT_LIBS = @WEBKIT_LIBS@ +WEBKIT_REQUIRED_VERSION = @WEBKIT_REQUIRED_VERSION@ +WEBPDEMUX_CFLAGS = @WEBPDEMUX_CFLAGS@ +WEBPDEMUX_LIBS = @WEBPDEMUX_LIBS@ +WEBPMUX_CFLAGS = @WEBPMUX_CFLAGS@ +WEBPMUX_LIBS = @WEBPMUX_LIBS@ +WEBP_CFLAGS = @WEBP_CFLAGS@ +WEBP_LIBS = @WEBP_LIBS@ +WEBP_REQUIRED_VERSION = @WEBP_REQUIRED_VERSION@ +WEB_PAGE = @WEB_PAGE@ +WIN32_LARGE_ADDRESS_AWARE = @WIN32_LARGE_ADDRESS_AWARE@ +WINDRES = @WINDRES@ +WMF_CFLAGS = @WMF_CFLAGS@ +WMF_CONFIG = @WMF_CONFIG@ +WMF_LIBS = @WMF_LIBS@ +WMF_REQUIRED_VERSION = @WMF_REQUIRED_VERSION@ +XDG_EMAIL = @XDG_EMAIL@ +XFIXES_CFLAGS = @XFIXES_CFLAGS@ +XFIXES_LIBS = @XFIXES_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_REQUIRED_VERSION = @XGETTEXT_REQUIRED_VERSION@ +XMC_CFLAGS = @XMC_CFLAGS@ +XMC_LIBS = @XMC_LIBS@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +XMU_LIBS = @XMU_LIBS@ +XPM_LIBS = @XPM_LIBS@ +XSLTPROC = @XSLTPROC@ +XVFB_RUN = @XVFB_RUN@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +Z_LIBS = @Z_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gimpdatadir = @gimpdatadir@ +gimpdir = @gimpdir@ +gimplocaledir = @gimplocaledir@ +gimpplugindir = @gimpplugindir@ +gimpsysconfdir = @gimpsysconfdir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = $(gimpplugindir)/plug-ins/fractal-explorer +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +manpage_gimpdir = @manpage_gimpdir@ +mkdir_p = @mkdir_p@ +ms_librarian = @ms_librarian@ +mypaint_brushes_dir = @mypaint_brushes_dir@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@OS_WIN32_TRUE@mwindows = -mwindows +@OS_WIN32_FALSE@libm = -lm +libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la +libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la +libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la +libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la +libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la +libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la +libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la +@HAVE_WINDRES_TRUE@GIMPPLUGINRC = $(top_builddir)/build/windows/gimp-plug-ins.rc +@HAVE_WINDRES_TRUE@fractal_explorer_RC = fractal-explorer.rc.o +AM_LDFLAGS = $(mwindows) +SUBDIRS = examples +fractal_explorer_SOURCES = \ + fractal-explorer-dialogs.h \ + fractal-explorer-dialogs.c \ + fractal-explorer.c \ + fractal-explorer.h + +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + $(GTK_CFLAGS) \ + $(GEGL_CFLAGS) \ + -I$(includedir) + +LDADD = \ + $(libm) \ + $(libgimpui) \ + $(libgimpwidgets) \ + $(libgimpconfig) \ + $(libgimp) \ + $(libgimpcolor) \ + $(libgimpmath) \ + $(libgimpbase) \ + $(GTK_LIBS) \ + $(GEGL_LIBS) \ + $(RT_LIBS) \ + $(INTLLIBS) \ + $(fractal_explorer_RC) + +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/build/windows/gimprc-plug-ins.rule $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plug-ins/fractal-explorer/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu plug-ins/fractal-explorer/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(top_srcdir)/build/windows/gimprc-plug-ins.rule $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libexecPROGRAMS: $(libexec_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-libexecPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(libexecdir)" && rm -f $$files + +clean-libexecPROGRAMS: + @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +fractal-explorer$(EXEEXT): $(fractal_explorer_OBJECTS) $(fractal_explorer_DEPENDENCIES) $(EXTRA_fractal_explorer_DEPENDENCIES) + @rm -f fractal-explorer$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fractal_explorer_OBJECTS) $(fractal_explorer_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fractal-explorer-dialogs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fractal-explorer.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(PROGRAMS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libexecdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/fractal-explorer-dialogs.Po + -rm -f ./$(DEPDIR)/fractal-explorer.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-libexecPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/fractal-explorer-dialogs.Po + -rm -f ./$(DEPDIR)/fractal-explorer.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-libexecPROGRAMS + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic \ + clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libexecPROGRAMS install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libexecPROGRAMS + +.PRECIOUS: Makefile + + +# `windres` seems a very stupid tool and it breaks with double shlashes +# in parameter paths. Strengthen the rule a little. +@HAVE_WINDRES_TRUE@%.rc.o: +@HAVE_WINDRES_TRUE@ $(WINDRES) --define ORIGINALFILENAME_STR="$*$(EXEEXT)" \ +@HAVE_WINDRES_TRUE@ --define INTERNALNAME_STR="$*" \ +@HAVE_WINDRES_TRUE@ --define TOP_SRCDIR="`echo $(top_srcdir) | sed 's*//*/*'`" \ +@HAVE_WINDRES_TRUE@ -I"`echo $(top_srcdir)/app | sed 's%/\+%/%'`" \ +@HAVE_WINDRES_TRUE@ -I"`echo $(top_builddir)/app | sed 's%/\+%/%'`"\ +@HAVE_WINDRES_TRUE@ -I"`echo $(top_builddir) | sed 's%/\+%/%'`"\ +@HAVE_WINDRES_TRUE@ $(GIMPPLUGINRC) $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/plug-ins/fractal-explorer/examples/Asteroid_Field b/plug-ins/fractal-explorer/examples/Asteroid_Field new file mode 100644 index 0000000..2215754 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Asteroid_Field @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 5 +xmin: -0.664136886596680 +xmax: -0.663678705692291 +ymin: -0.378479450941086 +ymax: -0.378030359745026 +iter: 214.723999023437500 +cx: 0.184000000357628 +cy: -0.200000002980232 +redstretch: 89.130996704101562 +greenstretch: 70.365997314453125 +bluestretch: 58.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 2 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Bar_Code_Label b/plug-ins/fractal-explorer/examples/Bar_Code_Label new file mode 100644 index 0000000..3d021cb --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Bar_Code_Label @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.443357914686203 +xmax: -0.443357914686203 +ymin: 0.085399866104126 +ymax: 0.085484646260738 +iter: 50.000000000000000 +cx: -0.847000002861023 +cy: -0.184000000357628 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Beauty_of_Nature b/plug-ins/fractal-explorer/examples/Beauty_of_Nature new file mode 100644 index 0000000..992710e --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Beauty_of_Nature @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.125070333480835 +xmax: -0.120749041438103 +ymin: -0.537724196910858 +ymax: -0.532733201980591 +iter: 49.080001831054688 +cx: 0.453999996185303 +cy: 0.000000000000000 +redstretch: 123.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 78.000000000000000 +redmode: 1 +greenmode: 2 +bluemode: 0 +redinvert: 0 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Blue_Curtain b/plug-ins/fractal-explorer/examples/Blue_Curtain new file mode 100644 index 0000000..4f15a6f --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Blue_Curtain @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: 0.257157027721405 +xmax: 0.257280886173248 +ymin: 0.153874531388283 +ymax: 0.154003381729126 +iter: 49.080001831054688 +cx: -0.750000000000000 +cy: -0.356000006198883 +redstretch: 123.978996276855469 +greenstretch: 112.000000000000000 +bluestretch: 60.000000000000000 +redmode: 1 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Car_Track b/plug-ins/fractal-explorer/examples/Car_Track new file mode 100644 index 0000000..10fdfaf --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Car_Track @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.104991987347603 +xmax: -0.104991905391216 +ymin: 0.250050097703934 +ymax: 0.250050216913223 +iter: 202.453994750976562 +cx: 0.356000006198883 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 2 +greenmode: 0 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Energetic_Diamond b/plug-ins/fractal-explorer/examples/Energetic_Diamond new file mode 100644 index 0000000..8e1d854 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Energetic_Diamond @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 0 +xmin: -1.255496978759766 +xmax: -1.249950170516968 +ymin: -0.347052335739136 +ymax: -0.338468551635742 +iter: 50.000000000000000 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 113.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 1 +bluemode: 2 +redinvert: 1 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Explosive b/plug-ins/fractal-explorer/examples/Explosive new file mode 100644 index 0000000..085bf4c --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Explosive @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: 0.353848785161972 +xmax: 0.356627285480499 +ymin: 0.458385974168777 +ymax: 0.460633248090744 +iter: 147.238998413085938 +cx: 0.000000000000000 +cy: 0.000000000000000 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 1 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 1 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Flower b/plug-ins/fractal-explorer/examples/Flower new file mode 100644 index 0000000..6cdeb70 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Flower @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.125281319022179 +xmax: -0.116631627082825 +ymin: 0.375891804695129 +ymax: 0.384632647037506 +iter: 67.485000610351562 +cx: 0.405000001192093 +cy: -0.200000002980232 +redstretch: 124.000000000000000 +greenstretch: 112.000000000000000 +bluestretch: 60.000000000000000 +redmode: 0 +greenmode: 2 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Fragments b/plug-ins/fractal-explorer/examples/Fragments new file mode 100644 index 0000000..5973759 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Fragments @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 2 +xmin: -0.508517742156982 +xmax: -0.475813776254654 +ymin: -0.025438375771046 +ymax: 0.025984741747379 +iter: 177.914001464843750 +cx: -1.018000006675720 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 1 +redinvert: 1 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Hemp b/plug-ins/fractal-explorer/examples/Hemp new file mode 100644 index 0000000..c537101 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Hemp @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.968750000000000 +xmax: 0.437500000000000 +ymin: -0.703125000000000 +ymax: 0.843750000000000 +iter: 50.000000000000000 +cx: -0.012000000104308 +cy: 0.000000000000000 +redstretch: 87.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 0.000000000000000 +redmode: 0 +greenmode: 2 +bluemode: 1 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/High_Voltage b/plug-ins/fractal-explorer/examples/High_Voltage new file mode 100644 index 0000000..5cb4a64 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/High_Voltage @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 1 +xmin: -0.476808547973633 +xmax: -0.223514556884766 +ymin: -0.017941474914551 +ymax: 0.114898681640625 +iter: 50.000000000000000 +cx: -1.337000012397766 +cy: 0.086000002920628 +redstretch: 127.330001831054688 +greenstretch: 90.000000000000000 +bluestretch: 128.000000000000000 +redmode: 2 +greenmode: 2 +bluemode: 2 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Hoops b/plug-ins/fractal-explorer/examples/Hoops new file mode 100644 index 0000000..e2c9ca2 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Hoops @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.345402956008911 +xmax: -0.252956151962280 +ymin: -0.274888515472412 +ymax: -0.204696178436279 +iter: 30.674999237060547 +cx: 0.356000006198883 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 67.000000000000000 +bluestretch: 98.000000000000000 +redmode: 1 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Ice_Crystal b/plug-ins/fractal-explorer/examples/Ice_Crystal new file mode 100644 index 0000000..e80c360 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Ice_Crystal @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 1 +xmin: 0.068130433559418 +xmax: 0.116958513855934 +ymin: 0.512302279472351 +ymax: 0.534968316555023 +iter: 202.453994750976562 +cx: 0.356000006198883 +cy: 0.428999990224838 +redstretch: 128.000000000000000 +greenstretch: 113.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Leaves b/plug-ins/fractal-explorer/examples/Leaves new file mode 100644 index 0000000..d1227c8 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Leaves @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.350769042968750 +xmax: -0.080402374267578 +ymin: -0.264384269714355 +ymax: -0.041095733642578 +iter: 50.000000000000000 +cx: -0.184000000357628 +cy: 0.000000000000000 +redstretch: 29.000000000000000 +greenstretch: 80.000000000000000 +bluestretch: 7.000000000000000 +redmode: 0 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Lightning b/plug-ins/fractal-explorer/examples/Lightning new file mode 100644 index 0000000..5901c7f --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Lightning @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 0 +xmin: -1.285429239273071 +xmax: -1.283814907073975 +ymin: 0.428520709276199 +ymax: 0.432528734207153 +iter: 50.000000000000000 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 89.130996704101562 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 2 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Makefile.am b/plug-ins/fractal-explorer/examples/Makefile.am new file mode 100644 index 0000000..c4e18be --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Makefile.am @@ -0,0 +1,40 @@ +## Process this file with automake to produce Makefile.in + +fractalexplorerdatadir = $(gimpdatadir)/fractalexplorer + +fractalexplorerdata_DATA = \ + Asteroid_Field \ + Bar_Code_Label \ + Beauty_of_Nature \ + Blue_Curtain \ + Car_Track \ + Energetic_Diamond \ + Explosive \ + Flower \ + Fragments \ + Hemp \ + High_Voltage \ + Hoops \ + Ice_Crystal \ + Leaves \ + Lightning \ + Mandelbrot \ + Marble \ + Marble2 \ + Medusa \ + Nautilus \ + Nebula \ + Plant \ + Rose \ + Saturn \ + Snow_Crystal \ + Soma \ + Spark \ + Suns \ + Tentacles \ + The_Green_Place \ + Wave \ + Wood \ + Zooming_Circle + +EXTRA_DIST = $(fractalexplorerdata_DATA) diff --git a/plug-ins/fractal-explorer/examples/Makefile.in b/plug-ins/fractal-explorer/examples/Makefile.in new file mode 100644 index 0000000..c4c3703 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Makefile.in @@ -0,0 +1,838 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = plug-ins/fractal-explorer/examples +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/m4macros/alsa.m4 \ + $(top_srcdir)/m4macros/ax_compare_version.m4 \ + $(top_srcdir)/m4macros/ax_cxx_compile_stdcxx.m4 \ + $(top_srcdir)/m4macros/ax_gcc_func_attribute.m4 \ + $(top_srcdir)/m4macros/ax_prog_cc_for_build.m4 \ + $(top_srcdir)/m4macros/ax_prog_perl_version.m4 \ + $(top_srcdir)/m4macros/detectcflags.m4 \ + $(top_srcdir)/m4macros/pythondev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(fractalexplorerdatadir)" +DATA = $(fractalexplorerdata_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +AA_LIBS = @AA_LIBS@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALL_LINGUAS = @ALL_LINGUAS@ +ALSA_CFLAGS = @ALSA_CFLAGS@ +ALSA_LIBS = @ALSA_LIBS@ +ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPSTREAM_UTIL = @APPSTREAM_UTIL@ +AR = @AR@ +AS = @AS@ +ATK_CFLAGS = @ATK_CFLAGS@ +ATK_LIBS = @ATK_LIBS@ +ATK_REQUIRED_VERSION = @ATK_REQUIRED_VERSION@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BABL_CFLAGS = @BABL_CFLAGS@ +BABL_LIBS = @BABL_LIBS@ +BABL_REQUIRED_VERSION = @BABL_REQUIRED_VERSION@ +BUG_REPORT_URL = @BUG_REPORT_URL@ +BUILD_EXEEXT = @BUILD_EXEEXT@ +BUILD_OBJEXT = @BUILD_OBJEXT@ +BZIP2_LIBS = @BZIP2_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_PDF_CFLAGS = @CAIRO_PDF_CFLAGS@ +CAIRO_PDF_LIBS = @CAIRO_PDF_LIBS@ +CAIRO_PDF_REQUIRED_VERSION = @CAIRO_PDF_REQUIRED_VERSION@ +CAIRO_REQUIRED_VERSION = @CAIRO_REQUIRED_VERSION@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_VERSION = @CC_VERSION@ +CFLAGS = @CFLAGS@ +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DESKTOP_DATADIR = @DESKTOP_DATADIR@ +DESKTOP_FILE_VALIDATE = @DESKTOP_FILE_VALIDATE@ +DLLTOOL = @DLLTOOL@ +DOC_SHOOTER = @DOC_SHOOTER@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILE_AA = @FILE_AA@ +FILE_EXR = @FILE_EXR@ +FILE_HEIF = @FILE_HEIF@ +FILE_JP2_LOAD = @FILE_JP2_LOAD@ +FILE_JPEGXL = @FILE_JPEGXL@ +FILE_MNG = @FILE_MNG@ +FILE_PDF_SAVE = @FILE_PDF_SAVE@ +FILE_PS = @FILE_PS@ +FILE_WMF = @FILE_WMF@ +FILE_XMC = @FILE_XMC@ +FILE_XPM = @FILE_XPM@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FONTCONFIG_REQUIRED_VERSION = @FONTCONFIG_REQUIRED_VERSION@ +FREETYPE2_REQUIRED_VERSION = @FREETYPE2_REQUIRED_VERSION@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GDBUS_CODEGEN = @GDBUS_CODEGEN@ +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ +GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ +GEGL = @GEGL@ +GEGL_CFLAGS = @GEGL_CFLAGS@ +GEGL_LIBS = @GEGL_LIBS@ +GEGL_MAJOR_MINOR_VERSION = @GEGL_MAJOR_MINOR_VERSION@ +GEGL_REQUIRED_VERSION = @GEGL_REQUIRED_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GEXIV2_CFLAGS = @GEXIV2_CFLAGS@ +GEXIV2_LIBS = @GEXIV2_LIBS@ +GEXIV2_REQUIRED_VERSION = @GEXIV2_REQUIRED_VERSION@ +GIMP_API_VERSION = @GIMP_API_VERSION@ +GIMP_APP_VERSION = @GIMP_APP_VERSION@ +GIMP_BINARY_AGE = @GIMP_BINARY_AGE@ +GIMP_COMMAND = @GIMP_COMMAND@ +GIMP_DATA_VERSION = @GIMP_DATA_VERSION@ +GIMP_FULL_NAME = @GIMP_FULL_NAME@ +GIMP_INTERFACE_AGE = @GIMP_INTERFACE_AGE@ +GIMP_MAJOR_VERSION = @GIMP_MAJOR_VERSION@ +GIMP_MICRO_VERSION = @GIMP_MICRO_VERSION@ +GIMP_MINOR_VERSION = @GIMP_MINOR_VERSION@ +GIMP_MKENUMS = @GIMP_MKENUMS@ +GIMP_MODULES = @GIMP_MODULES@ +GIMP_PACKAGE_REVISION = @GIMP_PACKAGE_REVISION@ +GIMP_PKGCONFIG_VERSION = @GIMP_PKGCONFIG_VERSION@ +GIMP_PLUGINS = @GIMP_PLUGINS@ +GIMP_PLUGIN_VERSION = @GIMP_PLUGIN_VERSION@ +GIMP_REAL_VERSION = @GIMP_REAL_VERSION@ +GIMP_RELEASE = @GIMP_RELEASE@ +GIMP_SYSCONF_VERSION = @GIMP_SYSCONF_VERSION@ +GIMP_TOOL_VERSION = @GIMP_TOOL_VERSION@ +GIMP_UNSTABLE = @GIMP_UNSTABLE@ +GIMP_USER_VERSION = @GIMP_USER_VERSION@ +GIMP_VERSION = @GIMP_VERSION@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ +GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ +GIO_WINDOWS_CFLAGS = @GIO_WINDOWS_CFLAGS@ +GIO_WINDOWS_LIBS = @GIO_WINDOWS_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ +GMODULE_NO_EXPORT_CFLAGS = @GMODULE_NO_EXPORT_CFLAGS@ +GMODULE_NO_EXPORT_LIBS = @GMODULE_NO_EXPORT_LIBS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GS_LIBS = @GS_LIBS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_MAC_INTEGRATION_CFLAGS = @GTK_MAC_INTEGRATION_CFLAGS@ +GTK_MAC_INTEGRATION_LIBS = @GTK_MAC_INTEGRATION_LIBS@ +GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ +GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ +HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ +HARFBUZZ_REQUIRED_VERSION = @HARFBUZZ_REQUIRED_VERSION@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_FINITE = @HAVE_FINITE@ +HAVE_ISFINITE = @HAVE_ISFINITE@ +HAVE_VFORK = @HAVE_VFORK@ +HOST_GLIB_COMPILE_RESOURCES = @HOST_GLIB_COMPILE_RESOURCES@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_REQUIRED_VERSION = @INTLTOOL_REQUIRED_VERSION@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +ISO_CODES_LOCALEDIR = @ISO_CODES_LOCALEDIR@ +ISO_CODES_LOCATION = @ISO_CODES_LOCATION@ +JPEG_LIBS = @JPEG_LIBS@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +JXL_CFLAGS = @JXL_CFLAGS@ +JXL_LIBS = @JXL_LIBS@ +JXL_THREADS_CFLAGS = @JXL_THREADS_CFLAGS@ +JXL_THREADS_LIBS = @JXL_THREADS_LIBS@ +LCMS_CFLAGS = @LCMS_CFLAGS@ +LCMS_LIBS = @LCMS_LIBS@ +LCMS_REQUIRED_VERSION = @LCMS_REQUIRED_VERSION@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ +LIBBACKTRACE_LIBS = @LIBBACKTRACE_LIBS@ +LIBHEIF_CFLAGS = @LIBHEIF_CFLAGS@ +LIBHEIF_LIBS = @LIBHEIF_LIBS@ +LIBHEIF_REQUIRED_VERSION = @LIBHEIF_REQUIRED_VERSION@ +LIBJXL_REQUIRED_VERSION = @LIBJXL_REQUIRED_VERSION@ +LIBLZMA_REQUIRED_VERSION = @LIBLZMA_REQUIRED_VERSION@ +LIBMYPAINT_CFLAGS = @LIBMYPAINT_CFLAGS@ +LIBMYPAINT_LIBS = @LIBMYPAINT_LIBS@ +LIBMYPAINT_REQUIRED_VERSION = @LIBMYPAINT_REQUIRED_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBPNG_REQUIRED_VERSION = @LIBPNG_REQUIRED_VERSION@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBUNWIND_CFLAGS = @LIBUNWIND_CFLAGS@ +LIBUNWIND_LIBS = @LIBUNWIND_LIBS@ +LIBUNWIND_REQUIRED_VERSION = @LIBUNWIND_REQUIRED_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +LZMA_CFLAGS = @LZMA_CFLAGS@ +LZMA_LIBS = @LZMA_LIBS@ +MAIL = @MAIL@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MIME_INFO_CFLAGS = @MIME_INFO_CFLAGS@ +MIME_INFO_LIBS = @MIME_INFO_LIBS@ +MIME_TYPES = @MIME_TYPES@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@ +MNG_CFLAGS = @MNG_CFLAGS@ +MNG_LIBS = @MNG_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYPAINT_BRUSHES_CFLAGS = @MYPAINT_BRUSHES_CFLAGS@ +MYPAINT_BRUSHES_LIBS = @MYPAINT_BRUSHES_LIBS@ +NATIVE_GLIB_CFLAGS = @NATIVE_GLIB_CFLAGS@ +NATIVE_GLIB_LIBS = @NATIVE_GLIB_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENEXR_CFLAGS = @OPENEXR_CFLAGS@ +OPENEXR_LIBS = @OPENEXR_LIBS@ +OPENEXR_REQUIRED_VERSION = @OPENEXR_REQUIRED_VERSION@ +OPENJPEG_CFLAGS = @OPENJPEG_CFLAGS@ +OPENJPEG_LIBS = @OPENJPEG_LIBS@ +OPENJPEG_REQUIRED_VERSION = @OPENJPEG_REQUIRED_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGOCAIRO_CFLAGS = @PANGOCAIRO_CFLAGS@ +PANGOCAIRO_LIBS = @PANGOCAIRO_LIBS@ +PANGOCAIRO_REQUIRED_VERSION = @PANGOCAIRO_REQUIRED_VERSION@ +PATHSEP = @PATHSEP@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PERL_REQUIRED_VERSION = @PERL_REQUIRED_VERSION@ +PERL_VERSION = @PERL_VERSION@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PNG_CFLAGS = @PNG_CFLAGS@ +PNG_LIBS = @PNG_LIBS@ +POFILES = @POFILES@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_DATA_CFLAGS = @POPPLER_DATA_CFLAGS@ +POPPLER_DATA_LIBS = @POPPLER_DATA_LIBS@ +POPPLER_DATA_REQUIRED_VERSION = @POPPLER_DATA_REQUIRED_VERSION@ +POPPLER_LIBS = @POPPLER_LIBS@ +POPPLER_REQUIRED_VERSION = @POPPLER_REQUIRED_VERSION@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +PYBIN_PATH = @PYBIN_PATH@ +PYCAIRO_CFLAGS = @PYCAIRO_CFLAGS@ +PYCAIRO_LIBS = @PYCAIRO_LIBS@ +PYGIMP_EXTRA_CFLAGS = @PYGIMP_EXTRA_CFLAGS@ +PYGTK_CFLAGS = @PYGTK_CFLAGS@ +PYGTK_CODEGEN = @PYGTK_CODEGEN@ +PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ +PYGTK_LIBS = @PYGTK_LIBS@ +PYLINK_LIBS = @PYLINK_LIBS@ +PYTHON = @PYTHON@ +PYTHON2_REQUIRED_VERSION = @PYTHON2_REQUIRED_VERSION@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_REQUIRED_VERSION = @RSVG_REQUIRED_VERSION@ +RT_LIBS = @RT_LIBS@ +SCREENSHOT_LIBS = @SCREENSHOT_LIBS@ +SED = @SED@ +SENDMAIL = @SENDMAIL@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOCKET_LIBS = @SOCKET_LIBS@ +SSE2_EXTRA_CFLAGS = @SSE2_EXTRA_CFLAGS@ +SSE4_1_EXTRA_CFLAGS = @SSE4_1_EXTRA_CFLAGS@ +SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@ +STRIP = @STRIP@ +SVG_CFLAGS = @SVG_CFLAGS@ +SVG_LIBS = @SVG_LIBS@ +SYMPREFIX = @SYMPREFIX@ +TIFF_LIBS = @TIFF_LIBS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WEBKIT_CFLAGS = @WEBKIT_CFLAGS@ +WEBKIT_LIBS = @WEBKIT_LIBS@ +WEBKIT_REQUIRED_VERSION = @WEBKIT_REQUIRED_VERSION@ +WEBPDEMUX_CFLAGS = @WEBPDEMUX_CFLAGS@ +WEBPDEMUX_LIBS = @WEBPDEMUX_LIBS@ +WEBPMUX_CFLAGS = @WEBPMUX_CFLAGS@ +WEBPMUX_LIBS = @WEBPMUX_LIBS@ +WEBP_CFLAGS = @WEBP_CFLAGS@ +WEBP_LIBS = @WEBP_LIBS@ +WEBP_REQUIRED_VERSION = @WEBP_REQUIRED_VERSION@ +WEB_PAGE = @WEB_PAGE@ +WIN32_LARGE_ADDRESS_AWARE = @WIN32_LARGE_ADDRESS_AWARE@ +WINDRES = @WINDRES@ +WMF_CFLAGS = @WMF_CFLAGS@ +WMF_CONFIG = @WMF_CONFIG@ +WMF_LIBS = @WMF_LIBS@ +WMF_REQUIRED_VERSION = @WMF_REQUIRED_VERSION@ +XDG_EMAIL = @XDG_EMAIL@ +XFIXES_CFLAGS = @XFIXES_CFLAGS@ +XFIXES_LIBS = @XFIXES_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_REQUIRED_VERSION = @XGETTEXT_REQUIRED_VERSION@ +XMC_CFLAGS = @XMC_CFLAGS@ +XMC_LIBS = @XMC_LIBS@ +XMKMF = @XMKMF@ +XMLLINT = @XMLLINT@ +XMU_LIBS = @XMU_LIBS@ +XPM_LIBS = @XPM_LIBS@ +XSLTPROC = @XSLTPROC@ +XVFB_RUN = @XVFB_RUN@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +Z_LIBS = @Z_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gimpdatadir = @gimpdatadir@ +gimpdir = @gimpdir@ +gimplocaledir = @gimplocaledir@ +gimpplugindir = @gimpplugindir@ +gimpsysconfdir = @gimpsysconfdir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +manpage_gimpdir = @manpage_gimpdir@ +mkdir_p = @mkdir_p@ +ms_librarian = @ms_librarian@ +mypaint_brushes_dir = @mypaint_brushes_dir@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +fractalexplorerdatadir = $(gimpdatadir)/fractalexplorer +fractalexplorerdata_DATA = \ + Asteroid_Field \ + Bar_Code_Label \ + Beauty_of_Nature \ + Blue_Curtain \ + Car_Track \ + Energetic_Diamond \ + Explosive \ + Flower \ + Fragments \ + Hemp \ + High_Voltage \ + Hoops \ + Ice_Crystal \ + Leaves \ + Lightning \ + Mandelbrot \ + Marble \ + Marble2 \ + Medusa \ + Nautilus \ + Nebula \ + Plant \ + Rose \ + Saturn \ + Snow_Crystal \ + Soma \ + Spark \ + Suns \ + Tentacles \ + The_Green_Place \ + Wave \ + Wood \ + Zooming_Circle + +EXTRA_DIST = $(fractalexplorerdata_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plug-ins/fractal-explorer/examples/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu plug-ins/fractal-explorer/examples/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-fractalexplorerdataDATA: $(fractalexplorerdata_DATA) + @$(NORMAL_INSTALL) + @list='$(fractalexplorerdata_DATA)'; test -n "$(fractalexplorerdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(fractalexplorerdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(fractalexplorerdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fractalexplorerdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(fractalexplorerdatadir)" || exit $$?; \ + done + +uninstall-fractalexplorerdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(fractalexplorerdata_DATA)'; test -n "$(fractalexplorerdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(fractalexplorerdatadir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(fractalexplorerdatadir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-fractalexplorerdataDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-fractalexplorerdataDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am \ + install-fractalexplorerdataDATA install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-fractalexplorerdataDATA + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/plug-ins/fractal-explorer/examples/Mandelbrot b/plug-ins/fractal-explorer/examples/Mandelbrot new file mode 100644 index 0000000..09c05d6 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Mandelbrot @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 0 +xmin: -0.078803382813931 +xmax: -0.077717751264572 +ymin: -0.880311131477356 +ymax: -0.879459798336029 +iter: 503.066986083984375 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 120.627998352050781 +bluestretch: 128.000000000000000 +redmode: 1 +greenmode: 2 +bluemode: 0 +redinvert: 1 +greeninvert: 0 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Marble b/plug-ins/fractal-explorer/examples/Marble new file mode 100644 index 0000000..dac8229 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Marble @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.235851287841797 +xmax: -0.060367584228516 +ymin: 0.091303825378418 +ymax: 0.220178604125977 +iter: 55.215000152587891 +cx: 0.356000006198883 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 127.330001831054688 +redmode: 1 +greenmode: 2 +bluemode: 2 +redinvert: 0 +greeninvert: 1 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Marble2 b/plug-ins/fractal-explorer/examples/Marble2 new file mode 100644 index 0000000..c2e2d8b --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Marble2 @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.146484375000000 +xmax: 0.064453125000000 +ymin: 0.154907226562500 +ymax: 0.358154296875000 +iter: 50.000000000000000 +cx: 0.356000006198883 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 1 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Medusa b/plug-ins/fractal-explorer/examples/Medusa new file mode 100644 index 0000000..84ff7b9 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Medusa @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 0 +xmin: -1.408687233924866 +xmax: -1.408686757087708 +ymin: -0.135643482208252 +ymax: -0.135642752051353 +iter: 104.293998718261719 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 113.000000000000000 +bluestretch: 128.000000000000000 +redmode: 1 +greenmode: 0 +bluemode: 1 +redinvert: 1 +greeninvert: 1 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Nautilus b/plug-ins/fractal-explorer/examples/Nautilus new file mode 100644 index 0000000..98c4b2c --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Nautilus @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.078369140625000 +xmax: 0.158203125000000 +ymin: -0.485778808593750 +ymax: -0.197387695312500 +iter: 134.968994140625000 +cx: 0.109999999403954 +cy: 0.037000000476837 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 1 +greenmode: 2 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Nebula b/plug-ins/fractal-explorer/examples/Nebula new file mode 100644 index 0000000..f541cb1 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Nebula @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.935546875000000 +xmax: 0.226562500000000 +ymin: 0.034790039062500 +ymax: 0.995361328125000 +iter: 67.485000610351562 +cx: 0.428999990224838 +cy: 0.232999995350838 +redstretch: 128.000000000000000 +greenstretch: 120.627998352050781 +bluestretch: 93.000000000000000 +redmode: 2 +greenmode: 2 +bluemode: 1 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Plant b/plug-ins/fractal-explorer/examples/Plant new file mode 100644 index 0000000..644f8e3 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Plant @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.251464843750000 +xmax: -0.097656250000000 +ymin: -0.626953125000000 +ymax: -0.503356933593750 +iter: 55.215000152587891 +cx: 0.503000020980835 +cy: -0.012000000104308 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 2 +greenmode: 1 +bluemode: 0 +redinvert: 1 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Rose b/plug-ins/fractal-explorer/examples/Rose new file mode 100644 index 0000000..e8bf1ee --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Rose @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 7 +xmin: 0.011789147742093 +xmax: 0.012022980488837 +ymin: 0.040065050125122 +ymax: 0.040298193693161 +iter: 92.025001525878906 +cx: -1.092000007629395 +cy: 0.232999995350838 +redstretch: 124.000000000000000 +greenstretch: 112.000000000000000 +bluestretch: 60.000000000000000 +redmode: 1 +greenmode: 0 +bluemode: 0 +redinvert: 1 +greeninvert: 1 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Saturn b/plug-ins/fractal-explorer/examples/Saturn new file mode 100644 index 0000000..ff6fed9 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Saturn @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -0.720550119876862 +xmax: -0.736553728580475 +ymin: 0.128735020756721 +ymax: 0.068184189498425 +iter: 49.080001831054688 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 119.958000183105469 +greenstretch: 85.779998779296875 +bluestretch: 6.031000137329102 +redmode: 0 +greenmode: 0 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Snow_Crystal b/plug-ins/fractal-explorer/examples/Snow_Crystal new file mode 100644 index 0000000..0e002ad --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Snow_Crystal @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 0 +xmin: -0.562806546688080 +xmax: -0.561547160148621 +ymin: -0.643333077430725 +ymax: -0.642277657985687 +iter: 122.698997497558594 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 113.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 0 +bluemode: 2 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Soma b/plug-ins/fractal-explorer/examples/Soma new file mode 100644 index 0000000..eae469c --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Soma @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.038584709167480 +xmax: 0.094075202941895 +ymin: -0.689266920089722 +ymax: -0.584711074829102 +iter: 98.160003662109375 +cx: 0.405000001192093 +cy: 0.037000000476837 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 0 +greenmode: 1 +bluemode: 2 +redinvert: 0 +greeninvert: 1 +blueinvert: 1 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Spark b/plug-ins/fractal-explorer/examples/Spark new file mode 100644 index 0000000..7fd72ea --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Spark @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 7 +xmin: -0.014160156250000 +xmax: 1.014160156250000 +ymin: -0.261108398437500 +ymax: 0.252685546875000 +iter: 42.944999694824219 +cx: -1.386999964714050 +cy: -0.257999986410141 +redstretch: 124.000000000000000 +greenstretch: 112.000000000000000 +bluestretch: 60.000000000000000 +redmode: 0 +greenmode: 2 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 1 +colormode: 1 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Suns b/plug-ins/fractal-explorer/examples/Suns new file mode 100644 index 0000000..0ee2c9b --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Suns @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 1 +xmin: -0.573436737060547 +xmax: -0.399868011474609 +ymin: -0.177640914916992 +ymax: -0.024647712707520 +iter: 607.361999511718750 +cx: -0.723999977111816 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 2 +greenmode: 0 +bluemode: 1 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Tentacles b/plug-ins/fractal-explorer/examples/Tentacles new file mode 100644 index 0000000..de9c9c6 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Tentacles @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 6 +xmin: -0.430790066719055 +xmax: -0.421469658613205 +ymin: 0.017559077590704 +ymax: 0.025114785879850 +iter: 67.485000610351562 +cx: -0.086000002920628 +cy: -0.012000000104308 +redstretch: 128.000000000000000 +greenstretch: 37.000000000000000 +bluestretch: 93.000000000000000 +redmode: 2 +greenmode: 2 +bluemode: 1 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/The_Green_Place b/plug-ins/fractal-explorer/examples/The_Green_Place new file mode 100644 index 0000000..b25527e --- /dev/null +++ b/plug-ins/fractal-explorer/examples/The_Green_Place @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 2 +xmin: 0.064453125000000 +xmax: 0.950683593750000 +ymin: -0.389648437500000 +ymax: 0.476440429687500 +iter: 50.000000000000000 +cx: -1.067000031471252 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 110.000000000000000 +bluestretch: 2.000000000000000 +redmode: 0 +greenmode: 1 +bluemode: 1 +redinvert: 1 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Wave b/plug-ins/fractal-explorer/examples/Wave new file mode 100644 index 0000000..d405d27 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Wave @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 2 +xmin: -0.937500000000000 +xmax: 1.125000000000000 +ymin: -0.609375000000000 +ymax: 0.609375000000000 +iter: 50.000000000000000 +cx: -1.042999982833862 +cy: -0.037000000476837 +redstretch: 128.000000000000000 +greenstretch: 22.000000000000000 +bluestretch: 101.000000000000000 +redmode: 1 +greenmode: 1 +bluemode: 0 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Wood b/plug-ins/fractal-explorer/examples/Wood new file mode 100644 index 0000000..e1f64c4 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Wood @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 4 +xmin: -1.287102937698364 +xmax: -1.287102580070496 +ymin: 0.099825143814087 +ymax: 0.099862203001976 +iter: 50.000000000000000 +cx: -0.750000000000000 +cy: -0.200000002980232 +redstretch: 128.000000000000000 +greenstretch: 109.905998229980469 +bluestretch: 2.009999990463257 +redmode: 1 +greenmode: 0 +bluemode: 0 +redinvert: 1 +greeninvert: 1 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/examples/Zooming_Circle b/plug-ins/fractal-explorer/examples/Zooming_Circle new file mode 100644 index 0000000..aa28d90 --- /dev/null +++ b/plug-ins/fractal-explorer/examples/Zooming_Circle @@ -0,0 +1,26 @@ +Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org> +#********************************************************************** +# This is a data file for the Fractal Explorer plug-in for GIMP * +# Get the plug-in at http://www.mygale.org/~cotting * +#********************************************************************** +fractaltype: 3 +xmin: 0.187500000000000 +xmax: 0.984375000000000 +ymin: 0.843750000000000 +ymax: 1.734375000000000 +iter: 50.000000000000000 +cx: 0.773000001907349 +cy: -0.723999977111816 +redstretch: 128.000000000000000 +greenstretch: 128.000000000000000 +bluestretch: 128.000000000000000 +redmode: 2 +greenmode: 0 +bluemode: 1 +redinvert: 0 +greeninvert: 0 +blueinvert: 0 +colormode: 0 +#********************************************************************** +<EOF> +#********************************************************************** diff --git a/plug-ins/fractal-explorer/fractal-explorer-dialogs.c b/plug-ins/fractal-explorer/fractal-explorer-dialogs.c new file mode 100644 index 0000000..8f53860 --- /dev/null +++ b/plug-ins/fractal-explorer/fractal-explorer-dialogs.c @@ -0,0 +1,1889 @@ +/********************************************************************** + GIMP - The GNU Image Manipulation Program + Copyright (C) 1995 Spencer Kimball and Peter Mattis + + 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 3 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, see <https://www.gnu.org/licenses/>. + *********************************************************************/ + +#include "config.h" + +#include <errno.h> +#include <stdlib.h> +#include <string.h> + +#include <glib/gstdio.h> + +#include <libgimp/gimp.h> +#include <libgimp/gimpui.h> + +#include "fractal-explorer.h" +#include "fractal-explorer-dialogs.h" + +#include "libgimp/stdplugins-intl.h" + + +#define ZOOM_UNDO_SIZE 100 + + +static gint n_gradient_samples = 0; +static gdouble *gradient_samples = NULL; +static gchar *gradient_name = NULL; +static gboolean ready_now = FALSE; +static gchar *tpath = NULL; +static DialogElements *elements = NULL; +static GtkWidget *cmap_preview; +static GtkWidget *maindlg; + +static explorer_vals_t zooms[ZOOM_UNDO_SIZE]; +static gint zoomindex = 0; +static gint zoommax = 0; + +static gint oldxpos = -1; +static gint oldypos = -1; +static gdouble x_press = -1.0; +static gdouble y_press = -1.0; + +static explorer_vals_t standardvals = +{ + 0, + -2.0, + 2.0, + -1.5, + 1.5, + 50.0, + -0.75, + -0.2, + 0, + 1.0, + 1.0, + 1.0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 256, + 0 +}; + +/********************************************************************** + FORWARD DECLARATIONS + *********************************************************************/ + +static void load_file_chooser_response (GtkFileChooser *chooser, + gint response_id, + gpointer data); +static void save_file_chooser_response (GtkFileChooser *chooser, + gint response_id, + gpointer data); +static void create_load_file_chooser (GtkWidget *widget, + GtkWidget *dialog); +static void create_save_file_chooser (GtkWidget *widget, + GtkWidget *dialog); + +static void cmap_preview_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); + +/********************************************************************** + CALLBACKS + *********************************************************************/ + +static void +dialog_response (GtkWidget *widget, + gint response_id, + gpointer data) +{ + switch (response_id) + { + case GTK_RESPONSE_OK: + wint.run = TRUE; + gtk_widget_destroy (widget); + break; + + default: + gtk_widget_destroy (widget); + break; + } +} + +static void +dialog_reset_callback (GtkWidget *widget, + gpointer data) +{ + wvals.xmin = standardvals.xmin; + wvals.xmax = standardvals.xmax; + wvals.ymin = standardvals.ymin; + wvals.ymax = standardvals.ymax; + wvals.iter = standardvals.iter; + wvals.cx = standardvals.cx; + wvals.cy = standardvals.cy; + + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); +} + +static void +dialog_redraw_callback (GtkWidget *widget, + gpointer data) +{ + gint alwaysprev = wvals.alwayspreview; + + wvals.alwayspreview = TRUE; + set_cmap_preview (); + dialog_update_preview (); + wvals.alwayspreview = alwaysprev; +} + +static void +dialog_undo_zoom_callback (GtkWidget *widget, + gpointer data) +{ + if (zoomindex > 0) + { + zooms[zoomindex] = wvals; + zoomindex--; + wvals = zooms[zoomindex]; + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); + } +} + +static void +dialog_redo_zoom_callback (GtkWidget *widget, + gpointer data) +{ + if (zoomindex < zoommax) + { + zoomindex++; + wvals = zooms[zoomindex]; + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); + } +} + +static void +dialog_step_in_callback (GtkWidget *widget, + gpointer data) +{ + double xdifferenz; + double ydifferenz; + + if (zoomindex < ZOOM_UNDO_SIZE - 1) + { + zooms[zoomindex]=wvals; + zoomindex++; + } + zoommax = zoomindex; + + xdifferenz = wvals.xmax - wvals.xmin; + ydifferenz = wvals.ymax - wvals.ymin; + wvals.xmin += 1.0 / 6.0 * xdifferenz; + wvals.ymin += 1.0 / 6.0 * ydifferenz; + wvals.xmax -= 1.0 / 6.0 * xdifferenz; + wvals.ymax -= 1.0 / 6.0 * ydifferenz; + zooms[zoomindex] = wvals; + + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); +} + +static void +dialog_step_out_callback (GtkWidget *widget, + gpointer data) +{ + gdouble xdifferenz; + gdouble ydifferenz; + + if (zoomindex < ZOOM_UNDO_SIZE - 1) + { + zooms[zoomindex]=wvals; + zoomindex++; + } + zoommax = zoomindex; + + xdifferenz = wvals.xmax - wvals.xmin; + ydifferenz = wvals.ymax - wvals.ymin; + wvals.xmin -= 1.0 / 4.0 * xdifferenz; + wvals.ymin -= 1.0 / 4.0 * ydifferenz; + wvals.xmax += 1.0 / 4.0 * xdifferenz; + wvals.ymax += 1.0 / 4.0 * ydifferenz; + zooms[zoomindex] = wvals; + + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); +} + +static void +explorer_toggle_update (GtkWidget *widget, + gpointer data) +{ + gimp_toggle_button_update (widget, data); + + set_cmap_preview (); + dialog_update_preview (); +} + +static void +explorer_radio_update (GtkWidget *widget, + gpointer data) +{ + gboolean c_sensitive; + + gimp_radio_button_update (widget, data); + + switch (wvals.fractaltype) + { + case TYPE_MANDELBROT: + case TYPE_SIERPINSKI: + c_sensitive = FALSE; + break; + + default: + c_sensitive = TRUE; + break; + } + + gimp_scale_entry_set_sensitive (elements->cx, c_sensitive); + gimp_scale_entry_set_sensitive (elements->cy, c_sensitive); + + set_cmap_preview (); + dialog_update_preview (); +} + +static void +explorer_double_adjustment_update (GtkAdjustment *adjustment, + gpointer data) +{ + gimp_double_adjustment_update (adjustment, data); + + set_cmap_preview (); + dialog_update_preview (); +} + +static void +explorer_number_of_colors_callback (GtkAdjustment *adjustment, + gpointer data) +{ + gimp_int_adjustment_update (adjustment, data); + + g_free (gradient_samples); + + if (! gradient_name) + gradient_name = gimp_context_get_gradient (); + + gimp_gradient_get_uniform_samples (gradient_name, + wvals.ncolors, + wvals.gradinvert, + &n_gradient_samples, + &gradient_samples); + + set_cmap_preview (); + dialog_update_preview (); +} + +static void +explorer_gradient_select_callback (GimpGradientSelectButton *gradient_button, + const gchar *name, + gint width, + const gdouble *gradient_data, + gboolean dialog_closing, + gpointer data) +{ + g_free (gradient_name); + g_free (gradient_samples); + + gradient_name = g_strdup (name); + + gimp_gradient_get_uniform_samples (gradient_name, + wvals.ncolors, + wvals.gradinvert, + &n_gradient_samples, + &gradient_samples); + + if (wvals.colormode == 1) + { + set_cmap_preview (); + dialog_update_preview (); + } +} + +static void +preview_draw_crosshair (gint px, + gint py) +{ + gint x, y; + guchar *p_ul; + + p_ul = wint.wimage + 3 * (preview_width * py + 0); + + for (x = 0; x < preview_width; x++) + { + p_ul[0] ^= 254; + p_ul[1] ^= 254; + p_ul[2] ^= 254; + p_ul += 3; + } + + p_ul = wint.wimage + 3 * (preview_width * 0 + px); + + for (y = 0; y < preview_height; y++) + { + p_ul[0] ^= 254; + p_ul[1] ^= 254; + p_ul[2] ^= 254; + p_ul += 3 * preview_width; + } +} + +static void +preview_redraw (void) +{ + gimp_preview_area_draw (GIMP_PREVIEW_AREA (wint.preview), + 0, 0, preview_width, preview_height, + GIMP_RGB_IMAGE, + wint.wimage, preview_width * 3); + + gtk_widget_queue_draw (wint.preview); +} + +static gboolean +preview_button_press_event (GtkWidget *widget, + GdkEventButton *event) +{ + if (event->button == 1) + { + x_press = event->x; + y_press = event->y; + xbild = preview_width; + ybild = preview_height; + xdiff = (xmax - xmin) / xbild; + ydiff = (ymax - ymin) / ybild; + + preview_draw_crosshair (x_press, y_press); + preview_redraw (); + } + return TRUE; +} + +static gboolean +preview_motion_notify_event (GtkWidget *widget, + GdkEventButton *event) +{ + if (oldypos != -1) + { + preview_draw_crosshair (oldxpos, oldypos); + } + + oldxpos = event->x; + oldypos = event->y; + + if ((oldxpos >= 0.0) && + (oldypos >= 0.0) && + (oldxpos < preview_width) && + (oldypos < preview_height)) + { + preview_draw_crosshair (oldxpos, oldypos); + } + else + { + oldypos = -1; + oldxpos = -1; + } + + preview_redraw (); + + return TRUE; +} + +static gboolean +preview_leave_notify_event (GtkWidget *widget, + GdkEventButton *event) +{ + if (oldypos != -1) + { + preview_draw_crosshair (oldxpos, oldypos); + } + oldxpos = -1; + oldypos = -1; + + preview_redraw (); + + gdk_window_set_cursor (gtk_widget_get_window (maindlg), NULL); + + return TRUE; +} + +static gboolean +preview_enter_notify_event (GtkWidget *widget, + GdkEventButton *event) +{ + static GdkCursor *cursor = NULL; + + if (! cursor) + { + GdkDisplay *display = gtk_widget_get_display (maindlg); + + cursor = gdk_cursor_new_for_display (display, GDK_TCROSS); + + } + + gdk_window_set_cursor (gtk_widget_get_window (maindlg), cursor); + + return TRUE; +} + +static gboolean +preview_button_release_event (GtkWidget *widget, + GdkEventButton *event) +{ + gdouble l_xmin; + gdouble l_xmax; + gdouble l_ymin; + gdouble l_ymax; + + if (event->button == 1) + { + gdouble x_release, y_release; + + x_release = event->x; + y_release = event->y; + + if ((x_press >= 0.0) && (y_press >= 0.0) && + (x_release >= 0.0) && (y_release >= 0.0) && + (x_press < preview_width) && (y_press < preview_height) && + (x_release < preview_width) && (y_release < preview_height)) + { + l_xmin = (wvals.xmin + + (wvals.xmax - wvals.xmin) * (x_press / preview_width)); + l_xmax = (wvals.xmin + + (wvals.xmax - wvals.xmin) * (x_release / preview_width)); + l_ymin = (wvals.ymin + + (wvals.ymax - wvals.ymin) * (y_press / preview_height)); + l_ymax = (wvals.ymin + + (wvals.ymax - wvals.ymin) * (y_release / preview_height)); + + if (zoomindex < ZOOM_UNDO_SIZE - 1) + { + zooms[zoomindex] = wvals; + zoomindex++; + } + zoommax = zoomindex; + wvals.xmin = l_xmin; + wvals.xmax = l_xmax; + wvals.ymin = l_ymin; + wvals.ymax = l_ymax; + dialog_change_scale (); + dialog_update_preview (); + oldypos = oldxpos = -1; + } + } + + return TRUE; +} + +/********************************************************************** + FUNCTION: explorer_dialog + *********************************************************************/ + +gint +explorer_dialog (void) +{ + GtkWidget *dialog; + GtkWidget *top_hbox; + GtkWidget *left_vbox; + GtkWidget *abox; + GtkWidget *vbox; + GtkWidget *bbox; + GtkWidget *frame; + GtkWidget *toggle; + GtkWidget *toggle_vbox; + GtkWidget *toggle_vbox2; + GtkWidget *toggle_vbox3; + GtkWidget *notebook; + GtkWidget *hbox; + GtkWidget *table; + GtkWidget *button; + GtkWidget *gradient; + gchar *path; + gchar *gradient_name; + GSList *group = NULL; + gint i; + + gimp_ui_init (PLUG_IN_BINARY, TRUE); + + path = gimp_gimprc_query ("fractalexplorer-path"); + + if (path) + { + fractalexplorer_path = g_filename_from_utf8 (path, -1, NULL, NULL, NULL); + g_free (path); + } + else + { + gchar *gimprc = gimp_personal_rc_file ("gimprc"); + gchar *full_path = gimp_config_build_data_path ("fractalexplorer"); + gchar *esc_path = g_strescape (full_path, NULL); + g_free (full_path); + + g_message (_("No %s in gimprc:\n" + "You need to add an entry like\n" + "(%s \"%s\")\n" + "to your %s file."), + "fractalexplorer-path", + "fractalexplorer-path", + esc_path, gimp_filename_to_utf8 (gimprc)); + + g_free (gimprc); + g_free (esc_path); + } + + wint.wimage = g_new (guchar, preview_width * preview_height * 3); + elements = g_new (DialogElements, 1); + + dialog = maindlg = + gimp_dialog_new (_("Fractal Explorer"), PLUG_IN_ROLE, + NULL, 0, + gimp_standard_help_func, PLUG_IN_PROC, + + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_OK"), GTK_RESPONSE_OK, + + NULL); + + gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + gimp_window_set_transient (GTK_WINDOW (dialog)); + + g_signal_connect (dialog, "response", + G_CALLBACK (dialog_response), + NULL); + + g_signal_connect (dialog, "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + top_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_container_set_border_width (GTK_CONTAINER (top_hbox), 12); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), + top_hbox, FALSE, FALSE, 0); + gtk_widget_show (top_hbox); + + left_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_box_pack_start (GTK_BOX (top_hbox), left_vbox, FALSE, FALSE, 0); + gtk_widget_show (left_vbox); + + /* Preview */ + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + gtk_box_pack_start (GTK_BOX (left_vbox), vbox, FALSE, FALSE, 0); + gtk_widget_show (vbox); + + abox = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); + gtk_box_pack_start (GTK_BOX (vbox), abox, FALSE, FALSE, 0); + gtk_widget_show (abox); + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + gtk_container_add (GTK_CONTAINER (abox), frame); + gtk_widget_show (frame); + + wint.preview = gimp_preview_area_new (); + gtk_widget_set_size_request (wint.preview, preview_width, preview_height); + gtk_container_add (GTK_CONTAINER (frame), wint.preview); + + g_signal_connect (wint.preview, "button-press-event", + G_CALLBACK (preview_button_press_event), + NULL); + g_signal_connect (wint.preview, "button-release-event", + G_CALLBACK (preview_button_release_event), + NULL); + g_signal_connect (wint.preview, "motion-notify-event", + G_CALLBACK (preview_motion_notify_event), + NULL); + g_signal_connect (wint.preview, "leave-notify-event", + G_CALLBACK (preview_leave_notify_event), + NULL); + g_signal_connect (wint.preview, "enter-notify-event", + G_CALLBACK (preview_enter_notify_event), + NULL); + + gtk_widget_set_events (wint.preview, (GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_POINTER_MOTION_MASK | + GDK_LEAVE_NOTIFY_MASK | + GDK_ENTER_NOTIFY_MASK)); + gtk_widget_show (wint.preview); + + toggle = gtk_check_button_new_with_mnemonic (_("Re_altime preview")); + gtk_box_pack_start (GTK_BOX (vbox), toggle, FALSE, FALSE, 0); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_toggle_update), + &wvals.alwayspreview); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), + wvals.alwayspreview); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, _("If enabled the preview will " + "be redrawn automatically"), NULL); + + button = gtk_button_new_with_mnemonic (_("R_edraw preview")); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_redraw_callback), + dialog); + gtk_widget_show (button); + + /* Zoom Options */ + frame = gimp_frame_new (_("Zoom")); + gtk_box_pack_start (GTK_BOX (left_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_box_set_homogeneous (GTK_BOX (bbox), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0); + gtk_widget_show (bbox); + + button = gtk_button_new_with_mnemonic (_("Zoom _In")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + gtk_widget_show (button); + + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_step_in_callback), + dialog); + + button = gtk_button_new_with_mnemonic (_("Zoom _Out")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + gtk_widget_show (button); + + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_step_out_callback), + dialog); + + bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_box_set_homogeneous (GTK_BOX (bbox), TRUE); + gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0); + gtk_widget_show (bbox); + + button = gtk_button_new_with_mnemonic (_("_Undo")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + gtk_widget_show (button); + + gimp_help_set_help_data (button, _("Undo last zoom change"), NULL); + + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_undo_zoom_callback), + dialog); + + button = gtk_button_new_with_mnemonic (_("_Redo")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + gtk_widget_show (button); + + gimp_help_set_help_data (button, _("Redo last zoom change"), NULL); + + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_redo_zoom_callback), + dialog); + + /* Create notebook */ + notebook = gtk_notebook_new (); + gtk_box_pack_start (GTK_BOX (top_hbox), notebook, FALSE, FALSE, 0); + gtk_widget_show (notebook); + + /* "Parameters" page */ + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, + gtk_label_new_with_mnemonic (_("_Parameters"))); + gtk_widget_show (vbox); + + frame = gimp_frame_new (_("Fractal Parameters")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + table = gtk_table_new (8, 3, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 6); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_row_spacing (GTK_TABLE (table), 6, 12); + gtk_container_add (GTK_CONTAINER (frame), table); + gtk_widget_show (table); + + elements->xmin = + gimp_scale_entry_new (GTK_TABLE (table), 0, 0, + _("Left:"), SCALE_WIDTH, 10, + wvals.xmin, -3, 3, 0.001, 0.01, 5, + TRUE, 0, 0, NULL, NULL); + g_signal_connect (elements->xmin, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.xmin); + + elements->xmax = + gimp_scale_entry_new (GTK_TABLE (table), 0, 1, + _("Right:"), SCALE_WIDTH, 10, + wvals.xmax, -3, 3, 0.001, 0.01, 5, + TRUE, 0, 0, NULL, NULL); + g_signal_connect (elements->xmax, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.xmax); + + elements->ymin = + gimp_scale_entry_new (GTK_TABLE (table), 0, 2, + _("Top:"), SCALE_WIDTH, 10, + wvals.ymin, -3, 3, 0.001, 0.01, 5, + TRUE, 0, 0, NULL, NULL); + g_signal_connect (elements->ymin, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.ymin); + + elements->ymax = + gimp_scale_entry_new (GTK_TABLE (table), 0, 3, + _("Bottom:"), SCALE_WIDTH, 10, + wvals.ymax, -3, 3, 0.001, 0.01, 5, + TRUE, 0, 0, NULL, NULL); + g_signal_connect (elements->ymax, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.ymax); + + elements->iter = + gimp_scale_entry_new (GTK_TABLE (table), 0, 4, + _("Iterations:"), SCALE_WIDTH, 10, + wvals.iter, 1, 1000, 1, 10, 0, + TRUE, 0, 0, + _("The higher the number of iterations, " + "the more details will be calculated"), NULL); + g_signal_connect (elements->iter, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.iter); + + elements->cx = + gimp_scale_entry_new (GTK_TABLE (table), 0, 5, + _("CX:"), SCALE_WIDTH, 10, + wvals.cx, -2.5, 2.5, 0.001, 0.01, 5, + TRUE, 0, 0, + _("Changes aspect of fractal"), NULL); + g_signal_connect (elements->cx, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.cx); + + elements->cy = + gimp_scale_entry_new (GTK_TABLE (table), 0, 6, + _("CY:"), SCALE_WIDTH, 10, + wvals.cy, -2.5, 2.5, 0.001, 0.01, 5, + TRUE, 0, 0, + _("Changes aspect of fractal"), NULL); + g_signal_connect (elements->cy, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.cy); + + bbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_box_set_homogeneous (GTK_BOX (bbox), TRUE); + gtk_table_attach_defaults (GTK_TABLE (table), bbox, 0, 3, 7, 8); + gtk_widget_show (bbox); + + button = gtk_button_new_with_mnemonic (_("_Open")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (create_load_file_chooser), + dialog); + gtk_widget_show (button); + gimp_help_set_help_data (button, _("Load a fractal from file"), NULL); + + button = gtk_button_new_with_mnemonic (_("_Reset")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (dialog_reset_callback), + dialog); + gtk_widget_show (button); + gimp_help_set_help_data (button, _("Reset parameters to default values"), + NULL); + + button = gtk_button_new_with_mnemonic (_("_Save")); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (create_save_file_chooser), + dialog); + gtk_widget_show (button); + gimp_help_set_help_data (button, _("Save active fractal to file"), NULL); + + /* Fractal type toggle box */ + frame = gimp_frame_new (_("Fractal Type")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_container_add (GTK_CONTAINER (frame), hbox); + gtk_widget_show (hbox); + + toggle_vbox = + gimp_int_radio_group_new (FALSE, NULL, + G_CALLBACK (explorer_radio_update), + &wvals.fractaltype, wvals.fractaltype, + + _("Mandelbrot"), TYPE_MANDELBROT, + &(elements->type[TYPE_MANDELBROT]), + _("Julia"), TYPE_JULIA, + &(elements->type[TYPE_JULIA]), + _("Barnsley 1"), TYPE_BARNSLEY_1, + &(elements->type[TYPE_BARNSLEY_1]), + _("Barnsley 2"), TYPE_BARNSLEY_2, + &(elements->type[TYPE_BARNSLEY_2]), + _("Barnsley 3"), TYPE_BARNSLEY_3, + &(elements->type[TYPE_BARNSLEY_3]), + _("Spider"), TYPE_SPIDER, + &(elements->type[TYPE_SPIDER]), + _("Man'o'war"), TYPE_MAN_O_WAR, + &(elements->type[TYPE_MAN_O_WAR]), + _("Lambda"), TYPE_LAMBDA, + &(elements->type[TYPE_LAMBDA]), + _("Sierpinski"), TYPE_SIERPINSKI, + &(elements->type[TYPE_SIERPINSKI]), + + NULL); + + toggle_vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + for (i = TYPE_BARNSLEY_2; i <= TYPE_SPIDER; i++) + { + g_object_ref (elements->type[i]); + + gtk_widget_hide (elements->type[i]); + gtk_container_remove (GTK_CONTAINER (toggle_vbox), elements->type[i]); + gtk_box_pack_start (GTK_BOX (toggle_vbox2), elements->type[i], + FALSE, FALSE, 0); + gtk_widget_show (elements->type[i]); + + g_object_unref (elements->type[i]); + } + + toggle_vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + for (i = TYPE_MAN_O_WAR; i <= TYPE_SIERPINSKI; i++) + { + g_object_ref (elements->type[i]); + + gtk_widget_hide (elements->type[i]); + gtk_container_remove (GTK_CONTAINER (toggle_vbox), elements->type[i]); + gtk_box_pack_start (GTK_BOX (toggle_vbox3), elements->type[i], + FALSE, FALSE, 0); + gtk_widget_show (elements->type[i]); + + g_object_unref (elements->type[i]); + } + + gtk_box_pack_start (GTK_BOX (hbox), toggle_vbox, FALSE, FALSE, 0); + gtk_widget_show (toggle_vbox); + + gtk_box_pack_start (GTK_BOX (hbox), toggle_vbox2, FALSE, FALSE, 0); + gtk_widget_show (toggle_vbox2); + + gtk_box_pack_start (GTK_BOX (hbox), toggle_vbox3, FALSE, FALSE, 0); + gtk_widget_show (toggle_vbox3); + + /* Color page */ + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, + gtk_label_new_with_mnemonic (_("Co_lors"))); + gtk_widget_show (vbox); + + /* Number of Colors frame */ + frame = gimp_frame_new (_("Number of Colors")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + table = gtk_table_new (2, 3, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 6); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_container_add (GTK_CONTAINER (frame), table); + gtk_widget_show (table); + + elements->ncol = + gimp_scale_entry_new (GTK_TABLE (table), 0, 0, + _("Number of colors:"), SCALE_WIDTH, 0, + wvals.ncolors, 2, MAXNCOLORS, 1, 10, 0, + TRUE, 0, 0, + _("Change the number of colors in the mapping"), + NULL); + g_signal_connect (elements->ncol, "value-changed", + G_CALLBACK (explorer_number_of_colors_callback), + &wvals.ncolors); + + elements->useloglog = toggle = + gtk_check_button_new_with_label (_("Use loglog smoothing")); + gtk_table_attach_defaults (GTK_TABLE (table), toggle, 0, 3, 1, 2); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_toggle_update), + &wvals.useloglog); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), wvals.useloglog); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, _("Use log log smoothing to eliminate " + "\"banding\" in the result"), NULL); + + /* Color Density frame */ + frame = gimp_frame_new (_("Color Density")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + table = gtk_table_new (3, 3, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 6); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_container_add (GTK_CONTAINER (frame), table); + gtk_widget_show (table); + + elements->red = + gimp_scale_entry_new (GTK_TABLE (table), 0, 0, + _("Red:"), SCALE_WIDTH, 0, + wvals.redstretch, 0, 1, 0.01, 0.1, 2, + TRUE, 0, 0, + _("Change the intensity of the red channel"), NULL); + g_signal_connect (elements->red, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.redstretch); + + elements->green = + gimp_scale_entry_new (GTK_TABLE (table), 0, 1, + _("Green:"), SCALE_WIDTH, 0, + wvals.greenstretch, 0, 1, 0.01, 0.1, 2, + TRUE, 0, 0, + _("Change the intensity of the green channel"), NULL); + g_signal_connect (elements->green, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.greenstretch); + + elements->blue = + gimp_scale_entry_new (GTK_TABLE (table), 0, 2, + _("Blue:"), SCALE_WIDTH, 0, + wvals.bluestretch, 0, 1, 0.01, 0.1, 2, + TRUE, 0, 0, + _("Change the intensity of the blue channel"), NULL); + g_signal_connect (elements->blue, "value-changed", + G_CALLBACK (explorer_double_adjustment_update), + &wvals.bluestretch); + + /* Color Function frame */ + frame = gimp_frame_new (_("Color Function")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_container_add (GTK_CONTAINER (frame), hbox); + gtk_widget_show (hbox); + + /* Redmode radio frame */ + frame = gimp_int_radio_group_new (TRUE, _("Red"), + G_CALLBACK (explorer_radio_update), + &wvals.redmode, wvals.redmode, + + _("Sine"), SINUS, + &elements->redmode[SINUS], + _("Cosine"), COSINUS, + &elements->redmode[COSINUS], + C_("color-function", "None"), NONE, + &elements->redmode[NONE], + + NULL); + gimp_help_set_help_data (elements->redmode[SINUS], + _("Use sine-function for this color component"), + NULL); + gimp_help_set_help_data (elements->redmode[COSINUS], + _("Use cosine-function for this color " + "component"), NULL); + gimp_help_set_help_data (elements->redmode[NONE], + _("Use linear mapping instead of any " + "trigonometrical function for this color " + "channel"), NULL); + gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); + gtk_widget_show (frame); + + toggle_vbox = gtk_bin_get_child (GTK_BIN (frame)); + + elements->redinvert = toggle = + gtk_check_button_new_with_label (_("Inversion")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), wvals.redinvert); + gtk_box_pack_start (GTK_BOX (toggle_vbox), toggle, FALSE, FALSE, 0); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_toggle_update), + &wvals.redinvert); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, + _("If you enable this option higher color values " + "will be swapped with lower ones and vice " + "versa"), NULL); + + /* Greenmode radio frame */ + frame = gimp_int_radio_group_new (TRUE, _("Green"), + G_CALLBACK (explorer_radio_update), + &wvals.greenmode, wvals.greenmode, + + _("Sine"), SINUS, + &elements->greenmode[SINUS], + _("Cosine"), COSINUS, + &elements->greenmode[COSINUS], + C_("color-function", "None"), NONE, + &elements->greenmode[NONE], + + NULL); + gimp_help_set_help_data (elements->greenmode[SINUS], + _("Use sine-function for this color component"), + NULL); + gimp_help_set_help_data (elements->greenmode[COSINUS], + _("Use cosine-function for this color " + "component"), NULL); + gimp_help_set_help_data (elements->greenmode[NONE], + _("Use linear mapping instead of any " + "trigonometrical function for this color " + "channel"), NULL); + gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); + gtk_widget_show (frame); + + toggle_vbox = gtk_bin_get_child (GTK_BIN (frame)); + + elements->greeninvert = toggle = + gtk_check_button_new_with_label (_("Inversion")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), wvals.greeninvert); + gtk_box_pack_start (GTK_BOX (toggle_vbox), toggle, FALSE, FALSE, 0); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_toggle_update), + &wvals.greeninvert); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, + _("If you enable this option higher color values " + "will be swapped with lower ones and vice " + "versa"), NULL); + + /* Bluemode radio frame */ + frame = gimp_int_radio_group_new (TRUE, _("Blue"), + G_CALLBACK (explorer_radio_update), + &wvals.bluemode, wvals.bluemode, + + _("Sine"), SINUS, + &elements->bluemode[SINUS], + _("Cosine"), COSINUS, + &elements->bluemode[COSINUS], + C_("color-function", "None"), NONE, + &elements->bluemode[NONE], + + NULL); + gimp_help_set_help_data (elements->bluemode[SINUS], + _("Use sine-function for this color component"), + NULL); + gimp_help_set_help_data (elements->bluemode[COSINUS], + _("Use cosine-function for this color " + "component"), NULL); + gimp_help_set_help_data (elements->bluemode[NONE], + _("Use linear mapping instead of any " + "trigonometrical function for this color " + "channel"), NULL); + gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); + gtk_widget_show (frame); + + toggle_vbox = gtk_bin_get_child (GTK_BIN (frame)); + + elements->blueinvert = toggle = + gtk_check_button_new_with_label (_("Inversion")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON( toggle), wvals.blueinvert); + gtk_box_pack_start (GTK_BOX (toggle_vbox), toggle, FALSE, FALSE, 0); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_toggle_update), + &wvals.blueinvert); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, + _("If you enable this option higher color values " + "will be swapped with lower ones and vice " + "versa"), NULL); + + /* Colormode toggle box */ + frame = gimp_frame_new (_("Color Mode")); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + toggle_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); + gtk_container_add (GTK_CONTAINER (frame), toggle_vbox); + gtk_widget_show (toggle_vbox); + + toggle = elements->colormode[0] = + gtk_radio_button_new_with_label (group, _("As specified above")); + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (toggle)); + gtk_box_pack_start (GTK_BOX (toggle_vbox), toggle, FALSE, FALSE, 0); + g_object_set_data (G_OBJECT (toggle), "gimp-item-data", + GINT_TO_POINTER (0)); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_radio_update), + &wvals.colormode); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), + wvals.colormode == 0); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, + _("Create a color-map with the options you " + "specified above (color density/function). The " + "result is visible in the preview image"), NULL); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_box_pack_start (GTK_BOX (toggle_vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + toggle = elements->colormode[1] = + gtk_radio_button_new_with_label (group, + _("Apply active gradient to final image")); + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (toggle)); + gtk_box_pack_start (GTK_BOX (hbox), toggle, TRUE, TRUE, 0); + g_object_set_data (G_OBJECT (toggle), "gimp-item-data", + GINT_TO_POINTER (1)); + g_signal_connect (toggle, "toggled", + G_CALLBACK (explorer_radio_update), + &wvals.colormode); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), + wvals.colormode == 1); + gtk_widget_show (toggle); + gimp_help_set_help_data (toggle, + _("Create a color-map using a gradient from " + "the gradient editor"), NULL); + + gradient_name = gimp_context_get_gradient (); + + gimp_gradient_get_uniform_samples (gradient_name, + wvals.ncolors, + wvals.gradinvert, + &n_gradient_samples, + &gradient_samples); + + gradient = gimp_gradient_select_button_new (_("FractalExplorer Gradient"), + gradient_name); + g_signal_connect (gradient, "gradient-set", + G_CALLBACK (explorer_gradient_select_callback), NULL); + g_free (gradient_name); + gtk_box_pack_start (GTK_BOX (hbox), gradient, FALSE, FALSE, 0); + gtk_widget_show (gradient); + + abox = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + { + gint xsize, ysize; + + for (ysize = 1; ysize * ysize * ysize < 8192; ysize++) /**/; + xsize = wvals.ncolors / ysize; + while (xsize * ysize < 8192) xsize++; + + gtk_widget_set_size_request (abox, xsize, ysize * 4); + } + gtk_box_pack_start (GTK_BOX (toggle_vbox), abox, FALSE, FALSE, 0); + gtk_widget_show (abox); + + cmap_preview = gimp_preview_area_new (); + gtk_widget_set_size_request (cmap_preview, 32, 32); + gtk_container_add (GTK_CONTAINER (abox), cmap_preview); + g_signal_connect (cmap_preview, "size-allocate", + G_CALLBACK (cmap_preview_size_allocate), NULL); + gtk_widget_show (cmap_preview); + + frame = add_objects_list (); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, + gtk_label_new_with_mnemonic (_("_Fractals"))); + gtk_widget_show (frame); + + gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); + + gtk_widget_show (dialog); + ready_now = TRUE; + + set_cmap_preview (); + dialog_update_preview (); + + gtk_main (); + + g_free (wint.wimage); + + return wint.run; +} + + +/********************************************************************** + FUNCTION: dialog_update_preview + *********************************************************************/ + +void +dialog_update_preview (void) +{ + gint ycoord; + guchar *p_ul; + + if (NULL == wint.preview) + return; + + if (ready_now && wvals.alwayspreview) + { + xmin = wvals.xmin; + xmax = wvals.xmax; + ymin = wvals.ymin; + ymax = wvals.ymax; + xbild = preview_width; + ybild = preview_height; + xdiff = (xmax - xmin) / xbild; + ydiff = (ymax - ymin) / ybild; + + p_ul = wint.wimage; + + for (ycoord = 0; ycoord < preview_height; ycoord++) + { + explorer_render_row (NULL, + p_ul, + ycoord, + preview_width, + 3); + p_ul += preview_width * 3; + } + + preview_redraw (); + } +} + +/********************************************************************** + FUNCTION: cmap_preview_size_allocate() + *********************************************************************/ + +static void +cmap_preview_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + gint i; + gint x; + gint y; + gint j; + guchar *b; + GimpPreviewArea *preview = GIMP_PREVIEW_AREA (widget); + + b = g_new (guchar, allocation->width * allocation->height * 3); + + for (y = 0; y < allocation->height; y++) + { + for (x = 0; x < allocation->width; x++) + { + i = x + (y / 4) * allocation->width; + if (i > wvals.ncolors) + { + for (j = 0; j < 3; j++) + b[(y*allocation->width + x) * 3 + j] = 0; + } + else + { + b[(y*allocation->width + x) * 3] = colormap[i].r; + b[(y*allocation->width + x) * 3 + 1] = colormap[i].g; + b[(y*allocation->width + x) * 3 + 2] = colormap[i].b; + } + } + } + gimp_preview_area_draw (preview, + 0, 0, allocation->width, allocation->height, + GIMP_RGB_IMAGE, b, allocation->width*3); + gtk_widget_queue_draw (cmap_preview); + + g_free (b); + +} + +/********************************************************************** + FUNCTION: set_cmap_preview() + *********************************************************************/ + +void +set_cmap_preview (void) +{ + gint xsize, ysize; + + if (NULL == cmap_preview) + return; + + make_color_map (); + + for (ysize = 1; ysize * ysize * ysize < wvals.ncolors; ysize++) + /**/; + xsize = wvals.ncolors / ysize; + while (xsize * ysize < wvals.ncolors) + xsize++; + + gtk_widget_set_size_request (cmap_preview, xsize, ysize * 4); +} + +/********************************************************************** + FUNCTION: make_color_map() + *********************************************************************/ + +void +make_color_map (void) +{ + gint i; + gint r; + gint gr; + gint bl; + gdouble redstretch; + gdouble greenstretch; + gdouble bluestretch; + gdouble pi = atan (1) * 4; + + /* get gradient samples if they don't exist -- fixes gradient color + * mode for noninteractive use (bug #103470). + */ + if (gradient_samples == NULL) + { + gchar *gradient_name = gimp_context_get_gradient (); + + gimp_gradient_get_uniform_samples (gradient_name, + wvals.ncolors, + wvals.gradinvert, + &n_gradient_samples, + &gradient_samples); + + g_free (gradient_name); + } + + redstretch = wvals.redstretch * 127.5; + greenstretch = wvals.greenstretch * 127.5; + bluestretch = wvals.bluestretch * 127.5; + + for (i = 0; i < wvals.ncolors; i++) + if (wvals.colormode == 1) + { + colormap[i].r = (guchar)(gradient_samples[i * 4] * 255.9); + colormap[i].g = (guchar)(gradient_samples[i * 4 + 1] * 255.9); + colormap[i].b = (guchar)(gradient_samples[i * 4 + 2] * 255.9); + } + else + { + double x = (i*2.0) / wvals.ncolors; + r = gr = bl = 0; + + switch (wvals.redmode) + { + case SINUS: + r = (int) redstretch *(1.0 + sin((x - 1) * pi)); + break; + case COSINUS: + r = (int) redstretch *(1.0 + cos((x - 1) * pi)); + break; + case NONE: + r = (int)(redstretch *(x)); + break; + default: + break; + } + + switch (wvals.greenmode) + { + case SINUS: + gr = (int) greenstretch *(1.0 + sin((x - 1) * pi)); + break; + case COSINUS: + gr = (int) greenstretch *(1.0 + cos((x - 1) * pi)); + break; + case NONE: + gr = (int)(greenstretch *(x)); + break; + default: + break; + } + + switch (wvals.bluemode) + { + case SINUS: + bl = (int) bluestretch * (1.0 + sin ((x - 1) * pi)); + break; + case COSINUS: + bl = (int) bluestretch * (1.0 + cos ((x - 1) * pi)); + break; + case NONE: + bl = (int) (bluestretch * x); + break; + default: + break; + } + + r = MIN (r, 255); + gr = MIN (gr, 255); + bl = MIN (bl, 255); + + if (wvals.redinvert) + r = 255 - r; + + if (wvals.greeninvert) + gr = 255 - gr; + + if (wvals.blueinvert) + bl = 255 - bl; + + colormap[i].r = r; + colormap[i].g = gr; + colormap[i].b = bl; + } +} + +/********************************************************************** + FUNCTION: dialog_change_scale + *********************************************************************/ + +void +dialog_change_scale (void) +{ + ready_now = FALSE; + + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->xmin), wvals.xmin); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->xmax), wvals.xmax); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->ymin), wvals.ymin); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->ymax), wvals.ymax); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->iter), wvals.iter); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->cx), wvals.cx); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->cy), wvals.cy); + + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->red), wvals.redstretch); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->green),wvals.greenstretch); + gtk_adjustment_set_value (GTK_ADJUSTMENT (elements->blue), wvals.bluestretch); + + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON (elements->type[wvals.fractaltype]), TRUE); + + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON (elements->redmode[wvals.redmode]), TRUE); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON (elements->greenmode[wvals.greenmode]), TRUE); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON (elements->bluemode[wvals.bluemode]), TRUE); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (elements->redinvert), + wvals.redinvert); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (elements->greeninvert), + wvals.greeninvert); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (elements->blueinvert), + wvals.blueinvert); + + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON (elements->colormode[wvals.colormode]), TRUE); + + ready_now = TRUE; +} + + +/********************************************************************** + FUNCTION: save_options + *********************************************************************/ + +static void +save_options (FILE * fp) +{ + gchar buf[64]; + + /* Save options */ + + fprintf (fp, "fractaltype: %i\n", wvals.fractaltype); + + g_ascii_dtostr (buf, sizeof (buf), wvals.xmin); + fprintf (fp, "xmin: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.xmax); + fprintf (fp, "xmax: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.ymin); + fprintf (fp, "ymin: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.ymax); + fprintf (fp, "ymax: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.iter); + fprintf (fp, "iter: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.cx); + fprintf (fp, "cx: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.cy); + fprintf (fp, "cy: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.redstretch * 128.0); + fprintf (fp, "redstretch: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.greenstretch * 128.0); + fprintf (fp, "greenstretch: %s\n", buf); + + g_ascii_dtostr (buf, sizeof (buf), wvals.bluestretch * 128.0); + fprintf (fp, "bluestretch: %s\n", buf); + + fprintf (fp, "redmode: %i\n", wvals.redmode); + fprintf (fp, "greenmode: %i\n", wvals.greenmode); + fprintf (fp, "bluemode: %i\n", wvals.bluemode); + fprintf (fp, "redinvert: %i\n", wvals.redinvert); + fprintf (fp, "greeninvert: %i\n", wvals.greeninvert); + fprintf (fp, "blueinvert: %i\n", wvals.blueinvert); + fprintf (fp, "colormode: %i\n", wvals.colormode); + fputs ("#**********************************************************************\n", fp); + fprintf(fp, "<EOF>\n"); + fputs ("#**********************************************************************\n", fp); +} + +static void +save_callback (void) +{ + FILE *fp; + const gchar *savename = filename; + + fp = g_fopen (savename, "wt+"); + + if (!fp) + { + g_message (_("Could not open '%s' for writing: %s"), + gimp_filename_to_utf8 (savename), g_strerror (errno)); + return; + } + + /* Write header out */ + fputs (FRACTAL_HEADER, fp); + fputs ("#**********************************************************************\n", fp); + fputs ("# This is a data file for the Fractal Explorer plug-in for GIMP *\n", fp); + fputs ("#**********************************************************************\n", fp); + + save_options (fp); + + if (ferror (fp)) + g_message (_("Could not write '%s': %s"), + gimp_filename_to_utf8 (savename), g_strerror (ferror (fp))); + + fclose (fp); +} + +static void +save_file_chooser_response (GtkFileChooser *chooser, + gint response_id, + gpointer data) +{ + if (response_id == GTK_RESPONSE_OK) + { + filename = gtk_file_chooser_get_filename (chooser); + + save_callback (); + } + + gtk_widget_destroy (GTK_WIDGET (chooser)); +} + +static void +file_chooser_set_default_folder (GtkFileChooser *chooser) +{ + GList *path_list; + gchar *dir; + + if (! fractalexplorer_path) + return; + + path_list = gimp_path_parse (fractalexplorer_path, 256, FALSE, NULL); + + dir = gimp_path_get_user_writable_dir (path_list); + + if (! dir) + dir = g_strdup (gimp_directory ()); + + gtk_file_chooser_set_current_folder (chooser, dir); + + g_free (dir); + gimp_path_free (path_list); +} + +static void +load_file_chooser_response (GtkFileChooser *chooser, + gint response_id, + gpointer data) +{ + if (response_id == GTK_RESPONSE_OK) + { + filename = gtk_file_chooser_get_filename (chooser); + + if (g_file_test (filename, G_FILE_TEST_IS_REGULAR)) + { + explorer_load (); + } + + gtk_widget_show (maindlg); + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); + } + + gtk_widget_destroy (GTK_WIDGET (chooser)); +} + +static void +create_load_file_chooser (GtkWidget *widget, + GtkWidget *dialog) +{ + static GtkWidget *window = NULL; + + if (!window) + { + window = + gtk_file_chooser_dialog_new (_("Load Fractal Parameters"), + GTK_WINDOW (dialog), + GTK_FILE_CHOOSER_ACTION_OPEN, + + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Open"), GTK_RESPONSE_OK, + + NULL); + + gtk_dialog_set_default_response (GTK_DIALOG (window), GTK_RESPONSE_OK); + + gtk_dialog_set_alternative_button_order (GTK_DIALOG (window), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + file_chooser_set_default_folder (GTK_FILE_CHOOSER (window)); + + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), + &window); + g_signal_connect (window, "response", + G_CALLBACK (load_file_chooser_response), + window); + } + + gtk_window_present (GTK_WINDOW (window)); +} + +static void +create_save_file_chooser (GtkWidget *widget, + GtkWidget *dialog) +{ + static GtkWidget *window = NULL; + + if (! window) + { + window = + gtk_file_chooser_dialog_new (_("Save Fractal Parameters"), + GTK_WINDOW (dialog), + GTK_FILE_CHOOSER_ACTION_SAVE, + + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_Save"), GTK_RESPONSE_OK, + + NULL); + + gtk_dialog_set_alternative_button_order (GTK_DIALOG (window), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + gtk_dialog_set_default_response (GTK_DIALOG (window), GTK_RESPONSE_OK); + + gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (window), + TRUE); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), + &window); + g_signal_connect (window, "response", + G_CALLBACK (save_file_chooser_response), + window); + } + + if (tpath) + { + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (window), tpath); + } + else + { + file_chooser_set_default_folder (GTK_FILE_CHOOSER (window)); + } + + gtk_window_present (GTK_WINDOW (window)); +} + +gchar* +get_line (gchar *buf, + gint s, + FILE *from, + gint init) +{ + gint slen; + gchar *ret; + + if (init) + line_no = 1; + else + line_no++; + + do + { + ret = fgets (buf, s, from); + } + while (!ferror (from) && buf[0] == '#'); + + slen = strlen (buf); + + /* The last newline is a pain */ + if (slen > 0) + buf[slen - 1] = '\0'; + + if (ferror (from)) + { + g_warning ("Error reading file"); + return NULL; + } + + return ret; +} + +gint +load_options (fractalexplorerOBJ *xxx, + FILE *fp) +{ + gchar load_buf[MAX_LOAD_LINE]; + gchar str_buf[MAX_LOAD_LINE]; + gchar opt_buf[MAX_LOAD_LINE]; + + /* default values */ + xxx->opts = standardvals; + xxx->opts.gradinvert = FALSE; + + get_line (load_buf, MAX_LOAD_LINE, fp, 0); + + while (!feof (fp) && strcmp (load_buf, "<EOF>")) + { + /* Get option name */ + sscanf (load_buf, "%255s %255s", str_buf, opt_buf); + + if (!strcmp (str_buf, "fractaltype:")) + { + gint sp = 0; + + sp = atoi (opt_buf); + if (sp < 0) + return -1; + xxx->opts.fractaltype = sp; + } + else if (!strcmp (str_buf, "xmin:")) + { + xxx->opts.xmin = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp (str_buf, "xmax:")) + { + xxx->opts.xmax = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp(str_buf, "ymin:")) + { + xxx->opts.ymin = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp (str_buf, "ymax:")) + { + xxx->opts.ymax = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp(str_buf, "redstretch:")) + { + gdouble sp = g_ascii_strtod (opt_buf, NULL); + xxx->opts.redstretch = sp / 128.0; + } + else if (!strcmp(str_buf, "greenstretch:")) + { + gdouble sp = g_ascii_strtod (opt_buf, NULL); + xxx->opts.greenstretch = sp / 128.0; + } + else if (!strcmp (str_buf, "bluestretch:")) + { + gdouble sp = g_ascii_strtod (opt_buf, NULL); + xxx->opts.bluestretch = sp / 128.0; + } + else if (!strcmp (str_buf, "iter:")) + { + xxx->opts.iter = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp(str_buf, "cx:")) + { + xxx->opts.cx = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp (str_buf, "cy:")) + { + xxx->opts.cy = g_ascii_strtod (opt_buf, NULL); + } + else if (!strcmp(str_buf, "redmode:")) + { + xxx->opts.redmode = atoi (opt_buf); + } + else if (!strcmp(str_buf, "greenmode:")) + { + xxx->opts.greenmode = atoi (opt_buf); + } + else if (!strcmp(str_buf, "bluemode:")) + { + xxx->opts.bluemode = atoi (opt_buf); + } + else if (!strcmp (str_buf, "redinvert:")) + { + xxx->opts.redinvert = atoi (opt_buf); + } + else if (!strcmp (str_buf, "greeninvert:")) + { + xxx->opts.greeninvert = atoi (opt_buf); + } + else if (!strcmp(str_buf, "blueinvert:")) + { + xxx->opts.blueinvert = atoi (opt_buf); + } + else if (!strcmp (str_buf, "colormode:")) + { + xxx->opts.colormode = atoi (opt_buf); + } + + get_line (load_buf, MAX_LOAD_LINE, fp, 0); + } + + return 0; +} + +void +explorer_load (void) +{ + FILE *fp; + gchar load_buf[MAX_LOAD_LINE]; + + g_assert (filename != NULL); + + fp = g_fopen (filename, "rt"); + + if (!fp) + { + g_message (_("Could not open '%s' for reading: %s"), + gimp_filename_to_utf8 (filename), g_strerror (errno)); + return; + } + get_line (load_buf, MAX_LOAD_LINE, fp, 1); + + if (strncmp (FRACTAL_HEADER, load_buf, strlen (load_buf))) + { + g_message (_("'%s' is not a FractalExplorer file"), + gimp_filename_to_utf8 (filename)); + fclose (fp); + return; + } + if (load_options (current_obj,fp)) + { + g_message (_("'%s' is corrupt. Line %d Option section incorrect"), + gimp_filename_to_utf8 (filename), line_no); + fclose (fp); + return; + } + + wvals = current_obj->opts; + + fclose (fp); +} diff --git a/plug-ins/fractal-explorer/fractal-explorer-dialogs.h b/plug-ins/fractal-explorer/fractal-explorer-dialogs.h new file mode 100644 index 0000000..3c759be --- /dev/null +++ b/plug-ins/fractal-explorer/fractal-explorer-dialogs.h @@ -0,0 +1,19 @@ +#ifndef __FRACTALEXPLORER_DIALOGS_H__ +#define __FRACTALEXPLORER_DIALOGS_H__ + +gint explorer_dialog (void); +void dialog_update_preview (void); + +void set_cmap_preview (void); +void make_color_map (void); + +void dialog_change_scale (void); +gchar * get_line (gchar *buf, + gint s, + FILE *from, + gint init); +gint load_options (fractalexplorerOBJ *xxx, + FILE *fp); +void explorer_load (void); + +#endif diff --git a/plug-ins/fractal-explorer/fractal-explorer.c b/plug-ins/fractal-explorer/fractal-explorer.c new file mode 100644 index 0000000..3322464 --- /dev/null +++ b/plug-ins/fractal-explorer/fractal-explorer.c @@ -0,0 +1,1201 @@ +/********************************************************************** + Fractal Explorer Plug-in (Version 2.00 Beta 2) + Daniel Cotting (cotting@multimania.com) + ********************************************************************** + ********************************************************************** + Official homepages: http://www.multimania.com/cotting + http://cotting.citeweb.net + *********************************************************************/ + +/********************************************************************** + GIMP - The GNU Image Manipulation Program + Copyright (C) 1995 Spencer Kimball and Peter Mattis + + 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 3 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, see <https://www.gnu.org/licenses/>. + *********************************************************************/ + +/********************************************************************** + Some code has been 'stolen' from: + - Peter Kirchgessner (Pkirchg@aol.com) + - Scott Draves (spot@cs.cmu.edu) + - Andy Thomas (alt@picnic.demon.co.uk) + . + . + . + ********************************************************************** + "If you steal from one author it's plagiarism; if you steal from + many it's research." --Wilson Mizner + *********************************************************************/ + + +/********************************************************************** + Include necessary files + *********************************************************************/ + +#include "config.h" + +#include <errno.h> +#include <stdlib.h> +#include <string.h> + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#include <glib/gstdio.h> + +#ifdef G_OS_WIN32 +#include <libgimpbase/gimpwin32-io.h> +#endif + +#include <gtk/gtk.h> + +#include <libgimp/gimp.h> +#include <libgimp/gimpui.h> + +#include "fractal-explorer.h" +#include "fractal-explorer-dialogs.h" + +#include "libgimp/stdplugins-intl.h" + + +/********************************************************************** + Global variables + *********************************************************************/ + +gdouble xmin = -2; +gdouble xmax = 1; +gdouble ymin = -1.5; +gdouble ymax = 1.5; +gdouble xbild; +gdouble ybild; +gdouble xdiff; +gdouble ydiff; +gint sel_x; +gint sel_y; +gint preview_width; +gint preview_height; +gdouble *gg; +gint line_no; +gchar *filename; +clrmap colormap; +vlumap valuemap; +gchar *fractalexplorer_path = NULL; + +static gfloat cx = -0.75; +static gfloat cy = -0.2; +gint32 drawable_id; +static GList *fractalexplorer_list = NULL; + +explorer_interface_t wint = +{ + NULL, /* preview */ + NULL, /* wimage */ + FALSE /* run */ +}; /* wint */ + +explorer_vals_t wvals = +{ + 0, + -2.0, + 2.0, + -1.5, + 1.5, + 50.0, + -0.75, + -0.2, + 0, + 1.0, + 1.0, + 1.0, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 256, + 0, + 0 +}; /* wvals */ + +fractalexplorerOBJ *current_obj = NULL; +static GtkWidget *delete_dialog = NULL; + +static void query (void); +static void run (const gchar *name, + gint nparams, + const GimpParam *param, + gint *nreturn_vals, + GimpParam **return_vals); + +static void explorer (gint32 drawable_id); + +/********************************************************************** + Declare local functions + *********************************************************************/ + +/* Functions for dialog widgets */ + +static void delete_dialog_callback (GtkWidget *widget, + gboolean value, + gpointer data); +static gboolean delete_fractal_callback (GtkWidget *widget, + gpointer data); +static gint fractalexplorer_list_pos (fractalexplorerOBJ *feOBJ); +static gint fractalexplorer_list_insert (fractalexplorerOBJ *feOBJ); +static fractalexplorerOBJ *fractalexplorer_new (void); +static void fill_list_store (GtkListStore *list_store); +static void activate_fractal (fractalexplorerOBJ *sel_obj); +static void activate_fractal_callback (GtkTreeView *view, + GtkTreePath *path, + GtkTreeViewColumn *col, + gpointer data); +static gboolean apply_fractal_callback (GtkWidget *widget, + gpointer data); + +static void fractalexplorer_free (fractalexplorerOBJ *feOBJ); +static void fractalexplorer_free_everything (fractalexplorerOBJ *feOBJ); +static void fractalexplorer_list_free_all (void); +static fractalexplorerOBJ * fractalexplorer_load (const gchar *filename, + const gchar *name); + +static void fractalexplorer_list_load_all (const gchar *path); +static void fractalexplorer_rescan_list (GtkWidget *widget, + gpointer data); + +const GimpPlugInInfo PLUG_IN_INFO = +{ + NULL, /* init_proc */ + NULL, /* quit_proc */ + query, /* query_proc */ + run, /* run_proc */ +}; + +/********************************************************************** + MAIN() + *********************************************************************/ + +MAIN() + +/********************************************************************** + FUNCTION: query + *********************************************************************/ + +static void +query (void) +{ + static const GimpParamDef args[] = + { + { GIMP_PDB_INT32, "run-mode", "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }" }, + { GIMP_PDB_IMAGE, "image", "Input image" }, + { GIMP_PDB_DRAWABLE, "drawable", "Input drawable" }, + { GIMP_PDB_INT8, "fractaltype", "0: Mandelbrot; " + "1: Julia; " + "2: Barnsley 1; " + "3: Barnsley 2; " + "4: Barnsley 3; " + "5: Spider; " + "6: ManOWar; " + "7: Lambda; " + "8: Sierpinski" }, + { GIMP_PDB_FLOAT, "xmin", "xmin fractal image delimiter" }, + { GIMP_PDB_FLOAT, "xmax", "xmax fractal image delimiter" }, + { GIMP_PDB_FLOAT, "ymin", "ymin fractal image delimiter" }, + { GIMP_PDB_FLOAT, "ymax", "ymax fractal image delimiter" }, + { GIMP_PDB_FLOAT, "iter", "Iteration value" }, + { GIMP_PDB_FLOAT, "cx", "cx value ( only Julia)" }, + { GIMP_PDB_FLOAT, "cy", "cy value ( only Julia)" }, + { GIMP_PDB_INT8, "colormode", "0: Apply colormap as specified by the parameters below; " + "1: Apply active gradient to final image" }, + { GIMP_PDB_FLOAT, "redstretch", "Red stretching factor" }, + { GIMP_PDB_FLOAT, "greenstretch", "Green stretching factor" }, + { GIMP_PDB_FLOAT, "bluestretch", "Blue stretching factor" }, + { GIMP_PDB_INT8, "redmode", "Red application mode (0:SIN;1:COS;2:NONE)" }, + { GIMP_PDB_INT8, "greenmode", "Green application mode (0:SIN;1:COS;2:NONE)" }, + { GIMP_PDB_INT8, "bluemode", "Blue application mode (0:SIN;1:COS;2:NONE)" }, + { GIMP_PDB_INT8, "redinvert", "Red inversion mode (1: enabled; 0: disabled)" }, + { GIMP_PDB_INT8, "greeninvert", "Green inversion mode (1: enabled; 0: disabled)" }, + { GIMP_PDB_INT8, "blueinvert", "Green inversion mode (1: enabled; 0: disabled)" }, + { GIMP_PDB_INT32, "ncolors", "Number of Colors for mapping (2<=ncolors<=8192)" } + }; + + gimp_install_procedure (PLUG_IN_PROC, + N_("Render fractal art"), + "No help yet.", + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)", + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)", + "December, 1998", + N_("_Fractal Explorer..."), + "RGB*, GRAY*", + GIMP_PLUGIN, + G_N_ELEMENTS (args), 0, + args, NULL); + + gimp_plugin_menu_register (PLUG_IN_PROC, "<Image>/Filters/Render/Fractals"); +} + +/********************************************************************** + FUNCTION: run + *********************************************************************/ + +static void +run (const gchar *name, + gint nparams, + const GimpParam *param, + gint *nreturn_vals, + GimpParam **return_vals) +{ + static GimpParam values[1]; + GimpRunMode run_mode; + gint pwidth; + gint pheight; + GimpPDBStatusType status = GIMP_PDB_SUCCESS; + gint sel_width; + gint sel_height; + + values[0].type = GIMP_PDB_STATUS; + values[0].data.d_status = status; + + *nreturn_vals = 1; + *return_vals = values; + + INIT_I18N (); + gegl_init (NULL, NULL); + + run_mode = param[0].data.d_int32; + drawable_id = param[2].data.d_drawable; + + if (! gimp_drawable_mask_intersect (drawable_id, + &sel_x, &sel_y, + &sel_width, &sel_height)) + return; + + /* Calculate preview size */ + if (sel_width > sel_height) + { + pwidth = MIN (sel_width, PREVIEW_SIZE); + pheight = sel_height * pwidth / sel_width; + } + else + { + pheight = MIN (sel_height, PREVIEW_SIZE); + pwidth = sel_width * pheight / sel_height; + } + + preview_width = MAX (pwidth, 2); + preview_height = MAX (pheight, 2); + + /* See how we will run */ + switch (run_mode) + { + case GIMP_RUN_INTERACTIVE: + /* Possibly retrieve data */ + gimp_get_data ("plug_in_fractalexplorer", &wvals); + + /* Get information from the dialog */ + if (!explorer_dialog ()) + return; + + break; + + case GIMP_RUN_NONINTERACTIVE: + /* Make sure all the arguments are present */ + if (nparams != 22) + { + status = GIMP_PDB_CALLING_ERROR; + } + else + { + wvals.fractaltype = param[3].data.d_int8; + wvals.xmin = param[4].data.d_float; + wvals.xmax = param[5].data.d_float; + wvals.ymin = param[6].data.d_float; + wvals.ymax = param[7].data.d_float; + wvals.iter = param[8].data.d_float; + wvals.cx = param[9].data.d_float; + wvals.cy = param[10].data.d_float; + wvals.colormode = param[11].data.d_int8; + wvals.redstretch = param[12].data.d_float; + wvals.greenstretch = param[13].data.d_float; + wvals.bluestretch = param[14].data.d_float; + wvals.redmode = param[15].data.d_int8; + wvals.greenmode = param[16].data.d_int8; + wvals.bluemode = param[17].data.d_int8; + wvals.redinvert = param[18].data.d_int8; + wvals.greeninvert = param[19].data.d_int8; + wvals.blueinvert = param[20].data.d_int8; + wvals.ncolors = CLAMP (param[21].data.d_int32, 2, MAXNCOLORS); + } + make_color_map(); + break; + + case GIMP_RUN_WITH_LAST_VALS: + /* Possibly retrieve data */ + gimp_get_data ("plug_in_fractalexplorer", &wvals); + make_color_map (); + break; + + default: + break; + } + + xmin = wvals.xmin; + xmax = wvals.xmax; + ymin = wvals.ymin; + ymax = wvals.ymax; + cx = wvals.cx; + cy = wvals.cy; + + if (status == GIMP_PDB_SUCCESS) + { + gimp_progress_init (_("Rendering fractal")); + + explorer (drawable_id); + + if (run_mode != GIMP_RUN_NONINTERACTIVE) + gimp_displays_flush (); + + /* Store data */ + if (run_mode == GIMP_RUN_INTERACTIVE) + gimp_set_data ("plug_in_fractalexplorer", + &wvals, sizeof (explorer_vals_t)); + } + + values[0].data.d_status = status; +} + +/********************************************************************** + FUNCTION: explorer + *********************************************************************/ + +static void +explorer (gint32 drawable_id) +{ + GeglBuffer *src_buffer; + GeglBuffer *dest_buffer; + const Babl *format; + gint width; + gint height; + gint bpp; + gint row; + gint x; + gint y; + gint w; + gint h; + guchar *src_row; + guchar *dest_row; + + /* Get the input area. This is the bounding box of the selection in + * the image (or the entire image if there is no selection). Only + * operating on the input area is simply an optimization. It doesn't + * need to be done for correct operation. (It simply makes it go + * faster, since fewer pixels need to be operated on). + */ + if (! gimp_drawable_mask_intersect (drawable_id, &x, &y, &w, &h)) + return; + + /* Get the size of the input image. (This will/must be the same + * as the size of the output image. + */ + width = gimp_drawable_width (drawable_id); + height = gimp_drawable_height (drawable_id); + + if (gimp_drawable_has_alpha (drawable_id)) + format = babl_format ("R'G'B'A u8"); + else + format = babl_format ("R'G'B' u8"); + + bpp = babl_format_get_bytes_per_pixel (format); + + /* allocate row buffers */ + src_row = g_new (guchar, bpp * w); + dest_row = g_new (guchar, bpp * w); + + src_buffer = gimp_drawable_get_buffer (drawable_id); + dest_buffer = gimp_drawable_get_shadow_buffer (drawable_id); + + xbild = width; + ybild = height; + xdiff = (xmax - xmin) / xbild; + ydiff = (ymax - ymin) / ybild; + + for (row = y; row < y + h; row++) + { + gegl_buffer_get (src_buffer, GEGL_RECTANGLE (x, row, w, 1), 1.0, + format, src_row, + GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE); + + explorer_render_row (src_row, + dest_row, + row, + w, + bpp); + + gegl_buffer_set (dest_buffer, GEGL_RECTANGLE (x, row, w, 1), 0, + format, dest_row, + GEGL_AUTO_ROWSTRIDE); + + if ((row % 10) == 0) + gimp_progress_update ((double) row / (double) h); + } + + g_object_unref (src_buffer); + g_object_unref (dest_buffer); + + g_free (src_row); + g_free (dest_row); + + gimp_progress_update (1.0); + + /* update the processed region */ + gimp_drawable_merge_shadow (drawable_id, TRUE); + gimp_drawable_update (drawable_id, x, y, w, h); +} + +/********************************************************************** + FUNCTION: explorer_render_row + *********************************************************************/ + +void +explorer_render_row (const guchar *src_row, + guchar *dest_row, + gint row, + gint row_width, + gint bpp) +{ + gint col; + gdouble a; + gdouble b; + gdouble x; + gdouble y; + gdouble oldx; + gdouble oldy; + gdouble tempsqrx; + gdouble tempsqry; + gdouble tmpx = 0; + gdouble tmpy = 0; + gdouble foldxinitx; + gdouble foldxinity; + gdouble foldyinitx; + gdouble foldyinity; + gdouble xx = 0; + gdouble adjust; + gdouble cx; + gdouble cy; + gint counter; + gint color; + gint iteration; + gint useloglog; + gdouble log2; + + cx = wvals.cx; + cy = wvals.cy; + useloglog = wvals.useloglog; + iteration = wvals.iter; + log2 = log (2.0); + + for (col = 0; col < row_width; col++) + { + a = xmin + (double) col * xdiff; + b = ymin + (double) row * ydiff; + if (wvals.fractaltype != 0) + { + tmpx = x = a; + tmpy = y = b; + } + else + { + x = 0; + y = 0; + } + + for (counter = 0; counter < iteration; counter++) + { + oldx=x; + oldy=y; + + switch (wvals.fractaltype) + { + case TYPE_MANDELBROT: + xx = x * x - y * y + a; + y = 2.0 * x * y + b; + break; + + case TYPE_JULIA: + xx = x * x - y * y + cx; + y = 2.0 * x * y + cy; + break; + + case TYPE_BARNSLEY_1: + foldxinitx = oldx * cx; + foldyinity = oldy * cy; + foldxinity = oldx * cy; + foldyinitx = oldy * cx; + /* orbit calculation */ + if (oldx >= 0) + { + xx = (foldxinitx - cx - foldyinity); + y = (foldyinitx - cy + foldxinity); + } + else + { + xx = (foldxinitx + cx - foldyinity); + y = (foldyinitx + cy + foldxinity); + } + break; + + case TYPE_BARNSLEY_2: + foldxinitx = oldx * cx; + foldyinity = oldy * cy; + foldxinity = oldx * cy; + foldyinitx = oldy * cx; + /* orbit calculation */ + if (foldxinity + foldyinitx >= 0) + { + xx = foldxinitx - cx - foldyinity; + y = foldyinitx - cy + foldxinity; + } + else + { + xx = foldxinitx + cx - foldyinity; + y = foldyinitx + cy + foldxinity; + } + break; + + case TYPE_BARNSLEY_3: + foldxinitx = oldx * oldx; + foldyinity = oldy * oldy; + foldxinity = oldx * oldy; + /* orbit calculation */ + if (oldx > 0) + { + xx = foldxinitx - foldyinity - 1.0; + y = foldxinity * 2; + } + else + { + xx = foldxinitx - foldyinity -1.0 + cx * oldx; + y = foldxinity * 2; + y += cy * oldx; + } + break; + + case TYPE_SPIDER: + /* { c=z=pixel: z=z*z+c; c=c/2+z, |z|<=4 } */ + xx = x*x - y*y + tmpx + cx; + y = 2 * oldx * oldy + tmpy +cy; + tmpx = tmpx/2 + xx; + tmpy = tmpy/2 + y; + break; + + case TYPE_MAN_O_WAR: + xx = x*x - y*y + tmpx + cx; + y = 2.0 * x * y + tmpy + cy; + tmpx = oldx; + tmpy = oldy; + break; + + case TYPE_LAMBDA: + tempsqrx = x * x; + tempsqry = y * y; + tempsqrx = oldx - tempsqrx + tempsqry; + tempsqry = -(oldy * oldx); + tempsqry += tempsqry + oldy; + xx = cx * tempsqrx - cy * tempsqry; + y = cx * tempsqry + cy * tempsqrx; + break; + + case TYPE_SIERPINSKI: + xx = oldx + oldx; + y = oldy + oldy; + if (oldy > .5) + y = y - 1; + else if (oldx > .5) + xx = xx - 1; + break; + + default: + break; + } + + x = xx; + + if (((x * x) + (y * y)) >= 4.0) + break; + } + + if (useloglog) + { + gdouble modulus_square = (x * x) + (y * y); + + if (modulus_square > (G_E * G_E)) + adjust = log (log (modulus_square) / 2.0) / log2; + else + adjust = 0.0; + } + else + { + adjust = 0.0; + } + + color = (int) (((counter - adjust) * (wvals.ncolors - 1)) / iteration); + if (bpp >= 3) + { + dest_row[col * bpp + 0] = colormap[color].r; + dest_row[col * bpp + 1] = colormap[color].g; + dest_row[col * bpp + 2] = colormap[color].b; + } + else + dest_row[col * bpp + 0] = valuemap[color]; + + if (! ( bpp % 2)) + dest_row [col * bpp + bpp - 1] = 255; + + } +} + +static void +delete_dialog_callback (GtkWidget *widget, + gboolean delete, + gpointer data) +{ + GtkWidget *view = (GtkWidget *) data; + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + gboolean valid; + fractalexplorerOBJ *sel_obj; + + if (delete) + { + /* Must update which object we are editing */ + /* Get the list and which item is selected */ + /* Only allow single selections */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + gtk_tree_selection_get_selected (selection, &model, &iter); + + gtk_tree_model_get (model, &iter, 1, &sel_obj, -1); + + /* Delete the current item + associated file */ + valid = gtk_list_store_remove (GTK_LIST_STORE(model), &iter); + + /* Try to select first item if last one was deleted */ + if (!valid) + valid = gtk_tree_model_get_iter_first (model, &iter); + + /* Shadow copy for ordering info */ + fractalexplorer_list = g_list_remove (fractalexplorer_list, sel_obj); + /* + if(sel_obj == current_obj) + { + clear_undo(); + } + */ + /* Free current obj */ + fractalexplorer_free_everything (sel_obj); + + /* Check whether there are items left */ + if (valid) + { + gtk_tree_selection_select_iter (selection, &iter); + + gtk_tree_model_get (model, &iter, 1, ¤t_obj, -1); + } + } + + delete_dialog = NULL; +} + +static gboolean +delete_fractal_callback (GtkWidget *widget, + gpointer data) +{ + gchar *str; + GtkWidget *view = (GtkWidget *) data; + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + fractalexplorerOBJ *sel_obj; + + if (delete_dialog) + return FALSE; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + { + gtk_tree_model_get (model, &iter, 1, &sel_obj, -1); + + str = g_strdup_printf (_("Are you sure you want to delete " + "\"%s\" from the list and from disk?"), + sel_obj->draw_name); + + delete_dialog = gimp_query_boolean_box (_("Delete Fractal"), + gtk_widget_get_toplevel (view), + gimp_standard_help_func, NULL, + GIMP_ICON_DIALOG_QUESTION, + str, + _("_Delete"), _("_Cancel"), + G_OBJECT (widget), "destroy", + delete_dialog_callback, + data); + g_free (str); + + gtk_widget_show (delete_dialog); + } + + return FALSE; +} + +static gint +fractalexplorer_list_pos (fractalexplorerOBJ *fractalexplorer) +{ + fractalexplorerOBJ *g; + gint n; + GList *tmp; + + n = 0; + + for (tmp = fractalexplorer_list; tmp; tmp = g_list_next (tmp)) + { + g = tmp->data; + + if (strcmp (fractalexplorer->draw_name, g->draw_name) <= 0) + break; + + n++; + } + return n; +} + +static gint +fractalexplorer_list_insert (fractalexplorerOBJ *fractalexplorer) +{ + gint n = fractalexplorer_list_pos (fractalexplorer); + + /* + * Insert fractalexplorers in alphabetical order + */ + + fractalexplorer_list = g_list_insert (fractalexplorer_list, + fractalexplorer, n); + + return n; +} + +static fractalexplorerOBJ * +fractalexplorer_new (void) +{ + return g_new0 (fractalexplorerOBJ, 1); +} + +static void +fill_list_store (GtkListStore *list_store) +{ + GList *tmp; + GtkTreeIter iter; + + + for (tmp = fractalexplorer_list; tmp; tmp = tmp->next) + { + fractalexplorerOBJ *g; + g = tmp->data; + + gtk_list_store_append (list_store, &iter); + gtk_list_store_set (list_store, &iter, 0, g->draw_name, 1, g, -1); + } +} + +static void +activate_fractal (fractalexplorerOBJ *sel_obj) +{ + current_obj = sel_obj; + wvals = current_obj->opts; + dialog_change_scale (); + set_cmap_preview (); + dialog_update_preview (); +} + +static void +activate_fractal_callback (GtkTreeView *view, + GtkTreePath *path, + GtkTreeViewColumn *col, + gpointer data) +{ + GtkTreeModel *model; + GtkTreeIter iter; + fractalexplorerOBJ *sel_obj; + + model = gtk_tree_view_get_model (view); + + if (gtk_tree_model_get_iter (model, &iter, path)) + { + gtk_tree_model_get (model, &iter, 1, &sel_obj, -1); + activate_fractal (sel_obj); + } + +} + +static gboolean +apply_fractal_callback (GtkWidget *widget, + gpointer data) +{ + GtkWidget *view = (GtkWidget *) data; + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + fractalexplorerOBJ *sel_obj; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + { + gtk_tree_model_get (model, &iter, 1, &sel_obj, -1); + activate_fractal (sel_obj); + } + + return FALSE; +} + +static void +fractalexplorer_free (fractalexplorerOBJ *fractalexplorer) +{ + g_assert (fractalexplorer != NULL); + + g_free (fractalexplorer->name); + g_free (fractalexplorer->filename); + g_free (fractalexplorer->draw_name); + g_free (fractalexplorer); +} + +static void +fractalexplorer_free_everything (fractalexplorerOBJ *fractalexplorer) +{ + g_assert (fractalexplorer != NULL); + + if (fractalexplorer->filename) + g_remove (fractalexplorer->filename); + + fractalexplorer_free (fractalexplorer); +} + +static void +fractalexplorer_list_free_all (void) +{ + g_list_free_full (fractalexplorer_list, (GDestroyNotify) fractalexplorer_free); + fractalexplorer_list = NULL; +} + +static fractalexplorerOBJ * +fractalexplorer_load (const gchar *filename, + const gchar *name) +{ + fractalexplorerOBJ * fractalexplorer; + FILE * fp; + gchar load_buf[MAX_LOAD_LINE]; + + g_assert (filename != NULL); + + fp = g_fopen (filename, "rt"); + if (!fp) + { + g_message (_("Could not open '%s' for reading: %s"), + gimp_filename_to_utf8 (filename), g_strerror (errno)); + return NULL; + } + + fractalexplorer = fractalexplorer_new (); + + fractalexplorer->name = g_strdup (name); + fractalexplorer->draw_name = g_strdup (name); + fractalexplorer->filename = g_strdup (filename); + + /* HEADER + * draw_name + * version + * obj_list + */ + + get_line (load_buf, MAX_LOAD_LINE, fp, 1); + + if (strncmp (fractalexplorer_HEADER, load_buf, strlen (load_buf))) + { + g_message (_("File '%s' is not a FractalExplorer file"), + gimp_filename_to_utf8 (filename)); + fclose (fp); + fractalexplorer_free (fractalexplorer); + + return NULL; + } + + if (load_options (fractalexplorer, fp)) + { + g_message (_("File '%s' is corrupt.\nLine %d Option section incorrect"), + gimp_filename_to_utf8 (filename), line_no); + fclose (fp); + fractalexplorer_free (fractalexplorer); + + return NULL; + } + + fclose (fp); + + fractalexplorer->obj_status = fractalexplorer_OK; + + return fractalexplorer; +} + +static void +fractalexplorer_list_load_all (const gchar *explorer_path) +{ + GList *path; + GList *list; + + /* Make sure to clear any existing fractalexplorers */ + current_obj = NULL; + fractalexplorer_list_free_all (); + + path = gimp_config_path_expand_to_files (explorer_path, NULL); + + for (list = path; list; list = g_list_next (list)) + { + GFileEnumerator *enumerator; + + enumerator = g_file_enumerate_children (list->data, + G_FILE_ATTRIBUTE_STANDARD_NAME "," + G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "," + G_FILE_ATTRIBUTE_STANDARD_TYPE, + G_FILE_QUERY_INFO_NONE, + NULL, NULL); + + if (enumerator) + { + GFileInfo *info; + + while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL))) + { + GFileType file_type = g_file_info_get_file_type (info); + + if (file_type == G_FILE_TYPE_REGULAR && + ! g_file_info_get_is_hidden (info)) + { + fractalexplorerOBJ *fractalexplorer; + GFile *child; + gchar *filename; + gchar *basename; + + child = g_file_enumerator_get_child (enumerator, info); + + filename = g_file_get_path (child); + basename = g_file_get_basename (child); + + fractalexplorer = fractalexplorer_load (filename, + basename); + + g_free (filename); + g_free (basename); + + if (fractalexplorer) + fractalexplorer_list_insert (fractalexplorer); + + g_object_unref (child); + } + + g_object_unref (info); + } + + g_object_unref (enumerator); + } + } + + g_list_free_full (path, (GDestroyNotify) g_object_unref); + + if (!fractalexplorer_list) + { + fractalexplorerOBJ *fractalexplorer; + + /* lets have at least one! */ + fractalexplorer = fractalexplorer_new (); + fractalexplorer->draw_name = g_strdup (_("My first fractal")); + fractalexplorer_list_insert (fractalexplorer); + } + current_obj = fractalexplorer_list->data; /* set to first entry */ +} + + +GtkWidget * +add_objects_list (void) +{ + GtkWidget *table; + GtkWidget *scrolled_win; + GtkTreeViewColumn *col; + GtkCellRenderer *renderer; + GtkWidget *view; + GtkTreeSelection *selection; + GtkListStore *list_store; + GtkWidget *button; + + table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 6); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); + gtk_widget_show (table); + + scrolled_win = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win), + GTK_SHADOW_IN); + gtk_table_attach (GTK_TABLE (table), scrolled_win, 0, 3, 0, 1, + GTK_FILL|GTK_EXPAND , GTK_FILL|GTK_EXPAND, 0, 0); + gtk_widget_show (scrolled_win); + + view = gtk_tree_view_new (); + col = gtk_tree_view_column_new (); + gtk_tree_view_append_column (GTK_TREE_VIEW (view), col); + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_start (col, renderer, TRUE); + gtk_tree_view_column_add_attribute (col, renderer, "text", 0); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE); + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); + g_signal_connect (view, "row-activated", + G_CALLBACK (activate_fractal_callback), + NULL); + gtk_container_add (GTK_CONTAINER (scrolled_win), view); + gtk_widget_show (view); + + fractalexplorer_list_load_all (fractalexplorer_path); + list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); + fill_list_store (list_store); + gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (list_store)); + g_object_unref (list_store); /* destroy model automatically with view */ + + /* Put buttons in */ + button = gtk_button_new_with_mnemonic (_("_Refresh")); + gtk_table_attach (GTK_TABLE (table), button, 0, 1, 1, 2, + GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0); + gtk_widget_show (button); + + gimp_help_set_help_data (button, + _("Select folder and rescan collection"), NULL); + + g_signal_connect (button, "clicked", + G_CALLBACK (fractalexplorer_rescan_list), + view); + + button = gtk_button_new_with_mnemonic (_("_Apply")); + gtk_table_attach (GTK_TABLE (table), button, 1, 2, 1, 2, + GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0); + gtk_widget_show (button); + + gimp_help_set_help_data (button, + _("Apply currently selected fractal"), NULL); + + g_signal_connect (button, "clicked", + G_CALLBACK (apply_fractal_callback), + view); + + button = gtk_button_new_with_mnemonic (_("_Delete")); + gtk_table_attach (GTK_TABLE (table), button, 2, 3, 1, 2, + GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0); + gtk_widget_show (button); + + gimp_help_set_help_data (button, + _("Delete currently selected fractal"), NULL); + + g_signal_connect (button, "clicked", + G_CALLBACK (delete_fractal_callback), + view); + + return table; +} + +static void +fractalexplorer_rescan_list (GtkWidget *widget, + gpointer data) +{ + static GtkWidget *dlg = NULL; + GtkWidget *view = data; + GtkWidget *patheditor; + + if (dlg) + { + gtk_window_present (GTK_WINDOW (dlg)); + return; + } + + dlg = gimp_dialog_new (_("Rescan for Fractals"), PLUG_IN_ROLE, + gtk_widget_get_toplevel (view), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + gimp_standard_help_func, PLUG_IN_PROC, + + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_OK"), GTK_RESPONSE_OK, + + NULL); + + gtk_dialog_set_alternative_button_order (GTK_DIALOG (dlg), + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + g_signal_connect (dlg, "destroy", + G_CALLBACK (gtk_widget_destroyed), + &dlg); + + patheditor = gimp_path_editor_new (_("Add FractalExplorer Path"), + fractalexplorer_path); + gtk_container_set_border_width (GTK_CONTAINER (patheditor), 12); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg))), + patheditor, TRUE, TRUE, 0); + gtk_widget_show (patheditor); + + if (gimp_dialog_run (GIMP_DIALOG (dlg)) == GTK_RESPONSE_OK) + { + g_free (fractalexplorer_path); + fractalexplorer_path = + gimp_path_editor_get_path (GIMP_PATH_EDITOR (patheditor)); + + if (fractalexplorer_path) + { + GtkTreeModel *model; + GtkTreeSelection *selection; + GtkTreePath *path; + GtkTreeIter iter; + + fractalexplorer_list_load_all (fractalexplorer_path); + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); + gtk_list_store_clear (GTK_LIST_STORE (model)); + fill_list_store (GTK_LIST_STORE (model)); + + /* select active fractal, otherwise first fractal */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + if (gtk_tree_model_get_iter_first (model, &iter)) + { + gtk_tree_selection_select_iter (selection, &iter); + path = gtk_tree_model_get_path (model, &iter); + current_obj = fractalexplorer_list->data; + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (view), path, NULL, + FALSE, 0.0, 0.0); + gtk_tree_path_free (path); + } + } + } + + gtk_widget_destroy (dlg); +} diff --git a/plug-ins/fractal-explorer/fractal-explorer.h b/plug-ins/fractal-explorer/fractal-explorer.h new file mode 100644 index 0000000..2792e47 --- /dev/null +++ b/plug-ins/fractal-explorer/fractal-explorer.h @@ -0,0 +1,216 @@ +#ifndef __FRACTALEXPLORER_H__ +#define __FRACTALEXPLORER_H__ + + +/********************************************************************** + Magic numbers + *********************************************************************/ + +#define PREVIEW_SIZE 256 +#define SCALE_WIDTH 200 +#define ENTRY_WIDTH 60 +#define MAX_LOAD_LINE 256 +#define GR_WIDTH 325 + +#define MAXNCOLORS 8192 +#define MAXSTRLEN 256 + +#define PLUG_IN_PROC "plug-in-fractalexplorer" +#define PLUG_IN_BINARY "fractal-explorer" +#define PLUG_IN_ROLE "gimp-fractal-explorer" + +#define FRACTAL_HEADER "Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org>\n" +#define fractalexplorer_HEADER "Fractal Explorer Plug-In Version 2 - (c) 1997 <cotting@mygale.org>\n" + +enum +{ + SINUS, + COSINUS, + NONE +}; + +enum +{ + TYPE_MANDELBROT, + TYPE_JULIA, + TYPE_BARNSLEY_1, + TYPE_BARNSLEY_2, + TYPE_BARNSLEY_3, + TYPE_SPIDER, + TYPE_MAN_O_WAR, + TYPE_LAMBDA, + TYPE_SIERPINSKI, + NUM_TYPES +}; + +/********************************************************************** + Types + *********************************************************************/ + +typedef struct +{ + gint fractaltype; + gdouble xmin; + gdouble xmax; + gdouble ymin; + gdouble ymax; + gdouble iter; + gdouble cx; + gdouble cy; + gint colormode; + gdouble redstretch; + gdouble greenstretch; + gdouble bluestretch; + gint redmode; + gint greenmode; + gint bluemode; + gboolean redinvert; + gboolean greeninvert; + gboolean blueinvert; + gboolean alwayspreview; + gint ncolors; + gboolean gradinvert; + gboolean useloglog; +} explorer_vals_t; + +typedef struct +{ + GtkWidget *preview; + guchar *wimage; + gint run; +} explorer_interface_t; + +/* typedef gint colorvalue[3]; */ +typedef struct + { + guchar r, g, b; + } gucharRGB; + +typedef gucharRGB clrmap[MAXNCOLORS]; + +typedef guchar vlumap[MAXNCOLORS]; + +typedef struct +{ + GtkWidget *text; + GtkAdjustment *data; +} scaledata; + +typedef struct _DialogElements DialogElements; + +struct _DialogElements +{ + GtkWidget *type[NUM_TYPES]; + GtkObject *xmin; + GtkObject *xmax; + GtkObject *ymin; + GtkObject *ymax; + GtkObject *iter; + GtkObject *cx; + GtkObject *cy; + + GtkObject *ncol; + GtkWidget *useloglog; + + GtkObject *red; + GtkObject *green; + GtkObject *blue; + + GtkWidget *redmode[3]; + GtkWidget *redinvert; + + GtkWidget *greenmode[3]; + GtkWidget *greeninvert; + + GtkWidget *bluemode[3]; + GtkWidget *blueinvert; + + GtkWidget *colormode[2]; +}; + + +typedef struct DFigObj +{ + gchar *name; /* Trailing name of file */ + gchar *filename; /* Filename itself */ + gchar *draw_name; /* Name of the drawing */ + explorer_vals_t opts; /* Options enforced when fig saved */ + GtkWidget *list_item; + GtkWidget *label_widget; + GtkWidget *pixmap_widget; + gint obj_status; +} fractalexplorerOBJ; + + +typedef struct GigObj +{ + gchar *name; /* Trailing name of file */ + gchar *filename; /* Filename itself */ + gchar *draw_name; /* Name of the drawing */ + gint typus; + GtkWidget *list_item; + GtkWidget *label_widget; + GtkWidget *pixmap_widget; + gint obj_status; +} gradientOBJ; + +typedef struct _fractalexplorerListOptions +{ + GtkWidget *query_box; + GtkWidget *name_entry; + GtkWidget *list_entry; + fractalexplorerOBJ *obj; + gint created; +} fractalexplorerListOptions; + +/* States of the object */ +#define fractalexplorer_OK 0x0 +#define fractalexplorer_MODIFIED 0x1 + +#define gradient_GRADIENTEDITOR 0x2 + +extern fractalexplorerOBJ *current_obj; + +GtkWidget * add_objects_list (void); + +/********************************************************************** + Global variables + *********************************************************************/ + +extern gdouble xmin; +extern gdouble xmax; +extern gdouble ymin; +extern gdouble ymax; +extern gdouble xbild; +extern gdouble ybild; +extern gdouble xdiff; +extern gdouble ydiff; +extern gint sel_x1, + sel_y1, + sel_x2, + sel_y2; +extern gint preview_width, + preview_height; +extern gdouble *gg; +extern int line_no; +extern gchar *filename; +extern clrmap colormap; +extern gchar *fractalexplorer_path; + + +extern explorer_interface_t wint; + +extern explorer_vals_t wvals; +extern GimpDrawable *drawable; + + +/********************************************************************** + Global functions + *********************************************************************/ + +void explorer_render_row (const guchar *src_row, + guchar *dest_row, + gint row, + gint row_width, + gint bpp); +#endif |