Imported Upstream version 2.3.6

This commit is contained in:
Ari Pollak
2010-08-11 01:18:19 -04:00
parent 7802c3a9cb
commit de5dc4f4c2
3129 changed files with 762016 additions and 525609 deletions

View File

@ -0,0 +1,47 @@
## Process this file with automake to produce Makefile.in
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
libgimpmodule = $(top_builddir)/libgimpmodule/libgimpmodule-$(GIMP_API_VERSION).la
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
INCLUDES = \
-I$(top_srcdir) \
$(GTK_CFLAGS)
LDADDS = \
$(libgimpwidgets) \
$(libgimpconfig) \
$(libgimpmodule) \
$(libgimpmath) \
$(libgimpcolor) \
$(libgimpbase) \
$(GTK_LIBS) \
$(X_LIBS) -lX11
if ENABLE_GTK_DOC
noinst_PROGRAMS = $(DOC_SHOOTER)
endif
EXTRA_PROGRAMS = doc-shooter
doc_shooter_SOURCES = \
shadow.c \
shadow.h \
shooter.c \
units.c \
units.h \
widgets.c \
widgets.h
doc_shooter_LDADD = $(LDADDS)
EXTRA_DIST = README.shooter
clean-local:
rm -f *.png

View File

@ -0,0 +1,732 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 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@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
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@
@ENABLE_GTK_DOC_TRUE@noinst_PROGRAMS = $(am__EXEEXT_1)
EXTRA_PROGRAMS = doc-shooter$(EXEEXT)
subdir = devel-docs/tools
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/m4macros/detectcflags.m4 \
$(top_srcdir)/m4macros/pythondev.m4 \
$(top_srcdir)/m4macros/gimpprint.m4 \
$(top_srcdir)/m4macros/alsa.m4 \
$(top_srcdir)/m4macros/gtk-doc.m4 \
$(top_srcdir)/m4macros/binreloc.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__EXEEXT_1 = @DOC_SHOOTER@
PROGRAMS = $(noinst_PROGRAMS)
am_doc_shooter_OBJECTS = shadow.$(OBJEXT) shooter.$(OBJEXT) \
units.$(OBJEXT) widgets.$(OBJEXT)
doc_shooter_OBJECTS = $(am_doc_shooter_OBJECTS)
am__DEPENDENCIES_1 = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
am__DEPENDENCIES_2 = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
am__DEPENDENCIES_3 = $(top_builddir)/libgimpmodule/libgimpmodule-$(GIMP_API_VERSION).la
am__DEPENDENCIES_4 = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
am__DEPENDENCIES_5 = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
am__DEPENDENCIES_6 = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
am__DEPENDENCIES_7 =
am__DEPENDENCIES_8 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_5) $(am__DEPENDENCIES_6) \
$(am__DEPENDENCIES_7) $(am__DEPENDENCIES_7)
doc_shooter_DEPENDENCIES = $(am__DEPENDENCIES_8)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(doc_shooter_SOURCES)
DIST_SOURCES = $(doc_shooter_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AA = @AA@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALSA_CFLAGS = @ALSA_CFLAGS@
ALSA_LIBS = @ALSA_LIBS@
ALTIVEC_EXTRA_CFLAGS = @ALTIVEC_EXTRA_CFLAGS@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BINRELOC_CFLAGS = @BINRELOC_CFLAGS@
BINRELOC_LIBS = @BINRELOC_LIBS@
BUILD_HELPBROWSER_FALSE = @BUILD_HELPBROWSER_FALSE@
BUILD_HELPBROWSER_TRUE = @BUILD_HELPBROWSER_TRUE@
BUILD_PRINT_FALSE = @BUILD_PRINT_FALSE@
BUILD_PRINT_TRUE = @BUILD_PRINT_TRUE@
BUILD_PYTHON_FALSE = @BUILD_PYTHON_FALSE@
BUILD_PYTHON_TRUE = @BUILD_PYTHON_TRUE@
BUILD_XJT_FALSE = @BUILD_XJT_FALSE@
BUILD_XJT_TRUE = @BUILD_XJT_TRUE@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCAS = @CCAS@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFAULT_BINARY_FALSE = @DEFAULT_BINARY_FALSE@
DEFAULT_BINARY_TRUE = @DEFAULT_BINARY_TRUE@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DESKTOP_DATADIR = @DESKTOP_DATADIR@
DESKTOP_DATADIR_FALSE = @DESKTOP_DATADIR_FALSE@
DESKTOP_DATADIR_TRUE = @DESKTOP_DATADIR_TRUE@
DLLTOOL = @DLLTOOL@
DOC_SHOOTER = @DOC_SHOOTER@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_GIMP_CONSOLE_FALSE = @ENABLE_GIMP_CONSOLE_FALSE@
ENABLE_GIMP_CONSOLE_TRUE = @ENABLE_GIMP_CONSOLE_TRUE@
ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
EXEEXT = @EXEEXT@
EXIF_CFLAGS = @EXIF_CFLAGS@
EXIF_LIBS = @EXIF_LIBS@
F77 = @F77@
FFLAGS = @FFLAGS@
FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FONTCONFIG_REQUIRED_VERSION = @FONTCONFIG_REQUIRED_VERSION@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
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@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GIMPINSTALL = @GIMPINSTALL@
GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
GIMPPRINT_CONFIG = @GIMPPRINT_CONFIG@
GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
GIMPPRINT_REQUIRED_VERSION = @GIMPPRINT_REQUIRED_VERSION@
GIMPPRINT_TOONEW_VERSION = @GIMPPRINT_TOONEW_VERSION@
GIMP_API_VERSION = @GIMP_API_VERSION@
GIMP_APP_VERSION = @GIMP_APP_VERSION@
GIMP_BINARY_AGE = @GIMP_BINARY_AGE@
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_PKGCONFIG_VERSION = @GIMP_PKGCONFIG_VERSION@
GIMP_PLUGINS = @GIMP_PLUGINS@
GIMP_PLUGIN_VERSION = @GIMP_PLUGIN_VERSION@
GIMP_REAL_VERSION = @GIMP_REAL_VERSION@
GIMP_REMOTE = @GIMP_REMOTE@
GIMP_SYSCONF_VERSION = @GIMP_SYSCONF_VERSION@
GIMP_TOOL_VERSION = @GIMP_TOOL_VERSION@
GIMP_UNSTABLE = @GIMP_UNSTABLE@
GIMP_UNSTABLE_FALSE = @GIMP_UNSTABLE_FALSE@
GIMP_UNSTABLE_TRUE = @GIMP_UNSTABLE_TRUE@
GIMP_USER_VERSION = @GIMP_USER_VERSION@
GIMP_VERSION = @GIMP_VERSION@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@
GMODULE_CFLAGS = @GMODULE_CFLAGS@
GMODULE_LIBS = @GMODULE_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNOMEPRINT = @GNOMEPRINT@
GNOMEPRINT_CFLAGS = @GNOMEPRINT_CFLAGS@
GNOMEPRINT_LIBS = @GNOMEPRINT_LIBS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTKDOC_REQUIRED_VERSION = @GTKDOC_REQUIRED_VERSION@
GTKHTML2_CFLAGS = @GTKHTML2_CFLAGS@
GTKHTML2_LIBS = @GTKHTML2_LIBS@
GTKHTML2_REQUIRED_VERSION = @GTKHTML2_REQUIRED_VERSION@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAVE_FINITE = @HAVE_FINITE@
HAVE_GLIBC_REGEX = @HAVE_GLIBC_REGEX@
HAVE_GLIBC_REGEX_FALSE = @HAVE_GLIBC_REGEX_FALSE@
HAVE_GLIBC_REGEX_TRUE = @HAVE_GLIBC_REGEX_TRUE@
HAVE_GNOMEPRINT_FALSE = @HAVE_GNOMEPRINT_FALSE@
HAVE_GNOMEPRINT_TRUE = @HAVE_GNOMEPRINT_TRUE@
HAVE_GNOMEVFS_FALSE = @HAVE_GNOMEVFS_FALSE@
HAVE_GNOMEVFS_TRUE = @HAVE_GNOMEVFS_TRUE@
HAVE_ISFINITE = @HAVE_ISFINITE@
HAVE_LCMS_FALSE = @HAVE_LCMS_FALSE@
HAVE_LCMS_TRUE = @HAVE_LCMS_TRUE@
HAVE_LINUX_INPUT_FALSE = @HAVE_LINUX_INPUT_FALSE@
HAVE_LINUX_INPUT_TRUE = @HAVE_LINUX_INPUT_TRUE@
HAVE_MAC_TWAIN_FALSE = @HAVE_MAC_TWAIN_FALSE@
HAVE_MAC_TWAIN_TRUE = @HAVE_MAC_TWAIN_TRUE@
HAVE_WINDRES_FALSE = @HAVE_WINDRES_FALSE@
HAVE_WINDRES_TRUE = @HAVE_WINDRES_TRUE@
HAVE_XMLLINT_FALSE = @HAVE_XMLLINT_FALSE@
HAVE_XMLLINT_TRUE = @HAVE_XMLLINT_TRUE@
HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@
HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@
HTML_DIR = @HTML_DIR@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_ICONV = @INTLTOOL_ICONV@
INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
JPEG = @JPEG@
LCMS_LIBS = @LCMS_LIBS@
LDFLAGS = @LDFLAGS@
LIBAA = @LIBAA@
LIBART_CFLAGS = @LIBART_CFLAGS@
LIBART_LIBS = @LIBART_LIBS@
LIBGNOMEPRINT = @LIBGNOMEPRINT@
LIBJPEG = @LIBJPEG@
LIBMNG = @LIBMNG@
LIBOBJS = @LIBOBJS@
LIBPNG = @LIBPNG@
LIBPOPPLER = @LIBPOPPLER@
LIBS = @LIBS@
LIBSCREENSHOT = @LIBSCREENSHOT@
LIBSVG = @LIBSVG@
LIBTIFF = @LIBTIFF@
LIBTOOL = @LIBTOOL@
LIBWMF = @LIBWMF@
LIBXMU = @LIBXMU@
LIBXPM = @LIBXPM@
LIBZ = @LIBZ@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
LT_VERSION_INFO = @LT_VERSION_INFO@
MAIL = @MAIL@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MMX_EXTRA_CFLAGS = @MMX_EXTRA_CFLAGS@
MNG = @MNG@
MSGFMT = @MSGFMT@
MS_LIB_AVAILABLE_FALSE = @MS_LIB_AVAILABLE_FALSE@
MS_LIB_AVAILABLE_TRUE = @MS_LIB_AVAILABLE_TRUE@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OS_UNIX_FALSE = @OS_UNIX_FALSE@
OS_UNIX_TRUE = @OS_UNIX_TRUE@
OS_WIN32_FALSE = @OS_WIN32_FALSE@
OS_WIN32_TRUE = @OS_WIN32_TRUE@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
PANGOFT2_LIBS = @PANGOFT2_LIBS@
PANGOFT2_REQUIRED_VERSION = @PANGOFT2_REQUIRED_VERSION@
PATHSEP = @PATHSEP@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@
PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@
PNG = @PNG@
POFILES = @POFILES@
POPPLER = @POPPLER@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
PRINT_CFLAGS = @PRINT_CFLAGS@
PRINT_LIBS = @PRINT_LIBS@
PSP = @PSP@
PYBIN_PATH = @PYBIN_PATH@
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@
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 = @SCREENSHOT@
SENDMAIL = @SENDMAIL@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOCKET_LIBS = @SOCKET_LIBS@
SSE_EXTRA_CFLAGS = @SSE_EXTRA_CFLAGS@
STATICLIBS_FALSE = @STATICLIBS_FALSE@
STATICLIBS_TRUE = @STATICLIBS_TRUE@
STRIP = @STRIP@
SVG = @SVG@
SVG_CFLAGS = @SVG_CFLAGS@
SVG_LIBS = @SVG_LIBS@
SYMPREFIX = @SYMPREFIX@
TIFF = @TIFF@
URI_CFLAGS = @URI_CFLAGS@
URI_LIBS = @URI_LIBS@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WINDRES = @WINDRES@
WINPRINT = @WINPRINT@
WITH_PDBGEN_FALSE = @WITH_PDBGEN_FALSE@
WITH_PDBGEN_TRUE = @WITH_PDBGEN_TRUE@
WMF = @WMF@
WMF_CFLAGS = @WMF_CFLAGS@
WMF_CONFIG = @WMF_CONFIG@
WMF_REQUIRED_VERSION = @WMF_REQUIRED_VERSION@
XGETTEXT = @XGETTEXT@
XMLLINT = @XMLLINT@
XPM = @XPM@
XSLTPROC = @XSLTPROC@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
ac_ct_WINDRES = @ac_ct_WINDRES@
ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
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@
datadir = @datadir@
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@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
libgimpmodule = $(top_builddir)/libgimpmodule/libgimpmodule-$(GIMP_API_VERSION).la
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
INCLUDES = \
-I$(top_srcdir) \
$(GTK_CFLAGS)
LDADDS = \
$(libgimpwidgets) \
$(libgimpconfig) \
$(libgimpmodule) \
$(libgimpmath) \
$(libgimpcolor) \
$(libgimpbase) \
$(GTK_LIBS) \
$(X_LIBS) -lX11
doc_shooter_SOURCES = \
shadow.c \
shadow.h \
shooter.c \
units.c \
units.h \
widgets.c \
widgets.h
doc_shooter_LDADD = $(LDADDS)
EXTRA_DIST = README.shooter
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(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 \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu devel-docs/tools/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu devel-docs/tools/Makefile
.PRECIOUS: 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__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
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
clean-noinstPROGRAMS:
@list='$(noinst_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
doc-shooter$(EXEEXT): $(doc_shooter_OBJECTS) $(doc_shooter_DEPENDENCIES)
@rm -f doc-shooter$(EXEEXT)
$(LINK) $(doc_shooter_LDFLAGS) $(doc_shooter_OBJECTS) $(doc_shooter_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shadow.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shooter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/units.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widgets.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$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 $(PROGRAMS)
installdirs:
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:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 clean-local clean-noinstPROGRAMS \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-local clean-noinstPROGRAMS ctags 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-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-info-am
clean-local:
rm -f *.png
# 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:

View File

@ -0,0 +1,13 @@
The doc-shooter is a small utility used to create screenshots of
widgets for the GIMP API reference manuals. This utility is X11
specific, so it should only be built when GIMP is being compiled
for the X11 GDK backend.
Taking the screenshots is not part of the docs build.
Instead, the images are created, and then copied by hand into
devel-docs/libgimpwidgets/images. Ideally, the images should be
taken once a release, and all images should be updated at the
same time. A simple theme should be used to take the screenshots.
The GTK+ docs team came up with the idea for this utility as
well as some of the code to implement it.

149
devel-docs/tools/shadow.c Normal file
View File

@ -0,0 +1,149 @@
#include "shadow.h"
#include <math.h>
#define BLUR_RADIUS 5
#define SHADOW_OFFSET (BLUR_RADIUS * 4 / 5)
#define SHADOW_OPACITY 0.75
typedef struct {
int size;
double *data;
} ConvFilter;
static double
gaussian (double x, double y, double r)
{
return ((1 / (2 * M_PI * r)) *
exp ((- (x * x + y * y)) / (2 * r * r)));
}
static ConvFilter *
create_blur_filter (int radius)
{
ConvFilter *filter;
int x, y;
double sum;
filter = g_new0 (ConvFilter, 1);
filter->size = radius * 2 + 1;
filter->data = g_new (double, filter->size * filter->size);
sum = 0.0;
for (y = 0 ; y < filter->size; y++)
{
for (x = 0 ; x < filter->size; x++)
{
sum += filter->data[y * filter->size + x] = gaussian (x - (filter->size >> 1),
y - (filter->size >> 1),
radius);
}
}
for (y = 0; y < filter->size; y++)
{
for (x = 0; x < filter->size; x++)
{
filter->data[y * filter->size + x] /= sum;
}
}
return filter;
}
static GdkPixbuf *
create_shadow (GdkPixbuf *src)
{
int x, y, i, j;
int width, height;
GdkPixbuf *dest;
static ConvFilter *filter = NULL;
int src_rowstride, dest_rowstride;
int src_bpp, dest_bpp;
guchar *src_pixels, *dest_pixels;
if (!filter)
filter = create_blur_filter (BLUR_RADIUS);
width = gdk_pixbuf_get_width (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
height = gdk_pixbuf_get_height (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
dest = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (src),
gdk_pixbuf_get_has_alpha (src),
gdk_pixbuf_get_bits_per_sample (src),
width, height);
gdk_pixbuf_fill (dest, 0);
src_pixels = gdk_pixbuf_get_pixels (src);
src_rowstride = gdk_pixbuf_get_rowstride (src);
src_bpp = gdk_pixbuf_get_has_alpha (src) ? 4 : 3;
dest_pixels = gdk_pixbuf_get_pixels (dest);
dest_rowstride = gdk_pixbuf_get_rowstride (dest);
dest_bpp = gdk_pixbuf_get_has_alpha (dest) ? 4 : 3;
for (y = 0; y < height; y++)
{
for (x = 0; x < width; x++)
{
int sumr = 0, sumg = 0, sumb = 0, suma = 0;
for (i = 0; i < filter->size; i++)
{
for (j = 0; j < filter->size; j++)
{
int src_x, src_y;
src_y = -(BLUR_RADIUS + SHADOW_OFFSET) + y - (filter->size >> 1) + i;
src_x = -(BLUR_RADIUS + SHADOW_OFFSET) + x - (filter->size >> 1) + j;
if (src_y < 0 || src_y > gdk_pixbuf_get_height (src) ||
src_x < 0 || src_x > gdk_pixbuf_get_width (src))
continue;
sumr += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 0] *
filter->data [i * filter->size + j];
sumg += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 1] *
filter->data [i * filter->size + j];
sumb += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 2] *
filter->data [i * filter->size + j];
if (src_bpp == 4)
suma += src_pixels [src_y * src_rowstride +
src_x * src_bpp + 3] *
filter->data [i * filter->size + j];
}
}
if (dest_bpp == 4)
dest_pixels [y * dest_rowstride +
x * dest_bpp + 3] = suma * SHADOW_OPACITY;
}
}
return dest;
}
GdkPixbuf *
create_shadowed_pixbuf (GdkPixbuf *src)
{
GdkPixbuf *dest;
dest = create_shadow (src);
gdk_pixbuf_composite (src, dest,
BLUR_RADIUS, BLUR_RADIUS,
gdk_pixbuf_get_width (src),
gdk_pixbuf_get_height (src),
BLUR_RADIUS, BLUR_RADIUS, 1.0, 1.0,
GDK_INTERP_NEAREST, 255);
return dest;
}

View File

@ -0,0 +1,8 @@
#ifndef __SHADOW_H__
#define __SHADOW_H__
#include <gdk-pixbuf/gdk-pixbuf.h>
GdkPixbuf *create_shadowed_pixbuf (GdkPixbuf *src);
#endif /* __SHADOW_H__ */

296
devel-docs/tools/shooter.c Normal file
View File

@ -0,0 +1,296 @@
#include "config.h"
#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <X11/extensions/shape.h>
#include "libgimpbase/gimpbase.h"
#include "libgimpconfig/gimpconfig.h"
#include "libgimpmodule/gimpmodule.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "libgimpwidgets/gimpwidgets-private.h"
#include "shadow.h"
#include "units.h"
#include "widgets.h"
static Window
find_toplevel_window (Display *display,
Window xid)
{
Window root, parent, *children;
guint nchildren;
do
{
if (XQueryTree (display, xid,
&root, &parent, &children, &nchildren) == 0)
{
g_warning ("Couldn't find window manager window");
return 0;
}
if (root == parent)
return xid;
xid = parent;
}
while (TRUE);
}
static GdkPixbuf *
add_border_to_shot (GdkPixbuf *pixbuf)
{
GdkPixbuf *retval;
retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
gdk_pixbuf_get_width (pixbuf) + 2,
gdk_pixbuf_get_height (pixbuf) + 2);
/* Fill with solid black */
gdk_pixbuf_fill (retval, 0x000000FF);
gdk_pixbuf_copy_area (pixbuf,
0, 0,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf),
retval, 1, 1);
return retval;
}
static GdkPixbuf *
remove_shaped_area (GdkPixbuf *pixbuf,
Window window)
{
Display *display;
GdkPixbuf *retval;
XRectangle *rectangles;
gint rectangle_count, rectangle_order;
gint i;
retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
gdk_pixbuf_fill (retval, 0);
display = gdk_x11_display_get_xdisplay (gdk_display_get_default ());
rectangles = XShapeGetRectangles (display, window, ShapeBounding,
&rectangle_count, &rectangle_order);
for (i = 0; i < rectangle_count; i++)
{
int y, x;
for (y = rectangles[i].y;
y < rectangles[i].y + rectangles[i].height;
y++)
{
const guchar *src_pixels;
guchar *dest_pixels;
src_pixels = gdk_pixbuf_get_pixels (pixbuf) +
y * gdk_pixbuf_get_rowstride (pixbuf) +
rectangles[i].x * (gdk_pixbuf_get_has_alpha (pixbuf) ? 4 : 3);
dest_pixels = gdk_pixbuf_get_pixels (retval) +
y * gdk_pixbuf_get_rowstride (retval) +
rectangles[i].x * 4;
for (x = rectangles[i].x;
x < rectangles[i].x + rectangles[i].width;
x++)
{
*dest_pixels++ = *src_pixels ++;
*dest_pixels++ = *src_pixels ++;
*dest_pixels++ = *src_pixels ++;
*dest_pixels++ = 255;
if (gdk_pixbuf_get_has_alpha (pixbuf))
src_pixels++;
}
}
}
return retval;
}
static GdkPixbuf *
take_window_shot (Window child,
gboolean include_decoration)
{
GdkDisplay *display;
GdkScreen *screen;
GdkWindow *window;
Window xid;
gint x_orig, y_orig;
gint x = 0, y = 0;
gint width, height;
GdkPixbuf *tmp, *tmp2;
GdkPixbuf *retval;
display = gdk_display_get_default ();
screen = gdk_screen_get_default ();
if (include_decoration)
xid = find_toplevel_window (gdk_x11_display_get_xdisplay (display), child);
else
xid = child;
window = gdk_window_foreign_new_for_display (display, xid);
gdk_drawable_get_size (window, &width, &height);
gdk_window_get_origin (window, &x_orig, &y_orig);
if (x_orig < 0)
{
x = - x_orig;
width = width + x_orig;
x_orig = 0;
}
if (y_orig < 0)
{
y = - y_orig;
height = height + y_orig;
y_orig = 0;
}
if (x_orig + width > gdk_screen_get_width (screen))
width = gdk_screen_get_width (screen) - x_orig;
if (y_orig + height > gdk_screen_get_height (screen))
height = gdk_screen_get_height (screen) - y_orig;
tmp = gdk_pixbuf_get_from_drawable (NULL, window, NULL,
x, y, 0, 0, width, height);
if (include_decoration)
tmp2 = remove_shaped_area (tmp, xid);
else
tmp2 = add_border_to_shot (tmp);
retval = create_shadowed_pixbuf (tmp2);
g_object_unref (tmp);
g_object_unref (tmp2);
return retval;
}
static gboolean
shooter_get_foreground (GimpRGB *color)
{
color->r = color->g = color->b = 0.0;
color->a = 1.0;
return TRUE;
}
static gboolean
shooter_get_background (GimpRGB *color)
{
color->r = color->g = color->b = 1.0;
color->a = 1.0;
return TRUE;
}
static void
shooter_standard_help (const gchar *help_id,
gpointer help_data)
{
}
static void
shooter_ensure_modules (void)
{
static GimpModuleDB *module_db = NULL;
if (! module_db)
{
gchar *config = gimp_config_build_plug_in_path ("modules");
gchar *path = gimp_config_path_expand (config, TRUE, NULL);
module_db = gimp_module_db_new (FALSE);
gimp_module_db_load (module_db, path);
g_free (path);
g_free (config);
}
}
int
main (int argc, char **argv)
{
GdkPixbuf *screenshot = NULL;
GList *toplevels;
GList *node;
g_set_application_name ("GIMP documention shooter");
/* If there's no DISPLAY, we silently error out.
* We don't want to break headless builds.
*/
if (! gtk_init_check (&argc, &argv))
return EXIT_SUCCESS;
gtk_rc_add_default_file (gimp_gtkrc ());
units_init ();
gimp_widgets_init (shooter_standard_help,
shooter_get_foreground,
shooter_get_background,
shooter_ensure_modules);
toplevels = get_all_widgets ();
for (node = toplevels; node; node = g_list_next (node))
{
GdkWindow *window;
WidgetInfo *info;
XID xid;
gchar *filename;
info = node->data;
gtk_widget_show (info->window);
window = info->window->window;
gtk_widget_show_now (info->window);
gtk_widget_queue_draw (info->window);
while (gtk_events_pending ())
{
gtk_main_iteration ();
}
sleep (1);
while (gtk_events_pending ())
{
gtk_main_iteration ();
}
xid = gdk_x11_drawable_get_xid (GDK_DRAWABLE (window));
screenshot = take_window_shot (xid, info->include_decorations);
filename = g_strdup_printf ("%s.png", info->name);
gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
g_free(filename);
gtk_widget_hide (info->window);
}
return EXIT_SUCCESS;
}

102
devel-docs/tools/units.c Normal file
View File

@ -0,0 +1,102 @@
#include "config.h"
#include <glib-object.h>
#include "libgimpbase/gimpbase.h"
#include "libgimpbase/gimpbase-private.h"
#include "units.h"
typedef struct
{
gdouble factor;
gint digits;
const gchar *identifier;
const gchar *symbol;
const gchar *abbreviation;
const gchar *singular;
const gchar *plural;
} GimpUnitDef;
static const GimpUnitDef unit_defs[] =
{
{ 0.0, 0, "pixels", "px", "px", "pixel", "pixels" },
{ 1.0, 2, "inches", "''", "in", "inch", "inches" },
{ 25.4, 1, "millimeters", "mm", "mm", "millimeter", "millimeters" }
};
static gint
units_get_number_of_units (void)
{
return G_N_ELEMENTS (unit_defs);
}
static gint
units_get_number_of_built_in_units (void)
{
return G_N_ELEMENTS (unit_defs);
}
static gdouble
units_unit_get_factor (GimpUnit unit)
{
return unit_defs[unit].factor;
}
static gint
units_unit_get_digits (GimpUnit unit)
{
return unit_defs[unit].digits;
}
static const gchar *
units_unit_get_identifier (GimpUnit unit)
{
return unit_defs[unit].identifier;
}
static const gchar *
units_unit_get_symbol (GimpUnit unit)
{
return unit_defs[unit].symbol;
}
static const gchar *
units_unit_get_abbreviation (GimpUnit unit)
{
return unit_defs[unit].abbreviation;
}
static const gchar *
units_unit_get_singular (GimpUnit unit)
{
return unit_defs[unit].singular;
}
static const gchar *
units_unit_get_plural (GimpUnit unit)
{
return unit_defs[unit].plural;
}
void
units_init (void)
{
GimpUnitVtable vtable;
vtable.unit_get_number_of_units = units_get_number_of_units;
vtable.unit_get_number_of_built_in_units = units_get_number_of_built_in_units;
vtable.unit_new = NULL;
vtable.unit_get_factor = units_unit_get_factor;
vtable.unit_get_digits = units_unit_get_digits;
vtable.unit_get_identifier = units_unit_get_identifier;
vtable.unit_get_symbol = units_unit_get_symbol;
vtable.unit_get_abbreviation = units_unit_get_abbreviation;
vtable.unit_get_singular = units_unit_get_singular;
vtable.unit_get_plural = units_unit_get_plural;
gimp_base_init (&vtable);
}

8
devel-docs/tools/units.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef __UNITS_H__
#define __UNITS_H__
void units_init (void);
#endif /* __UNITS_H__ */

652
devel-docs/tools/widgets.c Normal file
View File

@ -0,0 +1,652 @@
#include "config.h"
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include "libgimpconfig/gimpconfig.h"
#include "libgimpcolor/gimpcolor.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "libgimpwidgets/gimpwidgets-private.h"
#include "widgets.h"
#define SMALL_WIDTH 240
#define SMALL_HEIGHT 75
#define MEDIUM_WIDTH 240
#define MEDIUM_HEIGHT 165
#define LARGE_WIDTH 240
#define LARGE_HEIGHT 240
static gboolean
adjust_size_callback (WidgetInfo *info)
{
Window toplevel;
Window root;
gint tx;
gint ty;
guint twidth;
guint theight;
guint tborder_width;
guint tdepth;
guint target_width = 0;
guint target_height = 0;
toplevel = GDK_WINDOW_XWINDOW (info->window->window);
XGetGeometry (GDK_WINDOW_XDISPLAY (info->window->window), toplevel,
&root, &tx, &ty, &twidth, &theight, &tborder_width, &tdepth);
switch (info->size)
{
case SMALL:
target_width = SMALL_WIDTH;
target_height = SMALL_HEIGHT;
break;
case MEDIUM:
target_width = MEDIUM_WIDTH;
target_height = MEDIUM_HEIGHT;
break;
case LARGE:
target_width = LARGE_WIDTH;
target_height = LARGE_HEIGHT;
break;
case ASIS:
target_width = twidth;
target_height = theight;
break;
}
if (twidth > target_width ||
theight > target_height)
{
gtk_widget_set_size_request (info->window,
2 + target_width - (twidth - target_width), /* Dunno why I need the +2 fudge factor; */
2 + target_height - (theight - target_height));
}
return FALSE;
}
static void
realize_callback (WidgetInfo *info)
{
g_timeout_add (500, (GSourceFunc)adjust_size_callback, info);
}
static WidgetInfo *
new_widget_info (const char *name,
GtkWidget *widget,
WidgetSize size)
{
WidgetInfo *info;
info = g_new0 (WidgetInfo, 1);
info->name = g_strdup (name);
info->size = size;
info->no_focus = TRUE;
if (GTK_IS_WINDOW (widget))
{
info->window = widget;
gtk_window_set_resizable (GTK_WINDOW (info->window), FALSE);
g_signal_connect_swapped (info->window, "realize",
G_CALLBACK (realize_callback), info);
}
else
{
info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
gtk_container_add (GTK_CONTAINER (info->window), widget);
gtk_widget_show_all (widget);
}
gtk_widget_set_app_paintable (info->window, TRUE);
g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
switch (size)
{
case SMALL:
gtk_widget_set_size_request (info->window, SMALL_WIDTH, SMALL_HEIGHT);
break;
case MEDIUM:
gtk_widget_set_size_request (info->window, MEDIUM_WIDTH, MEDIUM_HEIGHT);
break;
case LARGE:
gtk_widget_set_size_request (info->window, LARGE_WIDTH, LARGE_HEIGHT);
break;
default:
break;
}
return info;
}
static void
color_init (GimpRGB *rgb)
{
gimp_rgb_parse_name (rgb, "goldenrod", -1);
gimp_rgb_set_alpha (rgb, 0.7);
}
static WidgetInfo *
create_browser (void)
{
GtkWidget *vbox;
GtkWidget *align;
GtkWidget *browser;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
browser = gimp_browser_new ();
gtk_box_pack_start (GTK_BOX (GIMP_BROWSER (browser)->left_vbox),
gtk_label_new ("TreeView goes here"), TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (align), browser);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Browser"), FALSE, FALSE, 0);
return new_widget_info ("gimp-browser", vbox, MEDIUM);
}
static WidgetInfo *
create_button (void)
{
GtkWidget *widget;
GtkWidget *align;
widget = gimp_button_new ();
gtk_container_add (GTK_CONTAINER (widget),
gtk_label_new_with_mnemonic ("_Button"));
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
return new_widget_info ("gimp-button", align, SMALL);
}
static WidgetInfo *
create_chain_button (void)
{
GtkWidget *vbox;
GtkWidget *align;
GtkWidget *table;
GtkWidget *label;
GtkWidget *chain;
GtkWidget *separator;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.8);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
table = gtk_table_new (2, 5, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (table), 6);
gtk_table_set_col_spacings (GTK_TABLE (table), 6);
gtk_container_add (GTK_CONTAINER (align), table);
chain = gimp_chain_button_new (GIMP_CHAIN_LEFT);
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (chain), TRUE);
gtk_table_attach (GTK_TABLE (table), chain, 0,1, 0,2,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
label = gtk_label_new ("Linked ");
gtk_table_attach (GTK_TABLE (table), label, 1,2, 0,1,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
label = gtk_label_new ("Linked ");
gtk_table_attach (GTK_TABLE (table), label, 1,2, 1,2,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
separator = gtk_vseparator_new ();
gtk_table_attach (GTK_TABLE (table), separator, 2,3, 0,2,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
label = gtk_label_new (" Unlinked");
gtk_table_attach (GTK_TABLE (table), label, 3,4, 0,1,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
label = gtk_label_new (" Unlinked");
gtk_table_attach (GTK_TABLE (table), label, 3,4, 1,2,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
chain = gimp_chain_button_new (GIMP_CHAIN_RIGHT);
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (chain), FALSE);
gtk_table_attach (GTK_TABLE (table), chain, 4,5, 0,2,
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
gtk_box_pack_end_defaults (GTK_BOX (vbox), gtk_label_new ("Chain Button"));
return new_widget_info ("gimp-chain-button", vbox, MEDIUM);
}
static WidgetInfo *
create_color_area (void)
{
GtkWidget *vbox;
GtkWidget *area;
GtkWidget *align;
GimpRGB color;
color_init (&color);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
area = gimp_color_area_new (&color, GIMP_COLOR_AREA_SMALL_CHECKS, 0);
gimp_color_area_set_draw_border (GIMP_COLOR_AREA (area), TRUE);
gtk_widget_set_size_request (area, -1, 25);
gtk_container_add (GTK_CONTAINER (align), area);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Color Area"), FALSE, FALSE, 0);
return new_widget_info ("gimp-color-area", vbox, SMALL);
}
static WidgetInfo *
create_color_button (void)
{
GtkWidget *vbox;
GtkWidget *button;
GtkWidget *align;
GimpRGB color;
color_init (&color);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
button = gimp_color_button_new ("Color Button",
80, 20, &color,
GIMP_COLOR_AREA_SMALL_CHECKS);
gtk_container_add (GTK_CONTAINER (align), button);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Color Button"), FALSE, FALSE, 0);
return new_widget_info ("gimp-color-button", vbox, SMALL);
}
static WidgetInfo *
create_color_hex_entry (void)
{
GtkWidget *vbox;
GtkWidget *entry;
GtkWidget *align;
GimpRGB color;
color_init (&color);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
entry = gimp_color_hex_entry_new ();
gimp_color_hex_entry_set_color (GIMP_COLOR_HEX_ENTRY (entry), &color);
gtk_container_add (GTK_CONTAINER (align), entry);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Color Hex Entry"), FALSE, FALSE, 0);
return new_widget_info ("gimp-color-hex-entry", vbox, SMALL);
}
static WidgetInfo *
create_color_scale (void)
{
GtkWidget *vbox;
GtkWidget *scale;
GtkWidget *align;
GimpRGB rgb;
GimpHSV hsv;
color_init (&rgb);
gimp_rgb_to_hsv (&rgb, &hsv);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.8, 0.0);
scale = gimp_color_scale_new (GTK_ORIENTATION_HORIZONTAL,
GIMP_COLOR_SELECTOR_HUE);
gimp_color_scale_set_color (GIMP_COLOR_SCALE (scale), &rgb, &hsv);
gtk_range_set_value (GTK_RANGE (scale), 40);
gtk_container_add (GTK_CONTAINER (align), scale);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Color Scale"), FALSE, FALSE, 0);
return new_widget_info ("gimp-color-scale", vbox, SMALL);
}
static WidgetInfo *
create_color_selection (void)
{
GtkWidget *vbox;
GtkWidget *selection;
GtkWidget *align;
GimpRGB color;
color_init (&color);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
selection = gimp_color_selection_new ();
gimp_color_selection_set_show_alpha(GIMP_COLOR_SELECTION (selection), TRUE);
gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
gtk_widget_set_size_request (selection, 400, -1);
gtk_container_add (GTK_CONTAINER (align), selection);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Color Selection"), FALSE, FALSE, 0);
return new_widget_info ("gimp-color-selection", vbox, ASIS);
}
static WidgetInfo *
create_dialog (void)
{
WidgetInfo *info;
GtkWidget *widget;
GtkWidget *label;
widget = gimp_dialog_new ("Gimp Dialog",
"gimp-dialog",
NULL, 0, NULL, NULL,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
label = gtk_label_new ("Gimp Dialog");
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (widget)->vbox), label);
gtk_widget_show (label);
info = new_widget_info ("gimp-dialog", widget, MEDIUM);
info->include_decorations = TRUE;
return info;
}
static WidgetInfo *
create_enum_combo_box (void)
{
GtkWidget *vbox;
GtkWidget *combo;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
combo = gimp_enum_combo_box_new (GIMP_TYPE_CHANNEL_TYPE);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), GIMP_BLUE_CHANNEL);
gtk_container_add (GTK_CONTAINER (align), combo);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Enum Combo Box"), FALSE, FALSE, 0);
return new_widget_info ("gimp-enum-combo-box", vbox, SMALL);
}
static WidgetInfo *
create_enum_label (void)
{
GtkWidget *vbox;
GtkWidget *label;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
label = gimp_enum_label_new (GIMP_TYPE_IMAGE_BASE_TYPE, GIMP_RGB);
gtk_container_add (GTK_CONTAINER (align), label);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Enum Label"), FALSE, FALSE, 0);
return new_widget_info ("gimp-enum-label", vbox, SMALL);
}
static WidgetInfo *
create_file_entry (void)
{
GtkWidget *vbox;
GtkWidget *entry;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
entry = gimp_file_entry_new ("File Entry",
"wilber.png",
FALSE, TRUE);
gtk_container_add (GTK_CONTAINER (align), entry);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("File Entry"), FALSE, FALSE, 0);
return new_widget_info ("gimp-file-entry", vbox, SMALL);
}
static WidgetInfo *
create_frame (void)
{
GtkWidget *frame;
GtkWidget *content;
frame = gimp_frame_new ("Frame");
content = gtk_label_new ("Frame Content\nThis Frame is HIG compliant");
gtk_misc_set_alignment (GTK_MISC (content), 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (frame), content);
return new_widget_info ("gimp-frame", frame, MEDIUM);
}
static WidgetInfo *
create_int_combo_box (void)
{
GtkWidget *vbox;
GtkWidget *combo;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
combo = gimp_int_combo_box_new ("Sobel", 1,
"Prewitt", 2,
"Gradient", 3,
"Roberts", 4,
"Differential", 5,
"Laplace", 6,
NULL);
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 1);
gtk_container_add (GTK_CONTAINER (align), combo);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Int Combo Box"), FALSE, FALSE, 0);
return new_widget_info ("gimp-int-combo-box", vbox, SMALL);
}
static WidgetInfo *
create_memsize_entry (void)
{
GtkWidget *vbox;
GtkWidget *entry;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
entry = gimp_memsize_entry_new ((3 * 1024 + 512) * 1024,
0, 1024 * 1024 * 1024);
gtk_container_add (GTK_CONTAINER (align), entry);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Memsize Entry"), FALSE, FALSE, 0);
return new_widget_info ("gimp-memsize-entry", vbox, SMALL);
}
static WidgetInfo *
create_offset_area (void)
{
GtkWidget *vbox;
GtkWidget *frame;
GtkWidget *area;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
gtk_container_add (GTK_CONTAINER (align), frame);
area = gimp_offset_area_new (100, 100);
gimp_offset_area_set_size (GIMP_OFFSET_AREA (area), 180, 160);
gimp_offset_area_set_offsets (GIMP_OFFSET_AREA (area), 30, 30);
gtk_container_add (GTK_CONTAINER (frame), area);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Offset Area"), FALSE, FALSE, 0);
return new_widget_info ("gimp-offset-area", vbox, LARGE);
}
static WidgetInfo *
create_page_selector (void)
{
GtkWidget *vbox;
GtkWidget *selector;
vbox = gtk_vbox_new (FALSE, 6);
selector = gimp_page_selector_new ();
gtk_widget_set_size_request (selector, -1, 240);
gimp_page_selector_set_n_pages (GIMP_PAGE_SELECTOR (selector), 16);
gimp_page_selector_select_range (GIMP_PAGE_SELECTOR (selector),
"1,3,7-9,12-15");
gtk_box_pack_start_defaults (GTK_BOX (vbox), selector);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Page Selector"), FALSE, FALSE, 0);
return new_widget_info ("gimp-page-selector", vbox, ASIS);
}
static WidgetInfo *
create_path_editor (void)
{
GtkWidget *vbox;
GtkWidget *editor;
GtkWidget *align;
gchar *config = gimp_config_build_data_path ("patterns");
gchar *path = gimp_config_path_expand (config, TRUE, NULL);
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
editor = gimp_path_editor_new ("Path Editor", path);
gtk_widget_set_size_request (editor, -1, 240);
gtk_container_add (GTK_CONTAINER (align), editor);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Path Editor"), FALSE, FALSE, 0);
g_free (path);
g_free (config);
return new_widget_info ("gimp-path-editor", vbox, ASIS);
}
static WidgetInfo *
create_pick_button (void)
{
GtkWidget *vbox;
GtkWidget *button;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
button = gimp_pick_button_new ();
gtk_container_add (GTK_CONTAINER (align), button);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Pick Button"), FALSE, FALSE, 0);
return new_widget_info ("gimp-pick-button", vbox, SMALL);
}
static gboolean
area_realize (GimpPreviewArea *area)
{
GdkPixbuf *pixbuf;
pixbuf = gdk_pixbuf_new_from_file ("../../data/images/wilber-wizard.png",
NULL);
gimp_preview_area_draw (GIMP_PREVIEW_AREA (area), 0, 0,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf),
GIMP_RGBA_IMAGE,
gdk_pixbuf_get_pixels (pixbuf),
gdk_pixbuf_get_rowstride (pixbuf));
g_object_unref (pixbuf);
return FALSE;
}
static WidgetInfo *
create_preview_area (void)
{
GtkWidget *vbox;
GtkWidget *area;
GtkWidget *align;
GdkPixbuf *pixbuf;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
area = gimp_preview_area_new ();
g_signal_connect (area, "realize",
G_CALLBACK (area_realize), NULL);
gtk_container_add (GTK_CONTAINER (align), area);
pixbuf = gdk_pixbuf_new_from_file ("../../data/images/wilber-wizard.png",
NULL);
gtk_widget_set_size_request (area,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
g_object_unref (pixbuf);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Preview Area"), FALSE, FALSE, 0);
return new_widget_info ("gimp-preview-area", vbox, MEDIUM);
}
static WidgetInfo *
create_unit_menu (void)
{
GtkWidget *vbox;
GtkWidget *menu;
GtkWidget *align;
vbox = gtk_vbox_new (FALSE, 6);
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
menu = gimp_unit_menu_new ("%p", GIMP_UNIT_MM, TRUE, FALSE, FALSE);
gtk_container_add (GTK_CONTAINER (align), menu);
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
gtk_box_pack_start (GTK_BOX (vbox),
gtk_label_new ("Unit Menu"), FALSE, FALSE, 0);
return new_widget_info ("gimp-unit-menu", vbox, SMALL);
}
GList *
get_all_widgets (void)
{
GList *retval = NULL;
retval = g_list_append (retval, create_browser ());
retval = g_list_append (retval, create_button ());
retval = g_list_append (retval, create_chain_button ());
retval = g_list_append (retval, create_color_area ());
retval = g_list_append (retval, create_color_button ());
retval = g_list_append (retval, create_color_hex_entry ());
retval = g_list_append (retval, create_color_scale ());
retval = g_list_append (retval, create_color_selection ());
retval = g_list_append (retval, create_dialog ());
retval = g_list_append (retval, create_enum_combo_box ());
retval = g_list_append (retval, create_enum_label ());
retval = g_list_append (retval, create_file_entry ());
retval = g_list_append (retval, create_frame ());
retval = g_list_append (retval, create_int_combo_box ());
retval = g_list_append (retval, create_memsize_entry ());
retval = g_list_append (retval, create_offset_area ());
retval = g_list_append (retval, create_page_selector ());
retval = g_list_append (retval, create_path_editor ());
retval = g_list_append (retval, create_pick_button ());
retval = g_list_append (retval, create_preview_area ());
retval = g_list_append (retval, create_unit_menu ());
return retval;
}

View File

@ -0,0 +1,25 @@
#ifndef __WIDGETS_H__
#define __WIDGETS_H__
typedef enum
{
SMALL,
MEDIUM,
LARGE,
ASIS
} WidgetSize;
typedef struct WidgetInfo
{
GtkWidget *window;
gchar *name;
gboolean no_focus;
gboolean include_decorations;
WidgetSize size;
} WidgetInfo;
GList * get_all_widgets (void);
#endif /* __WIDGETS_H__ */