[frogr] Updated frogr.bundle for GTK+ 3



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]