configure.in themes/Default/images/Makefile.am some new Makefiles to make

2001-08-06  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* themes/Default/images/Makefile.am
	* themes/Default/images/tools/Makefile.am: some new Makefiles to
	make it installable.

	* Makefile.am
	* gtkrc: removed...

	* themes/Default/Makefile.am
	* themes/Default/gtkrc: ...added here.

	* themes/Default/imagerc: new file (not used, just for
	documentation) which loads the default theme's images in the same
	way the inlined pixbufs are registered with the stock system.

	* gimprc.in
	* gimprc.win32
	* user_install
	* user_install.bat
	* app/gimprc.[ch]: added "theme-path" and "theme" gimprc variables.

	* app/app_procs.c: prase gimprc before initializing the GUI.

	* app/core/gimpdatafiles.[ch]: added support for getting only
	subdirectories in the callback.

	* libgimpbase/gimpenv.c: as a temp_hack gimp_gtkrc(); returns the
	default theme's gtkrc.

	* app/gui/gui.c: build a hash of theme directories and select
	the one configured in gimprc.theme. Use gimp_gtkrc()'s default
	value if there is no theme installed or configured.

	* app/gui/preferences-dialog.c: Added theme_path to the GUI. No
	stuff for selection the theme yet.

	* app/gui/menus.c: beautify <Image>/Tools/

	* app/tools/gimpcroptool.c: register in <Image>/Tools/Transform Tools/
This commit is contained in:
Michael Natterer 2001-08-05 20:34:10 +00:00 committed by Michael Natterer
parent 572942f1da
commit 30d2fdef07
33 changed files with 689 additions and 110 deletions

View File

@ -1,3 +1,45 @@
2001-08-06 Michael Natterer <mitch@gimp.org>
* configure.in
* themes/Default/images/Makefile.am
* themes/Default/images/tools/Makefile.am: some new Makefiles to
make it installable.
* Makefile.am
* gtkrc: removed...
* themes/Default/Makefile.am
* themes/Default/gtkrc: ...added here.
* themes/Default/imagerc: new file (not used, just for
documentation) which loads the default theme's images in the same
way the inlined pixbufs are registered with the stock system.
* gimprc.in
* gimprc.win32
* user_install
* user_install.bat
* app/gimprc.[ch]: added "theme-path" and "theme" gimprc variables.
* app/app_procs.c: prase gimprc before initializing the GUI.
* app/core/gimpdatafiles.[ch]: added support for getting only
subdirectories in the callback.
* libgimpbase/gimpenv.c: as a temp_hack gimp_gtkrc(); returns the
default theme's gtkrc.
* app/gui/gui.c: build a hash of theme directories and select
the one configured in gimprc.theme. Use gimp_gtkrc()'s default
value if there is no theme installed or configured.
* app/gui/preferences-dialog.c: Added theme_path to the GUI. No
stuff for selection the theme yet.
* app/gui/menus.c: beautify <Image>/Tools/
* app/tools/gimpcroptool.c: register in <Image>/Tools/Transform Tools/
2001-08-05 Michael Natterer <mitch@gimp.org>
* Makefile.am

View File

@ -39,7 +39,6 @@ EXTRA_DIST = \
PLUGIN_MAINTAINERS \
MAINTAINERS \
TODO \
gtkrc \
gtkrc_user \
unitrc \
gimp_logo.ppm \
@ -59,7 +58,6 @@ gimpdata_DATA = \
gimpsysconf_DATA = \
gimprc \
gimprc_user \
gtkrc \
gtkrc_user \
unitrc \
ps-menurc

View File

@ -126,11 +126,6 @@ app_init (gint gimp_argc,
}
}
if (! no_interface)
{
gui_libs_init (&gimp_argc, &gimp_argv);
}
/* The user_install dialog may have parsed unitrc and gimprc, so
* check gimprc_init()'s return value
*/
@ -145,6 +140,8 @@ app_init (gint gimp_argc,
if (! no_interface)
{
gui_libs_init (&gimp_argc, &gimp_argv);
get_standard_colormaps ();
if (! no_splash)

View File

@ -165,6 +165,12 @@ gimp_datafiles_read_directories (const gchar *path_str,
{
while ((dir_ent = readdir (dir)))
{
if (! strcmp (dir_ent->d_name, ".") ||
! strcmp (dir_ent->d_name, ".."))
{
continue;
}
filename = g_strdup_printf ("%s%s",
(gchar *) list->data,
dir_ent->d_name);
@ -172,14 +178,21 @@ gimp_datafiles_read_directories (const gchar *path_str,
/* Check the file and see that it is not a sub-directory */
err = stat (filename, &filestat);
if (!err && S_ISREG (filestat.st_mode) &&
(!(flags & MODE_EXECUTABLE) ||
(filestat.st_mode & S_IXUSR) ||
is_script (filename)))
if (! err)
{
filestat_valid = TRUE;
(* loader_func) (filename, loader_data);
if (S_ISDIR (filestat.st_mode) && (flags & TYPE_DIRECTORY))
{
(* loader_func) (filename, loader_data);
}
else if (S_ISREG (filestat.st_mode) &&
(!(flags & MODE_EXECUTABLE) ||
(filestat.st_mode & S_IXUSR) ||
is_script (filename)))
{
(* loader_func) (filename, loader_data);
}
filestat_valid = FALSE;
}

View File

@ -27,8 +27,8 @@
typedef enum
{
INCLUDE_TEMP_DIR = 1 << 0,
MODE_EXECUTABLE = 1 << 1
MODE_EXECUTABLE = 1 << 0,
TYPE_DIRECTORY = 1 << 1
} GimpDataFileFlags;

View File

@ -146,6 +146,7 @@ static gchar * old_brush_path;
static gchar * old_pattern_path;
static gchar * old_palette_path;
static gchar * old_gradient_path;
static gchar * old_theme_path;
static gdouble old_monitor_xres;
static gdouble old_monitor_yres;
static gboolean old_using_xserver_resolution;
@ -182,6 +183,7 @@ static gchar * edit_brush_path = NULL;
static gchar * edit_pattern_path = NULL;
static gchar * edit_palette_path = NULL;
static gchar * edit_gradient_path = NULL;
static gchar * edit_theme_path = NULL;
/* variables which will be changed _after_ closing the dialog */
static guint edit_tile_cache_size;
@ -358,7 +360,8 @@ prefs_check_settings (void)
prefs_strcmp (old_brush_path, edit_brush_path) ||
prefs_strcmp (old_pattern_path, edit_pattern_path) ||
prefs_strcmp (old_palette_path, edit_palette_path) ||
prefs_strcmp (old_gradient_path, edit_gradient_path))
prefs_strcmp (old_gradient_path, edit_gradient_path) ||
prefs_strcmp (old_theme_path, edit_theme_path))
{
return PREFS_RESTART;
}
@ -489,6 +492,7 @@ prefs_save_callback (GtkWidget *widget,
gchar *save_pattern_path;
gchar *save_palette_path;
gchar *save_gradient_path;
gchar *save_theme_path;
state = prefs_check_settings ();
switch (state)
@ -540,6 +544,8 @@ prefs_save_callback (GtkWidget *widget,
save_palette_path = the_gimp->config->palette_path;
save_gradient_path = the_gimp->config->gradient_path;
save_theme_path = gimprc.theme_path;
if (the_gimp->config->levels_of_undo != old_levels_of_undo)
{
update = g_list_append (update, "undo-levels");
@ -806,6 +812,11 @@ prefs_save_callback (GtkWidget *widget,
the_gimp->config->gradient_path = edit_gradient_path;
update = g_list_append (update, "gradient-path");
}
if (prefs_strcmp (old_theme_path, edit_theme_path))
{
gimprc.theme_path = edit_theme_path;
update = g_list_append (update, "theme-path");
}
/* values which are changed on "OK" or "Save" */
if (edit_tile_cache_size != old_tile_cache_size)
@ -842,6 +853,8 @@ prefs_save_callback (GtkWidget *widget,
the_gimp->config->palette_path = save_palette_path;
the_gimp->config->gradient_path = save_gradient_path;
gimprc.theme_path = save_theme_path;
/* no need to restore values which are only changed on "OK" and "Save" */
g_list_free (update);
@ -944,6 +957,8 @@ prefs_cancel_callback (GtkWidget *widget,
prefs_strset (&edit_palette_path, old_palette_path);
prefs_strset (&edit_gradient_path, old_gradient_path);
prefs_strset (&edit_theme_path, old_theme_path);
/* no need to restore values which are only changed on "OK" and "Save" */
}
@ -1444,6 +1459,8 @@ preferences_dialog_create (void)
edit_pattern_path = prefs_strdup (the_gimp->config->pattern_path);
edit_palette_path = prefs_strdup (the_gimp->config->palette_path);
edit_gradient_path = prefs_strdup (the_gimp->config->gradient_path);
edit_theme_path = prefs_strdup (gimprc.theme_path);
}
/* assign edit variables for values which get changed on "OK" and "Save"
@ -1515,6 +1532,7 @@ preferences_dialog_create (void)
prefs_strset (&old_pattern_path, edit_pattern_path);
prefs_strset (&old_palette_path, edit_palette_path);
prefs_strset (&old_gradient_path, edit_gradient_path);
prefs_strset (&old_theme_path, edit_theme_path);
/* values which will be changed on "OK" and "Save" */
old_tile_cache_size = edit_tile_cache_size;
@ -2684,7 +2702,11 @@ preferences_dialog_create (void)
{ N_("Modules"), N_("Modules Directories"),
"dialogs/preferences/directories.html#modules",
N_("Select Modules Dir"),
&edit_module_path }
&edit_module_path },
{ N_("Themes"), N_("Themes Directories"),
"dialogs/preferences/directories.html#themes",
N_("Select Themes Dir"),
&edit_theme_path }
};
static gint npaths = sizeof (paths) / sizeof (paths[0]);

View File

@ -237,7 +237,9 @@ GimpRc gimprc =
/* info_window_follows_mouse */ TRUE,
/* help_browser */ HELP_BROWSER_GIMP,
/* cursor_mode */ CURSOR_MODE_TOOL_ICON,
/* disable_tearoff_menus */ FALSE
/* disable_tearoff_menus */ FALSE,
/* theme_path */ NULL,
/* theme */ NULL
};
static GHashTable *parse_func_hash = NULL;
@ -358,7 +360,11 @@ static ParseFunc funcs[] =
{ "cursor-mode", TT_XCURSORMODE,
&(gimprc.cursor_mode), NULL },
{ "disable-tearoff-menus", TT_BOOLEAN,
&(gimprc.disable_tearoff_menus), NULL }
&(gimprc.disable_tearoff_menus), NULL },
{ "theme-path", TT_PATH,
&(gimprc.theme_path), NULL },
{ "theme", TT_STRING,
&(gimprc.theme), NULL }
};
static gint n_funcs = (sizeof (funcs) /
sizeof (funcs[0]));

View File

@ -64,6 +64,8 @@ struct _GimpRc
gint help_browser;
gint cursor_mode;
gboolean disable_tearoff_menus;
gchar *theme_path;
gchar *theme;
};
extern GimpRc gimprc;

View File

@ -31,6 +31,7 @@
#include "core/gimp.h"
#include "core/gimpcontainer.h"
#include "core/gimpcontext.h"
#include "core/gimpdatafiles.h"
#include "core/gimpimage.h"
#include "widgets/gimpdialogfactory.h"
@ -119,35 +120,88 @@ static GQuark image_size_changed_handler_id = 0;
static GQuark image_alpha_changed_handler_id = 0;
static GQuark image_update_handler_id = 0;
static GHashTable *themes_hash = NULL;
/* public functions */
static void
gui_themes_dir_foreach_func (const gchar *filename,
gpointer loader_data)
{
GHashTable *hash;
gchar *basename;
hash = (GHashTable *) loader_data;
basename = g_path_get_basename (filename);
if (be_verbose)
g_print (_("adding theme \"%s\" (%s)\n"), basename, filename);
g_hash_table_insert (hash,
basename,
g_strdup (filename));
}
void
gui_libs_init (gint *argc,
gchar ***argv)
{
const gchar *gtkrc;
gchar *filename;
gchar *theme_dir;
gchar *gtkrc;
gimp_stock_init ();
/* parse the systemwide gtkrc */
gtkrc = gimp_gtkrc ();
themes_hash = g_hash_table_new_full (g_str_hash,
g_str_equal,
g_free,
g_free);
if (gimprc.theme_path)
{
gimp_datafiles_read_directories (gimprc.theme_path,
TYPE_DIRECTORY,
gui_themes_dir_foreach_func,
themes_hash);
}
if (gimprc.theme)
theme_dir = g_hash_table_lookup (themes_hash, gimprc.theme);
else
theme_dir = g_hash_table_lookup (themes_hash, "Default");
if (theme_dir)
{
gtkrc = g_strconcat (theme_dir,
G_DIR_SEPARATOR_S,
"gtkrc",
NULL);
}
else
{
/* get the hardcoded default theme gtkrc */
gtkrc = g_strdup (gimp_gtkrc ());
}
if (be_verbose)
g_print (_("parsing \"%s\"\n"), gtkrc);
gtk_rc_parse (gtkrc);
g_free (gtkrc);
/* parse the user gtkrc */
filename = gimp_personal_rc_file ("gtkrc");
gtkrc = gimp_personal_rc_file ("gtkrc");
if (be_verbose)
g_print (_("parsing \"%s\"\n"), filename);
g_print (_("parsing \"%s\"\n"), gtkrc);
gtk_rc_parse (filename);
gtk_rc_parse (gtkrc);
g_free (filename);
g_free (gtkrc);
}
void
@ -321,6 +375,12 @@ gui_exit (Gimp *gimp)
image_size_changed_handler_id = 0;
image_alpha_changed_handler_id = 0;
image_update_handler_id = 0;
if (themes_hash)
{
g_hash_table_destroy (themes_hash);
themes_hash = NULL;
}
}
void

View File

@ -778,6 +778,10 @@ static GimpItemFactoryEntry image_entries[] =
SEPARATOR ("/Tools/---"),
BRANCH (N_("/Tools/Selection Tools")),
BRANCH (N_("/Tools/Paint Tools")),
BRANCH (N_("/Tools/Transform Tools")),
/* <Image>/Dialogs */
{ { N_("/Dialogs/Layers, Channels & Paths..."), "<control>L",

View File

@ -146,6 +146,7 @@ static gchar * old_brush_path;
static gchar * old_pattern_path;
static gchar * old_palette_path;
static gchar * old_gradient_path;
static gchar * old_theme_path;
static gdouble old_monitor_xres;
static gdouble old_monitor_yres;
static gboolean old_using_xserver_resolution;
@ -182,6 +183,7 @@ static gchar * edit_brush_path = NULL;
static gchar * edit_pattern_path = NULL;
static gchar * edit_palette_path = NULL;
static gchar * edit_gradient_path = NULL;
static gchar * edit_theme_path = NULL;
/* variables which will be changed _after_ closing the dialog */
static guint edit_tile_cache_size;
@ -358,7 +360,8 @@ prefs_check_settings (void)
prefs_strcmp (old_brush_path, edit_brush_path) ||
prefs_strcmp (old_pattern_path, edit_pattern_path) ||
prefs_strcmp (old_palette_path, edit_palette_path) ||
prefs_strcmp (old_gradient_path, edit_gradient_path))
prefs_strcmp (old_gradient_path, edit_gradient_path) ||
prefs_strcmp (old_theme_path, edit_theme_path))
{
return PREFS_RESTART;
}
@ -489,6 +492,7 @@ prefs_save_callback (GtkWidget *widget,
gchar *save_pattern_path;
gchar *save_palette_path;
gchar *save_gradient_path;
gchar *save_theme_path;
state = prefs_check_settings ();
switch (state)
@ -540,6 +544,8 @@ prefs_save_callback (GtkWidget *widget,
save_palette_path = the_gimp->config->palette_path;
save_gradient_path = the_gimp->config->gradient_path;
save_theme_path = gimprc.theme_path;
if (the_gimp->config->levels_of_undo != old_levels_of_undo)
{
update = g_list_append (update, "undo-levels");
@ -806,6 +812,11 @@ prefs_save_callback (GtkWidget *widget,
the_gimp->config->gradient_path = edit_gradient_path;
update = g_list_append (update, "gradient-path");
}
if (prefs_strcmp (old_theme_path, edit_theme_path))
{
gimprc.theme_path = edit_theme_path;
update = g_list_append (update, "theme-path");
}
/* values which are changed on "OK" or "Save" */
if (edit_tile_cache_size != old_tile_cache_size)
@ -842,6 +853,8 @@ prefs_save_callback (GtkWidget *widget,
the_gimp->config->palette_path = save_palette_path;
the_gimp->config->gradient_path = save_gradient_path;
gimprc.theme_path = save_theme_path;
/* no need to restore values which are only changed on "OK" and "Save" */
g_list_free (update);
@ -944,6 +957,8 @@ prefs_cancel_callback (GtkWidget *widget,
prefs_strset (&edit_palette_path, old_palette_path);
prefs_strset (&edit_gradient_path, old_gradient_path);
prefs_strset (&edit_theme_path, old_theme_path);
/* no need to restore values which are only changed on "OK" and "Save" */
}
@ -1444,6 +1459,8 @@ preferences_dialog_create (void)
edit_pattern_path = prefs_strdup (the_gimp->config->pattern_path);
edit_palette_path = prefs_strdup (the_gimp->config->palette_path);
edit_gradient_path = prefs_strdup (the_gimp->config->gradient_path);
edit_theme_path = prefs_strdup (gimprc.theme_path);
}
/* assign edit variables for values which get changed on "OK" and "Save"
@ -1515,6 +1532,7 @@ preferences_dialog_create (void)
prefs_strset (&old_pattern_path, edit_pattern_path);
prefs_strset (&old_palette_path, edit_palette_path);
prefs_strset (&old_gradient_path, edit_gradient_path);
prefs_strset (&old_theme_path, edit_theme_path);
/* values which will be changed on "OK" and "Save" */
old_tile_cache_size = edit_tile_cache_size;
@ -2684,7 +2702,11 @@ preferences_dialog_create (void)
{ N_("Modules"), N_("Modules Directories"),
"dialogs/preferences/directories.html#modules",
N_("Select Modules Dir"),
&edit_module_path }
&edit_module_path },
{ N_("Themes"), N_("Themes Directories"),
"dialogs/preferences/directories.html#themes",
N_("Select Themes Dir"),
&edit_theme_path }
};
static gint npaths = sizeof (paths) / sizeof (paths[0]);

View File

@ -778,6 +778,10 @@ static GimpItemFactoryEntry image_entries[] =
SEPARATOR ("/Tools/---"),
BRANCH (N_("/Tools/Selection Tools")),
BRANCH (N_("/Tools/Paint Tools")),
BRANCH (N_("/Tools/Transform Tools")),
/* <Image>/Dialogs */
{ { N_("/Dialogs/Layers, Channels & Paths..."), "<control>L",

View File

@ -174,7 +174,7 @@ gimp_crop_tool_register (Gimp *gimp)
"gimp:crop_tool",
_("Crop Tool"),
_("Crop or Resize an image"),
N_("/Tools/Crop Tool"), "<shift>C",
N_("/Tools/Transform Tools/Crop Tool"), "<shift>C",
NULL, "tools/crop_tool.html",
GIMP_STOCK_TOOL_CROP);
}

View File

@ -778,6 +778,10 @@ static GimpItemFactoryEntry image_entries[] =
SEPARATOR ("/Tools/---"),
BRANCH (N_("/Tools/Selection Tools")),
BRANCH (N_("/Tools/Paint Tools")),
BRANCH (N_("/Tools/Transform Tools")),
/* <Image>/Dialogs */
{ { N_("/Dialogs/Layers, Channels & Paths..."), "<control>L",

View File

@ -809,7 +809,7 @@ AC_SUBST(GIMP_THREAD_LIBS)
AC_SUBST(GIMP_MP_FLAGS)
AC_SUBST(GIMP_MP_LIBS)
AC_SUBST(GIMP_PERL)
AC_SUBST(GIMP_PERL_PO)
AC_SUBST(GIMP_PERL_PO)
AC_SUBST(GIMPINSTALL)
AC_SUBST(HELPBROWSER)
AC_SUBST(GTKXMHTML_CFLAGS)
@ -835,6 +835,14 @@ gimptool-1.4
gimptool.1
gimp-remote.1
gimp.spec
Makefile
build/Makefile
build/win32/Makefile
intl/Makefile
tools/Makefile
tools/authorsgen/Makefile
tools/pdbgen/Makefile
regexrepl/Makefile
libgimp/Makefile
libgimp/makefile.mingw
libgimpbase/gimpversion.h
@ -901,7 +909,6 @@ plug-ins/sgi/Makefile
plug-ins/plugin-helper/Makefile
modules/Makefile
modules/makefile.mingw
cursors/Makefile
devel-docs/Makefile
devel-docs/libgimp/Makefile
devel-docs/libgimpbase/Makefile
@ -909,28 +916,23 @@ devel-docs/libgimpcolor/Makefile
devel-docs/libgimpmath/Makefile
devel-docs/libgimpwidgets/Makefile
docs/Makefile
tips/Makefile
pixmaps/Makefile
cursors/Makefile
themes/Makefile
themes/Default/Makefile
themes/Default/images/Makefile
themes/Default/images/tools/Makefile
data/Makefile
data/brushes/Makefile
data/gradients/Makefile
data/palettes/Makefile
data/patterns/Makefile
Makefile
build/Makefile
build/win32/Makefile
po/Makefile.in
po-libgimp/Makefile.in
plug-ins/perl/po/Makefile.in
po-plug-ins/Makefile.in
po-script-fu/Makefile.in
intl/Makefile
regexrepl/Makefile
tools/Makefile
tools/authorsgen/Makefile
tools/pdbgen/Makefile
tips/Makefile],
plug-ins/perl/po/Makefile.in],
[
chmod +x gimptool-1.4
sed -e "s/^ ..\/..\/..\// ..\//" plug-ins/perl/po/Makefile > plug-ins/perl/po/Makefile.eek && mv plug-ins/perl/po/Makefile.eek plug-ins/perl/po/Makefile

View File

@ -22,6 +22,8 @@ cp $3/unitrc $2/unitrc
echo "cp $3/gtkrc_user $2/gtkrc"
cp $3/gtkrc_user $2/gtkrc
echo "mkdir $2/themes"
mkdir $2/themes
echo "mkdir $2/brushes"
mkdir $2/brushes
echo "mkdir $2/gradients"

View File

@ -4,6 +4,7 @@ mkdir %2
copy %3\gimprc_user %2\gimprc
copy %3\unitrc %2\unitrc
copy %3\gtkrc_user %2\gtkrc
mkdir %2\themes
mkdir %2\brushes
mkdir %2\gradients
mkdir %2\palettes

View File

@ -76,6 +76,12 @@
# Set the path to modules that are to be initialized at startup
(module-path "${gimp_dir}/modules:${gimp_plugin_dir}/modules")
# Specify a theme for the GUI. If none is specified it defaults to "Default"
(theme "Default")
# Set the theme path.
(theme-path "${gimp_dir}/themes:${gimp_data_dir}/themes")
# The tile cache is used to make sure the gimp doesn't thrash
# tiles between memory and disk. Setting this value higher will
# cause the gimp to use less swap space, but will also cause

View File

@ -85,6 +85,12 @@
# Set the path to modules that are to be initialized at startup
(module-path "${gimp_dir}\\modules;${gimp_plugin_dir}\\modules")
# Specify a theme for the GUI. If none is specified it defaults to "Default"
(theme "Default")
# Set the theme path.
(theme-path "${gimp_dir}\\themes:${gimp_data_dir}\\themes")
# The tile cache is used to make sure the gimp doesn't thrash
# tiles between memory and disk. Setting this value higher will
# cause the gimp to use less swap space, but will also cause

View File

@ -76,6 +76,12 @@
# Set the path to modules that are to be initialized at startup
(module-path "${gimp_dir}/modules:${gimp_plugin_dir}/modules")
# Specify a theme for the GUI. If none is specified it defaults to "Default"
(theme "Default")
# Set the theme path.
(theme-path "${gimp_dir}/themes:${gimp_data_dir}/themes")
# The tile cache is used to make sure the gimp doesn't thrash
# tiles between memory and disk. Setting this value higher will
# cause the gimp to use less swap space, but will also cause

View File

@ -85,6 +85,12 @@
# Set the path to modules that are to be initialized at startup
(module-path "${gimp_dir}\\modules;${gimp_plugin_dir}\\modules")
# Specify a theme for the GUI. If none is specified it defaults to "Default"
(theme "Default")
# Set the theme path.
(theme-path "${gimp_dir}\\themes:${gimp_data_dir}\\themes")
# The tile cache is used to make sure the gimp doesn't thrash
# tiles between memory and disk. Setting this value higher will
# cause the gimp to use less swap space, but will also cause

View File

@ -165,6 +165,12 @@ gimp_datafiles_read_directories (const gchar *path_str,
{
while ((dir_ent = readdir (dir)))
{
if (! strcmp (dir_ent->d_name, ".") ||
! strcmp (dir_ent->d_name, ".."))
{
continue;
}
filename = g_strdup_printf ("%s%s",
(gchar *) list->data,
dir_ent->d_name);
@ -172,14 +178,21 @@ gimp_datafiles_read_directories (const gchar *path_str,
/* Check the file and see that it is not a sub-directory */
err = stat (filename, &filestat);
if (!err && S_ISREG (filestat.st_mode) &&
(!(flags & MODE_EXECUTABLE) ||
(filestat.st_mode & S_IXUSR) ||
is_script (filename)))
if (! err)
{
filestat_valid = TRUE;
(* loader_func) (filename, loader_data);
if (S_ISDIR (filestat.st_mode) && (flags & TYPE_DIRECTORY))
{
(* loader_func) (filename, loader_data);
}
else if (S_ISREG (filestat.st_mode) &&
(!(flags & MODE_EXECUTABLE) ||
(filestat.st_mode & S_IXUSR) ||
is_script (filename)))
{
(* loader_func) (filename, loader_data);
}
filestat_valid = FALSE;
}

View File

@ -27,8 +27,8 @@
typedef enum
{
INCLUDE_TEMP_DIR = 1 << 0,
MODE_EXECUTABLE = 1 << 1
MODE_EXECUTABLE = 1 << 0,
TYPE_DIRECTORY = 1 << 1
} GimpDataFileFlags;

View File

@ -343,10 +343,15 @@ gimp_gtkrc (void)
if (gimp_gtkrc_filename != NULL)
return gimp_gtkrc_filename;
gimp_gtkrc_filename = g_strconcat (gimp_sysconf_directory (),
gimp_gtkrc_filename = g_strconcat (gimp_data_directory (),
G_DIR_SEPARATOR_S,
"themes",
G_DIR_SEPARATOR_S,
"Default",
G_DIR_SEPARATOR_S,
"gtkrc",
NULL);
return gimp_gtkrc_filename;
}

View File

@ -1,23 +1,12 @@
## Process this file with automake to produce Makefile.in
STOCK_IMAGES = @STRIP_BEGIN@ \
images/stock-button-anchor.png \
images/stock-button-delete.png \
images/stock-button-duplicate.png \
images/stock-button-edit.png \
images/stock-button-eye.png \
images/stock-button-linked.png \
images/stock-button-lower.png \
images/stock-button-new.png \
images/stock-button-paste.png \
images/stock-button-paste-as-new.png \
images/stock-button-paste-into.png \
images/stock-button-stroke.png \
images/stock-button-raise.png \
images/stock-button-refresh.png \
images/stock-button-to-path.png \
images/stock-button-to-selection.png \
@STRIP_END@
SUBDIRS = images
themedatadir = $(gimpdatadir)/themes/Default
themedata_DATA = gtkrc imagerc
EXTRA_DIST = $(themedata_DATA)
STOCK_VARIABLES = @STRIP_BEGIN@ \
stock_button_anchor \
@ -54,47 +43,6 @@ STOCK_VARIABLES = @STRIP_BEGIN@ \
$(srcdir)/images/stock-button-to-selection.png \
@STRIP_END@
STOCK_TOOL_IMAGES = @STRIP_BEGIN@ \
images/tools/stock-tool-button-airbrush.png \
images/tools/stock-tool-button-bezier-select.png \
images/tools/stock-tool-button-blend.png \
images/tools/stock-tool-button-blur.png \
images/tools/stock-tool-button-brightness-contrast.png \
images/tools/stock-tool-button-bucket-fill.png \
images/tools/stock-tool-button-by-color-select.png \
images/tools/stock-tool-button-clone.png \
images/tools/stock-tool-button-color-balance.png \
images/tools/stock-tool-button-color-picker.png \
images/tools/stock-tool-button-crop.png \
images/tools/stock-tool-button-curves.png \
images/tools/stock-tool-button-dodge.png \
images/tools/stock-tool-button-ellipse-select.png \
images/tools/stock-tool-button-eraser.png \
images/tools/stock-tool-button-flip.png \
images/tools/stock-tool-button-free-select.png \
images/tools/stock-tool-button-fuzzy-select.png \
images/tools/stock-tool-button-histogram.png \
images/tools/stock-tool-button-hue-saturation.png \
images/tools/stock-tool-button-ink.png \
images/tools/stock-tool-button-iscissors.png \
images/tools/stock-tool-button-levels.png \
images/tools/stock-tool-button-measure.png \
images/tools/stock-tool-button-move.png \
images/tools/stock-tool-button-paintbrush.png \
images/tools/stock-tool-button-path.png \
images/tools/stock-tool-button-pencil.png \
images/tools/stock-tool-button-perspective.png \
images/tools/stock-tool-button-posterize.png \
images/tools/stock-tool-button-rect-select.png \
images/tools/stock-tool-button-rotate.png \
images/tools/stock-tool-button-scale.png \
images/tools/stock-tool-button-shear.png \
images/tools/stock-tool-button-smudge.png \
images/tools/stock-tool-button-text.png \
images/tools/stock-tool-button-threshold.png \
images/tools/stock-tool-button-zoom.png \
@STRIP_END@
STOCK_TOOL_VARIABLES = @STRIP_BEGIN@ \
stock_tool_button_airbrush \
$(srcdir)/images/tools/stock-tool-button-airbrush.png \
@ -174,8 +122,6 @@ STOCK_TOOL_VARIABLES = @STRIP_BEGIN@ \
$(srcdir)/images/tools/stock-tool-button-zoom.png \
@STRIP_END@
EXTRA_DIST = $(STOCK_IMAGES) $(STOCK_TOOL_IMAGES)
noinst_DATA = gimp-stock-pixbufs.h
CLEANFILES += $(noinst_DATA)

View File

@ -11,6 +11,11 @@
# widget_class <widget_class_set> style <style_name>
# Don't define icons for the Default theme as they are compiled in
#
# include "imagerc"
style "gimp-global-style"
{
GtkDialog::content_area_border = 0

310
themes/Default/imagerc Normal file
View File

@ -0,0 +1,310 @@
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
# include "rc-file"
#
# style <name> [= <name>]
# {
# <option>
#
# stock[<stock_id>] =
# {
# { <filename> [, <direction> [, <state> [, <size>]]] },
# { ... }
# }
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
style "gimp-icons"
{
# The GIMP Default theme has stock icons only in "gtk-button" size.
#
# They are registered with this size so they are not scaled
# for buttons. Additionally, they are registered as wildcarded
# fallbacks for themselves.
# General purpose icons
#
stock["gimp-anchor"] =
{
{ "images/stock-button-anchor.png", *, *, "gtk-button" },
{ "images/stock-button-anchor.png", *, *, * }
}
stock["gimp-delete"] =
{
{ "images/stock-button-delete.png", *, *, "gtk-button" },
{ "images/stock-button-delete.png", *, *, * }
}
stock["gimp-duplicate"] =
{
{ "images/stock-button-duplicate.png", *, *, "gtk-button" },
{ "images/stock-button-duplicate.png", *, *, * }
}
stock["gimp-edit"] =
{
{ "images/stock-button-edit.png", *, *, "gtk-button" },
{ "images/stock-button-edit.png", *, *, * }
}
stock["gimp-linked"] =
{
{ "images/stock-button-linked.png", *, *, "gtk-button" },
{ "images/stock-button-linked.png", *, *, * }
}
stock["gimp-lower"] =
{
{ "images/stock-button-lower.png", *, *, "gtk-button" },
{ "images/stock-button-lower.png", *, *, * }
}
stock["gimp-new"] =
{
{ "images/stock-button-new.png", *, *, "gtk-button" },
{ "images/stock-button-new.png", *, *, * }
}
stock["gimp-paste"] =
{
{ "images/stock-button-paste.png", *, *, "gtk-button" },
{ "images/stock-button-paste.png", *, *, * }
}
stock["gimp-paste-as-new"] =
{
{ "images/stock-button-paste-as-new.png", *, *, "gtk-button" },
{ "images/stock-button-paste-as-new.png", *, *, * }
}
stock["gimp-paste-into"] =
{
{ "images/stock-button-paste-into.png", *, *, "gtk-button" },
{ "images/stock-button-paste-into.png", *, *, * }
}
stock["gimp-raise"] =
{
{ "images/stock-button-raise.png", *, *, "gtk-button" },
{ "images/stock-button-raise.png", *, *, * }
}
stock["gimp-refresh"] =
{
{ "images/stock-button-refresh.png", *, *, "gtk-button" },
{ "images/stock-button-refresh.png", *, *, * }
}
stock["gimp-reset"] =
{
{ "images/stock-button-refresh.png", *, *, "gtk-button" },
{ "images/stock-button-refresh.png", *, *, * }
}
stock["gimp-stroke"] =
{
{ "images/stock-button-stroke.png", *, *, "gtk-button" },
{ "images/stock-button-stroke.png", *, *, * }
}
stock["gimp-to-path"] =
{
{ "images/stock-button-to-path.png", *, *, "gtk-button" },
{ "images/stock-button-to-path.png", *, *, * }
}
stock["gimp-to-selection"] =
{
{ "images/stock-button-to-selection.png", *, *, "gtk-button" },
{ "images/stock-button-to-selection.png", *, *, * }
}
stock["gimp-visible"] =
{
{ "images/stock-button-visible.png", *, *, "gtk-button" },
{ "images/stock-button-visible.png", *, *, * }
}
# Tool icons
#
stock["gimp-tool-airbrush"] =
{
{ "images/tools/stock-tool-button-airbrush.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-airbrush.png", *, *, * }
}
stock["gimp-tool-bezier-select"] =
{
{ "images/tools/stock-tool-button-bezier-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-bezier-select.png", *, *, * }
}
stock["gimp-tool-blend"] =
{
{ "images/tools/stock-tool-button-blend.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-blend.png", *, *, * }
}
stock["gimp-tool-blur"] =
{
{ "images/tools/stock-tool-button-blur.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-blur.png", *, *, * }
}
stock["gimp-tool-brightness-contrast"] =
{
{ "images/tools/stock-tool-button-brightness-contrast.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-brightness-contrast.png", *, *, * }
}
stock["gimp-tool-bucket-fill"] =
{
{ "images/tools/stock-tool-button-bucket-fill.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-bucket-fill.png", *, *, * }
}
stock["gimp-tool-by-color-select"] =
{
{ "images/tools/stock-tool-button-by-color-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-by-color-select.png", *, *, * }
}
stock["gimp-tool-clone"] =
{
{ "images/tools/stock-tool-button-clone.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-clone.png", *, *, * }
}
stock["gimp-tool-color-balance"] =
{
{ "images/tools/stock-tool-button-color-balance.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-color-balance.png", *, *, * }
}
stock["gimp-tool-color-picker"] =
{
{ "images/tools/stock-tool-button-color-picker.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-color-picker.png", *, *, * }
}
stock["gimp-tool-crop"] =
{
{ "images/tools/stock-tool-button-crop.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-crop.png", *, *, * }
}
stock["gimp-tool-curves"] =
{
{ "images/tools/stock-tool-button-curves.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-curves.png", *, *, * }
}
stock["gimp-tool-dodge"] =
{
{ "images/tools/stock-tool-button-dodge.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-dodge.png", *, *, * }
}
stock["gimp-tool-ellipse-select"] =
{
{ "images/tools/stock-tool-button-ellipse-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-ellipse-select.png", *, *, * }
}
stock["gimp-tool-eraser"] =
{
{ "images/tools/stock-tool-button-eraser.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-eraser.png", *, *, * }
}
stock["gimp-tool-flip"] =
{
{ "images/tools/stock-tool-button-flip.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-flip.png", *, *, * }
}
stock["gimp-tool-free-select"] =
{
{ "images/tools/stock-tool-button-free-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-free-select.png", *, *, * }
}
stock["gimp-tool-fuzzy-select"] =
{
{ "images/tools/stock-tool-button-fuzzy-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-fuzzy-select.png", *, *, * }
}
stock["gimp-tool-histogram"] =
{
{ "images/tools/stock-tool-button-histogram.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-histogram.png", *, *, * }
}
stock["gimp-tool-hue-saturation"] =
{
{ "images/tools/stock-tool-button-hue-saturation.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-hue-saturation.png", *, *, * }
}
stock["gimp-tool-ink"] =
{
{ "images/tools/stock-tool-button-ink.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-ink.png", *, *, * }
}
stock["gimp-tool-iscissors"] =
{
{ "images/tools/stock-tool-button-iscissors.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-iscissors.png", *, *, * }
}
stock["gimp-tool-levels"] =
{
{ "images/tools/stock-tool-button-levels.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-levels.png", *, *, * }
}
stock["gimp-tool-measure"] =
{
{ "images/tools/stock-tool-button-measure.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-measure.png", *, *, * }
}
stock["gimp-tool-move"] =
{
{ "images/tools/stock-tool-button-move.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-move.png", *, *, * }
}
stock["gimp-tool-paintbrush"] =
{
{ "images/tools/stock-tool-button-paintbrush.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-paintbrush.png", *, *, * }
}
stock["gimp-tool-path"] =
{
{ "images/tools/stock-tool-button-path.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-path.png", *, *, * }
}
stock["gimp-tool-pencil"] =
{
{ "images/tools/stock-tool-button-pencil.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-pencil.png", *, *, * }
}
stock["gimp-tool-perspective"] =
{
{ "images/tools/stock-tool-button-perspective.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-perspective.png", *, *, * }
}
stock["gimp-tool-posterize"] =
{
{ "images/tools/stock-tool-button-posterize.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-posterize.png", *, *, * }
}
stock["gimp-tool-rect-select"] =
{
{ "images/tools/stock-tool-button-rect-select.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-rect-select.png", *, *, * }
}
stock["gimp-tool-rotate"] =
{
{ "images/tools/stock-tool-button-rotate.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-rotate.png", *, *, * }
}
stock["gimp-tool-scale"] =
{
{ "images/tools/stock-tool-button-scale.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-scale.png", *, *, * }
}
stock["gimp-tool-shear"] =
{
{ "images/tools/stock-tool-button-shear.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-shear.png", *, *, * }
}
stock["gimp-tool-smudge"] =
{
{ "images/tools/stock-tool-button-smudge.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-smudge.png", *, *, * }
}
stock["gimp-tool-text"] =
{
{ "images/tools/stock-tool-button-text.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-text.png", *, *, * }
}
stock["gimp-tool-threshold"] =
{
{ "images/tools/stock-tool-button-threshold.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-threshold.png", *, *, * }
}
stock["gimp-tool-zoom"] =
{
{ "images/tools/stock-tool-button-zoom.png", *, *, "gtk-button" },
{ "images/tools/stock-tool-button-zoom.png", *, *, * }
}
}
class "GtkImage" style "gimp-icons"

View File

@ -1,2 +1,4 @@
Makefile
Makefile.in
.xvpics
.thumbnails

View File

@ -0,0 +1,35 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = tools
themedatadir = $(gimpdatadir)/themes/Default/images
STOCK_IMAGES = @STRIP_BEGIN@ \
stock-button-anchor.png \
stock-button-delete.png \
stock-button-duplicate.png \
stock-button-edit.png \
stock-button-eye.png \
stock-button-linked.png \
stock-button-lower.png \
stock-button-new.png \
stock-button-paste.png \
stock-button-paste-as-new.png \
stock-button-paste-into.png \
stock-button-stroke.png \
stock-button-raise.png \
stock-button-refresh.png \
stock-button-to-path.png \
stock-button-to-selection.png \
@STRIP_END@
themedata_DATA = $(STOCK_IMAGES)
EXTRA_DIST = $(themedata_DATA)
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null`; for p in $$files; do \
echo $$p; \
done

View File

@ -1,2 +1,4 @@
Makefile
Makefile.in
.xvpics
.thumbnails

View File

@ -0,0 +1,55 @@
## Process this file with automake to produce Makefile.in
themedatadir = $(gimpdatadir)/themes/Default/images/tools
STOCK_TOOL_IMAGES = @STRIP_BEGIN@ \
stock-tool-button-airbrush.png \
stock-tool-button-bezier-select.png \
stock-tool-button-blend.png \
stock-tool-button-blur.png \
stock-tool-button-brightness-contrast.png \
stock-tool-button-bucket-fill.png \
stock-tool-button-by-color-select.png \
stock-tool-button-clone.png \
stock-tool-button-color-balance.png \
stock-tool-button-color-picker.png \
stock-tool-button-crop.png \
stock-tool-button-curves.png \
stock-tool-button-dodge.png \
stock-tool-button-ellipse-select.png \
stock-tool-button-eraser.png \
stock-tool-button-flip.png \
stock-tool-button-free-select.png \
stock-tool-button-fuzzy-select.png \
stock-tool-button-histogram.png \
stock-tool-button-hue-saturation.png \
stock-tool-button-ink.png \
stock-tool-button-iscissors.png \
stock-tool-button-levels.png \
stock-tool-button-measure.png \
stock-tool-button-move.png \
stock-tool-button-paintbrush.png \
stock-tool-button-path.png \
stock-tool-button-pencil.png \
stock-tool-button-perspective.png \
stock-tool-button-posterize.png \
stock-tool-button-rect-select.png \
stock-tool-button-rotate.png \
stock-tool-button-scale.png \
stock-tool-button-shear.png \
stock-tool-button-smudge.png \
stock-tool-button-text.png \
stock-tool-button-threshold.png \
stock-tool-button-zoom.png \
@STRIP_END@
themedata_DATA = $(STOCK_TOOL_IMAGES)
EXTRA_DIST = $(themedata_DATA)
.PHONY: files
files:
@files=`ls $(DISTFILES) 2> /dev/null`; for p in $$files; do \
echo $$p; \
done

View File

@ -22,6 +22,8 @@ cp $3/unitrc $2/unitrc
echo "cp $3/gtkrc_user $2/gtkrc"
cp $3/gtkrc_user $2/gtkrc
echo "mkdir $2/themes"
mkdir $2/themes
echo "mkdir $2/brushes"
mkdir $2/brushes
echo "mkdir $2/gradients"

View File

@ -4,6 +4,7 @@ mkdir %2
copy %3\gimprc_user %2\gimprc
copy %3\unitrc %2\unitrc
copy %3\gtkrc_user %2\gtkrc
mkdir %2\themes
mkdir %2\brushes
mkdir %2\gradients
mkdir %2\palettes