[frogr] Updated frogr.bundle for GTK+ 3
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Updated frogr.bundle for GTK+ 3
- Date: Tue, 18 Dec 2012 16:16:11 +0000 (UTC)
commit 136965838c826cabc63f08b7a285658c328f9054
Author: Mario Sanchez Prada <msanchez gnome org>
Date: Fri Dec 7 15:39:13 2012 +0100
Updated frogr.bundle for GTK+ 3
- Added launcher specific for GTK3
- Removed gtkrc file (now key bindings to be set from Mac keys theme)
- Added settings.ini to specify the themes and some other settings
- Added Adwaita theme and Mac keys theme to the bundle
- Added GSettings schemas to the bundle
- Removed too verbose comments from frogr.bundle
frogr.bundle | 118 +++++++++------------------------------------
macosx/gtkrc | 130 -------------------------------------------------
macosx/launcher.sh | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++
macosx/settings.ini | 4 ++
4 files changed, 160 insertions(+), 225 deletions(-)
---
diff --git a/frogr.bundle b/frogr.bundle
index 1e02f74..a9a780c 100644
--- a/frogr.bundle
+++ b/frogr.bundle
@@ -2,83 +2,28 @@
<app-bundle>
<meta>
- <!-- Where to pick up the GTK+ installation, icon themes,
- etc. Note that "${env:JHBUILD_PREFIX}" is evaluated to the
- value of the environment variable JHBUILD_PREFIX. You can
- define additional prefixes and refer to them in paths
- throughout this file on the form "${prefix:name}". This is
- useful for installing certain libraries or even the
- application itself separately. Note that JHBUILD_PREFIX is
- defined by jhbuild, so it you are not using jhbuild you can
- either define your own or just hardcode the path here.
- -->
<prefix name="default">${env:JHBUILD_PREFIX}</prefix>
-
- <!-- The project directory is the default location of the created
- app. If you leave out the path, the current directory is
- used. Note the usage of an environment variable here again.
- -->
<destination overwrite="yes">${env:HOME}/Desktop</destination>
-
- <image>
- <!-- Not implemented yet (DMG image). -->
- </image>
-
- <!-- Comment this out to keep the install names in binaries -->
<run-install-name-tool/>
-
- <!-- Optionally specify a launcher script to use. If the
- application sets up everything needed itself, like
- environment variable, linker paths, etc, a launcher script is
- not needed. If the source path is left out, the default
- script will be used.
- -->
- <!-- launcher-script>${project}/launcher.sh</launcher-script -->
-
- <!-- Not implemented: Optional runtime, could be python or mono
- for example.
- -->
- <!-- runtime copy="yes">/usr/bin/python</runtime -->
- <!-- Indicate the active gtk version to use. This is needed only
- for gtk+-3.0 projects. -->
- <gtk>gtk+-2.0</gtk>
+ <launcher-script>${project}/macosx/launcher.sh</launcher-script>
+ <gtk>gtk+-3.0</gtk>
</meta>
- <!-- The special macro "${project}" refers to the directory where
- this bundle file is located. The application name and bundle
- identifier are taken from the plist file.
- -->
<plist>${project}/macosx/Info-frogr.plist</plist>
-
<main-binary>${prefix}/bin/frogr</main-binary>
- <!-- Copy in GTK+ modules. Note the ${gtkdir} macro, which expands
- to the correct library subdirectory for the specified gtk
- version.
- -->
- <binary>
- ${prefix}/lib/${gtkdir}/modules/*.so
- </binary>
-
- <!-- Copy in GTK+ theme engines. Note the use of the
- "${pkg:module:variable}" macro, which evaluates to a pkg-config
- variable in the specified module. Note that any libraries that
- binaries link to are also copied in automatically. Note also
- the included ${gtk} macro, which gets the correct package name
- to get. -->
+ <!-- Copy in GTK+ theme engines -->
<binary>
- ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/engines/*.so
+ ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/theming-engines/*.so
</binary>
+ <!-- Starting with 2.24, gdk-pixbuf installs into its own directory. -->
<binary>
- ${prefix}/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader*.so
+ ${prefix}/lib/gdk-pixbuf-2.0/${pkg:gdk-pixbuf-2.0:gdk_pixbuf_binary_version}/loaders/*.so
</binary>
- <!-- Translation filenames, one for each program or library that you
- want to copy in to the bundle. The "dest" attribute is
- optional, as usual. Bundler will find all translations of that
- library/program under the indicated directory and copy them.-->
- <translations name="gtk20">
+ <!-- Translation filenames, one for each program or library -->
+ <translations name="gtk30">
${prefix}/share/locale
</translations>
<translations name="libexif-12">
@@ -88,49 +33,32 @@
${prefix}/share/locale
</translations>
- <!-- Data to copy in, usually Glade/UI files, images, sounds files
- etc. The destination inside the bundle can be specified if the
- files should end up at a different location, by using the
- "dest" property. The destination must then start with the macro
- "${bundle}", which refers to the bundle root directory.
- -->
+ <!-- Other data to copy in, usually Glade/UI files, images, sounds files... -->
<data>
${prefix}/share/frogr
</data>
- <!-- Copy in the themes data. You may want to trim this to save space
- in your bundle. -->
+ <!-- Copy in the themes data -->
<data>
- ${prefix}/share/themes/Clearlooks
+ ${prefix}/share/themes/Adwaita
+ </data>
+ <data>
+ ${prefix}/share/themes/Mac
</data>
- <!-- Copy icons. Note that the .icns file is an Apple format which
- contains up to 4 sizes of icon. You can use
- /Developer/Applications/Utilities/Icon Composer.app to import
- artwork and create the file. -->
+ <!-- GSettings schemas -->
+ <data>
+ ${prefix}/share/glib-2.0/schemas
+ </data>
+
+ <!-- Copy icons. -->
<data dest="${bundle}/Contents/Resources">
${project}/macosx/frogr.icns
</data>
- <!-- This is where theme commands go. You can copy them in from your
- theme of choice if they provide and example, or you can just
- change the source path. -->
-
- <data dest="${bundle}/Contents/Resources/etc/${gtkdir}/gtkrc">
- ${project}/macosx/gtkrc
+ <!-- This is where GTK3 specific settings go. -->
+ <data dest="${bundle}/Contents/Resources/etc/${gtkdir}/settings.ini">
+ ${project}/macosx/settings.ini
</data>
- <!-- Icon themes to copy. The "icons" property can be either of
- "auto", "all", or "none". All or none should be
- self-explanatory, while auto means that the script will try to
- figure out which icons are needed. This is done by getting all
- the strings from all copied binaries, and matching them against
- icon names. To be safe, you should use "all". "none" is useful
- if you want just the index.theme file but no icons, mostly
- needed for the "hicolor" base theme.
- >
- <icon-theme icons="auto">
- Tango
- </icon-theme -->
-
</app-bundle>
diff --git a/macosx/launcher.sh b/macosx/launcher.sh
new file mode 100755
index 0000000..a3fe473
--- /dev/null
+++ b/macosx/launcher.sh
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+if test "x$GTK_DEBUG_LAUNCHER" != x; then
+ set -x
+fi
+
+if test "x$GTK_DEBUG_GDB" != x; then
+ EXEC="gdb --args"
+else
+ EXEC=exec
+fi
+
+name=`basename "$0"`
+tmp="$0"
+tmp=`dirname "$tmp"`
+tmp=`dirname "$tmp"`
+bundle=`dirname "$tmp"`
+bundle_contents="$bundle"/Contents
+bundle_res="$bundle_contents"/Resources
+bundle_lib="$bundle_res"/lib
+bundle_bin="$bundle_res"/bin
+bundle_data="$bundle_res"/share
+bundle_etc="$bundle_res"/etc
+
+export DYLD_LIBRARY_PATH="$bundle_lib"
+export XDG_CONFIG_DIRS="$bundle_etc"/xdg
+export XDG_DATA_DIRS="$bundle_data"
+export GTK_DATA_PREFIX="$bundle_res"
+export GTK_EXE_PREFIX="$bundle_res"
+export GTK_PATH="$bundle_res"
+
+# Make sure we specify GTK+ 3.0 paths here
+export GTK_IM_MODULE_FILE="$bundle_etc/gtk-3.0/gtk.immodules"
+export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-3.0/gdk-pixbuf.loaders"
+
+export PANGO_RC_FILE="$bundle_etc/pango/pangorc"
+
+# Localization settings. It's better to do this inside your program
+# using NSLocale if possible.
+
+# Set the locale-related variables appropriaty for GnuCash.
+unset LANG LC_MESSAGES LC_MONETARY
+
+# Start by trying the Collation preference, in case it's the only setting that exists.
+APPLECOLLATION=`defaults read .GlobalPreferences AppleCollationOrder`
+if test "${APPLECOLLATION}"; then
+ COLL=`ls -d /usr/share/locale/${APPLECOLLATION}*.UTF-8 2>> /dev/null`
+ if test "${COLL}"; then
+ # $COLL is potentially multi-line; concatenate lines by not using quotes.
+ export LANG=`echo ${COLL} | awk '{print $1}' | awk -F/ '{print $5}'`
+ fi
+fi
+unset APPLECOLLATION COLL
+
+# Continue by attempting to find the Locale preference.
+APPLELOCALE=`defaults read .GlobalPreferences AppleLocale`
+if test "${APPLELOCALE}"; then
+ LOCALELANG=`echo "${APPLELOCALE}" | awk -F@ '{print $1".UTF-8"}'`
+ if test -d "/usr/share/locale/${LOCALELANG}"; then
+ export LANG="${LOCALELANG}"
+ fi
+fi
+unset LOCALELANG
+
+# If there is still no locale value, then set US English as a default.
+if test -z "${LANG}"; then
+ export LANG=en_US.UTF-8
+fi
+
+# The AppleLocale setting may contain a currency-related substring.
+# Attempt to act on it.
+# First strip the string to just the currency symbol and the language symbol
+APPLECURRENCY=`echo "${APPLELOCALE}" | awk -F= '{print $2}'`
+APPLELANG=`echo "${APPLELOCALE}" | awk -F_ '{print $1}'`
+if test "${APPLECURRENCY}"; then
+ # The user has set a currency different from that of their locale.
+ # Search for a locale that uses that currency, and set LC_MONETARY accordingly.
+
+ # First try to find an LC_MONETARY file that combines the language with the currency.
+ FILES=`find /usr/share/locale/${APPLELANG}*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;`
+ if test -z "$FILES"; then
+ # Otherwise try to find any LC_MONETARY file that uses that currency.
+ FILES=`find /usr/share/locale/*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;`
+ fi
+
+ if test "$FILES"; then
+ # We found a locale that matches; set LC_MONETARY.
+ export LC_MONETARY=`echo ${FILES} | awk -F: '{print $1}' | awk -F/ '{print $5}'`
+ fi
+fi
+unset APPLECURRENCY APPLELANG APPLELOCALE FILES
+
+# Has a language ordering been set?
+# If so, set LC_MESSAGES accordingly; otherwise skip it.
+APPLELANGUAGES=`defaults read .GlobalPreferences AppleLanguages | awk 'length > 2' | awk -F, '{print $1}' | sed s/\ //g | sed s/-/_/ | sed s/\"//g`
+if test "$APPLELANGUAGES"; then
+ # A language ordering exists.
+ # Test, item per item, to see whether there is an corresponding locale.
+ for L in $APPLELANGUAGES
+ do
+ POS=`echo ${L} | awk '{print index(ENVIRON["LANG"], $0)}'`
+ if test $POS -eq 1; then
+ # The language symbol is a subset of the $LANG variable. We're done!
+ break
+ fi
+ # NOTE: the following may fail for the alternate Chinese localizations.
+ LC=`ls -d /usr/share/locale/${L}*.UTF-8 2>> /dev/null`
+ # $LC is potentially multi-line; concatenate lines by not using quotes.
+ if test $LC; then
+ # There is a UTF-8 locale matching this language.
+ export LC_MESSAGES=`echo ${LC} | awk '{print $1}' | awk -F/ '{print $5}'`
+ break
+ fi
+ done
+fi
+unset APPLELANGUAGES POS LC L
+
+if test -f "$bundle_lib/charset.alias"; then
+ export CHARSETALIASDIR="$bundle_lib"
+fi
+
+# Extra arguments can be added in environment.sh.
+EXTRA_ARGS=
+if test -f "$bundle_res/environment.sh"; then
+ source "$bundle_res/environment.sh"
+fi
+
+# Strip out the argument added by the OS.
+if /bin/expr "x$1" : '^x-psn_' > /dev/null; then
+ shift 1
+fi
+
+$EXEC "$bundle_contents/MacOS/$name-bin" "$@" $EXTRA_ARGS
diff --git a/macosx/settings.ini b/macosx/settings.ini
new file mode 100644
index 0000000..b40d894
--- /dev/null
+++ b/macosx/settings.ini
@@ -0,0 +1,4 @@
+[Settings]
+gtk-theme-name = Adwaita
+gtk-key-theme-name = Mac
+gtk-toolbar-style = icons
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]