diff options
60 files changed, 2901 insertions, 1300 deletions
@@ -1,5 +1,445 @@ # Generated by Makefile. Do not edit. +2010-08-12 Ted Gould <ted@gould.cx> + + Switching to using ordering IDs instead of the LRU file. + +2010-08-11 Ted Gould <ted@gould.cx> + + Merging in the XLabel branch to handle conflicts. + +2010-08-11 Ted Gould <ted@gould.cx> + + Adding the wrapper properties to the get. + +2010-08-11 Ted Gould <ted@gould.cx> + + Adding in a wrapper signal + +2010-08-11 Ted Gould <ted@gould.cx> + + Adding a set of wrapper properties that can be used by the dbus interface. + +2010-08-11 Ted Gould <ted@gould.cx> + + Changing the app store + +2010-08-11 Ted Gould <ted@gould.cx> + + Changing the Dbus interface. + +2010-08-11 Ted Gould <ted@gould.cx> + + Fighting wrap around + +2010-08-11 Ted Gould <ted@gould.cx> + + Better debug printing. + +2010-08-11 Ted Gould <ted@gould.cx> + + Using unsigned chars for calculating, we want no sign extension. + +2010-08-11 Ted Gould <ted@gould.cx> + + We were using the wrong function, we want categories not statuses! + +2010-08-11 Ted Gould <ted@gould.cx> + + Making a wrapper property for the 'X' domain + +2010-08-11 Ted Gould <ted@gould.cx> + + Putting the ordering index into the 'x' domain. + +2010-08-11 Ted Gould <ted@gould.cx> + + Making it so that applications will pass '0' over dbus if they don't have a set ordering index. + +2010-08-11 Ted Gould <ted@gould.cx> + + Ignoring the generate id library object file. + +2010-08-11 Ted Gould <ted@gould.cx> + + Instead of using a struct just using multiply, which in all reality, is more clear and the compiler will optimize it for us. + +2010-08-11 Ted Gould <ted@gould.cx> + + Making the categories a case statement. + +2010-08-11 Ted Gould <ted@gould.cx> + + Switching to be more opaque, but also more sane. + +2010-08-11 Ted Gould <ted@gould.cx> + + Flipping the order + +2010-08-11 Ted Gould <ted@gould.cx> + + Typo + +2010-08-11 Ted Gould <ted@gould.cx> + + Ensuring that we got a list of keys so we don't crash + +2010-08-10 Ted Gould <ted@gould.cx> + + Checking for an override and applying it. + +2010-08-10 Ted Gould <ted@gould.cx> + + Fleshing out the loading overrides function. + +2010-08-10 Ted Gould <ted@gould.cx> + + Putting together the pieces to look for override files + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding an override hash table + +2010-08-10 Ted Gould <ted@gould.cx> + + Installing the override file in the package specific data directory. + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding in an override keyfile + +2010-08-10 Ted Gould <ted@gould.cx> + + Fixing documentation with new API. + +2010-08-10 Ted Gould <ted@gould.cx> + + Updating to trunk + +2010-08-10 Ted Gould <ted@gould.cx> + + Removing the LRU file object. + +2010-08-10 Ted Gould <ted@gould.cx> + + Removing the LRU file + +2010-08-10 Ted Gould <ted@gould.cx> + + Pulling in the generate ID function as well + +2010-08-10 Ted Gould <ted@gould.cx> + + Setting the ordering ID. + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding in an ordering index for application structures + +2010-08-10 Ted Gould <ted@gould.cx> + + I like 'index' better than 'id' -- now everything is consistent. + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding 'OrderingIndex' and realigning. + +2010-08-10 Ted Gould <ted@gould.cx> + + Providing accessors for the ordering_id property + +2010-08-10 Ted Gould <ted@gould.cx> + + Storing the value and allowing the get to use a generated value. + +2010-08-10 Ted Gould <ted@gould.cx> + + Uhg, wrong library + +2010-08-10 Ted Gould <ted@gould.cx> + + Brining generate-id into the fold + +2010-08-10 Ted Gould <ted@gould.cx> + + Writing a small little function to generate the ID. + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding the ordering id property. + +2010-08-09 Ted Gould <ted@gould.cx> + + Adding the Ordering Index property + +2010-08-09 Ted Gould <ted@gould.cx> + + Start with the ABI break. + +2010-08-10 Ted Gould <ted@gould.cx> + + Breaking the ABI so we have more space in the class structure + +2010-08-05 Ted Gould <ted@gould.cx> + + Changing the size of the class structure, the reason for the break. + +2010-08-05 Ted Gould <ted@gould.cx> + + Incrementing the major version number + +2010-08-05 Ted Gould <ted@gould.cx> + + Adding label support + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding label support into the indicator + +2010-08-05 Ted Gould <ted@gould.cx> + + Syncing with trunk and resolving conflicts + +2010-08-05 Ted Gould <ted@gould.cx> + + Updating with helper when rebuilding. + +2010-08-05 Ted Gould <ted@gould.cx> + + Tracking the long name along with the application entry. + +2010-08-05 Ted Gould <ted@gould.cx> + + Check for suffix when updating icon as well! + +2010-08-05 Ted Gould <ted@gould.cx> + + Showing and hiding the entries with removal. + +2010-08-05 Ted Gould <ted@gould.cx> + + Reshuffling the signaling and making sure to ref the label. + +2010-08-05 Ted Gould <ted@gould.cx> + + Not really sure what this TODO meant, so I'm removing it. + +2010-08-05 Ted Gould <ted@gould.cx> + + Some slight refactoring and comments along with the ability to remove the entries and recreate them. + +2010-08-05 Ted Gould <ted@gould.cx> + + Building a label in the case that we don't have one already. + +2010-08-05 Ted Gould <ted@gould.cx> + + Adding updating the guide and label size to the label update signal + +2010-08-05 Ted Gould <ted@gould.cx> + + Storing the guide and using it to bound the size of the label. + +2010-08-05 Ted Gould <ted@gould.cx> + + Changing the prototype of the added function. + +2010-08-04 Ted Gould <ted@gould.cx> + + Fixing the prototype for the label changed signal. + +2010-08-04 Ted Gould <ted@gould.cx> + + Fix the check for the updated function signature. + +2010-08-04 Ted Gould <ted@gould.cx> + + If it changes, let's update. + +2010-08-04 Ted Gould <ted@gould.cx> + + If we get passed a label let's make a GTK one for fun. + +2010-08-04 Ted Gould <ted@gould.cx> + + Connecting to the application signal for new label and handling it appropriately. + +2010-08-04 Ted Gould <ted@gould.cx> + + Cast once, be happy + +2010-08-04 Ted Gould <ted@gould.cx> + + Sending the label and the guide over dbus if we have them. + +2010-08-04 Ted Gould <ted@gould.cx> + + Start tracking the label and the label guide allong with the other application properties. + +2010-08-04 Ted Gould <ted@gould.cx> + + Whitespace fix + +2010-08-04 Ted Gould <ted@gould.cx> + + Adding in a base signal handler for the label change + +2010-08-04 Ted Gould <ted@gould.cx> + + Adding signal for label changing. + +2010-08-04 Ted Gould <ted@gould.cx> + + Adding the new entries to the list of the get_apps function. + +2010-08-04 Ted Gould <ted@gould.cx> + + Updating signal emition to match new API + +2010-08-04 Ted Gould <ted@gould.cx> + + Changing prototypes to match DBus API change. + +2010-08-04 Ted Gould <ted@gould.cx> + + Adding labels to the service interface + +2010-08-04 Ted Gould <ted@gould.cx> + + Adding defines for the new properties and signal. + +2010-08-04 Ted Gould <ted@gould.cx> + + Merging in the API changes + +2010-08-10 Ted Gould <ted@gould.cx> + + Adding label support into the library. + +2010-08-05 Ted Gould <ted@gould.cx> + + Fixing merge + +2010-08-05 Ted Gould <ted@gould.cx> + + Updating to trunk and resolve conflicts + +2010-08-05 Ted Gould <ted@gould.cx> + + Adding the ability to toggle the label on and off + +2010-08-04 Ted Gould <ted@gould.cx> + + Make sure we get to 100 + +2010-08-04 Ted Gould <ted@gould.cx> + + Setting the label in the simple client + +2010-08-03 Ted Gould <ted@gould.cx> + + More signalling tests. + +2010-08-03 Ted Gould <ted@gould.cx> + + Setting up a basic signals test + +2010-08-03 Ted Gould <ted@gould.cx> + + Stupid reverse logic in the string comparison. + +2010-08-03 Ted Gould <ted@gould.cx> + + Turning null strings into NULLs + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding a test to set the label and guides a bunch. + +2010-08-03 Ted Gould <ted@gould.cx> + + Signaling when the labels change in the idle loop + +2010-08-03 Ted Gould <ted@gould.cx> + + Putting the new define into the docs + +2010-08-03 Ted Gould <ted@gould.cx> + + Reusing the application service marshallers, not beautiful, but it works for now. + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding in a signal to tell when the label is updated. + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding the label funcs to the documentation. + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding in the convience wrappers + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding the label and guide fields to the private struct and tying that into the properties. + +2010-08-03 Ted Gould <ted@gould.cx> + + Setting up the label and lable guide properties. + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding a property to guide the size of the label + +2010-08-03 Ted Gould <ted@gould.cx> + + These have needed to be ignored for a while. + +2010-08-03 Ted Gould <ted@gould.cx> + + This shouldn't be in Bazaar + +2010-08-03 Ted Gould <ted@gould.cx> + + Adding the label property and a signal for it changing. + +2010-08-05 Ted Gould <ted@gould.cx> + + Support dynamically changing the icon theme path. + +2010-08-05 Sense Egbert Hofstede <sense@ubuntu.com> + + Passing the updated icon theme path along with the DBus signal, saving a DBus call. + +2010-07-22 Sense Hofstede <sense@ubuntu.com> + + Fixed two G_PARAM_SPECS and made it even more possible to remove the + custom icon theme path. + +2010-07-22 Sense Hofstede <sense@ubuntu.com> + + Fix wrong naming that caused the signal to be missed + +2010-07-22 Sense Hofstede <sense@ubuntu.com> + + Clean-up and renaming variables and functions everywhere to use icon_theme_path for + the sake of consistency. + + Doesn't seem to do antyhing, though. + +2010-07-22 C10uD <c10ud.dev@gmail.com> + + forgot some files + +2010-07-22 C10uD <c10ud.dev@gmail.com> + + trying to implement runtime theme-path changing + +2010-07-15 Ted Gould <ted@gould.cx> + + 0.2.3 + 2010-07-13 Ted Gould <ted@gould.cx> Adjusting the tests so they can deal with slow systems better. @@ -434,7 +874,7 @@ Merging fix to make it so that python apps can set an icon path. -2010-03-30 Ted Gould <ted@gould.cx> +2010-03-30 C10uD <c10ud.dev@gmail.com> Patch 001 from bug 527061 @@ -649,7 +1089,7 @@ Updated patch for the visibility field -2010-02-23 Ted Gould <ted@gould.cx> +2010-02-23 Jan Arne Petersen <jpetersen@openismus.com> Second patch on 524150 @@ -661,7 +1101,7 @@ Looking at children with foreach instead of forall -2010-02-22 Ted Gould <ted@gould.cx> +2010-02-22 Jan Arne Petersen <jpetersen@openismus.com> Creates and event handler for the add and remove signals to recreate the menu @@ -685,7 +1125,7 @@ Fixes bug 522151 -2010-02-22 Ted Gould <ted@gould.cx> +2010-02-22 Jan Arne Petersen <jpetersen@openismus.com> Set the sensitive state when starting out. @@ -721,7 +1161,7 @@ Removing debug output -2010-02-19 Ted Gould <ted@gould.cx> +2010-02-19 Jan Arne Petersen <jpetersen@openismus.com> Fix to unregister the object @@ -984,7 +1424,7 @@ Getting run-xvfb on the tests -2010-02-01 Ted Gould <ted@gould.cx> +2010-02-01 Conor Curran <conor.curran@canonical.com> Checking for the nunit dependency with a specific version. @@ -1212,7 +1652,7 @@ We should have kept ref's to these. -2010-01-19 Ted Gould <ted@gould.cx> +2010-01-19 Cody Russell <cody.russell@canonical.com> Handling duplication applications getting added. @@ -1400,7 +1840,7 @@ 0.0.8 -2010-01-12 Ted Gould <ted@gould.cx> +2010-01-12 Cody Russell <crussell@canonical.com> Mirror the icon changes over dbus @@ -1464,7 +1904,7 @@ Switching the metadata to not use #defines -2010-01-11 Ted Gould <ted@gould.cx> +2010-01-11 Cody Russell <cody.russell@canonical.com> Watching several properties and updating them as they change. @@ -1640,7 +2080,7 @@ Adding of a new property, icon path, to store the path to the icons. -2010-01-08 Ted Gould <ted@gould.cx> +2010-01-08 Aurélien Gâteau <agateau@canonical.com> Changing to freedesktop.org namespace and fixing some of the function names and interfaces that weren't matching the FD.o spec. @@ -1664,7 +2104,7 @@ Use org.freedesktop namespace -2010-01-08 Ted Gould <ted@gould.cx> +2010-01-08 Sebastien Bacher <seb128@canonical.com> Typo in documentation using wrong values for the enum. @@ -1672,7 +2112,7 @@ Use correct status syntax in the api description (lp: #504700) -2010-01-07 Ted Gould <ted@gould.cx> +2010-01-07 Cody Russell <crussell@canonical.com> Support for check items in the libappindicator menu parser. @@ -1725,7 +2165,7 @@ 0.0.5 -2009-12-17 Ted Gould <ted@gould.cx> +2009-12-17 Ken VanDine <ken.vandine@canonical.com> Linking Mono bindings to versioned library and fixing the example with licensing info and a menu. @@ -1805,7 +2245,7 @@ Adding the Python build system into the indicator-application one. -2009-12-11 Ted Gould <ted@gould.cx> +2009-12-11 Neil J. Patel <neil.patel@canonical.com> Stealing a bunch of Neil's python binding code. @@ -1885,7 +2325,7 @@ 0.0.4 -2009-12-11 Ted Gould <ted@gould.cx> +2009-12-11 Ken VanDine <ken.vandine@canonical.com> Adding extra files to the distribution tarball and making the documentation include the version number. @@ -1902,7 +2342,7 @@ * Bump version to 0.0.4 * Include version in the generated docs -2009-12-10 Ted Gould <ted@gould.cx> +2009-12-10 Ken VanDine <ken.vandine@canonical.com> Documentation cleanups @@ -1914,7 +2354,7 @@ 0.0.3 -2009-12-10 Ted Gould <ted@gould.cx> +2009-12-10 Ken Vandine <ken.vandine@canonical.com> Increasing libindicator requirement to 0.3.0 @@ -1922,7 +2362,7 @@ Bump required version for libindicator to 0.3.0 -2009-12-09 Ted Gould <ted@gould.cx> +2009-12-09 Cody Russell <cody.russell@canonical.com> Adding support for separators. @@ -2538,7 +2978,7 @@ Adding a test that sets a bunch of properties. -2009-10-21 Ted Gould <ted@canonical.com> +2009-10-21 Cody Russell <crussell@canonical.com> Ah, forgot a return. Cody would kill me! Oh, no. @@ -2694,7 +3134,7 @@ Adding programs for buiding enums and marsherers and all that jazz -2009-10-16 Ted Gould <ted@canonical.com> +2009-10-16 Emmanuele Bassi <ebassi@linux.intel.com> Stealing these makefile segments to build enums and marshallers diff --git a/Makefile.in b/Makefile.in index 7da8ddf..59c4e66 100644 --- a/Makefile.in +++ b/Makefile.in @@ -203,6 +203,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ @@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, -[m4_warning([this file was generated for autoconf 2.65. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, +[m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) @@ -8143,6 +8143,7 @@ m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. # @@ -8170,7 +8171,10 @@ m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi @@ -8183,7 +8187,6 @@ if test -n "$PKG_CONFIG"; then AC_MSG_RESULT([no]) PKG_CONFIG="" fi - fi[]dnl ])# PKG_PROG_PKG_CONFIG @@ -8192,34 +8195,31 @@ fi[]dnl # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # -# -# Similar to PKG_CHECK_MODULES, make sure that the first instance of -# this or PKG_CHECK_MODULES is called, or make sure to call -# PKG_CHECK_EXISTS manually +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) + m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) - # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], -[if test -n "$PKG_CONFIG"; then - if test -n "$$1"; then - pkg_cv_[]$1="$$1" - else - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - fi -else - pkg_failed=untried +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + else + pkg_failed=untried fi[]dnl ])# _PKG_CONFIG @@ -8261,16 +8261,17 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else - $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - ifelse([$4], , [AC_MSG_ERROR(dnl + m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -8278,25 +8279,24 @@ $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -_PKG_TEXT -])], - [AC_MSG_RESULT([no]) - $4]) +_PKG_TEXT])dnl + ]) elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT -To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], - [$4]) +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl + ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) + $3 fi[]dnl ])# PKG_CHECK_MODULES diff --git a/bindings/Makefile.in b/bindings/Makefile.in index 8075da5..9b443c8 100644 --- a/bindings/Makefile.in +++ b/bindings/Makefile.in @@ -187,6 +187,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/bindings/mono/Makefile.in b/bindings/mono/Makefile.in index 7c36f5d..a94893f 100644 --- a/bindings/mono/Makefile.in +++ b/bindings/mono/Makefile.in @@ -215,6 +215,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/bindings/mono/examples/Makefile.in b/bindings/mono/examples/Makefile.in index 3148d40..e77dc08 100644 --- a/bindings/mono/examples/Makefile.in +++ b/bindings/mono/examples/Makefile.in @@ -148,6 +148,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/bindings/mono/libappindicator-api.metadata b/bindings/mono/libappindicator-api.metadata index 8f9df53..718c500 100644 --- a/bindings/mono/libappindicator-api.metadata +++ b/bindings/mono/libappindicator-api.metadata @@ -9,6 +9,8 @@ <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='connection_changed']" name="cname">connection-changed</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon']" name="name">NewIcon</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon']" name="cname">new-icon</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon_theme_path']" name="name">NewIconThemePath</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon_theme_path']" name="cname">new-icon-theme-path</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_ID_S']" name="name">ID</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_CATEGORY_S']" name="hidden">true</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/property[@cname='PROP_STATUS_S']" name="hidden">true</attr> @@ -26,16 +28,18 @@ <attr path="/api/namespace/object[@cname='AppIndicator']/constructor[@cname='app_indicator_new_with_path']/*/*[@name='id']" name="property_name">id</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/constructor[@cname='app_indicator_new_with_path']/*/*[@name='icon_name']" name="property_name">icon-name</attr> <attr path="/api/namespace/object[@cname='AppIndicator']/constructor[@cname='app_indicator_new_with_path']/*/*[@name='category']" name="property_name">category</attr> - <attr path="/api/namespace/object[@cname='AppIndicator']/constructor[@cname='app_indicator_new_with_path']/*/*[@name='icon_path']" name="property_name">icon-theme-path</attr> + <attr path="/api/namespace/object[@cname='AppIndicator']/constructor[@cname='app_indicator_new_with_path']/*/*[@name='icon_theme_path']" name="property_name">icon-theme-path</attr> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_id']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_status']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_icon']" /> + <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_icon_theme_path']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_category']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_get_attention_icon']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_id']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_status']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_icon']" /> + <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_icon_theme_path']" /> <remove-node path="/api/namespace/object/method[@cname='app_indicator_set_attention_icon']" /> </metadata> diff --git a/bindings/mono/libappindicator-api.raw b/bindings/mono/libappindicator-api.raw index 1609613..c0067ac 100644 --- a/bindings/mono/libappindicator-api.raw +++ b/bindings/mono/libappindicator-api.raw @@ -24,9 +24,9 @@ <property name="PROP_ID_S" cname="PROP_ID_S" type="gchar*" readable="true" writeable="true" construct-only="true" /> <property name="PROP_CATEGORY_S" cname="PROP_CATEGORY_S" type="gchar*" readable="true" writeable="true" construct-only="true" /> <property name="PROP_STATUS_S" cname="PROP_STATUS_S" type="gchar*" readable="true" writeable="true" /> - <property name="PROP_ICON_NAME_S" cname="PROP_ICON_NAME_S" type="gchar*" readable="true" writeable="true" /> + <property name="PROP_ICON_NAME_S" cname="PROP_ICON_NAME_S" type="gchar*" readable="true" writeable="true" construct="true" /> <property name="PROP_ATTENTION_ICON_NAME_S" cname="PROP_ATTENTION_ICON_NAME_S" type="gchar*" readable="true" writeable="true" /> - <property name="PROP_ICON_THEME_PATH_S" cname="PROP_ICON_THEME_PATH_S" type="gchar*" readable="true" writeable="true" construct-only="true" /> + <property name="PROP_ICON_THEME_PATH_S" cname="PROP_ICON_THEME_PATH_S" type="gchar*" readable="true" writeable="true" construct="true" /> <property name="PROP_MENU_S" cname="PROP_MENU_S" type="DbusGObjectPath" readable="true" /> <property name="PROP_CONNECTED_S" cname="PROP_CONNECTED_S" type="gboolean" readable="true" /> <signal when="LAST" field_name="new_icon"> @@ -72,6 +72,14 @@ <parameter type="GtkStatusIcon*" name="status_icon" /> </parameters> </virtual_method> + <signal when="LAST" field_name="new_icon_theme_path"> + <return-type type="void" /> + <parameters> + <parameter type="AppIndicator*" name="indicator" /> + <parameter type="const-gchar*" name="icon_theme_path" /> + <parameter type="gpointer" name="user_data" /> + </parameters> + </signal> <method name="GetAttentionIcon" cname="app_indicator_get_attention_icon"> <return-type type="const-gchar*" /> </method> @@ -81,6 +89,9 @@ <method name="GetIcon" cname="app_indicator_get_icon"> <return-type type="const-gchar*" /> </method> + <method name="GetIconThemePath" cname="app_indicator_get_icon_theme_path"> + <return-type type="const-gchar*" /> + </method> <method name="GetId" cname="app_indicator_get_id"> <return-type type="const-gchar*" /> </method> @@ -105,7 +116,7 @@ <parameter type="const-gchar*" name="id" /> <parameter type="const-gchar*" name="icon_name" /> <parameter type="AppIndicatorCategory" name="category" /> - <parameter type="const-gchar*" name="icon_path" /> + <parameter type="const-gchar*" name="icon_theme_path" /> </parameters> </constructor> <method name="SetAttentionIcon" cname="app_indicator_set_attention_icon"> @@ -120,6 +131,12 @@ <parameter type="const-gchar*" name="icon_name" /> </parameters> </method> + <method name="SetIconThemePath" cname="app_indicator_set_icon_theme_path"> + <return-type type="void" /> + <parameters> + <parameter type="const-gchar*" name="icon_theme_path" /> + </parameters> + </method> <method name="SetMenu" cname="app_indicator_set_menu"> <return-type type="void" /> <parameters> diff --git a/bindings/python/Makefile.in b/bindings/python/Makefile.in index 752d94f..de4208d 100644 --- a/bindings/python/Makefile.in +++ b/bindings/python/Makefile.in @@ -212,6 +212,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/bindings/python/appindicator.defs b/bindings/python/appindicator.defs index 98abe4c..b6c7402 100644 --- a/bindings/python/appindicator.defs +++ b/bindings/python/appindicator.defs @@ -49,7 +49,7 @@ '("const-gchar*" "id") '("const-gchar*" "icon_name") '("AppIndicatorCategory" "category") - '("const-gchar*" "icon_path" (null-ok) (default "NULL")) + '("const-gchar*" "icon_theme_path" (null-ok) (default "NULL")) ) ) @@ -89,6 +89,15 @@ ) ) +(define-method set_icon_theme_path + (of-object "AppIndicator") + (c-name "app_indicator_set_icon_theme_path") + (return-type "none") + (parameters + '("const-gchar*" "icon_theme_path" (null-ok)) + ) +) + (define-method get_id (of-object "AppIndicator") (c-name "app_indicator_get_id") @@ -113,6 +122,12 @@ (return-type "const-gchar*") ) +(define-method get_icon_theme_path + (of-object "AppIndicator") + (c-name "app_indicator_get_icon_theme_path") + (return-type "const-gchar*") +) + (define-method get_attention_icon (of-object "AppIndicator") (c-name "app_indicator_get_attention_icon") diff --git a/config.guess b/config.guess index e3a2116..c2246a4 100755 --- a/config.guess +++ b/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-06-10' +timestamp='2009-12-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,16 +27,16 @@ timestamp='2009-06-10' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +56,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -333,6 +334,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -807,12 +811,12 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) + *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -854,6 +858,20 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -876,6 +894,17 @@ EOF frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -901,39 +930,18 @@ EOF #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -942,8 +950,11 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -966,58 +977,6 @@ EOF xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1247,6 +1206,16 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-06-11' +timestamp='2010-01-22' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ timestamp='2009-06-11' # Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -72,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +153,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; @@ -284,6 +288,7 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ + | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -291,13 +296,14 @@ case $basic_machine in | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -340,7 +346,7 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -368,15 +374,17 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -726,6 +734,9 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1076,6 +1087,11 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; tile*) basic_machine=tile-unknown os=-linux-gnu @@ -1247,6 +1263,9 @@ case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1268,8 +1287,8 @@ case $os in # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1290,7 +1309,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1423,6 +1442,8 @@ case $os in -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1,13 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for indicator-application 0.2.3. +# Generated by GNU Autoconf 2.67 for indicator-application 0.2.4. # # Report bugs to <ted@canonical.com>. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -321,7 +321,7 @@ $as_echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -361,19 +361,19 @@ else fi # as_fn_arith -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -684,7 +684,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -703,8 +703,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='indicator-application' PACKAGE_TARNAME='indicator-application' -PACKAGE_VERSION='0.2.3' -PACKAGE_STRING='indicator-application 0.2.3' +PACKAGE_VERSION='0.2.4' +PACKAGE_STRING='indicator-application 0.2.4' PACKAGE_BUGREPORT='ted@canonical.com' PACKAGE_URL='' @@ -810,6 +810,8 @@ HTML_DIR GTKDOC_MKPDF GTKDOC_REBASE GTKDOC_CHECK +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH PKG_CONFIG GLIB_GENMARSHAL GLIB_MKENUMS @@ -952,6 +954,8 @@ LIBS CPPFLAGS CPP PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR INDICATOR_CFLAGS INDICATOR_LIBS MONO_DEPENDENCY_CFLAGS @@ -1026,8 +1030,9 @@ do fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -1072,7 +1077,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1098,7 +1103,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1302,7 +1307,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1318,7 +1323,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1348,8 +1353,8 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information." + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) @@ -1357,7 +1362,7 @@ Try \`$0 --help' for more information." # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1375,13 +1380,13 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error "missing argument to $ac_option" + as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1404,7 +1409,7 @@ do [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1418,8 +1423,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1434,9 +1439,9 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error "working directory cannot be determined" + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error "pwd does not report name of working directory" + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1475,11 +1480,11 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1505,7 +1510,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures indicator-application 0.2.3 to adapt to many kinds of systems. +\`configure' configures indicator-application 0.2.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1519,7 +1524,7 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1576,7 +1581,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of indicator-application 0.2.3:";; + short | recursive ) echo "Configuration of indicator-application 0.2.4:";; esac cat <<\_ACEOF @@ -1621,6 +1626,10 @@ Some influential environment variables: you have headers in a nonstandard directory <include dir> CPP C preprocessor PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path INDICATOR_CFLAGS C compiler flags for INDICATOR, overriding pkg-config INDICATOR_LIBS @@ -1709,10 +1718,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -indicator-application configure 0.2.3 -generated by GNU Autoconf 2.65 +indicator-application configure 0.2.4 +generated by GNU Autoconf 2.67 -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -1830,7 +1839,7 @@ $as_echo "$ac_try_echo"; } >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } >/dev/null && { + test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1897,7 +1906,7 @@ ac_fn_c_check_header_compile () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1927,7 +1936,7 @@ ac_fn_c_check_func () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1989,8 +1998,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by indicator-application $as_me 0.2.3, which was -generated by GNU Autoconf 2.65. Invocation command line was +It was created by indicator-application $as_me 0.2.4, which was +generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -2100,11 +2109,9 @@ trap 'exit_status=$? { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2138,11 +2145,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2155,11 +2160,9 @@ _ASBOX echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2173,11 +2176,9 @@ _ASBOX fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2232,7 +2233,12 @@ _ACEOF ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2247,7 +2253,11 @@ do { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5 ; } fi done @@ -2323,7 +2333,7 @@ if $ac_cache_corrupted; then $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2346,16 +2356,22 @@ am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2471,11 +2487,11 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -2497,7 +2513,7 @@ if ( # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - as_fn_error "ls -t appears to fail. Make sure there is not a broken + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi @@ -2507,7 +2523,7 @@ then # Ok. : else - as_fn_error "newly created file is older than distributed files! + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -2745,7 +2761,7 @@ done $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2753,7 +2769,7 @@ SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -2787,7 +2803,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -2803,7 +2819,7 @@ fi # Define the identity of the package. PACKAGE=indicator-application - VERSION=0.2.3 + VERSION=0.2.4 cat >>confdefs.h <<_ACEOF @@ -3230,8 +3246,8 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -3345,9 +3361,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3389,8 +3404,8 @@ done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -3447,9 +3462,9 @@ $as_echo "$ac_try_echo"; } >&5 else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot run C compiled programs. +as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi @@ -3500,8 +3515,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "cannot compute suffix of object files: cannot compile -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -4205,8 +4220,8 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "no acceptable C compiler found in \$PATH -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -4581,7 +4596,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4740,7 +4755,7 @@ else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -4756,11 +4771,11 @@ else ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi @@ -4799,7 +4814,7 @@ else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -4815,18 +4830,18 @@ else ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext +rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." "$LINENO" 5; } +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c @@ -4887,7 +4902,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP @@ -4953,7 +4968,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -5105,7 +5120,7 @@ ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } @@ -5116,16 +5131,16 @@ else test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -5150,7 +5165,7 @@ else ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -5158,7 +5173,7 @@ fi $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -5231,7 +5246,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED @@ -5310,7 +5325,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then - as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP @@ -5426,7 +5441,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : @@ -5628,13 +5643,13 @@ if test "${lt_cv_nm_interface+set}" = set; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5631: $ac_compile\"" >&5) + (eval echo "\"\$as_me:5646: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5634: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:5649: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5637: output\"" >&5) + (eval echo "\"\$as_me:5652: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6839,7 +6854,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6842 "configure"' > conftest.$ac_ext + echo '#line 6857 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7593,8 +7608,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -8115,11 +8129,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8118: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8132: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8122: \$? = $ac_status" >&5 + echo "$as_me:8136: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8454,11 +8468,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8457: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8471: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8461: \$? = $ac_status" >&5 + echo "$as_me:8475: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8559,11 +8573,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8562: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8576: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8566: \$? = $ac_status" >&5 + echo "$as_me:8580: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8614,11 +8628,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8617: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8631: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8621: \$? = $ac_status" >&5 + echo "$as_me:8635: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10998,7 +11012,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11001 "configure" +#line 11015 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11094,7 +11108,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11097 "configure" +#line 11111 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11421,6 +11435,10 @@ fi + + + + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -11533,7 +11551,6 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } PKG_CONFIG="" fi - fi ########################### @@ -11697,7 +11714,7 @@ fi test $ac_status = 0; }; then : else - as_fn_error "You need to have gtk-doc >= 1.9 installed to build $PACKAGE_NAME" "$LINENO" 5 + as_fn_error $? "You need to have gtk-doc >= 1.9 installed to build $PACKAGE_NAME" "$LINENO" 5 fi fi @@ -11785,11 +11802,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for INDICATOR" >&5 $as_echo_n "checking for INDICATOR... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$INDICATOR_CFLAGS"; then - pkg_cv_INDICATOR_CFLAGS="$INDICATOR_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$INDICATOR_CFLAGS"; then + pkg_cv_INDICATOR_CFLAGS="$INDICATOR_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQUIRED_VERSION indicator >= \$INDICATOR_REQUIRED_VERSION json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION @@ -11811,15 +11827,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$INDICATOR_LIBS"; then - pkg_cv_INDICATOR_LIBS="$INDICATOR_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$INDICATOR_LIBS"; then + pkg_cv_INDICATOR_LIBS="$INDICATOR_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQUIRED_VERSION indicator >= \$INDICATOR_REQUIRED_VERSION json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION @@ -11841,14 +11855,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -11856,22 +11871,22 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - INDICATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK_REQUIRED_VERSION + INDICATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= $GTK_REQUIRED_VERSION indicator >= $INDICATOR_REQUIRED_VERSION json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION - dbusmenu-gtk >= $DBUSMENUGTK_REQUIRED_VERSION"` + dbusmenu-gtk >= $DBUSMENUGTK_REQUIRED_VERSION" 2>&1` else - INDICATOR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK_REQUIRED_VERSION + INDICATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= $GTK_REQUIRED_VERSION indicator >= $INDICATOR_REQUIRED_VERSION json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION - dbusmenu-gtk >= $DBUSMENUGTK_REQUIRED_VERSION"` + dbusmenu-gtk >= $DBUSMENUGTK_REQUIRED_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$INDICATOR_PKG_ERRORS" >&5 - as_fn_error "Package requirements (gtk+-2.0 >= $GTK_REQUIRED_VERSION + as_fn_error $? "Package requirements (gtk+-2.0 >= $GTK_REQUIRED_VERSION indicator >= $INDICATOR_REQUIRED_VERSION json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION @@ -11884,12 +11899,13 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables INDICATOR_CFLAGS and INDICATOR_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" "$LINENO" 5 +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -11898,13 +11914,13 @@ and INDICATOR_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } else INDICATOR_CFLAGS=$pkg_cv_INDICATOR_CFLAGS INDICATOR_LIBS=$pkg_cv_INDICATOR_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -11941,7 +11957,7 @@ $as_echo_n "checking for gobject-introspection... " >&6; } test $ac_status = 0; }; then : else - as_fn_error "gobject-introspection-1.0 is not installed" "$LINENO" 5 + as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5 fi if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.7\""; } >&5 @@ -11951,7 +11967,7 @@ fi test $ac_status = 0; }; then found_introspection=yes else - as_fn_error "You need to have gobject-introspection >= 0.6.7 installed to build indicator-application" "$LINENO" 5 + as_fn_error $? "You need to have gobject-introspection >= 0.6.7 installed to build indicator-application" "$LINENO" 5 fi ;; #( auto) : @@ -11967,7 +11983,7 @@ else fi ;; #( *) : - as_fn_error "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5 + as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5 @@ -12063,11 +12079,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONO_DEPENDENCY" >&5 $as_echo_n "checking for MONO_DEPENDENCY... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$MONO_DEPENDENCY_CFLAGS"; then - pkg_cv_MONO_DEPENDENCY_CFLAGS="$MONO_DEPENDENCY_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$MONO_DEPENDENCY_CFLAGS"; then + pkg_cv_MONO_DEPENDENCY_CFLAGS="$MONO_DEPENDENCY_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= \$MONO_REQUIRED_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= $MONO_REQUIRED_VERSION") 2>&5 ac_status=$? @@ -12077,15 +12092,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$MONO_DEPENDENCY_LIBS"; then - pkg_cv_MONO_DEPENDENCY_LIBS="$MONO_DEPENDENCY_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$MONO_DEPENDENCY_LIBS"; then + pkg_cv_MONO_DEPENDENCY_LIBS="$MONO_DEPENDENCY_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono >= \$MONO_REQUIRED_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mono >= $MONO_REQUIRED_VERSION") 2>&5 ac_status=$? @@ -12095,14 +12108,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12110,17 +12124,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - MONO_DEPENDENCY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mono >= $MONO_REQUIRED_VERSION"` + MONO_DEPENDENCY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mono >= $MONO_REQUIRED_VERSION" 2>&1` else - MONO_DEPENDENCY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mono >= $MONO_REQUIRED_VERSION"` + MONO_DEPENDENCY_PKG_ERRORS=`$PKG_CONFIG --print-errors "mono >= $MONO_REQUIRED_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MONO_DEPENDENCY_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - has_mono=false + has_mono=false elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } has_mono=false else MONO_DEPENDENCY_CFLAGS=$pkg_cv_MONO_DEPENDENCY_CFLAGS @@ -12172,7 +12186,7 @@ fi if test "x$AL" = "xno" ; then - as_fn_error "No al tool found. You need to install Mono." "$LINENO" 5 + as_fn_error $? "No al tool found. You need to install Mono." "$LINENO" 5 fi if test "x$has_mono" = "xtrue" ; then @@ -12269,7 +12283,7 @@ fi fi if test "x$CSC" = "xno" ; then - as_fn_error "No Mono compiler found." "$LINENO" 5 + as_fn_error $? "No Mono compiler found." "$LINENO" 5 fi # Extract the first word of "gacutil", so it can be a program name with args. @@ -12314,7 +12328,7 @@ fi if test "x$GACUTIL" = "xno" ; then - as_fn_error "No gacutil tool found" "$LINENO" 5 + as_fn_error $? "No gacutil tool found" "$LINENO" 5 fi @@ -12331,11 +12345,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_SHARP" >&5 $as_echo_n "checking for GTK_SHARP... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$GTK_SHARP_CFLAGS"; then - pkg_cv_GTK_SHARP_CFLAGS="$GTK_SHARP_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$GTK_SHARP_CFLAGS"; then + pkg_cv_GTK_SHARP_CFLAGS="$GTK_SHARP_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= \$GTK_SHARP_REQ_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION") 2>&5 ac_status=$? @@ -12345,15 +12358,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$GTK_SHARP_LIBS"; then - pkg_cv_GTK_SHARP_LIBS="$GTK_SHARP_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$GTK_SHARP_LIBS"; then + pkg_cv_GTK_SHARP_LIBS="$GTK_SHARP_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0 >= \$GTK_SHARP_REQ_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION") 2>&5 ac_status=$? @@ -12363,14 +12374,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12378,14 +12390,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION"` + GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION" 2>&1` else - GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION"` + GTK_SHARP_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_SHARP_PKG_ERRORS" >&5 - as_fn_error "Package requirements (gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION) were not met: + as_fn_error $? "Package requirements (gtk-sharp-2.0 >= $GTK_SHARP_REQ_VERSION) were not met: $GTK_SHARP_PKG_ERRORS @@ -12394,12 +12406,13 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_SHARP_CFLAGS and GTK_SHARP_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" "$LINENO" 5 +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -12408,13 +12421,13 @@ and GTK_SHARP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } else GTK_SHARP_CFLAGS=$pkg_cv_GTK_SHARP_CFLAGS GTK_SHARP_LIBS=$pkg_cv_GTK_SHARP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -12424,11 +12437,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GAPI" >&5 $as_echo_n "checking for GAPI... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$GAPI_CFLAGS"; then - pkg_cv_GAPI_CFLAGS="$GAPI_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$GAPI_CFLAGS"; then + pkg_cv_GAPI_CFLAGS="$GAPI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gapi-2.0 >= \$GLIB_SHARP_REQ_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION") 2>&5 ac_status=$? @@ -12438,15 +12450,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$GAPI_LIBS"; then - pkg_cv_GAPI_LIBS="$GAPI_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$GAPI_LIBS"; then + pkg_cv_GAPI_LIBS="$GAPI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gapi-2.0 >= \$GLIB_SHARP_REQ_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION") 2>&5 ac_status=$? @@ -12456,14 +12466,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12471,14 +12482,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GAPI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION"` + GAPI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION" 2>&1` else - GAPI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION"` + GAPI_PKG_ERRORS=`$PKG_CONFIG --print-errors "gapi-2.0 >= $GLIB_SHARP_REQ_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GAPI_PKG_ERRORS" >&5 - as_fn_error "Package requirements (gapi-2.0 >= $GLIB_SHARP_REQ_VERSION) were not met: + as_fn_error $? "Package requirements (gapi-2.0 >= $GLIB_SHARP_REQ_VERSION) were not met: $GAPI_PKG_ERRORS @@ -12487,12 +12498,13 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables GAPI_CFLAGS and GAPI_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" "$LINENO" 5 +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -12501,13 +12513,13 @@ and GAPI_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } else GAPI_CFLAGS=$pkg_cv_GAPI_CFLAGS GAPI_LIBS=$pkg_cv_GAPI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi # Extract the first word of "gapi2-parser", so it can be a program name with args. set dummy gapi2-parser; ac_word=$2 @@ -12641,11 +12653,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NUNIT" >&5 $as_echo_n "checking for NUNIT... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$NUNIT_CFLAGS"; then - pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$NUNIT_CFLAGS"; then + pkg_cv_NUNIT_CFLAGS="$NUNIT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= 2.4.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= 2.4.7") 2>&5 ac_status=$? @@ -12655,15 +12666,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$NUNIT_LIBS"; then - pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$NUNIT_LIBS"; then + pkg_cv_NUNIT_LIBS="$NUNIT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nunit >= 2.4.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "nunit >= 2.4.7") 2>&5 ac_status=$? @@ -12673,14 +12682,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12688,14 +12698,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "nunit >= 2.4.7"` + NUNIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nunit >= 2.4.7" 2>&1` else - NUNIT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nunit >= 2.4.7"` + NUNIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "nunit >= 2.4.7" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$NUNIT_PKG_ERRORS" >&5 - as_fn_error "Package requirements (nunit >= 2.4.7) were not met: + as_fn_error $? "Package requirements (nunit >= 2.4.7) were not met: $NUNIT_PKG_ERRORS @@ -12704,12 +12714,13 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables NUNIT_CFLAGS and NUNIT_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" "$LINENO" 5 +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -12718,13 +12729,13 @@ and NUNIT_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } else NUNIT_CFLAGS=$pkg_cv_NUNIT_CFLAGS NUNIT_LIBS=$pkg_cv_NUNIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -12796,7 +12807,7 @@ sys.exit(sys.hexversion < minverhex)" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - as_fn_error "too old" "$LINENO" 5 + as_fn_error $? "too old" "$LINENO" 5 fi am_display_PYTHON=$PYTHON else @@ -12878,7 +12889,7 @@ fi if test "$PYTHON" = :; then - as_fn_error "no suitable Python interpreter found" "$LINENO" 5 + as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 else @@ -12976,9 +12987,9 @@ $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } -as_fn_error "could not find Python headers" "$LINENO" 5 +as_fn_error $? "could not find Python headers" "$LINENO" 5 fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" @@ -12987,11 +12998,10 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for APPINDICATOR_PYTHON" >&5 $as_echo_n "checking for APPINDICATOR_PYTHON... " >&6; } -if test -n "$PKG_CONFIG"; then - if test -n "$APPINDICATOR_PYTHON_CFLAGS"; then - pkg_cv_APPINDICATOR_PYTHON_CFLAGS="$APPINDICATOR_PYTHON_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$APPINDICATOR_PYTHON_CFLAGS"; then + pkg_cv_APPINDICATOR_PYTHON_CFLAGS="$APPINDICATOR_PYTHON_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" pygtk-2.0 >= \$PYGTK_REQUIRED gtk+-2.0 >= \$GTK_REQUIRED_VERSION @@ -13013,15 +13023,13 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi -if test -n "$PKG_CONFIG"; then - if test -n "$APPINDICATOR_PYTHON_LIBS"; then - pkg_cv_APPINDICATOR_PYTHON_LIBS="$APPINDICATOR_PYTHON_LIBS" - else - if test -n "$PKG_CONFIG" && \ +if test -n "$APPINDICATOR_PYTHON_LIBS"; then + pkg_cv_APPINDICATOR_PYTHON_LIBS="$APPINDICATOR_PYTHON_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" pygtk-2.0 >= \$PYGTK_REQUIRED gtk+-2.0 >= \$GTK_REQUIRED_VERSION @@ -13043,14 +13051,15 @@ if test -n "$PKG_CONFIG"; then else pkg_failed=yes fi - fi -else - pkg_failed=untried + else + pkg_failed=untried fi if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13058,22 +13067,22 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " + APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors " pygtk-2.0 >= $PYGTK_REQUIRED gtk+-2.0 >= $GTK_REQUIRED_VERSION pygobject-2.0 >= $PYGOBJECT_REQUIRED - "` + " 2>&1` else - APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " + APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors " pygtk-2.0 >= $PYGTK_REQUIRED gtk+-2.0 >= $GTK_REQUIRED_VERSION pygobject-2.0 >= $PYGOBJECT_REQUIRED - "` + " 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$APPINDICATOR_PYTHON_PKG_ERRORS" >&5 - as_fn_error "Package requirements ( + as_fn_error $? "Package requirements ( pygtk-2.0 >= $PYGTK_REQUIRED gtk+-2.0 >= $GTK_REQUIRED_VERSION pygobject-2.0 >= $PYGOBJECT_REQUIRED @@ -13086,12 +13095,13 @@ installed software in a non-standard prefix. Alternatively, you may set the environment variables APPINDICATOR_PYTHON_CFLAGS and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" "$LINENO" 5 +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error "The pkg-config script could not be found or is too old. Make sure it +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -13100,13 +13110,13 @@ and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. -See \`config.log' for more details." "$LINENO" 5; } +See \`config.log' for more details" "$LINENO" 5 ; } else APPINDICATOR_PYTHON_CFLAGS=$pkg_cv_APPINDICATOR_PYTHON_CFLAGS APPINDICATOR_PYTHON_LIBS=$pkg_cv_APPINDICATOR_PYTHON_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - : + fi @@ -13214,6 +13224,7 @@ DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -13237,43 +13248,43 @@ else fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error "conditional \"AMDEP\" was never defined. + as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error "conditional \"am__fastdepCC\" was never defined. + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then - as_fn_error "conditional \"ENABLE_GTK_DOC\" was never defined. + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then - as_fn_error "conditional \"GTK_DOC_BUILD_HTML\" was never defined. + as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then - as_fn_error "conditional \"GTK_DOC_BUILD_PDF\" was never defined. + as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then - as_fn_error "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then - as_fn_error "conditional \"GTK_DOC_USE_REBASE\" was never defined. + as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then - as_fn_error "conditional \"HAVE_INTROSPECTION\" was never defined. + as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi @@ -13423,19 +13434,19 @@ export LANGUAGE (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $1" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -13631,7 +13642,7 @@ $as_echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -13684,8 +13695,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by indicator-application $as_me 0.2.3, which was -generated by GNU Autoconf 2.65. Invocation command line was +This file was extended by indicator-application $as_me 0.2.4, which was +generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -13750,11 +13761,11 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -indicator-application config.status 0.2.3 -configured by $0, generated by GNU Autoconf 2.65, +indicator-application config.status 0.2.4 +configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -13772,11 +13783,16 @@ ac_need_defaults=: while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -13798,6 +13814,7 @@ do $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -13810,7 +13827,7 @@ do ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error "ambiguous option: \`$1' + as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -13819,7 +13836,7 @@ Try \`$0 --help' for more information.";; ac_cs_silent=: ;; # This is an error. - -*) as_fn_error "unrecognized option: \`$1' + -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -14149,7 +14166,7 @@ do "docs/reference/version.xml") CONFIG_FILES="$CONFIG_FILES docs/reference/version.xml" ;; "docs/reference/libappindicator-docs.sgml") CONFIG_FILES="$CONFIG_FILES docs/reference/libappindicator-docs.sgml" ;; - *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done @@ -14187,7 +14204,7 @@ $debug || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -14204,7 +14221,7 @@ if test "x$ac_cr" = x; then fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\r' + ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi @@ -14218,18 +14235,18 @@ _ACEOF echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -14318,20 +14335,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error "could not setup config files machinery" "$LINENO" 5 + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -14359,7 +14384,7 @@ for ac_last_try in false false :; do if test -z "$ac_t"; then break elif $ac_last_try; then - as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -14444,7 +14469,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error "could not setup config headers machinery" "$LINENO" 5 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -14457,7 +14482,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -14485,7 +14510,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -14512,7 +14537,7 @@ $as_echo "$as_me: creating $ac_file" >&6;} case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -14649,22 +14674,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 +which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} +which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -14675,19 +14700,19 @@ which seems to be undefined. Please make sure it is defined." >&2;} $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ - || as_fn_error "could not create $ac_file" "$LINENO" 5 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error "could not create -" "$LINENO" 5 + || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -15472,7 +15497,7 @@ _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -15493,7 +15518,7 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff --git a/configure.ac b/configure.ac index 9ac78ec..0b57308 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ -AC_INIT(indicator-application, 0.2.3, ted@canonical.com) +AC_INIT(indicator-application, 0.2.4, ted@canonical.com) AC_COPYRIGHT([Copyright 2009, 2010 Canonical]) AC_PREREQ(2.53) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(indicator-application, 0.2.3) +AM_INIT_AUTOMAKE(indicator-application, 0.2.4) AM_MAINTAINER_MODE diff --git a/data/Makefile.am b/data/Makefile.am index cc1961b..c142c4e 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -5,7 +5,13 @@ dbus_services_DATA = indicator-application.service %.service: %.service.in sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ -EXTRA_DIST = indicator-application.service.in +overridedir = $(pkgdatadir) +override_DATA = ordering-override.keyfile -CLEANFILES = indicator-application.service +EXTRA_DIST = \ + indicator-application.service.in \ + ordering-override.keyfile + +CLEANFILES = \ + indicator-application.service diff --git a/data/Makefile.in b/data/Makefile.in index 16e54e9..d42c11a 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -74,8 +74,9 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(dbus_servicesdir)" -DATA = $(dbus_services_DATA) +am__installdirs = "$(DESTDIR)$(dbus_servicesdir)" \ + "$(DESTDIR)$(overridedir)" +DATA = $(dbus_services_DATA) $(override_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AL = @AL@ @@ -171,6 +172,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ @@ -245,8 +248,15 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dbus_servicesdir = $(DBUSSERVICEDIR) dbus_services_DATA = indicator-application.service -EXTRA_DIST = indicator-application.service.in -CLEANFILES = indicator-application.service +overridedir = $(pkgdatadir) +override_DATA = ordering-override.keyfile +EXTRA_DIST = \ + indicator-application.service.in \ + ordering-override.keyfile + +CLEANFILES = \ + indicator-application.service + all: all-am .SUFFIXES: @@ -306,6 +316,26 @@ uninstall-dbus_servicesDATA: test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(dbus_servicesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(dbus_servicesdir)" && rm -f $$files +install-overrideDATA: $(override_DATA) + @$(NORMAL_INSTALL) + test -z "$(overridedir)" || $(MKDIR_P) "$(DESTDIR)$(overridedir)" + @list='$(override_DATA)'; test -n "$(overridedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(overridedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(overridedir)" || exit $$?; \ + done + +uninstall-overrideDATA: + @$(NORMAL_UNINSTALL) + @list='$(override_DATA)'; test -n "$(overridedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(overridedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(overridedir)" && rm -f $$files tags: TAGS TAGS: @@ -347,7 +377,7 @@ check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(dbus_servicesdir)"; do \ + for dir in "$(DESTDIR)$(dbus_servicesdir)" "$(DESTDIR)$(overridedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -396,7 +426,7 @@ info: info-am info-am: -install-data-am: install-dbus_servicesDATA +install-data-am: install-dbus_servicesDATA install-overrideDATA install-dvi: install-dvi-am @@ -440,7 +470,7 @@ ps: ps-am ps-am: -uninstall-am: uninstall-dbus_servicesDATA +uninstall-am: uninstall-dbus_servicesDATA uninstall-overrideDATA .MAKE: install-am install-strip @@ -450,11 +480,12 @@ uninstall-am: uninstall-dbus_servicesDATA install-data install-data-am install-dbus_servicesDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am uninstall-dbus_servicesDATA + install-man install-overrideDATA install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-dbus_servicesDATA uninstall-overrideDATA %.service: %.service.in diff --git a/data/ordering-override.keyfile b/data/ordering-override.keyfile new file mode 100644 index 0000000..dcfb75b --- /dev/null +++ b/data/ordering-override.keyfile @@ -0,0 +1,2 @@ +[Ordering Index Overrides] +gnome-power-manager=1 diff --git a/debian/changelog b/debian/changelog index d368614..4de7412 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +indicator-application (0.2.4-0ubuntu1) maverick; urgency=low + + * New upstream release. + * Add in ordering IDs + * Adding label support into the library + * Adding label support into the indicator + * Breaking the ABI in order to get more space in the class + structure. + * Allow the icon theme path to be changed dynamically (LP: #607831) + * debian/control: Moving libappindicator0 to libappindicator1 + * debian/rules: Moving libappindicator0 to libappindicator1 + + -- Ted Gould <ted@ubuntu.com> Thu, 12 Aug 2010 13:57:17 -0500 + indicator-application (0.2.3-0ubuntu2) maverick; urgency=low * Rebuild with the new gobject introspection diff --git a/debian/control b/debian/control index 8ea4878..bfd75b6 100644 --- a/debian/control +++ b/debian/control @@ -41,7 +41,7 @@ XB-Python-Version: ${python:Versions} Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, - libappindicator0 (= ${binary:Version}), + libappindicator1 (= ${binary:Version}), python-gobject Provides: ${python:Provides} Description: Python bindings for libappindicator @@ -55,7 +55,7 @@ Description: Application Indicators A library and indicator to take menus from applications and place them in the panel. -Package: libappindicator0 +Package: libappindicator1 Section: libs Architecture: any Depends: ${shlibs:Depends}, @@ -74,7 +74,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libdbusmenu-glib-dev (>= 0.1.8), libdbus-glib-1-dev (>= 0.76), - libappindicator0 (= ${binary:Version}) + libappindicator1 (= ${binary:Version}) Description: Application Indicators A library and indicator to take menus from applications and place them in the panel. @@ -129,7 +129,7 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${gir:Depends} -Description: Typelib files for libappindicator0. +Description: Typelib files for libappindicator1. . This package can be used by other packages using the GIRepository format to generate dynamic bindings. diff --git a/debian/indicator-application.install b/debian/indicator-application.install index 4429197..c525a81 100644 --- a/debian/indicator-application.install +++ b/debian/indicator-application.install @@ -1,3 +1,4 @@ debian/tmp/usr/lib/indicators/* debian/tmp/usr/lib/indicator-application/indicator-application-service debian/tmp/usr/share/dbus-1/services/indicator-application.service +debian/tmp/usr/share/indicator-application/ordering-override.keyfile diff --git a/debian/libappindicator0.install b/debian/libappindicator1.install index a0b5976..a0b5976 100644 --- a/debian/libappindicator0.install +++ b/debian/libappindicator1.install diff --git a/debian/rules b/debian/rules index f34e925..6e31d41 100755 --- a/debian/rules +++ b/debian/rules @@ -13,7 +13,7 @@ include /usr/share/cdbs/1/rules/simple-patchsys.mk DEB_CONFIGURE_EXTRA_FLAGS += --enable-gtk-doc API_VERSION = 0.1 -DEB_DH_MAKESHLIBS_ARGS_libappindicator0 := -V 'libappindicator0 (>= 0.0.19)' +DEB_DH_MAKESHLIBS_ARGS_libappindicator1 := -V 'libappindicator1 (>= 0.0.19)' configure-stamp-%: mkdir build-$* @@ -47,7 +47,7 @@ binary-install/libappindicator0.1-cil:: binary-predeb/gir1.0-appindicator-0.1:: dh_girepository -p$(cdbs_curpkg) -binary-predeb/libappindicator0.1-cil:: binary-fixup/libappindicator0 +binary-predeb/libappindicator0.1-cil:: binary-fixup/libappindicator1 dh_clideps -plibappindicator0.1-cil configure-stamp: diff --git a/docs/Makefile.in b/docs/Makefile.in index 182d7e0..ab25fe1 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -187,6 +187,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index 10d8b2a..d2ef3bb 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -66,6 +66,7 @@ IGNORE_HFILES= \ dbus-properties-client.h \ dbus-properties-server.h \ dbus-shared.h \ + generate-id.h \ notification-item-client.h \ notification-item-server.h \ notification-watcher-client.h \ diff --git a/docs/reference/Makefile.in b/docs/reference/Makefile.in index 8d6228d..67a1b69 100644 --- a/docs/reference/Makefile.in +++ b/docs/reference/Makefile.in @@ -157,6 +157,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ @@ -295,6 +297,7 @@ IGNORE_HFILES = \ dbus-properties-client.h \ dbus-properties-server.h \ dbus-shared.h \ + generate-id.h \ notification-item-client.h \ notification-item-server.h \ notification-watcher-client.h \ diff --git a/docs/reference/html/api-index-full.html b/docs/reference/html/api-index-full.html index 6a52849..a8f892d 100644 --- a/docs/reference/html/api-index-full.html +++ b/docs/reference/html/api-index-full.html @@ -46,6 +46,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path" title='The "new-icon-theme-path" signal'>AppIndicator::new-icon-theme-path</a>, object signal in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-status" title='The "new-status" signal'>AppIndicator::new-status</a>, object signal in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> </dt> <dd></dd> @@ -118,6 +122,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="libappindicator-app-indicator.html#app-indicator-get-icon-theme-path" title="app_indicator_get_icon_theme_path ()">app_indicator_get_icon_theme_path</a>, function in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-id" title="app_indicator_get_id ()">app_indicator_get_id</a>, function in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> </dt> <dd></dd> @@ -150,6 +158,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="libappindicator-app-indicator.html#app-indicator-set-icon-theme-path" title="app_indicator_set_icon_theme_path ()">app_indicator_set_icon_theme_path</a>, function in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-menu" title="app_indicator_set_menu ()">app_indicator_set_menu</a>, function in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">AppIndicator</a> </dt> <dd></dd> @@ -170,6 +182,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS" title="APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH">APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</a>, macro in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">app-indicator</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS" title="APP_INDICATOR_SIGNAL_NEW_STATUS">APP_INDICATOR_SIGNAL_NEW_STATUS</a>, macro in <a class="link" href="libappindicator-app-indicator.html" title="AppIndicator">app-indicator</a> </dt> <dd></dd> diff --git a/docs/reference/html/ch01.html b/docs/reference/html/ch01.html index ea82870..1ffe5ec 100644 --- a/docs/reference/html/ch01.html +++ b/docs/reference/html/ch01.html @@ -21,7 +21,7 @@ </tr></table> <div class="chapter" title="Base Classes for Applications"> <div class="titlepage"><div><div><h2 class="title"> -<a name="id495610"></a>Base Classes for Applications</h2></div></div></div> +<a name="id457927"></a>Base Classes for Applications</h2></div></div></div> <div class="toc"><dl><dt> <span class="refentrytitle"><a href="libappindicator-app-indicator.html">AppIndicator</a></span><span class="refpurpose"> — An object to put application information into the panel.</span> diff --git a/docs/reference/html/index.html b/docs/reference/html/index.html index 34550b7..b9d7a8e 100644 --- a/docs/reference/html/index.html +++ b/docs/reference/html/index.html @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libappindicator Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for libappindicator 0.2.2 + for libappindicator 0.2.3 </p></div> </div> <hr> diff --git a/docs/reference/html/index.sgml b/docs/reference/html/index.sgml index 33bb880..7ecc58f 100644 --- a/docs/reference/html/index.sgml +++ b/docs/reference/html/index.sgml @@ -16,6 +16,7 @@ <ANCHOR id="APP-INDICATOR-SIGNAL-NEW-ICON:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON:CAPS"> <ANCHOR id="APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS"> <ANCHOR id="APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS"> +<ANCHOR id="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"> <ANCHOR id="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"> <ANCHOR id="AppIndicatorCategory" href="libappindicator/libappindicator-app-indicator.html#AppIndicatorCategory"> <ANCHOR id="APP-INDICATOR-CATEGORY-APPLICATION-STATUS:CAPS" href="libappindicator/libappindicator-app-indicator.html#APP-INDICATOR-CATEGORY-APPLICATION-STATUS:CAPS"> @@ -37,10 +38,12 @@ <ANCHOR id="app-indicator-set-attention-icon" href="libappindicator/libappindicator-app-indicator.html#app-indicator-set-attention-icon"> <ANCHOR id="app-indicator-set-menu" href="libappindicator/libappindicator-app-indicator.html#app-indicator-set-menu"> <ANCHOR id="app-indicator-set-icon" href="libappindicator/libappindicator-app-indicator.html#app-indicator-set-icon"> +<ANCHOR id="app-indicator-set-icon-theme-path" href="libappindicator/libappindicator-app-indicator.html#app-indicator-set-icon-theme-path"> <ANCHOR id="app-indicator-get-id" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-id"> <ANCHOR id="app-indicator-get-category" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-category"> <ANCHOR id="app-indicator-get-status" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-status"> <ANCHOR id="app-indicator-get-icon" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-icon"> +<ANCHOR id="app-indicator-get-icon-theme-path" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-icon-theme-path"> <ANCHOR id="app-indicator-get-attention-icon" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-attention-icon"> <ANCHOR id="app-indicator-get-menu" href="libappindicator/libappindicator-app-indicator.html#app-indicator-get-menu"> <ANCHOR id="libappindicator-app-indicator.property-details" href="libappindicator/libappindicator-app-indicator.html#libappindicator-app-indicator.property-details"> @@ -56,4 +59,5 @@ <ANCHOR id="AppIndicator-connection-changed" href="libappindicator/libappindicator-app-indicator.html#AppIndicator-connection-changed"> <ANCHOR id="AppIndicator-new-attention-icon" href="libappindicator/libappindicator-app-indicator.html#AppIndicator-new-attention-icon"> <ANCHOR id="AppIndicator-new-icon" href="libappindicator/libappindicator-app-indicator.html#AppIndicator-new-icon"> +<ANCHOR id="AppIndicator-new-icon-theme-path" href="libappindicator/libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path"> <ANCHOR id="AppIndicator-new-status" href="libappindicator/libappindicator-app-indicator.html#AppIndicator-new-status"> diff --git a/docs/reference/html/libappindicator-app-indicator.html b/docs/reference/html/libappindicator-app-indicator.html index a9f5812..ef83d4e 100644 --- a/docs/reference/html/libappindicator-app-indicator.html +++ b/docs/reference/html/libappindicator-app-indicator.html @@ -60,54 +60,58 @@ Unstable, unless otherwise indicated #define <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON:CAPS" title="APP_INDICATOR_SIGNAL_NEW_ICON">APP_INDICATOR_SIGNAL_NEW_ICON</a> #define <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS" title="APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON">APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON</a> #define <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS" title="APP_INDICATOR_SIGNAL_NEW_STATUS">APP_INDICATOR_SIGNAL_NEW_STATUS</a> +#define <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS" title="APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH">APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</a> #define <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS" title="APP_INDICATOR_SIGNAL_CONNECTION_CHANGED">APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</a> enum <a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory">AppIndicatorCategory</a>; enum <a class="link" href="libappindicator-app-indicator.html#AppIndicatorStatus" title="enum AppIndicatorStatus">AppIndicatorStatus</a>; <a class="link" href="libappindicator-app-indicator.html#AppIndicatorPrivate" title="AppIndicatorPrivate">AppIndicatorPrivate</a>; <a class="link" href="libappindicator-app-indicator.html#AppIndicator-struct" title="AppIndicator">AppIndicator</a>; <a class="link" href="libappindicator-app-indicator.html#AppIndicatorClass" title="AppIndicatorClass">AppIndicatorClass</a>; -<a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-type" title="app_indicator_get_type ()">app_indicator_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>); -<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-new" title="app_indicator_new ()">app_indicator_new</a> (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-type" title="app_indicator_get_type ()">app_indicator_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>); +<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-new" title="app_indicator_new ()">app_indicator_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, <em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory"><span class="type">AppIndicatorCategory</span></a> category</code></em>); -<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-new-with-path" title="app_indicator_new_with_path ()">app_indicator_new_with_path</a> (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, +<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-new-with-path" title="app_indicator_new_with_path ()">app_indicator_new_with_path</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, <em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory"><span class="type">AppIndicatorCategory</span></a> category</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_path</code></em>); + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_theme_path</code></em>); <span class="returnvalue">void</span> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-status" title="app_indicator_set_status ()">app_indicator_set_status</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, <em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicatorStatus" title="enum AppIndicatorStatus"><span class="type">AppIndicatorStatus</span></a> status</code></em>); <span class="returnvalue">void</span> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-attention-icon" title="app_indicator_set_attention_icon ()">app_indicator_set_attention_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>); + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>); <span class="returnvalue">void</span> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-menu" title="app_indicator_set_menu ()">app_indicator_set_menu</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> *menu</code></em>); + <em class="parameter"><code><a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="type">GtkMenu</span></a> *menu</code></em>); <span class="returnvalue">void</span> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-icon" title="app_indicator_set_icon ()">app_indicator_set_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>); -const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-id" title="app_indicator_get_id ()">app_indicator_get_id</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>); +<span class="returnvalue">void</span> <a class="link" href="libappindicator-app-indicator.html#app-indicator-set-icon-theme-path" title="app_indicator_set_icon_theme_path ()">app_indicator_set_icon_theme_path</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_theme_path</code></em>); +const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-id" title="app_indicator_get_id ()">app_indicator_get_id</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); <a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory"><span class="returnvalue">AppIndicatorCategory</span></a> <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-category" title="app_indicator_get_category ()">app_indicator_get_category</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); <a class="link" href="libappindicator-app-indicator.html#AppIndicatorStatus" title="enum AppIndicatorStatus"><span class="returnvalue">AppIndicatorStatus</span></a> <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-status" title="app_indicator_get_status ()">app_indicator_get_status</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); -const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-icon" title="app_indicator_get_icon ()">app_indicator_get_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); -const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-attention-icon" title="app_indicator_get_attention_icon ()">app_indicator_get_attention_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); -<a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-menu" title="app_indicator_get_menu ()">app_indicator_get_menu</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); +const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-icon" title="app_indicator_get_icon ()">app_indicator_get_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); +const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-icon-theme-path" title="app_indicator_get_icon_theme_path ()">app_indicator_get_icon_theme_path</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); +const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-attention-icon" title="app_indicator_get_attention_icon ()">app_indicator_get_attention_icon</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); +<a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * <a class="link" href="libappindicator-app-indicator.html#app-indicator-get-menu" title="app_indicator_get_menu ()">app_indicator_get_menu</a> (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>); </pre> </div> <div class="refsect1" title="Object Hierarchy"> <a name="libappindicator-app-indicator.object-hierarchy"></a><h2>Object Hierarchy</h2> <pre class="synopsis"> - <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> +----AppIndicator </pre> </div> <div class="refsect1" title="Properties"> <a name="libappindicator-app-indicator.properties"></a><h2>Properties</h2> <pre class="synopsis"> - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--attention-icon-name" title='The "attention-icon-name" property'>attention-icon-name</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--category" title='The "category" property'>category</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--connected" title='The "connected" property'>connected</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-name" title='The "icon-name" property'>icon-name</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-theme-path" title='The "icon-theme-path" property'>icon-theme-path</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--id" title='The "id" property'>id</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--attention-icon-name" title='The "attention-icon-name" property'>attention-icon-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--category" title='The "category" property'>category</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--connected" title='The "connected" property'>connected</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-name" title='The "icon-name" property'>icon-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-theme-path" title='The "icon-theme-path" property'>icon-theme-path</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--id" title='The "id" property'>id</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--menu" title='The "menu" property'>menu</a>" <span class="type">DBusGObjectPath</span>* : Read - "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--status" title='The "status" property'>status</a>" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator--status" title='The "status" property'>status</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write </pre> </div> <div class="refsect1" title="Signals"> @@ -116,6 +120,7 @@ const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span c "<a class="link" href="libappindicator-app-indicator.html#AppIndicator-connection-changed" title='The "connection-changed" signal'>connection-changed</a>" : Run Last "<a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-attention-icon" title='The "new-attention-icon" signal'>new-attention-icon</a>" : Run Last "<a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-icon" title='The "new-icon" signal'>new-icon</a>" : Run Last + "<a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path" title='The "new-icon-theme-path" signal'>new-icon-theme-path</a>" : Run Last "<a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-status" title='The "new-status" signal'>new-status</a>" : Run Last </pre> </div> @@ -139,7 +144,7 @@ An application indicator is a way for an application to put <pre class="programlisting">#define APP_INDICATOR_TYPE (app_indicator_get_type ()) </pre> <p> -Get the <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for a <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. +Get the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for a <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. </p> </div> <hr> @@ -148,7 +153,7 @@ Get the <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#G <pre class="programlisting">#define APP_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), APP_INDICATOR_TYPE, AppIndicator)) </pre> <p> -Safely convert a <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> into an <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. +Safely convert a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> into an <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> @@ -165,14 +170,14 @@ Safely convert a <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Objec <pre class="programlisting">#define APP_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), APP_INDICATOR_TYPE, AppIndicatorClass)) </pre> <p> -Safely convert a <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> into a <a class="link" href="libappindicator-app-indicator.html#AppIndicatorClass" title="AppIndicatorClass"><span class="type">AppIndicatorClass</span></a>. +Safely convert a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> into a <a class="link" href="libappindicator-app-indicator.html#AppIndicatorClass" title="AppIndicatorClass"><span class="type">AppIndicatorClass</span></a>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td> <td> -<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> based class to convert. +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> based class to convert. </td> </tr></tbody> </table></div> @@ -189,7 +194,7 @@ Checks to see if <em class="parameter"><code>obj</code></em> is in the object hi <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td> -<td>An <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> to check +<td>An <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> to check </td> </tr></tbody> </table></div> @@ -206,7 +211,7 @@ Checks to see if <em class="parameter"><code>klass</code></em> is in the object <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td> -<td>An <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> to check +<td>An <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> to check </td> </tr></tbody> </table></div> @@ -223,7 +228,7 @@ Gets a pointer to the <a class="link" href="libappindicator-app-indicator.html#A <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td> -<td>A <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in the class hierarchy of <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. +<td>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in the class hierarchy of <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. </td> </tr></tbody> </table></div> @@ -256,6 +261,15 @@ String identifier for the <a class="link" href="libappindicator-app-indicator.ht </p> </div> <hr> +<div class="refsect2" title="APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH"> +<a name="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"></a><h3>APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</h3> +<pre class="programlisting">#define APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH "new-icon-theme-path" +</pre> +<p> +String identifier for the <a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path" title='The "new-icon-theme-path" signal'><span class="type">"new-icon-theme-path"</span></a> signal. +</p> +</div> +<hr> <div class="refsect2" title="APP_INDICATOR_SIGNAL_CONNECTION_CHANGED"> <a name="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"></a><h3>APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</h3> <pre class="programlisting">#define APP_INDICATOR_SIGNAL_CONNECTION_CHANGED "connection-changed" @@ -374,12 +388,12 @@ A application indicator represents the values that are needed to show a GObjectClass parent_class; /* DBus Signals */ - void (* new_icon) (AppIndicator *indicator, + void (* new_icon) (AppIndicator *indicator, gpointer user_data); - void (* new_attention_icon) (AppIndicator *indicator, + void (* new_attention_icon) (AppIndicator *indicator, gpointer user_data); - void (* new_status) (AppIndicator *indicator, - const gchar *status, + void (* new_status) (AppIndicator *indicator, + const gchar *status, gpointer user_data); /* Local Signals */ @@ -392,8 +406,11 @@ A application indicator represents the values that are needed to show a void (*unfallback) (AppIndicator * indicator, GtkStatusIcon * status_icon); + void (* new_icon_theme_path) (AppIndicator *indicator, + const gchar *icon_theme_path, + gpointer user_data); + /* Reserved */ - void (*app_indicator_reserved_1)(void); void (*app_indicator_reserved_2)(void); } AppIndicatorClass; </pre> @@ -405,7 +422,7 @@ The signals and external functions that make up the <a class="link" href="libapp <col align="left" valign="top"> <tbody> <tr> -<td><p><span class="term"><a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="AppIndicatorClass.parent-class"></a>parent_class</code></em>;</span></p></td> +<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="AppIndicatorClass.parent-class"></a>parent_class</code></em>;</span></p></td> <td>Mia familia </td> </tr> @@ -431,7 +448,7 @@ The signals and external functions that make up the <a class="link" href="libapp </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="AppIndicatorClass.fallback"></a>fallback</code></em> ()</span></p></td> -<td>Function that gets called to make a <a href="/usr/share/gtk-doc/html/gtk/GtkStatusIcon.html"><span class="type">GtkStatusIcon</span></a> when +<td>Function that gets called to make a <a href="http://library.gnome.org/devel/gtk/unstable/GtkStatusIcon.html"><span class="type">GtkStatusIcon</span></a> when there is no Application Indicator area available. </td> </tr> @@ -442,8 +459,8 @@ The signals and external functions that make up the <a class="link" href="libapp </td> </tr> <tr> -<td><p><span class="term"><em class="structfield"><code><a name="AppIndicatorClass.app-indicator-reserved-1"></a>app_indicator_reserved_1</code></em> ()</span></p></td> -<td>Reserved for future use. +<td><p><span class="term"><em class="structfield"><code><a name="AppIndicatorClass.new-icon-theme-path"></a>new_icon_theme_path</code></em> ()</span></p></td> +<td>Slot for <a class="link" href="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path" title='The "new-icon-theme-path" signal'><span class="type">"new-icon-theme-path"</span></a> </td> </tr> <tr> @@ -457,15 +474,15 @@ The signals and external functions that make up the <a class="link" href="libapp <hr> <div class="refsect2" title="app_indicator_get_type ()"> <a name="app-indicator-get-type"></a><h3>app_indicator_get_type ()</h3> -<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> app_indicator_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> app_indicator_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p> -Generates or returns the unique <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. +Generates or returns the unique <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> A unique <a href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> objects. +<td> A unique <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> objects. </td> </tr></tbody> </table></div> @@ -473,8 +490,8 @@ Generates or returns the unique <a href="/usr/share/gtk-doc/html/gobject/gobject <hr> <div class="refsect2" title="app_indicator_new ()"> <a name="app-indicator-new"></a><h3>app_indicator_new ()</h3> -<pre class="programlisting"><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * app_indicator_new (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, +<pre class="programlisting"><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * app_indicator_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, <em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory"><span class="type">AppIndicatorCategory</span></a> category</code></em>);</pre> <p> Creates a new <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> setting the properties: @@ -511,15 +528,15 @@ Creates a new <a class="link" href="libappindicator-app-indicator.html#AppIndica <hr> <div class="refsect2" title="app_indicator_new_with_path ()"> <a name="app-indicator-new-with-path"></a><h3>app_indicator_new_with_path ()</h3> -<pre class="programlisting"><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * app_indicator_new_with_path (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, +<pre class="programlisting"><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="returnvalue">AppIndicator</span></a> * app_indicator_new_with_path (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>, <em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicatorCategory" title="enum AppIndicatorCategory"><span class="type">AppIndicatorCategory</span></a> category</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_path</code></em>);</pre> + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_theme_path</code></em>);</pre> <p> Creates a new <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> setting the properties: <a class="link" href="libappindicator-app-indicator.html#AppIndicator--id" title='The "id" property'><span class="type">"id"</span></a> with <em class="parameter"><code>id</code></em>, <a class="link" href="libappindicator-app-indicator.html#AppIndicator--category" title='The "category" property'><span class="type">"category"</span></a> with <em class="parameter"><code>category</code></em>, <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-name" title='The "icon-name" property'><span class="type">"icon-name"</span></a> with - <em class="parameter"><code>icon_name</code></em> and <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-theme-path" title='The "icon-theme-path" property'><span class="type">"icon-theme-path"</span></a> with <em class="parameter"><code>icon_path</code></em>. + <em class="parameter"><code>icon_name</code></em> and <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-theme-path" title='The "icon-theme-path" property'><span class="type">"icon-theme-path"</span></a> with <em class="parameter"><code>icon_theme_path</code></em>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> @@ -540,7 +557,7 @@ Creates a new <a class="link" href="libappindicator-app-indicator.html#AppIndica </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>icon_path</code></em> :</span></p></td> +<td><p><span class="term"><em class="parameter"><code>icon_theme_path</code></em> :</span></p></td> <td>A custom path for finding icons. </td> </tr> @@ -580,7 +597,7 @@ Wrapper function for property <a class="link" href="libappindicator-app-indicato <div class="refsect2" title="app_indicator_set_attention_icon ()"> <a name="app-indicator-set-attention-icon"></a><h3>app_indicator_set_attention_icon ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> app_indicator_set_attention_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>);</pre> + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>);</pre> <p> Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--attention-icon-name" title='The "attention-icon-name" property'><span class="type">"attention-icon-name"</span></a>. </p> @@ -604,7 +621,7 @@ Wrapper function for property <a class="link" href="libappindicator-app-indicato <div class="refsect2" title="app_indicator_set_menu ()"> <a name="app-indicator-set-menu"></a><h3>app_indicator_set_menu ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> app_indicator_set_menu (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> *menu</code></em>);</pre> + <em class="parameter"><code><a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="type">GtkMenu</span></a> *menu</code></em>);</pre> <p> Sets the menu that should be shown when the Application Indicator is clicked on in the panel. An application indicator will not @@ -622,7 +639,7 @@ Sets the menu that should be shown when the Application Indicator </tr> <tr> <td><p><span class="term"><em class="parameter"><code>menu</code></em> :</span></p></td> -<td>A <a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> to set +<td>A <a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="type">GtkMenu</span></a> to set </td> </tr> </tbody> @@ -632,7 +649,7 @@ Sets the menu that should be shown when the Application Indicator <div class="refsect2" title="app_indicator_set_icon ()"> <a name="app-indicator-set-icon"></a><h3>app_indicator_set_icon ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> app_indicator_set_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, - <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>);</pre> + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_name</code></em>);</pre> <p> Sets the default icon to use when the status is active but not set to attention. In most cases, this should be the @@ -656,9 +673,33 @@ Sets the default icon to use when the status is active but </table></div> </div> <hr> +<div class="refsect2" title="app_indicator_set_icon_theme_path ()"> +<a name="app-indicator-set-icon-theme-path"></a><h3>app_indicator_set_icon_theme_path ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> app_indicator_set_icon_theme_path (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>, + <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *icon_theme_path</code></em>);</pre> +<p> +Sets the path to use when searching for icons. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> +<td>The <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> object to use +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>icon_theme_path</code></em> :</span></p></td> +<td>The icon theme path to set. +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> <div class="refsect2" title="app_indicator_get_id ()"> <a name="app-indicator-get-id"></a><h3>app_indicator_get_id ()</h3> -<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_id (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> +<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_id (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> <p> Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--id" title='The "id" property'><span class="type">"id"</span></a>. </p> @@ -727,7 +768,7 @@ Wrapper function for property <a class="link" href="libappindicator-app-indicato <hr> <div class="refsect2" title="app_indicator_get_icon ()"> <a name="app-indicator-get-icon"></a><h3>app_indicator_get_icon ()</h3> -<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> +<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> <p> Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-name" title='The "icon-name" property'><span class="type">"icon-name"</span></a>. </p> @@ -748,9 +789,32 @@ Wrapper function for property <a class="link" href="libappindicator-app-indicato </table></div> </div> <hr> +<div class="refsect2" title="app_indicator_get_icon_theme_path ()"> +<a name="app-indicator-get-icon-theme-path"></a><h3>app_indicator_get_icon_theme_path ()</h3> +<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_icon_theme_path (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> +<p> +Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-theme-path" title='The "icon-theme-path" property'><span class="type">"icon-theme-path"</span></a>. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> +<td>The <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> object to use +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> The current icon theme path. +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> <div class="refsect2" title="app_indicator_get_attention_icon ()"> <a name="app-indicator-get-attention-icon"></a><h3>app_indicator_get_attention_icon ()</h3> -<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_attention_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> +<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * app_indicator_get_attention_icon (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> <p> Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--attention-icon-name" title='The "attention-icon-name" property'><span class="type">"attention-icon-name"</span></a>. </p> @@ -773,7 +837,7 @@ Wrapper function for property <a class="link" href="libappindicator-app-indicato <hr> <div class="refsect2" title="app_indicator_get_menu ()"> <a name="app-indicator-get-menu"></a><h3>app_indicator_get_menu ()</h3> -<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * app_indicator_get_menu (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> +<pre class="programlisting"><a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * app_indicator_get_menu (<em class="parameter"><code><a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *self</code></em>);</pre> <p> Gets the menu being used for this application indicator. Wrapper function for property <a class="link" href="libappindicator-app-indicator.html#AppIndicator--menu" title='The "menu" property'><span class="type">"menu"</span></a>. @@ -788,7 +852,7 @@ Gets the menu being used for this application indicator. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> A <a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> object or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if one hasn't been set. +<td> A <a href="http://library.gnome.org/devel/gtk/unstable/GtkMenu.html"><span class="type">GtkMenu</span></a> object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if one hasn't been set. </td> </tr> </tbody> @@ -799,7 +863,7 @@ Gets the menu being used for this application indicator. <a name="libappindicator-app-indicator.property-details"></a><h2>Property Details</h2> <div class="refsect2" title='The "attention-icon-name" property'> <a name="AppIndicator--attention-icon-name"></a><h3>The <code class="literal">"attention-icon-name"</code> property</h3> -<pre class="programlisting"> "attention-icon-name" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<pre class="programlisting"> "attention-icon-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> <p> If the indicator sets it's status to <a class="link" href="libappindicator-app-indicator.html#APP-INDICATOR-STATUS-ATTENTION:CAPS"><code class="literal">APP_INDICATOR_STATUS_ATTENTION</code></a> then this icon is shown. @@ -809,7 +873,7 @@ If the indicator sets it's status to <a class="link" href="libappindicator-app-i <hr> <div class="refsect2" title='The "category" property'> <a name="AppIndicator--category"></a><h3>The <code class="literal">"category"</code> property</h3> -<pre class="programlisting"> "category" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre> +<pre class="programlisting"> "category" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre> <p> The type of indicator that this represents. Please don't use 'Other'. Defaults to 'ApplicationStatus'. @@ -819,9 +883,9 @@ The type of indicator that this represents. Please don't use 'Other'. <hr> <div class="refsect2" title='The "connected" property'> <a name="AppIndicator--connected"></a><h3>The <code class="literal">"connected"</code> property</h3> -<pre class="programlisting"> "connected" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> +<pre class="programlisting"> "connected" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> <p> -Pretty simple, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if we have a reasonable expectation of being +Pretty simple, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if we have a reasonable expectation of being displayed through this object. You should hide your TrayIcon if so. </p> <p>Default value: FALSE</p> @@ -829,7 +893,7 @@ Pretty simple, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#T <hr> <div class="refsect2" title='The "icon-name" property'> <a name="AppIndicator--icon-name"></a><h3>The <code class="literal">"icon-name"</code> property</h3> -<pre class="programlisting"> "icon-name" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<pre class="programlisting"> "icon-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> <p> The name of the regular icon that is shown for the indicator. </p> @@ -838,7 +902,7 @@ The name of the regular icon that is shown for the indicator. <hr> <div class="refsect2" title='The "icon-theme-path" property'> <a name="AppIndicator--icon-theme-path"></a><h3>The <code class="literal">"icon-theme-path"</code> property</h3> -<pre class="programlisting"> "icon-theme-path" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre> +<pre class="programlisting"> "icon-theme-path" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> <p> An additional place to look for icon names that may be installed by the application. @@ -848,7 +912,7 @@ An additional place to look for icon names that may be installed by the <hr> <div class="refsect2" title='The "id" property'> <a name="AppIndicator--id"></a><h3>The <code class="literal">"id"</code> property</h3> -<pre class="programlisting"> "id" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre> +<pre class="programlisting"> "id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre> <p> The ID for this indicator, which should be unique, but used consistently by this program and its indicator. @@ -866,7 +930,7 @@ A method for getting the menu path as a string for DBus. <hr> <div class="refsect2" title='The "status" property'> <a name="AppIndicator--status"></a><h3>The <code class="literal">"status"</code> property</h3> -<pre class="programlisting"> "status" <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<pre class="programlisting"> "status" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> <p> Whether the indicator is shown or requests attention. Defaults to 'Passive'. @@ -879,8 +943,8 @@ Whether the indicator is shown or requests attention. Defaults to <div class="refsect2" title='The "connection-changed" signal'> <a name="AppIndicator-connection-changed"></a><h3>The <code class="literal">"connection-changed"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *arg0, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg1, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> <p> Signaled when we connect to a watcher, or when it drops away. </p> @@ -908,7 +972,7 @@ Signaled when we connect to a watcher, or when it drops away. <div class="refsect2" title='The "new-attention-icon" signal'> <a name="AppIndicator-new-attention-icon"></a><h3>The <code class="literal">"new-attention-icon"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *arg0, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> <p> Emitted when <a class="link" href="libappindicator-app-indicator.html#AppIndicator--attention-icon-name" title='The "attention-icon-name" property'><span class="type">"attention-icon-name"</span></a> is changed </p> @@ -931,7 +995,7 @@ Emitted when <a class="link" href="libappindicator-app-indicator.html#AppIndicat <div class="refsect2" title='The "new-icon" signal'> <a name="AppIndicator-new-icon"></a><h3>The <code class="literal">"new-icon"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *arg0, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> <p> Emitted when <a class="link" href="libappindicator-app-indicator.html#AppIndicator--icon-name" title='The "icon-name" property'><span class="type">"icon-name"</span></a> is changed </p> @@ -951,11 +1015,36 @@ Emitted when <a class="link" href="libappindicator-app-indicator.html#AppIndicat </table></div> </div> <hr> +<div class="refsect2" title='The "new-icon-theme-path" signal'> +<a name="AppIndicator-new-icon-theme-path"></a><h3>The <code class="literal">"new-icon-theme-path"</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *arg0, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> +<p> +Signaled when there is a new icon set for the + object. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>arg0</code></em> :</span></p></td> +<td>The <a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> object +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data set when the signal handler was connected.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> <div class="refsect2" title='The "new-status" signal'> <a name="AppIndicator-new-status"></a><h3>The <code class="literal">"new-status"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="libappindicator-app-indicator.html#AppIndicator"><span class="type">AppIndicator</span></a> *arg0, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg1, - <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre> <p> Emitted when <a class="link" href="libappindicator-app-indicator.html#AppIndicator--status" title='The "status" property'><span class="type">"status"</span></a> is changed </p> diff --git a/docs/reference/html/libappindicator.devhelp b/docs/reference/html/libappindicator.devhelp index f41449f..106c208 100644 --- a/docs/reference/html/libappindicator.devhelp +++ b/docs/reference/html/libappindicator.devhelp @@ -18,6 +18,7 @@ <function name="APP_INDICATOR_SIGNAL_NEW_ICON" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON:CAPS"/> <function name="APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS"/> <function name="APP_INDICATOR_SIGNAL_NEW_STATUS" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS"/> + <function name="APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"/> <function name="APP_INDICATOR_SIGNAL_CONNECTION_CHANGED" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"/> <function name="enum AppIndicatorCategory" link="libappindicator-app-indicator.html#AppIndicatorCategory"/> <function name="enum AppIndicatorStatus" link="libappindicator-app-indicator.html#AppIndicatorStatus"/> @@ -31,10 +32,12 @@ <function name="app_indicator_set_attention_icon ()" link="libappindicator-app-indicator.html#app-indicator-set-attention-icon"/> <function name="app_indicator_set_menu ()" link="libappindicator-app-indicator.html#app-indicator-set-menu"/> <function name="app_indicator_set_icon ()" link="libappindicator-app-indicator.html#app-indicator-set-icon"/> + <function name="app_indicator_set_icon_theme_path ()" link="libappindicator-app-indicator.html#app-indicator-set-icon-theme-path"/> <function name="app_indicator_get_id ()" link="libappindicator-app-indicator.html#app-indicator-get-id"/> <function name="app_indicator_get_category ()" link="libappindicator-app-indicator.html#app-indicator-get-category"/> <function name="app_indicator_get_status ()" link="libappindicator-app-indicator.html#app-indicator-get-status"/> <function name="app_indicator_get_icon ()" link="libappindicator-app-indicator.html#app-indicator-get-icon"/> + <function name="app_indicator_get_icon_theme_path ()" link="libappindicator-app-indicator.html#app-indicator-get-icon-theme-path"/> <function name="app_indicator_get_attention_icon ()" link="libappindicator-app-indicator.html#app-indicator-get-attention-icon"/> <function name="app_indicator_get_menu ()" link="libappindicator-app-indicator.html#app-indicator-get-menu"/> <function name="The "attention-icon-name" property" link="libappindicator-app-indicator.html#AppIndicator--attention-icon-name"/> @@ -48,6 +51,7 @@ <function name="The "connection-changed" signal" link="libappindicator-app-indicator.html#AppIndicator-connection-changed"/> <function name="The "new-attention-icon" signal" link="libappindicator-app-indicator.html#AppIndicator-new-attention-icon"/> <function name="The "new-icon" signal" link="libappindicator-app-indicator.html#AppIndicator-new-icon"/> + <function name="The "new-icon-theme-path" signal" link="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path"/> <function name="The "new-status" signal" link="libappindicator-app-indicator.html#AppIndicator-new-status"/> </functions> </book> diff --git a/docs/reference/html/libappindicator.devhelp2 b/docs/reference/html/libappindicator.devhelp2 index 6a5382e..7203dcf 100644 --- a/docs/reference/html/libappindicator.devhelp2 +++ b/docs/reference/html/libappindicator.devhelp2 @@ -18,6 +18,7 @@ <keyword type="macro" name="APP_INDICATOR_SIGNAL_NEW_ICON" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON:CAPS"/> <keyword type="macro" name="APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS"/> <keyword type="macro" name="APP_INDICATOR_SIGNAL_NEW_STATUS" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS"/> + <keyword type="macro" name="APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"/> <keyword type="macro" name="APP_INDICATOR_SIGNAL_CONNECTION_CHANGED" link="libappindicator-app-indicator.html#APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"/> <keyword type="enum" name="enum AppIndicatorCategory" link="libappindicator-app-indicator.html#AppIndicatorCategory"/> <keyword type="enum" name="enum AppIndicatorStatus" link="libappindicator-app-indicator.html#AppIndicatorStatus"/> @@ -31,10 +32,12 @@ <keyword type="function" name="app_indicator_set_attention_icon ()" link="libappindicator-app-indicator.html#app-indicator-set-attention-icon"/> <keyword type="function" name="app_indicator_set_menu ()" link="libappindicator-app-indicator.html#app-indicator-set-menu"/> <keyword type="function" name="app_indicator_set_icon ()" link="libappindicator-app-indicator.html#app-indicator-set-icon"/> + <keyword type="function" name="app_indicator_set_icon_theme_path ()" link="libappindicator-app-indicator.html#app-indicator-set-icon-theme-path"/> <keyword type="function" name="app_indicator_get_id ()" link="libappindicator-app-indicator.html#app-indicator-get-id"/> <keyword type="function" name="app_indicator_get_category ()" link="libappindicator-app-indicator.html#app-indicator-get-category"/> <keyword type="function" name="app_indicator_get_status ()" link="libappindicator-app-indicator.html#app-indicator-get-status"/> <keyword type="function" name="app_indicator_get_icon ()" link="libappindicator-app-indicator.html#app-indicator-get-icon"/> + <keyword type="function" name="app_indicator_get_icon_theme_path ()" link="libappindicator-app-indicator.html#app-indicator-get-icon-theme-path"/> <keyword type="function" name="app_indicator_get_attention_icon ()" link="libappindicator-app-indicator.html#app-indicator-get-attention-icon"/> <keyword type="function" name="app_indicator_get_menu ()" link="libappindicator-app-indicator.html#app-indicator-get-menu"/> <keyword type="property" name="The "attention-icon-name" property" link="libappindicator-app-indicator.html#AppIndicator--attention-icon-name"/> @@ -48,6 +51,7 @@ <keyword type="signal" name="The "connection-changed" signal" link="libappindicator-app-indicator.html#AppIndicator-connection-changed"/> <keyword type="signal" name="The "new-attention-icon" signal" link="libappindicator-app-indicator.html#AppIndicator-new-attention-icon"/> <keyword type="signal" name="The "new-icon" signal" link="libappindicator-app-indicator.html#AppIndicator-new-icon"/> + <keyword type="signal" name="The "new-icon-theme-path" signal" link="libappindicator-app-indicator.html#AppIndicator-new-icon-theme-path"/> <keyword type="signal" name="The "new-status" signal" link="libappindicator-app-indicator.html#AppIndicator-new-status"/> <keyword type="constant" name="APP_INDICATOR_CATEGORY_APPLICATION_STATUS" link="libappindicator-app-indicator.html#APP-INDICATOR-CATEGORY-APPLICATION-STATUS:CAPS"/> <keyword type="constant" name="APP_INDICATOR_CATEGORY_COMMUNICATIONS" link="libappindicator-app-indicator.html#APP-INDICATOR-CATEGORY-COMMUNICATIONS:CAPS"/> diff --git a/docs/reference/html/object-tree.html b/docs/reference/html/object-tree.html index fbc9bcc..5412b9e 100644 --- a/docs/reference/html/object-tree.html +++ b/docs/reference/html/object-tree.html @@ -23,7 +23,7 @@ <div class="titlepage"><div><div><h2 class="title"> <a name="object-tree"></a>Object Hierarchy</h2></div></div></div> <pre class="screen"> - <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> <a class="link" href="libappindicator-app-indicator.html#AppIndicator">AppIndicator</a> </pre> </div> diff --git a/docs/reference/libappindicator-docs.sgml b/docs/reference/libappindicator-docs.sgml index 2e1c2c2..e01b4bd 100644 --- a/docs/reference/libappindicator-docs.sgml +++ b/docs/reference/libappindicator-docs.sgml @@ -8,7 +8,7 @@ <bookinfo> <title>libappindicator Reference Manual</title> <releaseinfo> - for libappindicator 0.2.3 + for libappindicator 0.2.4 </releaseinfo> </bookinfo> diff --git a/docs/reference/libappindicator-sections.txt b/docs/reference/libappindicator-sections.txt index 70df0b8..e0effd1 100644 --- a/docs/reference/libappindicator-sections.txt +++ b/docs/reference/libappindicator-sections.txt @@ -9,6 +9,8 @@ APP_INDICATOR_GET_CLASS APP_INDICATOR_SIGNAL_NEW_ICON APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON APP_INDICATOR_SIGNAL_NEW_STATUS +APP_INDICATOR_SIGNAL_NEW_LABEL +APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH APP_INDICATOR_SIGNAL_CONNECTION_CHANGED AppIndicatorCategory AppIndicatorStatus @@ -23,11 +25,18 @@ app_indicator_set_status app_indicator_set_attention_icon app_indicator_set_menu app_indicator_set_icon +app_indicator_set_icon_theme_path +app_indicator_set_label +app_indicator_set_ordering_index app_indicator_get_id app_indicator_get_category app_indicator_get_status app_indicator_get_icon +app_indicator_get_icon_theme_path app_indicator_get_attention_icon app_indicator_get_menu +app_indicator_get_label +app_indicator_get_label_guide +app_indicator_get_ordering_index </SECTION> diff --git a/docs/reference/tmpl/app-indicator.sgml b/docs/reference/tmpl/app-indicator.sgml index 283e58d..7e6b441 100644 --- a/docs/reference/tmpl/app-indicator.sgml +++ b/docs/reference/tmpl/app-indicator.sgml @@ -88,6 +88,13 @@ AppIndicator +<!-- ##### MACRO APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH ##### --> +<para> + +</para> + + + <!-- ##### MACRO APP_INDICATOR_SIGNAL_CONNECTION_CHANGED ##### --> <para> @@ -149,6 +156,14 @@ AppIndicator @appindicator: the object which received the signal. +<!-- ##### SIGNAL AppIndicator::new-icon-theme-path ##### --> +<para> + +</para> + +@appindicator: the object which received the signal. +@arg1: + <!-- ##### SIGNAL AppIndicator::new-status ##### --> <para> @@ -209,7 +224,7 @@ AppIndicator @connection_changed: @fallback: @unfallback: -@app_indicator_reserved_1: +@new_icon_theme_path: @app_indicator_reserved_2: <!-- ##### FUNCTION app_indicator_get_type ##### --> @@ -240,7 +255,7 @@ AppIndicator @id: @icon_name: @category: -@icon_path: +@icon_theme_path: @Returns: @@ -280,6 +295,15 @@ AppIndicator @icon_name: +<!-- ##### FUNCTION app_indicator_set_icon_theme_path ##### --> +<para> + +</para> + +@self: +@icon_theme_path: + + <!-- ##### FUNCTION app_indicator_get_id ##### --> <para> @@ -316,6 +340,15 @@ AppIndicator @Returns: +<!-- ##### FUNCTION app_indicator_get_icon_theme_path ##### --> +<para> + +</para> + +@self: +@Returns: + + <!-- ##### FUNCTION app_indicator_get_attention_icon ##### --> <para> diff --git a/docs/reference/version.xml b/docs/reference/version.xml index 7179039..abd4105 100644 --- a/docs/reference/version.xml +++ b/docs/reference/version.xml @@ -1 +1 @@ -0.2.3 +0.2.4 diff --git a/docs/reference/xml/api-index-full.xml b/docs/reference/xml/api-index-full.xml index 25a178e..c24a60b 100644 --- a/docs/reference/xml/api-index-full.xml +++ b/docs/reference/xml/api-index-full.xml @@ -11,6 +11,7 @@ <indexentry><primaryie linkends="AppIndicator-connection-changed"><link linkend="AppIndicator-connection-changed">AppIndicator::connection-changed</link>, object signal in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="AppIndicator-new-attention-icon"><link linkend="AppIndicator-new-attention-icon">AppIndicator::new-attention-icon</link>, object signal in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="AppIndicator-new-icon"><link linkend="AppIndicator-new-icon">AppIndicator::new-icon</link>, object signal in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> +<indexentry><primaryie linkends="AppIndicator-new-icon-theme-path"><link linkend="AppIndicator-new-icon-theme-path">AppIndicator::new-icon-theme-path</link>, object signal in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="AppIndicator-new-status"><link linkend="AppIndicator-new-status">AppIndicator::new-status</link>, object signal in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="AppIndicator--attention-icon-name"><link linkend="AppIndicator--attention-icon-name">AppIndicator:attention-icon-name</link>, object property in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="AppIndicator--category"><link linkend="AppIndicator--category">AppIndicator:category</link>, object property in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> @@ -29,6 +30,7 @@ <indexentry><primaryie linkends="app-indicator-get-category"><link linkend="app-indicator-get-category">app_indicator_get_category</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-GET-CLASS:CAPS"><link linkend="APP-INDICATOR-GET-CLASS:CAPS">APP_INDICATOR_GET_CLASS</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-get-icon"><link linkend="app-indicator-get-icon">app_indicator_get_icon</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> +<indexentry><primaryie linkends="app-indicator-get-icon-theme-path"><link linkend="app-indicator-get-icon-theme-path">app_indicator_get_icon_theme_path</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-get-id"><link linkend="app-indicator-get-id">app_indicator_get_id</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-get-menu"><link linkend="app-indicator-get-menu">app_indicator_get_menu</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-get-status"><link linkend="app-indicator-get-status">app_indicator_get_status</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> @@ -37,11 +39,13 @@ <indexentry><primaryie linkends="app-indicator-new-with-path"><link linkend="app-indicator-new-with-path">app_indicator_new_with_path</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-set-attention-icon"><link linkend="app-indicator-set-attention-icon">app_indicator_set_attention_icon</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-set-icon"><link linkend="app-indicator-set-icon">app_indicator_set_icon</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> +<indexentry><primaryie linkends="app-indicator-set-icon-theme-path"><link linkend="app-indicator-set-icon-theme-path">app_indicator_set_icon_theme_path</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-set-menu"><link linkend="app-indicator-set-menu">app_indicator_set_menu</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="app-indicator-set-status"><link linkend="app-indicator-set-status">app_indicator_set_status</link>, function in <link linkend="libappindicator-app-indicator">AppIndicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"><link linkend="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS">APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS"><link linkend="APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS">APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-SIGNAL-NEW-ICON:CAPS"><link linkend="APP-INDICATOR-SIGNAL-NEW-ICON:CAPS">APP_INDICATOR_SIGNAL_NEW_ICON</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> +<indexentry><primaryie linkends="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"><link linkend="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS">APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS"><link linkend="APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS">APP_INDICATOR_SIGNAL_NEW_STATUS</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="APP-INDICATOR-TYPE:CAPS"><link linkend="APP-INDICATOR-TYPE:CAPS">APP_INDICATOR_TYPE</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> <indexentry><primaryie linkends="IS-APP-INDICATOR:CAPS"><link linkend="IS-APP-INDICATOR:CAPS">IS_APP_INDICATOR</link>, macro in <link linkend="libappindicator-app-indicator">app-indicator</link></primaryie></indexentry> diff --git a/docs/reference/xml/app-indicator.xml b/docs/reference/xml/app-indicator.xml index b65ed7b..d129a3a 100644 --- a/docs/reference/xml/app-indicator.xml +++ b/docs/reference/xml/app-indicator.xml @@ -37,6 +37,7 @@ Unstable, unless otherwise indicated #define <link linkend="APP-INDICATOR-SIGNAL-NEW-ICON:CAPS">APP_INDICATOR_SIGNAL_NEW_ICON</link> #define <link linkend="APP-INDICATOR-SIGNAL-NEW-ATTENTION-ICON:CAPS">APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON</link> #define <link linkend="APP-INDICATOR-SIGNAL-NEW-STATUS:CAPS">APP_INDICATOR_SIGNAL_NEW_STATUS</link> +#define <link linkend="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS">APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</link> #define <link linkend="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS">APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</link> enum <link linkend="AppIndicatorCategory">AppIndicatorCategory</link>; enum <link linkend="AppIndicatorStatus">AppIndicatorStatus</link>; @@ -50,7 +51,7 @@ enum <link linkend="AppIndicatorStatus">AppIndicatorStatus</link> <link linkend="AppIndicator"><returnvalue>AppIndicator</returnvalue></link> * <link linkend="app-indicator-new-with-path">app_indicator_new_with_path</link> (<parameter>const <link linkend="gchar"><type>gchar</type></link> *id</parameter>, <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_name</parameter>, <parameter><link linkend="AppIndicatorCategory"><type>AppIndicatorCategory</type></link> category</parameter>, - <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_path</parameter>); + <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_theme_path</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="app-indicator-set-status">app_indicator_set_status</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>, <parameter><link linkend="AppIndicatorStatus"><type>AppIndicatorStatus</type></link> status</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="app-indicator-set-attention-icon">app_indicator_set_attention_icon</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>, @@ -59,10 +60,13 @@ enum <link linkend="AppIndicatorStatus">AppIndicatorStatus</link> <parameter><link linkend="GtkMenu"><type>GtkMenu</type></link> *menu</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="app-indicator-set-icon">app_indicator_set_icon</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>, <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_name</parameter>); +<link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="app-indicator-set-icon-theme-path">app_indicator_set_icon_theme_path</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>, + <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_theme_path</parameter>); const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="app-indicator-get-id">app_indicator_get_id</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); <link linkend="AppIndicatorCategory"><returnvalue>AppIndicatorCategory</returnvalue></link> <link linkend="app-indicator-get-category">app_indicator_get_category</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); <link linkend="AppIndicatorStatus"><returnvalue>AppIndicatorStatus</returnvalue></link> <link linkend="app-indicator-get-status">app_indicator_get_status</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="app-indicator-get-icon">app_indicator_get_icon</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); +const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="app-indicator-get-icon-theme-path">app_indicator_get_icon_theme_path</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <link linkend="app-indicator-get-attention-icon">app_indicator_get_attention_icon</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); <link linkend="GtkMenu"><returnvalue>GtkMenu</returnvalue></link> * <link linkend="app-indicator-get-menu">app_indicator_get_menu</link> (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>); </synopsis> @@ -80,8 +84,8 @@ const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <lin "<link linkend="AppIndicator--attention-icon-name">attention-icon-name</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write "<link linkend="AppIndicator--category">category</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct Only "<link linkend="AppIndicator--connected">connected</link>" <link linkend="gboolean"><type>gboolean</type></link> : Read - "<link linkend="AppIndicator--icon-name">icon-name</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write - "<link linkend="AppIndicator--icon-theme-path">icon-theme-path</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct Only + "<link linkend="AppIndicator--icon-name">icon-name</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct + "<link linkend="AppIndicator--icon-theme-path">icon-theme-path</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct "<link linkend="AppIndicator--id">id</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct Only "<link linkend="AppIndicator--menu">menu</link>" <link linkend="DBusGObjectPath"><type>DBusGObjectPath</type></link>* : Read "<link linkend="AppIndicator--status">status</link>" <link linkend="gchar"><type>gchar</type></link>* : Read / Write @@ -93,6 +97,7 @@ const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * <lin "<link linkend="AppIndicator-connection-changed">connection-changed</link>" : Run Last "<link linkend="AppIndicator-new-attention-icon">new-attention-icon</link>" : Run Last "<link linkend="AppIndicator-new-icon">new-icon</link>" : Run Last + "<link linkend="AppIndicator-new-icon-theme-path">new-icon-theme-path</link>" : Run Last "<link linkend="AppIndicator-new-status">new-status</link>" : Run Last </synopsis> </refsect1> @@ -204,6 +209,14 @@ String identifier for the <link linkend="AppIndicator-new-attention-icon"><type> <para> String identifier for the <link linkend="AppIndicator-new-status"><type>"new-status"</type></link> signal. </para></refsect2> +<refsect2 id="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS" role="macro"> +<title>APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</title> +<indexterm zone="APP-INDICATOR-SIGNAL-NEW-ICON-THEME-PATH:CAPS"><primary>APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH</primary></indexterm> +<programlisting>#define APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH "new-icon-theme-path" +</programlisting> +<para> +String identifier for the <link linkend="AppIndicator-new-icon-theme-path"><type>"new-icon-theme-path"</type></link> signal. +</para></refsect2> <refsect2 id="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS" role="macro"> <title>APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</title> <indexterm zone="APP-INDICATOR-SIGNAL-CONNECTION-CHANGED:CAPS"><primary>APP_INDICATOR_SIGNAL_CONNECTION_CHANGED</primary></indexterm> @@ -310,12 +323,12 @@ A application indicator represents the values that are needed to show a GObjectClass parent_class; /* DBus Signals */ - void (* new_icon) (AppIndicator *indicator, + void (* new_icon) (AppIndicator *indicator, gpointer user_data); - void (* new_attention_icon) (AppIndicator *indicator, + void (* new_attention_icon) (AppIndicator *indicator, gpointer user_data); - void (* new_status) (AppIndicator *indicator, - const gchar *status, + void (* new_status) (AppIndicator *indicator, + const gchar *status, gpointer user_data); /* Local Signals */ @@ -328,8 +341,11 @@ A application indicator represents the values that are needed to show a void (*unfallback) (AppIndicator * indicator, GtkStatusIcon * status_icon); + void (* new_icon_theme_path) (AppIndicator *indicator, + const gchar *icon_theme_path, + gpointer user_data); + /* Reserved */ - void (*app_indicator_reserved_1)(void); void (*app_indicator_reserved_2)(void); } AppIndicatorClass; </programlisting> @@ -367,8 +383,8 @@ The signals and external functions that make up the <link linkend="AppIndicator" Indicator area appears after the fallback has been created. </simpara></listitem> </varlistentry> -<varlistentry><term><structfield id="AppIndicatorClass.app-indicator-reserved-1">app_indicator_reserved_1</structfield> ()</term> -<listitem><simpara>Reserved for future use. +<varlistentry><term><structfield id="AppIndicatorClass.new-icon-theme-path">new_icon_theme_path</structfield> ()</term> +<listitem><simpara>Slot for <link linkend="AppIndicator-new-icon-theme-path"><type>"new-icon-theme-path"</type></link> </simpara></listitem> </varlistentry> <varlistentry><term><structfield id="AppIndicatorClass.app-indicator-reserved-2">app_indicator_reserved_2</structfield> ()</term> @@ -416,12 +432,12 @@ Creates a new <link linkend="AppIndicator"><type>AppIndicator</type></link> sett <programlisting><link linkend="AppIndicator"><returnvalue>AppIndicator</returnvalue></link> * app_indicator_new_with_path (<parameter>const <link linkend="gchar"><type>gchar</type></link> *id</parameter>, <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_name</parameter>, <parameter><link linkend="AppIndicatorCategory"><type>AppIndicatorCategory</type></link> category</parameter>, - <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_path</parameter>);</programlisting> + <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_theme_path</parameter>);</programlisting> <para> Creates a new <link linkend="AppIndicator"><type>AppIndicator</type></link> setting the properties: <link linkend="AppIndicator--id"><type>"id"</type></link> with <parameter>id</parameter>, <link linkend="AppIndicator--category"><type>"category"</type></link> with <parameter>category</parameter>, <link linkend="AppIndicator--icon-name"><type>"icon-name"</type></link> with - <parameter>icon_name</parameter> and <link linkend="AppIndicator--icon-theme-path"><type>"icon-theme-path"</type></link> with <parameter>icon_path</parameter>. + <parameter>icon_name</parameter> and <link linkend="AppIndicator--icon-theme-path"><type>"icon-theme-path"</type></link> with <parameter>icon_theme_path</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>id</parameter> :</term> <listitem><simpara>The unique id of the indicator to create. @@ -432,7 +448,7 @@ Creates a new <link linkend="AppIndicator"><type>AppIndicator</type></link> sett <varlistentry><term><parameter>category</parameter> :</term> <listitem><simpara>The category of indicator. </simpara></listitem></varlistentry> -<varlistentry><term><parameter>icon_path</parameter> :</term> +<varlistentry><term><parameter>icon_theme_path</parameter> :</term> <listitem><simpara>A custom path for finding icons. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A pointer to a new <link linkend="AppIndicator"><type>AppIndicator</type></link> object. @@ -505,6 +521,21 @@ Sets the default icon to use when the status is active but <listitem><simpara>The icon name to set. </simpara></listitem></varlistentry> </variablelist></refsect2> +<refsect2 id="app-indicator-set-icon-theme-path" role="function"> +<title>app_indicator_set_icon_theme_path ()</title> +<indexterm zone="app-indicator-set-icon-theme-path"><primary>app_indicator_set_icon_theme_path</primary></indexterm> +<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> app_indicator_set_icon_theme_path (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>, + <parameter>const <link linkend="gchar"><type>gchar</type></link> *icon_theme_path</parameter>);</programlisting> +<para> +Sets the path to use when searching for icons. +</para><variablelist role="params"> +<varlistentry><term><parameter>self</parameter> :</term> +<listitem><simpara>The <link linkend="AppIndicator"><type>AppIndicator</type></link> object to use +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>icon_theme_path</parameter> :</term> +<listitem><simpara>The icon theme path to set. +</simpara></listitem></varlistentry> +</variablelist></refsect2> <refsect2 id="app-indicator-get-id" role="function"> <title>app_indicator_get_id ()</title> <indexterm zone="app-indicator-get-id"><primary>app_indicator_get_id</primary></indexterm> @@ -557,6 +588,19 @@ Wrapper function for property <link linkend="AppIndicator--icon-name"><type>"ico <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The current icon name. </simpara></listitem></varlistentry> </variablelist></refsect2> +<refsect2 id="app-indicator-get-icon-theme-path" role="function"> +<title>app_indicator_get_icon_theme_path ()</title> +<indexterm zone="app-indicator-get-icon-theme-path"><primary>app_indicator_get_icon_theme_path</primary></indexterm> +<programlisting>const <link linkend="gchar"><returnvalue>gchar</returnvalue></link> * app_indicator_get_icon_theme_path (<parameter><link linkend="AppIndicator"><type>AppIndicator</type></link> *self</parameter>);</programlisting> +<para> +Wrapper function for property <link linkend="AppIndicator--icon-theme-path"><type>"icon-theme-path"</type></link>. +</para><variablelist role="params"> +<varlistentry><term><parameter>self</parameter> :</term> +<listitem><simpara>The <link linkend="AppIndicator"><type>AppIndicator</type></link> object to use +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The current icon theme path. +</simpara></listitem></varlistentry> +</variablelist></refsect2> <refsect2 id="app-indicator-get-attention-icon" role="function"> <title>app_indicator_get_attention_icon ()</title> <indexterm zone="app-indicator-get-attention-icon"><primary>app_indicator_get_attention_icon</primary></indexterm> @@ -614,14 +658,14 @@ Pretty simple, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if we ha </refsect2> <refsect2 id="AppIndicator--icon-name" role="property"><title>The <literal>"icon-name"</literal> property</title> <indexterm zone="AppIndicator--icon-name"><primary>AppIndicator:icon-name</primary></indexterm> -<programlisting> "icon-name" <link linkend="gchar"><type>gchar</type></link>* : Read / Write</programlisting> +<programlisting> "icon-name" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct</programlisting> <para> The name of the regular icon that is shown for the indicator. </para><para>Default value: NULL</para> </refsect2> <refsect2 id="AppIndicator--icon-theme-path" role="property"><title>The <literal>"icon-theme-path"</literal> property</title> <indexterm zone="AppIndicator--icon-theme-path"><primary>AppIndicator:icon-theme-path</primary></indexterm> -<programlisting> "icon-theme-path" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct Only</programlisting> +<programlisting> "icon-theme-path" <link linkend="gchar"><type>gchar</type></link>* : Read / Write / Construct</programlisting> <para> An additional place to look for icon names that may be installed by the application. @@ -693,6 +737,20 @@ Emitted when <link linkend="AppIndicator--icon-name"><type>"icon-name"</type></l </simpara></listitem></varlistentry> <varlistentry><term><parameter>user_data</parameter> :</term> <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry> +</variablelist></refsect2><refsect2 id="AppIndicator-new-icon-theme-path" role="signal"><title>The <literal>"new-icon-theme-path"</literal> signal</title> +<indexterm zone="AppIndicator-new-icon-theme-path"><primary>AppIndicator::new-icon-theme-path</primary></indexterm> +<programlisting><link linkend="void"><returnvalue>void</returnvalue></link> user_function (<link linkend="AppIndicator"><type>AppIndicator</type></link> *arg0, + <link linkend="gchar"><type>gchar</type></link> *arg1, + <link linkend="gpointer"><type>gpointer</type></link> user_data) : Run Last</programlisting> +<para> +Signaled when there is a new icon set for the + object. +</para><variablelist role="params"> +<varlistentry><term><parameter>arg0</parameter> :</term> +<listitem><simpara>The <link linkend="AppIndicator"><type>AppIndicator</type></link> object +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>user_data</parameter> :</term> +<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry> </variablelist></refsect2><refsect2 id="AppIndicator-new-status" role="signal"><title>The <literal>"new-status"</literal> signal</title> <indexterm zone="AppIndicator-new-status"><primary>AppIndicator::new-status</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> user_function (<link linkend="AppIndicator"><type>AppIndicator</type></link> *arg0, diff --git a/example/Makefile.in b/example/Makefile.in index 292a6e2..1dbaacb 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -181,6 +181,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/example/simple-client.c b/example/simple-client.c index fbcaaaa..f2fac6f 100644 --- a/example/simple-client.c +++ b/example/simple-client.c @@ -26,6 +26,21 @@ with this program. If not, see <http://www.gnu.org/licenses/>. GMainLoop * mainloop = NULL; static gboolean active = TRUE; +static gboolean can_haz_label = TRUE; + +static void +label_toggle_cb (GtkWidget * widget, gpointer data) +{ + can_haz_label = !can_haz_label; + + if (can_haz_label) { + gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "Hide label"); + } else { + gtk_menu_item_set_label(GTK_MENU_ITEM(widget), "Show label"); + } + + return; +} static void activate_clicked_cb (GtkWidget *widget, gpointer data) @@ -97,6 +112,22 @@ append_submenu (GtkWidget *item) gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu); } +guint percentage = 0; + +static gboolean +percent_change (gpointer user_data) +{ + percentage = (percentage + 1) % 100; + if (can_haz_label) { + gchar * percentstr = g_strdup_printf("%d%%", percentage + 1); + app_indicator_set_label (APP_INDICATOR(user_data), percentstr, "100%"); + g_free(percentstr); + } else { + app_indicator_set_label (APP_INDICATOR(user_data), NULL, NULL); + } + return TRUE; +} + int main (int argc, char ** argv) { @@ -114,6 +145,9 @@ main (int argc, char ** argv) app_indicator_set_status (ci, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_attention_icon(ci, "indicator-messages-new"); + app_indicator_set_label (ci, "1%", "100%"); + + g_timeout_add_seconds(1, percent_change, ci); menu = gtk_menu_new (); GtkWidget *item = gtk_check_menu_item_new_with_label ("1"); @@ -151,6 +185,13 @@ main (int argc, char ** argv) gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show(item); + item = gtk_menu_item_new_with_label ("Show label"); + label_toggle_cb(item, ci); + g_signal_connect (item, "activate", + G_CALLBACK (label_toggle_cb), ci); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show(item); + app_indicator_set_menu (ci, GTK_MENU (menu)); mainloop = g_main_loop_new(NULL, FALSE); diff --git a/gtk-doc.make b/gtk-doc.make index 63adaed..57fab98 100644 --- a/gtk-doc.make +++ b/gtk-doc.make @@ -75,8 +75,11 @@ $(REPORT_FILES): sgml-build.stamp scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo 'gtk-doc: Scanning header files' @-chmod -R u+w $(srcdir) - @cd $(srcdir) && \ - gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) @if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ else \ @@ -109,8 +112,11 @@ $(srcdir)/tmpl/*.sgml: sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) @echo 'gtk-doc: Building XML' @-chmod -R u+w $(srcdir) - @cd $(srcdir) && \ - gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) @touch sgml-build.stamp sgml.stamp: sgml-build.stamp diff --git a/src/Makefile.am b/src/Makefile.am index 68be1c0..1c4e7ae 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -44,17 +44,20 @@ indicator_application_service_SOURCES = \ application-service.c \ application-service-appstore.h \ application-service-appstore.c \ - application-service-lru-file.h \ - application-service-lru-file.c \ application-service-marshal.c \ application-service-watcher.h \ application-service-watcher.c \ app-indicator-enum-types.c \ - dbus-shared.h + dbus-shared.h \ + generate-id.h \ + generate-id.c + indicator_application_service_CFLAGS = \ $(INDICATOR_CFLAGS) \ + -DDATADIR="\"$(pkgdatadir)\"" \ -Wall -Werror \ -DG_LOG_DOMAIN=\"indicator-application-service\" + indicator_application_service_LDADD = \ $(INDICATOR_LIBS) \ libappindicator.la @@ -94,10 +97,13 @@ BUILT_SOURCES += \ libappindicator_la_SOURCES = \ $(libappindicator_headers) \ app-indicator-enum-types.c \ - app-indicator.c + app-indicator.c \ + application-service-marshal.c \ + generate-id.h \ + generate-id.c libappindicator_la_LDFLAGS = \ - -version-info 0:0:0 \ + -version-info 1:0:0 \ -no-undefined \ -export-symbols-regex "^[^_d].*" diff --git a/src/Makefile.in b/src/Makefile.in index 598f335..1078794 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -120,7 +120,9 @@ libappindicator_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am__objects_1 = am_libappindicator_la_OBJECTS = $(am__objects_1) \ libappindicator_la-app-indicator-enum-types.lo \ - libappindicator_la-app-indicator.lo + libappindicator_la-app-indicator.lo \ + libappindicator_la-application-service-marshal.lo \ + libappindicator_la-generate-id.lo libappindicator_la_OBJECTS = $(am_libappindicator_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) @@ -142,10 +144,10 @@ PROGRAMS = $(libexec_PROGRAMS) am_indicator_application_service_OBJECTS = \ indicator_application_service-application-service.$(OBJEXT) \ indicator_application_service-application-service-appstore.$(OBJEXT) \ - indicator_application_service-application-service-lru-file.$(OBJEXT) \ indicator_application_service-application-service-marshal.$(OBJEXT) \ indicator_application_service-application-service-watcher.$(OBJEXT) \ - indicator_application_service-app-indicator-enum-types.$(OBJEXT) + indicator_application_service-app-indicator-enum-types.$(OBJEXT) \ + indicator_application_service-generate-id.$(OBJEXT) indicator_application_service_OBJECTS = \ $(am_indicator_application_service_OBJECTS) indicator_application_service_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -284,6 +286,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ @@ -398,16 +402,17 @@ indicator_application_service_SOURCES = \ application-service.c \ application-service-appstore.h \ application-service-appstore.c \ - application-service-lru-file.h \ - application-service-lru-file.c \ application-service-marshal.c \ application-service-watcher.h \ application-service-watcher.c \ app-indicator-enum-types.c \ - dbus-shared.h + dbus-shared.h \ + generate-id.h \ + generate-id.c indicator_application_service_CFLAGS = \ $(INDICATOR_CFLAGS) \ + -DDATADIR="\"$(pkgdatadir)\"" \ -Wall -Werror \ -DG_LOG_DOMAIN=\"indicator-application-service\" @@ -440,10 +445,13 @@ libappindicatorinclude_HEADERS = \ libappindicator_la_SOURCES = \ $(libappindicator_headers) \ app-indicator-enum-types.c \ - app-indicator.c + app-indicator.c \ + application-service-marshal.c \ + generate-id.h \ + generate-id.c libappindicator_la_LDFLAGS = \ - -version-info 0:0:0 \ + -version-info 1:0:0 \ -no-undefined \ -export-symbols-regex "^[^_d].*" @@ -651,12 +659,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-app-indicator-enum-types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service-appstore.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service-lru-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service-marshal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service-watcher.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-application-service.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indicator_application_service-generate-id.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-app-indicator-enum-types.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-app-indicator.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-application-service-marshal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libappindicator_la-generate-id.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libapplication_la-application-service-marshal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libapplication_la-indicator-application.Plo@am__quote@ @@ -700,6 +710,22 @@ libappindicator_la-app-indicator.lo: app-indicator.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -c -o libappindicator_la-app-indicator.lo `test -f 'app-indicator.c' || echo '$(srcdir)/'`app-indicator.c +libappindicator_la-application-service-marshal.lo: application-service-marshal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -MT libappindicator_la-application-service-marshal.lo -MD -MP -MF $(DEPDIR)/libappindicator_la-application-service-marshal.Tpo -c -o libappindicator_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator_la-application-service-marshal.Tpo $(DEPDIR)/libappindicator_la-application-service-marshal.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='application-service-marshal.c' object='libappindicator_la-application-service-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -c -o libappindicator_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c + +libappindicator_la-generate-id.lo: generate-id.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -MT libappindicator_la-generate-id.lo -MD -MP -MF $(DEPDIR)/libappindicator_la-generate-id.Tpo -c -o libappindicator_la-generate-id.lo `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libappindicator_la-generate-id.Tpo $(DEPDIR)/libappindicator_la-generate-id.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate-id.c' object='libappindicator_la-generate-id.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libappindicator_la_CFLAGS) $(CFLAGS) -c -o libappindicator_la-generate-id.lo `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c + libapplication_la-application-service-marshal.lo: application-service-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libapplication_la_CFLAGS) $(CFLAGS) -MT libapplication_la-application-service-marshal.lo -MD -MP -MF $(DEPDIR)/libapplication_la-application-service-marshal.Tpo -c -o libapplication_la-application-service-marshal.lo `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libapplication_la-application-service-marshal.Tpo $(DEPDIR)/libapplication_la-application-service-marshal.Plo @@ -748,22 +774,6 @@ indicator_application_service-application-service-appstore.obj: application-serv @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-application-service-appstore.obj `if test -f 'application-service-appstore.c'; then $(CYGPATH_W) 'application-service-appstore.c'; else $(CYGPATH_W) '$(srcdir)/application-service-appstore.c'; fi` -indicator_application_service-application-service-lru-file.o: application-service-lru-file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -MT indicator_application_service-application-service-lru-file.o -MD -MP -MF $(DEPDIR)/indicator_application_service-application-service-lru-file.Tpo -c -o indicator_application_service-application-service-lru-file.o `test -f 'application-service-lru-file.c' || echo '$(srcdir)/'`application-service-lru-file.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/indicator_application_service-application-service-lru-file.Tpo $(DEPDIR)/indicator_application_service-application-service-lru-file.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='application-service-lru-file.c' object='indicator_application_service-application-service-lru-file.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-application-service-lru-file.o `test -f 'application-service-lru-file.c' || echo '$(srcdir)/'`application-service-lru-file.c - -indicator_application_service-application-service-lru-file.obj: application-service-lru-file.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -MT indicator_application_service-application-service-lru-file.obj -MD -MP -MF $(DEPDIR)/indicator_application_service-application-service-lru-file.Tpo -c -o indicator_application_service-application-service-lru-file.obj `if test -f 'application-service-lru-file.c'; then $(CYGPATH_W) 'application-service-lru-file.c'; else $(CYGPATH_W) '$(srcdir)/application-service-lru-file.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/indicator_application_service-application-service-lru-file.Tpo $(DEPDIR)/indicator_application_service-application-service-lru-file.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='application-service-lru-file.c' object='indicator_application_service-application-service-lru-file.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-application-service-lru-file.obj `if test -f 'application-service-lru-file.c'; then $(CYGPATH_W) 'application-service-lru-file.c'; else $(CYGPATH_W) '$(srcdir)/application-service-lru-file.c'; fi` - indicator_application_service-application-service-marshal.o: application-service-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -MT indicator_application_service-application-service-marshal.o -MD -MP -MF $(DEPDIR)/indicator_application_service-application-service-marshal.Tpo -c -o indicator_application_service-application-service-marshal.o `test -f 'application-service-marshal.c' || echo '$(srcdir)/'`application-service-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/indicator_application_service-application-service-marshal.Tpo $(DEPDIR)/indicator_application_service-application-service-marshal.Po @@ -812,6 +822,22 @@ indicator_application_service-app-indicator-enum-types.obj: app-indicator-enum-t @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-app-indicator-enum-types.obj `if test -f 'app-indicator-enum-types.c'; then $(CYGPATH_W) 'app-indicator-enum-types.c'; else $(CYGPATH_W) '$(srcdir)/app-indicator-enum-types.c'; fi` +indicator_application_service-generate-id.o: generate-id.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -MT indicator_application_service-generate-id.o -MD -MP -MF $(DEPDIR)/indicator_application_service-generate-id.Tpo -c -o indicator_application_service-generate-id.o `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/indicator_application_service-generate-id.Tpo $(DEPDIR)/indicator_application_service-generate-id.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate-id.c' object='indicator_application_service-generate-id.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-generate-id.o `test -f 'generate-id.c' || echo '$(srcdir)/'`generate-id.c + +indicator_application_service-generate-id.obj: generate-id.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -MT indicator_application_service-generate-id.obj -MD -MP -MF $(DEPDIR)/indicator_application_service-generate-id.Tpo -c -o indicator_application_service-generate-id.obj `if test -f 'generate-id.c'; then $(CYGPATH_W) 'generate-id.c'; else $(CYGPATH_W) '$(srcdir)/generate-id.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/indicator_application_service-generate-id.Tpo $(DEPDIR)/indicator_application_service-generate-id.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate-id.c' object='indicator_application_service-generate-id.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(indicator_application_service_CFLAGS) $(CFLAGS) -c -o indicator_application_service-generate-id.obj `if test -f 'generate-id.c'; then $(CYGPATH_W) 'generate-id.c'; else $(CYGPATH_W) '$(srcdir)/generate-id.c'; fi` + mostlyclean-libtool: -rm -f *.lo diff --git a/src/app-indicator.c b/src/app-indicator.c index 32f512f..6511589 100644 --- a/src/app-indicator.c +++ b/src/app-indicator.c @@ -37,11 +37,13 @@ License version 3 and version 2.1 along with this program. If not, see #include "app-indicator.h" #include "app-indicator-enum-types.h" +#include "application-service-marshal.h" #include "notification-item-server.h" #include "notification-watcher-client.h" #include "dbus-shared.h" +#include "generate-id.h" #define PANEL_ICON_SUFFIX "panel" @@ -69,9 +71,13 @@ struct _AppIndicatorPrivate { AppIndicatorStatus status; gchar *icon_name; gchar *attention_icon_name; - gchar * icon_path; + gchar *icon_theme_path; DbusmenuServer *menuservice; GtkWidget *menu; + guint32 ordering_index; + gchar * label; + gchar * label_guide; + guint label_change_idle; GtkStatusIcon * status_icon; gint fallback_timer; @@ -87,7 +93,10 @@ enum { NEW_ICON, NEW_ATTENTION_ICON, NEW_STATUS, + NEW_LABEL, + X_NEW_LABEL, CONNECTION_CHANGED, + NEW_ICON_THEME_PATH, LAST_SIGNAL }; @@ -104,7 +113,13 @@ enum { PROP_ATTENTION_ICON_NAME, PROP_ICON_THEME_PATH, PROP_MENU, - PROP_CONNECTED + PROP_CONNECTED, + PROP_LABEL, + PROP_LABEL_GUIDE, + PROP_X_LABEL, + PROP_X_LABEL_GUIDE, + PROP_ORDERING_INDEX, + PROP_X_ORDERING_INDEX }; /* The strings so that they can be slowly looked up. */ @@ -116,11 +131,20 @@ enum { #define PROP_ICON_THEME_PATH_S "icon-theme-path" #define PROP_MENU_S "menu" #define PROP_CONNECTED_S "connected" +#define PROP_LABEL_S "label" +#define PROP_LABEL_GUIDE_S "label-guide" +#define PROP_X_LABEL_S ("x-ayatana-" PROP_LABEL_S) +#define PROP_X_LABEL_GUIDE_S ("x-ayatana-" PROP_LABEL_GUIDE_S) +#define PROP_ORDERING_INDEX_S "ordering-index" +#define PROP_X_ORDERING_INDEX_S ("x-ayatana-" PROP_ORDERING_INDEX_S) /* Private macro, shhhh! */ #define APP_INDICATOR_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), APP_INDICATOR_TYPE, AppIndicatorPrivate)) +/* Signal wrapper */ +#define APP_INDICATOR_SIGNAL_X_NEW_LABEL ("x-ayatana-" APP_INDICATOR_SIGNAL_NEW_LABEL) + /* Default Path */ #define DEFAULT_ITEM_PATH "/org/ayatana/NotificationItem" @@ -136,6 +160,7 @@ static void app_indicator_finalize (GObject *object); static void app_indicator_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); /* Other stuff */ +static void signal_label_change (AppIndicator * self); static void check_connect (AppIndicator * self); static void register_service_cb (DBusGProxy * proxy, GError * error, gpointer data); static void start_fallback_timer (AppIndicator * self, gboolean disable_timeout); @@ -229,7 +254,7 @@ app_indicator_class_init (AppIndicatorClass *klass) "An icon for the indicator", "The default icon that is shown for the indicator.", NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT)); /** AppIndicator:attention-icon-name: @@ -256,7 +281,7 @@ app_indicator_class_init (AppIndicatorClass *klass) "An additional path for custom icons.", "An additional place to look for icon names that may be installed by the application.", NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY)); + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT)); /** AppIndicator:menu: @@ -284,7 +309,101 @@ app_indicator_class_init (AppIndicatorClass *klass) "Pretty simple, true if we have a reasonable expectation of being displayed through this object. You should hide your TrayIcon if so.", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:label: + + A label that can be shown next to the string in the application + indicator. The label will not be shown unless there is an icon + as well. The label is useful for numerical and other frequently + updated information. In general, it shouldn't be shown unless a + user requests it as it can take up a significant amount of space + on the user's panel. This may not be shown in all visualizations. + */ + g_object_class_install_property(object_class, + PROP_LABEL, + g_param_spec_string (PROP_LABEL_S, + "A label next to the icon", + "A label to provide dynamic information.", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:label-guide: + + An optional string to provide guidance to the panel on how big + the #AppIndicator:label string could get. If this is set correctly + then the panel should never 'jiggle' as the string adjusts through + out the range of options. For instance, if you were providing a + percentage like "54% thrust" in #AppIndicator:label you'd want to + set this string to "100% thrust" to ensure space when Scotty can + get you enough power. + */ + g_object_class_install_property(object_class, + PROP_LABEL_GUIDE, + g_param_spec_string (PROP_LABEL_GUIDE_S, + "A string to size the space available for the label.", + "To ensure that the label does not cause the panel to 'jiggle' this string should provide information on how much space it could take.", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:ordering-index: + + The ordering index is an odd parameter, and if you think you don't need + it you're probably right. In general, the application indicator try + to place the applications in a recreatable place taking into account + which category they're in to try and group them. But, there are some + cases where you'd want to ensure indicators are next to each other. + To do that you can override the generated ordering index and replace it + with a new one. Again, you probably don't want to be doing this, but + in case you do, this is the way. + */ + g_object_class_install_property(object_class, + PROP_ORDERING_INDEX, + g_param_spec_uint (PROP_ORDERING_INDEX_S, + "The location that this app indicator should be in the list.", + "A way to override the default ordering of the applications by providing a very specific idea of where this entry should be placed.", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:x-ayatana-ordering-index: + + A wrapper for #AppIndicator:ordering-index so that it can match the + dbus interface currently. It will hopefully be retired, please don't + use it anywhere. + */ + g_object_class_install_property(object_class, + PROP_X_ORDERING_INDEX, + g_param_spec_uint (PROP_X_ORDERING_INDEX_S, + "A wrapper, please don't use.", + "A wrapper, please don't use.", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:x-ayatana-label: + + Wrapper for #AppIndicator:label. Please use that in all of your + code. + */ + g_object_class_install_property(object_class, + PROP_X_LABEL, + g_param_spec_string (PROP_X_LABEL_S, + "A wrapper, please don't use.", + "A wrapper, please don't use.", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:x-ayatana-label-guide: + + Wrapper for #AppIndicator:label-guide. Please use that in all of your + code. + */ + g_object_class_install_property(object_class, + PROP_X_LABEL_GUIDE, + g_param_spec_string (PROP_X_LABEL_GUIDE_S, + "A wrapper, please don't use.", + "A wrapper, please don't use.", + NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /* Signals */ @@ -333,6 +452,40 @@ app_indicator_class_init (AppIndicatorClass *klass) G_TYPE_STRING); /** + AppIndicator::new-label: + @arg0: The #AppIndicator object + @arg1: The string for the label + @arg1: The string for the guide + + Emitted when either #AppIndicator:label or #AppIndicator:label-guide are + changed. + */ + signals[NEW_LABEL] = g_signal_new (APP_INDICATOR_SIGNAL_NEW_LABEL, + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AppIndicatorClass, new_label), + NULL, NULL, + _application_service_marshal_VOID__STRING_STRING, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + + /** + AppIndicator::x-ayatana-new-label: + @arg0: The #AppIndicator object + @arg1: The string for the label + @arg1: The string for the guide + + Wrapper for #AppIndicator::new-label, please don't use this signal + use the other one. + */ + signals[X_NEW_LABEL] = g_signal_new (APP_INDICATOR_SIGNAL_X_NEW_LABEL, + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AppIndicatorClass, new_label), + NULL, NULL, + _application_service_marshal_VOID__STRING_STRING, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + + /** AppIndicator::connection-changed: @arg0: The #AppIndicator object @arg1: Whether we're connected or not @@ -347,6 +500,21 @@ app_indicator_class_init (AppIndicatorClass *klass) g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN, G_TYPE_NONE); + /** + AppIndicator::new-icon-theme-path: + @arg0: The #AppIndicator object + + Signaled when there is a new icon set for the + object. + */ + signals[NEW_ICON_THEME_PATH] = g_signal_new (APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH, + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AppIndicatorClass, new_icon_theme_path), + NULL, NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, G_TYPE_STRING); + /* Initialize the object as a DBus type */ dbus_g_object_type_install_info(APP_INDICATOR_TYPE, &dbus_glib__notification_item_server_object_info); @@ -365,9 +533,13 @@ app_indicator_init (AppIndicator *self) priv->status = APP_INDICATOR_STATUS_PASSIVE; priv->icon_name = NULL; priv->attention_icon_name = NULL; - priv->icon_path = NULL; + priv->icon_theme_path = NULL; priv->menu = NULL; priv->menuservice = NULL; + priv->ordering_index = 0; + priv->label = NULL; + priv->label_guide = NULL; + priv->label_change_idle = 0; priv->watcher_proxy = NULL; priv->connection = NULL; @@ -419,6 +591,11 @@ app_indicator_dispose (GObject *object) priv->fallback_timer = 0; } + if (priv->label_change_idle != 0) { + g_source_remove(priv->label_change_idle); + priv->label_change_idle = 0; + } + if (priv->menu != NULL) { g_signal_handlers_disconnect_by_func (G_OBJECT (priv->menu), client_menu_changed, @@ -487,9 +664,19 @@ app_indicator_finalize (GObject *object) priv->attention_icon_name = NULL; } - if (priv->icon_path != NULL) { - g_free(priv->icon_path); - priv->icon_path = NULL; + if (priv->icon_theme_path != NULL) { + g_free(priv->icon_theme_path); + priv->icon_theme_path = NULL; + } + + if (priv->label != NULL) { + g_free(priv->label); + priv->label = NULL; + } + + if (priv->label_guide != NULL) { + g_free(priv->label_guide); + priv->label_guide = NULL; } G_OBJECT_CLASS (app_indicator_parent_class)->finalize (object); @@ -557,12 +744,54 @@ app_indicator_set_property (GObject * object, guint prop_id, const GValue * valu break; case PROP_ICON_THEME_PATH: - if (priv->icon_path != NULL) { - g_free(priv->icon_path); - } - priv->icon_path = g_value_dup_string(value); + app_indicator_set_icon_theme_path (APP_INDICATOR (object), + g_value_get_string (value)); + check_connect (self); break; + case PROP_X_LABEL: + case PROP_LABEL: { + gchar * oldlabel = priv->label; + priv->label = g_value_dup_string(value); + + if (g_strcmp0(oldlabel, priv->label) != 0) { + signal_label_change(APP_INDICATOR(object)); + } + + if (priv->label != NULL && priv->label[0] == '\0') { + g_free(priv->label); + priv->label = NULL; + } + + if (oldlabel != NULL) { + g_free(oldlabel); + } + break; + } + case PROP_X_LABEL_GUIDE: + case PROP_LABEL_GUIDE: { + gchar * oldguide = priv->label_guide; + priv->label_guide = g_value_dup_string(value); + + if (g_strcmp0(oldguide, priv->label_guide) != 0) { + signal_label_change(APP_INDICATOR(object)); + } + + if (priv->label_guide != NULL && priv->label_guide[0] == '\0') { + g_free(priv->label_guide); + priv->label_guide = NULL; + } + + if (oldguide != NULL) { + g_free(oldguide); + } + break; + } + case PROP_X_ORDERING_INDEX: + case PROP_ORDERING_INDEX: + priv->ordering_index = g_value_get_uint(value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -603,7 +832,7 @@ app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GPa break; case PROP_ICON_THEME_PATH: - g_value_set_string (value, priv->icon_path); + g_value_set_string (value, priv->icon_theme_path); break; case PROP_MENU: @@ -620,6 +849,21 @@ app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GPa g_value_set_boolean (value, priv->watcher_proxy != NULL ? TRUE : FALSE); break; + case PROP_X_LABEL: + case PROP_LABEL: + g_value_set_string (value, priv->label); + break; + + case PROP_X_LABEL_GUIDE: + case PROP_LABEL_GUIDE: + g_value_set_string (value, priv->label_guide); + break; + + case PROP_X_ORDERING_INDEX: + case PROP_ORDERING_INDEX: + g_value_set_uint(value, priv->ordering_index); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -628,6 +872,43 @@ app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GPa return; } +/* Sends the label changed signal and resets the source ID */ +static gboolean +signal_label_change_idle (gpointer user_data) +{ + AppIndicator * self = (AppIndicator *)user_data; + AppIndicatorPrivate *priv = self->priv; + + g_signal_emit(G_OBJECT(self), signals[NEW_LABEL], 0, + priv->label != NULL ? priv->label : "", + priv->label_guide != NULL ? priv->label_guide : "", + TRUE); + g_signal_emit(G_OBJECT(self), signals[X_NEW_LABEL], 0, + priv->label != NULL ? priv->label : "", + priv->label_guide != NULL ? priv->label_guide : "", + TRUE); + + priv->label_change_idle = 0; + + return FALSE; +} + +/* Sets up an idle function to send the label changed signal + so that we don't send it too many times. */ +static void +signal_label_change (AppIndicator * self) +{ + AppIndicatorPrivate *priv = self->priv; + + /* don't set it twice */ + if (priv->label_change_idle != 0) { + return; + } + + priv->label_change_idle = g_idle_add(signal_label_change_idle, self); + return; +} + /* This function is used to see if we have enough information to connect to things. If we do, and we're not connected, it connects for us. */ @@ -1025,12 +1306,12 @@ app_indicator_new (const gchar *id, @id: The unique id of the indicator to create. @icon_name: The icon name for this indicator @category: The category of indicator. - @icon_path: A custom path for finding icons. + @icon_theme_path: A custom path for finding icons. Creates a new #AppIndicator setting the properties: #AppIndicator:id with @id, #AppIndicator:category with @category, #AppIndicator:icon-name with - @icon_name and #AppIndicator:icon-theme-path with @icon_path. + @icon_name and #AppIndicator:icon-theme-path with @icon_theme_path. Return value: A pointer to a new #AppIndicator object. */ @@ -1038,13 +1319,13 @@ AppIndicator * app_indicator_new_with_path (const gchar *id, const gchar *icon_name, AppIndicatorCategory category, - const gchar *icon_path) + const gchar *icon_theme_path) { AppIndicator *indicator = g_object_new (APP_INDICATOR_TYPE, PROP_ID_S, id, PROP_CATEGORY_S, category_from_enum (category), PROP_ICON_NAME_S, icon_name, - PROP_ICON_THEME_PATH_S, icon_path, + PROP_ICON_THEME_PATH_S, icon_theme_path, NULL); return indicator; @@ -1134,6 +1415,56 @@ app_indicator_set_icon (AppIndicator *self, const gchar *icon_name) return; } +/** + app_indicator_set_label: + @self: The #AppIndicator object to use + @label: The label to show next to the icon. + @guide: A guide to size the label correctly. + + This is a wrapper function for the #AppIndicator:label and + #AppIndicator:guide properties. This function can take #NULL + as either @label or @guide and will clear the entries. +*/ +void +app_indicator_set_label (AppIndicator *self, const gchar * label, const gchar * guide) +{ + g_return_if_fail (IS_APP_INDICATOR (self)); + /* Note: The label can be NULL, it's okay */ + /* Note: The guide can be NULL, it's okay */ + + g_object_set(G_OBJECT(self), + PROP_LABEL_S, label == NULL ? "" : label, + PROP_LABEL_GUIDE_S, guide == NULL ? "" : guide, + NULL); + + return; +} + +/** + app_indicator_set_icon_theme_path: + @self: The #AppIndicator object to use + @icon_theme_path: The icon theme path to set. + + Sets the path to use when searching for icons. +**/ +void +app_indicator_set_icon_theme_path (AppIndicator *self, const gchar *icon_theme_path) +{ + g_return_if_fail (IS_APP_INDICATOR (self)); + + if (g_strcmp0 (self->priv->icon_theme_path, icon_theme_path) != 0) + { + if (self->priv->icon_theme_path != NULL) + g_free(self->priv->icon_theme_path); + + self->priv->icon_theme_path = g_strdup(icon_theme_path); + + g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, g_strdup(self->priv->icon_theme_path)); + } + + return; +} + static void activate_menuitem (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data) { @@ -1562,6 +1893,27 @@ app_indicator_set_menu (AppIndicator *self, GtkMenu *menu) } /** + app_indicator_set_ordering_index: + @self: The #AppIndicator + @ordering_index: A value for the ordering of this app indicator + + Sets the ordering index for the app indicator which effects the + placement of it on the panel. For almost all app indicator + this is not the function you're looking for. + + Wrapper function for property #AppIndicator:ordering-index. +**/ +void +app_indicator_set_ordering_index (AppIndicator *self, guint32 ordering_index) +{ + g_return_if_fail (IS_APP_INDICATOR (self)); + + self->priv->ordering_index = ordering_index; + + return; +} + +/** app_indicator_get_id: @self: The #AppIndicator object to use @@ -1626,6 +1978,22 @@ app_indicator_get_icon (AppIndicator *self) } /** + app_indicator_get_icon_theme_path: + @self: The #AppIndicator object to use + + Wrapper function for property #AppIndicator:icon-theme-path. + + Return value: The current icon theme path. +*/ +const gchar * +app_indicator_get_icon_theme_path (AppIndicator *self) +{ + g_return_val_if_fail (IS_APP_INDICATOR (self), NULL); + + return self->priv->icon_theme_path; +} + +/** app_indicator_get_attention_icon: @self: The #AppIndicator object to use @@ -1661,3 +2029,56 @@ app_indicator_get_menu (AppIndicator *self) return GTK_MENU(priv->menu); } + +/** + app_indicator_get_label: + @self: The #AppIndicator object to use + + Wrapper function for property #AppIndicator:label. + + Return value: The current label. +*/ +const gchar * +app_indicator_get_label (AppIndicator *self) +{ + g_return_val_if_fail (IS_APP_INDICATOR (self), NULL); + + return self->priv->label; +} + +/** + app_indicator_get_label_guide: + @self: The #AppIndicator object to use + + Wrapper function for property #AppIndicator:label-guide. + + Return value: The current label guide. +*/ +const gchar * +app_indicator_get_label_guide (AppIndicator *self) +{ + g_return_val_if_fail (IS_APP_INDICATOR (self), NULL); + + return self->priv->label_guide; +} + +/** + app_indicator_get_ordering_index: + @self: The #AppIndicator object to use + + Wrapper function for property #AppIndicator:ordering-index. + + Return value: The current ordering index. +*/ +guint32 +app_indicator_get_ordering_index (AppIndicator *self) +{ + g_return_val_if_fail (IS_APP_INDICATOR (self), 0); + + if (self->priv->ordering_index == 0) { + return generate_id(self->priv->category, self->priv->id); + } else { + return self->priv->ordering_index; + } +} + diff --git a/src/app-indicator.h b/src/app-indicator.h index e37abd4..ce152bb 100644 --- a/src/app-indicator.h +++ b/src/app-indicator.h @@ -69,6 +69,7 @@ G_BEGIN_DECLS Gets a pointer to the #AppIndicatorClass for the object @obj. */ + #define APP_INDICATOR_TYPE (app_indicator_get_type ()) #define APP_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), APP_INDICATOR_TYPE, AppIndicator)) #define APP_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), APP_INDICATOR_TYPE, AppIndicatorClass)) @@ -92,14 +93,26 @@ G_BEGIN_DECLS String identifier for the #AppIndicator::new-status signal. */ /** + APP_INDICATOR_SIGNAL_NEW_LABEL: + + String identifier for the #AppIndicator::new-label signal. +*/ +/** APP_INDICATOR_SIGNAL_CONNECTION_CHANGED: String identifier for the #AppIndicator::connection-changed signal. */ +/** + APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH: + + String identifier for the #AppIndicator::new-icon-theme-path signal. +*/ #define APP_INDICATOR_SIGNAL_NEW_ICON "new-icon" #define APP_INDICATOR_SIGNAL_NEW_ATTENTION_ICON "new-attention-icon" #define APP_INDICATOR_SIGNAL_NEW_STATUS "new-status" +#define APP_INDICATOR_SIGNAL_NEW_LABEL "new-label" #define APP_INDICATOR_SIGNAL_CONNECTION_CHANGED "connection-changed" +#define APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH "new-icon-theme-path" /** AppIndicatorCategory: @@ -147,13 +160,21 @@ typedef struct _AppIndicatorPrivate AppIndicatorPrivate; @new_icon: Slot for #AppIndicator::new-icon. @new_attention_icon: Slot for #AppIndicator::new-attention-icon. @new_status: Slot for #AppIndicator::new-status. + @new_icon_theme_path: Slot for #AppIndicator::new-icon-theme-path + @new_label: Slot for #AppIndicator::new-label. @connection_changed: Slot for #AppIndicator::connection-changed. + @app_indicator_reserved_sw: Reserved for future use. + @app_indicator_reserved_ats: Reserved for future use. @fallback: Function that gets called to make a #GtkStatusIcon when there is no Application Indicator area available. @unfallback: The function that gets called if an Application Indicator area appears after the fallback has been created. @app_indicator_reserved_1: Reserved for future use. @app_indicator_reserved_2: Reserved for future use. + @app_indicator_reserved_3: Reserved for future use. + @app_indicator_reserved_4: Reserved for future use. + @app_indicator_reserved_5: Reserved for future use. + @app_indicator_reserved_6: Reserved for future use. The signals and external functions that make up the #AppIndicator class object. @@ -163,18 +184,27 @@ struct _AppIndicatorClass { GObjectClass parent_class; /* DBus Signals */ - void (* new_icon) (AppIndicator *indicator, + void (* new_icon) (AppIndicator *indicator, + gpointer user_data); + void (* new_attention_icon) (AppIndicator *indicator, + gpointer user_data); + void (* new_status) (AppIndicator *indicator, + const gchar *status, gpointer user_data); - void (* new_attention_icon) (AppIndicator *indicator, + void (* new_icon_theme_path) (AppIndicator *indicator, + const gchar *icon_theme_path, gpointer user_data); - void (* new_status) (AppIndicator *indicator, - const gchar *status, + void (* new_label) (AppIndicator *indicator, + const gchar *label, + const gchar *guide, gpointer user_data); /* Local Signals */ void (* connection_changed) (AppIndicator * indicator, gboolean connected, gpointer user_data); + void (*app_indicator_reserved_sw)(void); + void (*app_indicator_reserved_ats)(void); /* Overridable Functions */ GtkStatusIcon * (*fallback) (AppIndicator * indicator); @@ -184,6 +214,10 @@ struct _AppIndicatorClass { /* Reserved */ void (*app_indicator_reserved_1)(void); void (*app_indicator_reserved_2)(void); + void (*app_indicator_reserved_3)(void); + void (*app_indicator_reserved_4)(void); + void (*app_indicator_reserved_5)(void); + void (*app_indicator_reserved_6)(void); }; /** @@ -215,7 +249,7 @@ AppIndicator *app_indicator_new (const gchar AppIndicator *app_indicator_new_with_path (const gchar *id, const gchar *icon_name, AppIndicatorCategory category, - const gchar *icon_path); + const gchar *icon_theme_path); /* Set properties */ void app_indicator_set_status (AppIndicator *self, @@ -226,14 +260,25 @@ void app_indicator_set_menu (AppIndicator GtkMenu *menu); void app_indicator_set_icon (AppIndicator *self, const gchar *icon_name); +void app_indicator_set_label (AppIndicator *self, + const gchar *label, + const gchar *guide); +void app_indicator_set_icon_theme_path(AppIndicator *self, + const gchar *icon_theme_path); +void app_indicator_set_ordering_index (AppIndicator *self, + guint32 ordering_index); /* Get properties */ const gchar * app_indicator_get_id (AppIndicator *self); AppIndicatorCategory app_indicator_get_category (AppIndicator *self); AppIndicatorStatus app_indicator_get_status (AppIndicator *self); const gchar * app_indicator_get_icon (AppIndicator *self); +const gchar * app_indicator_get_icon_theme_path(AppIndicator *self); const gchar * app_indicator_get_attention_icon (AppIndicator *self); GtkMenu * app_indicator_get_menu (AppIndicator *self); +const gchar * app_indicator_get_label (AppIndicator *self); +const gchar * app_indicator_get_label_guide (AppIndicator *self); +guint32 app_indicator_get_ordering_index (AppIndicator *self); G_END_DECLS diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index 311fcb1..4ac1576 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -32,30 +32,39 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "dbus-properties-client.h" #include "dbus-shared.h" #include "notification-approver-client.h" +#include "generate-id.h" /* DBus Prototypes */ static gboolean _application_service_server_get_applications (ApplicationServiceAppstore * appstore, GPtrArray ** apps, GError ** error); #include "application-service-server.h" -#define NOTIFICATION_ITEM_PROP_ID "Id" -#define NOTIFICATION_ITEM_PROP_CATEGORY "Category" -#define NOTIFICATION_ITEM_PROP_STATUS "Status" -#define NOTIFICATION_ITEM_PROP_ICON_NAME "IconName" -#define NOTIFICATION_ITEM_PROP_AICON_NAME "AttentionIconName" -#define NOTIFICATION_ITEM_PROP_ICON_PATH "IconThemePath" -#define NOTIFICATION_ITEM_PROP_MENU "Menu" - -#define NOTIFICATION_ITEM_SIG_NEW_ICON "NewIcon" -#define NOTIFICATION_ITEM_SIG_NEW_AICON "NewAttentionIcon" -#define NOTIFICATION_ITEM_SIG_NEW_STATUS "NewStatus" +#define NOTIFICATION_ITEM_PROP_ID "Id" +#define NOTIFICATION_ITEM_PROP_CATEGORY "Category" +#define NOTIFICATION_ITEM_PROP_STATUS "Status" +#define NOTIFICATION_ITEM_PROP_ICON_NAME "IconName" +#define NOTIFICATION_ITEM_PROP_AICON_NAME "AttentionIconName" +#define NOTIFICATION_ITEM_PROP_ICON_THEME_PATH "IconThemePath" +#define NOTIFICATION_ITEM_PROP_MENU "Menu" +#define NOTIFICATION_ITEM_PROP_LABEL "XAyatanaLabel" +#define NOTIFICATION_ITEM_PROP_LABEL_GUIDE "XAyatanaLabelGuide" +#define NOTIFICATION_ITEM_PROP_ORDERING_INDEX "XAyatanaOrderingIndex" + +#define NOTIFICATION_ITEM_SIG_NEW_ICON "NewIcon" +#define NOTIFICATION_ITEM_SIG_NEW_AICON "NewAttentionIcon" +#define NOTIFICATION_ITEM_SIG_NEW_STATUS "NewStatus" +#define NOTIFICATION_ITEM_SIG_NEW_LABEL "XAyatanaNewLabel" +#define NOTIFICATION_ITEM_SIG_NEW_ICON_THEME_PATH "NewIconThemePath" + +#define OVERRIDE_GROUP_NAME "Ordering Index Overrides" +#define OVERRIDE_FILE_NAME "ordering-override.keyfile" /* Private Stuff */ struct _ApplicationServiceAppstorePrivate { DBusGConnection * bus; GList * applications; GList * approvers; - AppLruFile * lrufile; + GHashTable * ordering_overrides; }; typedef struct _Approver Approver; @@ -77,8 +86,11 @@ struct _Application { gchar * icon; gchar * aicon; gchar * menu; - gchar * icon_path; + gchar * icon_theme_path; + gchar * label; + gchar * guide; gboolean currently_free; + guint ordering_index; }; #define APPLICATION_SERVICE_APPSTORE_GET_PRIVATE(o) \ @@ -89,6 +101,8 @@ enum { APPLICATION_ADDED, APPLICATION_REMOVED, APPLICATION_ICON_CHANGED, + APPLICATION_LABEL_CHANGED, + APPLICATION_ICON_THEME_PATH_CHANGED, LAST_SIGNAL }; @@ -99,7 +113,9 @@ static void application_service_appstore_class_init (ApplicationServiceAppstoreC static void application_service_appstore_init (ApplicationServiceAppstore *self); static void application_service_appstore_dispose (GObject *object); static void application_service_appstore_finalize (GObject *object); +static void load_override_file (GHashTable * hash, const gchar * filename); static AppIndicatorStatus string_to_status(const gchar * status_string); +static AppIndicatorCategory string_to_cat(const gchar * cat_string); static void apply_status (Application * app, AppIndicatorStatus status); static void approver_free (gpointer papprover, gpointer user_data); static void check_with_new_approver (gpointer papp, gpointer papprove); @@ -122,8 +138,8 @@ application_service_appstore_class_init (ApplicationServiceAppstoreClass *klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ApplicationServiceAppstoreClass, application_added), NULL, NULL, - _application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING, - G_TYPE_NONE, 5, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_NONE); + _application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING, + G_TYPE_NONE, 7, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_NONE); signals[APPLICATION_REMOVED] = g_signal_new ("application-removed", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, @@ -138,6 +154,26 @@ application_service_appstore_class_init (ApplicationServiceAppstoreClass *klass) NULL, NULL, _application_service_marshal_VOID__INT_STRING, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_STRING, G_TYPE_NONE); + signals[APPLICATION_ICON_THEME_PATH_CHANGED] = g_signal_new ("application-icon-theme-path-changed", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (ApplicationServiceAppstoreClass, application_icon_theme_path_changed), + NULL, NULL, + _application_service_marshal_VOID__INT_STRING, + G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_STRING, G_TYPE_NONE); + signals[APPLICATION_LABEL_CHANGED] = g_signal_new ("application-label-changed", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (ApplicationServiceAppstoreClass, application_label_changed), + NULL, NULL, + _application_service_marshal_VOID__INT_STRING_STRING, + G_TYPE_NONE, 3, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_NONE); + + dbus_g_object_register_marshaller(_application_service_marshal_VOID__STRING_STRING, + G_TYPE_NONE, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_INVALID); dbus_g_object_type_install_info(APPLICATION_SERVICE_APPSTORE_TYPE, &dbus_glib__application_service_server_object_info); @@ -153,7 +189,13 @@ application_service_appstore_init (ApplicationServiceAppstore *self) priv->applications = NULL; priv->approvers = NULL; - priv->lrufile = NULL; + + priv->ordering_overrides = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); + + load_override_file(priv->ordering_overrides, DATADIR "/" OVERRIDE_FILE_NAME); + gchar * userfile = g_build_filename(g_get_user_data_dir(), "indicators", "application", OVERRIDE_FILE_NAME, NULL); + load_override_file(priv->ordering_overrides, userfile); + g_free(userfile); GError * error = NULL; priv->bus = dbus_g_bus_get(DBUS_BUS_STARTER, &error); @@ -196,11 +238,71 @@ application_service_appstore_dispose (GObject *object) static void application_service_appstore_finalize (GObject *object) { + ApplicationServiceAppstorePrivate * priv = APPLICATION_SERVICE_APPSTORE(object)->priv; + + if (priv->ordering_overrides != NULL) { + g_hash_table_destroy(priv->ordering_overrides); + priv->ordering_overrides = NULL; + } G_OBJECT_CLASS (application_service_appstore_parent_class)->finalize (object); return; } +/* Loads the file and adds the override entries to the table + of overrides */ +static void +load_override_file (GHashTable * hash, const gchar * filename) +{ + g_return_if_fail(hash != NULL); + g_return_if_fail(filename != NULL); + + if (!g_file_test(filename, G_FILE_TEST_EXISTS)) { + return; + } + + g_debug("Loading overrides from: '%s'", filename); + + GError * error = NULL; + GKeyFile * keyfile = g_key_file_new(); + g_key_file_load_from_file(keyfile, filename, G_KEY_FILE_NONE, &error); + + if (error != NULL) { + g_warning("Unable to load keyfile '%s' because: %s", filename, error->message); + g_error_free(error); + g_key_file_free(keyfile); + return; + } + + gchar ** keys = g_key_file_get_keys(keyfile, OVERRIDE_GROUP_NAME, NULL, &error); + if (error != NULL) { + g_warning("Unable to get keys from keyfile '%s' because: %s", filename, error->message); + g_error_free(error); + g_key_file_free(keyfile); + return; + } + + gchar * key = keys[0]; + gint i; + + for (i = 0; (key = keys[i]) != NULL; i++) { + GError * valerror = NULL; + gint val = g_key_file_get_integer(keyfile, OVERRIDE_GROUP_NAME, key, &valerror); + + if (valerror != NULL) { + g_warning("Unable to get key '%s' out of file '%s' because: %s", key, filename, valerror->message); + g_error_free(valerror); + continue; + } + g_debug("%s: override '%s' with value '%d'", filename, key, val); + + g_hash_table_insert(hash, g_strdup(key), GINT_TO_POINTER(val)); + } + g_key_file_free(keyfile); + + return; +} + /* Return from getting the properties from the item. We're looking at those and making sure we have everythign that we need. If we do, then we'll move on up to sending this onto the indicator. */ @@ -229,7 +331,6 @@ get_all_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * err app->id = g_value_dup_string(g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_ID)); app->category = g_value_dup_string(g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_CATEGORY)); ApplicationServiceAppstorePrivate * priv = app->appstore->priv; - app_lru_file_touch(priv->lrufile, app->id, app->category); app->icon = g_value_dup_string(g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_ICON_NAME)); @@ -246,11 +347,38 @@ get_all_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * err app->aicon = g_value_dup_string(g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_AICON_NAME)); } - gpointer icon_path_data = g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_ICON_PATH); - if (icon_path_data != NULL) { - app->icon_path = g_value_dup_string((GValue *)icon_path_data); + gpointer icon_theme_path_data = g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_ICON_THEME_PATH); + if (icon_theme_path_data != NULL) { + app->icon_theme_path = g_value_dup_string((GValue *)icon_theme_path_data); + } else { + app->icon_theme_path = g_strdup(""); + } + + gpointer ordering_index_over = g_hash_table_lookup(priv->ordering_overrides, app->id); + if (ordering_index_over == NULL) { + gpointer ordering_index_data = g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_ORDERING_INDEX); + if (ordering_index_data == NULL || g_value_get_uint(ordering_index_data) == 0) { + app->ordering_index = generate_id(string_to_cat(app->category), app->id); + } else { + app->ordering_index = g_value_get_uint(ordering_index_data); + } } else { - app->icon_path = g_strdup(""); + app->ordering_index = GPOINTER_TO_UINT(ordering_index_over); + } + g_debug("'%s' ordering index is '%X'", app->id, app->ordering_index); + + gpointer label_data = g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_LABEL); + if (label_data != NULL) { + app->label = g_value_dup_string((GValue *)label_data); + } else { + app->label = g_strdup(""); + } + + gpointer guide_data = g_hash_table_lookup(properties, NOTIFICATION_ITEM_PROP_LABEL_GUIDE); + if (guide_data != NULL) { + app->guide = g_value_dup_string((GValue *)guide_data); + } else { + app->guide = g_strdup(""); } /* TODO: Calling approvers, but we're ignoring the results. So, eh. */ @@ -291,6 +419,28 @@ string_to_status(const gchar * status_string) return retval; } +/* Simple translation function -- could be optimized */ +static AppIndicatorCategory +string_to_cat(const gchar * cat_string) +{ + GEnumClass * klass = G_ENUM_CLASS(g_type_class_ref(APP_INDICATOR_TYPE_INDICATOR_CATEGORY)); + g_return_val_if_fail(klass != NULL, APP_INDICATOR_CATEGORY_OTHER); + + AppIndicatorCategory retval = APP_INDICATOR_CATEGORY_OTHER; + + GEnumValue * val = g_enum_get_value_by_nick(klass, cat_string); + if (val == NULL) { + g_warning("Unrecognized status '%s' assuming other.", cat_string); + } else { + retval = (AppIndicatorCategory)val->value; + } + + g_type_class_unref(klass); + + return retval; +} + + /* A small helper function to get the position of an application in the app list. */ static gint @@ -346,8 +496,14 @@ application_free (Application * app) if (app->menu != NULL) { g_free(app->menu); } - if (app->icon_path != NULL) { - g_free(app->icon_path); + if (app->icon_theme_path != NULL) { + g_free(app->icon_theme_path); + } + if (app->label != NULL) { + g_free(app->label); + } + if (app->guide != NULL) { + g_free(app->guide); } g_free(app); @@ -392,15 +548,13 @@ can_add_application (GList *applications, Application *app) } /* This function takes two Application structure - pointers and uses the lrufile to compare them. */ + pointers and uses their ordering index to compare them. */ static gint app_sort_func (gconstpointer a, gconstpointer b, gpointer userdata) { Application * appa = (Application *)a; Application * appb = (Application *)b; - AppLruFile * lrufile = (AppLruFile *)userdata; - - return app_lru_file_sort(lrufile, appa->id, appb->id); + return (appb->ordering_index/2) - (appa->ordering_index/2); } /* Change the status of the application. If we're going passive @@ -437,7 +591,7 @@ apply_status (Application * app, AppIndicatorStatus status) if (app->status == APP_INDICATOR_STATUS_PASSIVE) { if (can_add_application (priv->applications, app)) { /* Put on panel */ - priv->applications = g_list_insert_sorted_with_data (priv->applications, app, app_sort_func, priv->lrufile); + priv->applications = g_list_insert_sorted_with_data (priv->applications, app, app_sort_func, NULL); g_signal_emit(G_OBJECT(app->appstore), signals[APPLICATION_ADDED], 0, @@ -445,7 +599,9 @@ apply_status (Application * app, AppIndicatorStatus status) g_list_index(priv->applications, app), /* Position */ app->dbus_name, app->menu, - app->icon_path, + app->icon_theme_path, + app->label, + app->guide, TRUE); } } else { @@ -586,6 +742,74 @@ new_status (DBusGProxy * proxy, const gchar * status, gpointer data) return; } +/* Called when the Notification Item signals that it + has a new icon theme path. */ +static void +new_icon_theme_path (DBusGProxy * proxy, const gchar * icon_theme_path, gpointer data) +{ + Application * app = (Application *)data; + if (!app->validated) return; + + if (g_strcmp0(icon_theme_path, app->icon_theme_path)) { + /* If the new icon theme path is actually a new icon theme path */ + if (app->icon_theme_path != NULL) g_free(app->icon_theme_path); + app->icon_theme_path = g_strdup(icon_theme_path); + + if (app->status == APP_INDICATOR_STATUS_ACTIVE) { + gint position = get_position(app); + if (position == -1) return; + + g_signal_emit(G_OBJECT(app->appstore), + signals[APPLICATION_ICON_THEME_PATH_CHANGED], 0, + position, app->icon_theme_path, TRUE); + } + } + + return; +} + +/* Called when the Notification Item signals that it + has a new label. */ +static void +new_label (DBusGProxy * proxy, const gchar * label, const gchar * guide, gpointer data) +{ + Application * app = (Application *)data; + if (!app->validated) return; + + gboolean changed = FALSE; + + if (g_strcmp0(app->label, label) != 0) { + changed = TRUE; + if (app->label != NULL) { + g_free(app->label); + app->label = NULL; + } + app->label = g_strdup(label); + } + + if (g_strcmp0(app->guide, guide) != 0) { + changed = TRUE; + if (app->guide != NULL) { + g_free(app->guide); + app->guide = NULL; + } + app->guide = g_strdup(guide); + } + + if (changed) { + gint position = get_position(app); + if (position == -1) return; + + g_signal_emit(app->appstore, signals[APPLICATION_LABEL_CHANGED], 0, + position, + app->label != NULL ? app->label : "", + app->guide != NULL ? app->guide : "", + TRUE); + } + + return; +} + /* Adding a new NotificationItem object from DBus in to the appstore. First, we need to get the information on it though. */ @@ -612,8 +836,11 @@ application_service_appstore_application_add (ApplicationServiceAppstore * appst app->icon = NULL; app->aicon = NULL; app->menu = NULL; - app->icon_path = NULL; + app->icon_theme_path = NULL; + app->label = NULL; + app->guide = NULL; app->currently_free = FALSE; + app->ordering_index = 0; /* Get the DBus proxy for the NotificationItem interface */ GError * error = NULL; @@ -659,6 +886,15 @@ application_service_appstore_application_add (ApplicationServiceAppstore * appst NOTIFICATION_ITEM_SIG_NEW_STATUS, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal(app->dbus_proxy, + NOTIFICATION_ITEM_SIG_NEW_ICON_THEME_PATH, + G_TYPE_STRING, + G_TYPE_INVALID); + dbus_g_proxy_add_signal(app->dbus_proxy, + NOTIFICATION_ITEM_SIG_NEW_LABEL, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_INVALID); dbus_g_proxy_connect_signal(app->dbus_proxy, NOTIFICATION_ITEM_SIG_NEW_ICON, @@ -675,6 +911,16 @@ application_service_appstore_application_add (ApplicationServiceAppstore * appst G_CALLBACK(new_status), app, NULL); + dbus_g_proxy_connect_signal(app->dbus_proxy, + NOTIFICATION_ITEM_SIG_NEW_ICON_THEME_PATH, + G_CALLBACK(new_icon_theme_path), + app, + NULL); + dbus_g_proxy_connect_signal(app->dbus_proxy, + NOTIFICATION_ITEM_SIG_NEW_LABEL, + G_CALLBACK(new_label), + app, + NULL); /* Get all the propertiees */ org_freedesktop_DBus_Properties_get_all_async(app->prop_proxy, @@ -714,12 +960,9 @@ application_service_appstore_application_remove (ApplicationServiceAppstore * ap /* Creates a basic appstore object and attaches the LRU file object to it. */ ApplicationServiceAppstore * -application_service_appstore_new (AppLruFile * lrufile) +application_service_appstore_new (void) { - g_return_val_if_fail(IS_APP_LRU_FILE(lrufile), NULL); ApplicationServiceAppstore * appstore = APPLICATION_SERVICE_APPSTORE(g_object_new(APPLICATION_SERVICE_APPSTORE_TYPE, NULL)); - ApplicationServiceAppstorePrivate * priv = appstore->priv; - priv->lrufile = lrufile; return appstore; } @@ -734,13 +977,14 @@ _application_service_server_get_applications (ApplicationServiceAppstore * appst gint position = 0; for (listpntr = priv->applications; listpntr != NULL; listpntr = g_list_next(listpntr)) { + Application * app = (Application *)listpntr->data; GValueArray * values = g_value_array_new(5); GValue value = {0}; /* Icon name */ g_value_init(&value, G_TYPE_STRING); - g_value_set_string(&value, ((Application *)listpntr->data)->icon); + g_value_set_string(&value, app->icon); g_value_array_append(values, &value); g_value_unset(&value); @@ -752,19 +996,31 @@ _application_service_server_get_applications (ApplicationServiceAppstore * appst /* DBus Address */ g_value_init(&value, G_TYPE_STRING); - g_value_set_string(&value, ((Application *)listpntr->data)->dbus_name); + g_value_set_string(&value, app->dbus_name); g_value_array_append(values, &value); g_value_unset(&value); /* DBus Object */ g_value_init(&value, DBUS_TYPE_G_OBJECT_PATH); - g_value_set_static_boxed(&value, ((Application *)listpntr->data)->menu); + g_value_set_static_boxed(&value, app->menu); g_value_array_append(values, &value); g_value_unset(&value); /* Icon path */ g_value_init(&value, G_TYPE_STRING); - g_value_set_string(&value, ((Application *)listpntr->data)->icon_path); + g_value_set_string(&value, app->icon_theme_path); + g_value_array_append(values, &value); + g_value_unset(&value); + + /* Label */ + g_value_init(&value, G_TYPE_STRING); + g_value_set_string(&value, app->label); + g_value_array_append(values, &value); + g_value_unset(&value); + + /* Guide */ + g_value_init(&value, G_TYPE_STRING); + g_value_set_string(&value, app->guide); g_value_array_append(values, &value); g_value_unset(&value); diff --git a/src/application-service-appstore.h b/src/application-service-appstore.h index e8ba8c1..73f6a9d 100644 --- a/src/application-service-appstore.h +++ b/src/application-service-appstore.h @@ -25,7 +25,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <glib.h> #include <glib-object.h> -#include "application-service-lru-file.h" G_BEGIN_DECLS @@ -46,6 +45,8 @@ struct _ApplicationServiceAppstoreClass { void (*application_added) (ApplicationServiceAppstore * appstore, gchar *, gint, gchar *, gchar *, gpointer); void (*application_removed) (ApplicationServiceAppstore * appstore, gint, gpointer); void (*application_icon_changed)(ApplicationServiceAppstore * appstore, gint, const gchar *, gpointer); + void (*application_icon_theme_path_changed)(ApplicationServiceAppstore * appstore, gint, const gchar *, gpointer); + void (*application_label_changed)(ApplicationServiceAppstore * appstore, gint, const gchar *, const gchar *, gpointer); }; struct _ApplicationServiceAppstore { @@ -54,7 +55,7 @@ struct _ApplicationServiceAppstore { ApplicationServiceAppstorePrivate * priv; }; -ApplicationServiceAppstore * application_service_appstore_new (AppLruFile * lrufile); +ApplicationServiceAppstore * application_service_appstore_new (void); GType application_service_appstore_get_type (void); void application_service_appstore_application_add (ApplicationServiceAppstore * appstore, const gchar * dbus_name, diff --git a/src/application-service-lru-file.c b/src/application-service-lru-file.c deleted file mode 100644 index c69a20f..0000000 --- a/src/application-service-lru-file.c +++ /dev/null @@ -1,473 +0,0 @@ -/* -This object manages the database of when the entires were touched -and loved. And writes that out to disk occationally as well. - -Copyright 2010 Canonical Ltd. - -Authors: - Ted Gould <ted@canonical.com> - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <string.h> -#include <gio/gio.h> -#include <json-glib/json-glib.h> -#include "application-service-lru-file.h" - -#define ENTRY_CATEGORY "category" -#define ENTRY_FIRST_TIME "first-time" -#define ENTRY_LAST_TIME "last-time" -#define ENTRY_VERSION "version" - -#define CONFIG_DIR ("indicators" G_DIR_SEPARATOR_S "application") -#define CONFIG_FILE "lru-file.json" - -typedef struct _AppLruFilePrivate AppLruFilePrivate; -struct _AppLruFilePrivate { - GHashTable * apps; - gboolean dirty; - guint timer; - gchar * filename; -}; - -typedef struct _AppData AppData; -struct _AppData { - gchar * category; - GTimeVal last_touched; - GTimeVal first_touched; -}; - -#define APP_LRU_FILE_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), APP_LRU_FILE_TYPE, AppLruFilePrivate)) - -static void app_lru_file_class_init (AppLruFileClass *klass); -static void app_lru_file_init (AppLruFile *self); -static void app_lru_file_dispose (GObject *object); -static void app_lru_file_finalize (GObject *object); -static void app_data_free (gpointer data); -static void get_dirty (AppLruFile * lrufile); -static gboolean load_from_file (gpointer data); -static void load_file_object_cb (JsonObject * obj, const gchar * key, JsonNode * value, gpointer data); -static void clean_off_hash_cb (gpointer key, gpointer value, gpointer data); -static void clean_off_write_end_cb (GObject * obj, GAsyncResult * res, gpointer data); - -G_DEFINE_TYPE (AppLruFile, app_lru_file, G_TYPE_OBJECT); - -/* Set up the class variable stuff */ -static void -app_lru_file_class_init (AppLruFileClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - g_type_class_add_private (klass, sizeof (AppLruFilePrivate)); - - object_class->dispose = app_lru_file_dispose; - object_class->finalize = app_lru_file_finalize; - - return; -} - -/* Set all the data of the per-instance variables */ -static void -app_lru_file_init (AppLruFile *self) -{ - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(self); - - /* Default values */ - priv->apps = NULL; - priv->dirty = FALSE; - priv->timer = 0; - priv->filename = NULL; - - /* Now let's build some stuff */ - priv->apps = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, app_data_free); - priv->filename = g_build_filename(g_get_user_config_dir(), CONFIG_DIR, CONFIG_FILE, NULL); - - /* No reason to delay other stuff for this, we'll - merge any values that get touched. */ - g_idle_add(load_from_file, self); - - return; -} - -/* Get rid of objects and other big things */ -static void -app_lru_file_dispose (GObject *object) -{ - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(object); - - if (priv->timer != 0) { - g_source_remove(priv->timer); - priv->timer = 0; - } - - if (priv->apps != NULL) { - /* Cleans up the keys and entries itself */ - g_hash_table_destroy(priv->apps); - priv->apps = NULL; - } - - G_OBJECT_CLASS (app_lru_file_parent_class)->dispose (object); - return; -} - -/* Deallocate memory */ -static void -app_lru_file_finalize (GObject *object) -{ - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(object); - - if (priv->filename != NULL) { - g_free(priv->filename); - priv->filename = NULL; - } - - G_OBJECT_CLASS (app_lru_file_parent_class)->finalize (object); - return; -} - -/* Takes an AppData structure and free's the - memory from it. */ -static void -app_data_free (gpointer data) -{ - AppData * appdata = (AppData *)data; - - if (appdata->category != NULL) { - g_free(appdata->category); - } - - g_free(appdata); - - return; -} - -/* Loads all of the data out of a json file */ -static gboolean -load_from_file (gpointer data) -{ - AppLruFile * lrufile = (AppLruFile *)data; - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - - if (!g_file_test(priv->filename, G_FILE_TEST_EXISTS)) { - return FALSE; - } - - JsonParser * parser = json_parser_new(); - - if (!json_parser_load_from_file(parser, priv->filename, NULL)) { - g_warning("Unable to parse JSON file '%s'", priv->filename); - g_object_unref(parser); - return FALSE; - } - - JsonNode * root = json_parser_get_root(parser); - JsonObject * rootobj = json_node_get_object(root); - if (rootobj == NULL) { - g_warning("Malformed LRU file. The root node is not an object."); - g_object_unref(parser); - return FALSE; - } - - json_object_foreach_member(rootobj, load_file_object_cb, lrufile); - - g_object_unref(parser); - return FALSE; -} - -/* Looks at the various things that we need on a node, makes - sure that we have them, and then copies them into the - application hash table of love. */ -static void -load_file_object_cb (JsonObject * rootobj, const gchar * key, JsonNode * value, gpointer data) -{ - AppLruFile * lrufile = (AppLruFile *)data; - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - - /* We're not looking at this today. */ - if (!g_strcmp0(key, ENTRY_VERSION)) { - return; - } - - JsonObject * obj = json_node_get_object(value); - if (obj == NULL) { - g_warning("Data for node '%s' is not an object.", key); - return; - } - - const gchar * obj_category = json_object_get_string_member(obj, ENTRY_CATEGORY); - const gchar * obj_first = json_object_get_string_member(obj, ENTRY_FIRST_TIME); - const gchar * obj_last = json_object_get_string_member(obj, ENTRY_LAST_TIME); - - if (obj_category == NULL || obj_first == NULL || obj_last == NULL) { - g_warning("Node '%s' is missing data. Got: ('%s', '%s', '%s')", key, obj_category, obj_first, obj_last); - get_dirty(lrufile); - return; - } - - /* Check to see how old this entry is. If it hasn't been - used in the last year, we remove the cruft. */ - GTimeVal currenttime; - g_get_current_time(¤ttime); - GDate * currentdate = g_date_new(); - g_date_set_time_val(currentdate, ¤ttime); - - GTimeVal lasttouch; - g_time_val_from_iso8601(obj_last, &lasttouch); - GDate * lastdate = g_date_new(); - g_date_set_time_val(lastdate, &lasttouch); - - gint spread = g_date_days_between(lastdate, currentdate); - - g_date_free(currentdate); - g_date_free(lastdate); - - if (spread > 365) { - g_debug("Removing node '%s' as it's %d days old.", key, spread); - get_dirty(lrufile); - return; - } - - /* See if we already have one of these. It's a little bit - unlikely, but since we're async, we need to check */ - gpointer datapntr = g_hash_table_lookup(priv->apps, key); - if (datapntr == NULL) { - /* Build a new node */ - AppData * appdata = g_new0(AppData, 1); - appdata->category = g_strdup(obj_category); - g_time_val_from_iso8601(obj_first, &appdata->first_touched); - g_time_val_from_iso8601(obj_last, &appdata->last_touched); - - g_hash_table_insert(priv->apps, g_strdup(key), appdata); - } else { - /* Merge nodes */ - AppData * appdata = (AppData *)datapntr; - GTimeVal temptime; - g_time_val_from_iso8601(obj_first, &temptime); - - if (temptime.tv_sec < appdata->first_touched.tv_sec) { - g_time_val_from_iso8601(obj_first, &appdata->first_touched); - } - } - - return; -} - -/* Write out our cache to a file so that we can unmark the dirty - bit and be happy. */ -static gboolean -clean_off (gpointer data) -{ - AppLruFile * lrufile = (AppLruFile *)data; - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - priv->timer = 0; - - GError * error = NULL; - - /* Check to see if our directory exists. Build it if not. */ - gchar * dirname = g_build_filename(g_get_user_config_dir(), CONFIG_DIR, NULL); - if (!g_file_test(dirname, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) { - GFile * dirfile = g_file_new_for_path(dirname); - g_file_make_directory_with_parents(dirfile, NULL, NULL); - g_object_unref(dirfile); - } - g_free(dirname); - - GFile * file = g_file_new_for_path(priv->filename); - GFileOutputStream * ostream = g_file_replace(file, - NULL, /* etag */ - TRUE, /* backup */ - G_FILE_CREATE_NONE, /* flags */ - NULL, /* cancelable */ - &error); - if (error != NULL) { - g_warning("Unable to open a file to store LRU file: %s", error->message); - return FALSE; - } - - /* This is how the file will start */ - GString * filestring = g_string_new("{\n \"" ENTRY_VERSION "\": 1"); - - /* Put the middle in. */ - g_hash_table_foreach (priv->apps, clean_off_hash_cb, filestring); - - /* And then tack on the end. */ - g_string_append(filestring, "\n}\n"); - gchar * filedata = g_string_free(filestring, FALSE); - g_output_stream_write_async(G_OUTPUT_STREAM(ostream), - filedata, - strlen(filedata), - G_PRIORITY_DEFAULT_IDLE, - NULL, - clean_off_write_end_cb, - filedata); - - return FALSE; /* drop the timer */ -} - -/* Looks at every value in the applications hash table and - turns it into a string for writing out. */ -static void -clean_off_hash_cb (gpointer key, gpointer value, gpointer data) -{ - /* Mega-cast */ - gchar * id = (gchar *)key; - AppData * appdata = (AppData *)value; - GString * string = (GString *)data; - - gchar * firsttime = g_time_val_to_iso8601(&appdata->first_touched); - gchar * lasttime = g_time_val_to_iso8601(&appdata->last_touched); - - g_string_append_printf(string, ",\n \"%s\": { \"" ENTRY_FIRST_TIME "\": \"%s\", \"" ENTRY_LAST_TIME "\": \"%s\", \"" ENTRY_CATEGORY "\": \"%s\"}", id, firsttime, lasttime, appdata->category); - - g_free(lasttime); - g_free(firsttime); - - return; -} - -/* Very much like clean_off_write_cb except that it is the - last actor on this Output Stream so it closes it. */ -static void -clean_off_write_end_cb (GObject * obj, GAsyncResult * res, gpointer data) -{ - g_free(data); - - GError * error = NULL; - g_output_stream_close(G_OUTPUT_STREAM(obj), NULL, &error); - - if (error != NULL) { - g_warning("Unable to close LRU File: %s", error->message); - g_error_free(error); - } - - return; -} - -/* Sets the dirty bit if not already set and makes sure that - we have a timer to fix that at some point. */ -static void -get_dirty (AppLruFile * lrufile) -{ - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - - priv->dirty = TRUE; - - if (priv->timer == 0) { - priv->timer = g_timeout_add_seconds(60, clean_off, lrufile); - } - - return; -} - -/* API */ - -/* Simple helper to create a new object */ -AppLruFile * -app_lru_file_new (void) -{ - return APP_LRU_FILE(g_object_new(APP_LRU_FILE_TYPE, NULL)); -} - -/* This updates the timestamp for a particular - entry in the database. It also queues up a - write out of the database. But that'll happen - later. */ -void -app_lru_file_touch (AppLruFile * lrufile, const gchar * id, const gchar * category) -{ - g_return_if_fail(IS_APP_LRU_FILE(lrufile)); - g_return_if_fail(id != NULL && id[0] != '\0'); - g_return_if_fail(category != NULL && category[0] != '\0'); - - AppData * appdata = NULL; - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - gpointer data = g_hash_table_lookup(priv->apps, id); - - if (data == NULL) { - /* Oh, we don't have one, let's build it and put it - into the hash table ourselves */ - appdata = g_new0(AppData, 1); - - appdata->category = g_strdup(category); - g_get_current_time(&(appdata->first_touched)); - /* NOTE: last touched set below */ - - g_hash_table_insert(priv->apps, g_strdup(id), appdata); - } else { - /* Boring, we've got this one already */ - appdata = (AppData *)data; - } - - /* Touch it and mark the DB as dirty */ - g_get_current_time(&(appdata->last_touched)); - get_dirty(lrufile); - return; -} - -/* Used to sort or compare different applications. */ -gint -app_lru_file_sort (AppLruFile * lrufile, const gchar * id_a, const gchar * id_b) -{ - g_return_val_if_fail(IS_APP_LRU_FILE(lrufile), -1); - - /* Let's first look to see if the IDs are the same, this - really shouldn't happen, but it'll be confusing if we - don't get it out of the way to start. */ - if (g_strcmp0(id_a, id_b) == 0) { - return 0; - } - - AppLruFilePrivate * priv = APP_LRU_FILE_GET_PRIVATE(lrufile); - - /* Now make sure we have app data for both of these. If - not we'll assume that the one without is newer? */ - gpointer data_a = g_hash_table_lookup(priv->apps, id_a); - if (data_a == NULL) { - return -1; - } - - gpointer data_b = g_hash_table_lookup(priv->apps, id_b); - if (data_b == NULL) { - return 1; - } - - /* Ugly casting */ - AppData * appdata_a = (AppData *)data_a; - AppData * appdata_b = (AppData *)data_b; - - /* Look at categories, we'll put the categories in alpha - order if they're not the same. */ - gint catcompare = g_strcmp0(appdata_a->category, appdata_b->category); - if (catcompare != 0) { - return catcompare; - } - - /* Now we're looking at the first time that these two were - seen in this account. Only using seconds. I mean, seriously. */ - if (appdata_a->first_touched.tv_sec < appdata_b->first_touched.tv_sec) { - return -1; - } - if (appdata_b->first_touched.tv_sec < appdata_a->first_touched.tv_sec) { - return 1; - } - - /* Eh, this seems roughly impossible. But if we have to choose, - I like A better. */ - return 1; -} diff --git a/src/application-service-lru-file.h b/src/application-service-lru-file.h deleted file mode 100644 index 7c92c82..0000000 --- a/src/application-service-lru-file.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -This object manages the database of when the entires were touched -and loved. And writes that out to disk occationally as well. - -Copyright 2010 Canonical Ltd. - -Authors: - Ted Gould <ted@canonical.com> - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef __APP_LRU_FILE_H__ -#define __APP_LRU_FILE_H__ - -#include <glib.h> -#include <glib-object.h> - -G_BEGIN_DECLS - -#define APP_LRU_FILE_TYPE (app_lru_file_get_type ()) -#define APP_LRU_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), APP_LRU_FILE_TYPE, AppLruFile)) -#define APP_LRU_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), APP_LRU_FILE_TYPE, AppLruFileClass)) -#define IS_APP_LRU_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), APP_LRU_FILE_TYPE)) -#define IS_APP_LRU_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), APP_LRU_FILE_TYPE)) -#define APP_LRU_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), APP_LRU_FILE_TYPE, AppLruFileClass)) - -typedef struct _AppLruFile AppLruFile; -typedef struct _AppLruFileClass AppLruFileClass; - -struct _AppLruFileClass { - GObjectClass parent_class; - -}; - -struct _AppLruFile { - GObject parent; - -}; - -GType app_lru_file_get_type (void); - -AppLruFile * app_lru_file_new (void); -void app_lru_file_touch (AppLruFile * lrufile, const gchar * id, const gchar * category); -gint app_lru_file_sort (AppLruFile * lrufile, const gchar * id_a, const gchar * id_b); - -G_END_DECLS - -#endif diff --git a/src/application-service-marshal.c b/src/application-service-marshal.c index 2b7dc77..db095ce 100644 --- a/src/application-service-marshal.c +++ b/src/application-service-marshal.c @@ -22,6 +22,7 @@ #define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) #define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) #define g_marshal_value_peek_object(v) g_value_get_object (v) +#define g_marshal_value_peek_variant(v) g_value_get_variant (v) #else /* !G_ENABLE_DEBUG */ /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. * Do not access GValues directly in your code. Instead, use the @@ -45,30 +46,33 @@ #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer #define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer #define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer #endif /* !G_ENABLE_DEBUG */ -/* VOID:STRING,INT,STRING,STRING,STRING (./application-service-marshal.list:19) */ +/* VOID:STRING,INT,STRING,STRING,STRING,STRING,STRING (./application-service-marshal.list:19) */ void -_application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING (GClosure *closure, - GValue *return_value G_GNUC_UNUSED, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint G_GNUC_UNUSED, - gpointer marshal_data) +_application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) { - typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING) (gpointer data1, - gpointer arg_1, - gint arg_2, - gpointer arg_3, - gpointer arg_4, - gpointer arg_5, - gpointer data2); - register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING callback; + typedef void (*GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING) (gpointer data1, + gpointer arg_1, + gint arg_2, + gpointer arg_3, + gpointer arg_4, + gpointer arg_5, + gpointer arg_6, + gpointer arg_7, + gpointer data2); + register GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; - g_return_if_fail (n_param_values == 6); + g_return_if_fail (n_param_values == 8); if (G_CCLOSURE_SWAP_DATA (closure)) { @@ -80,7 +84,7 @@ _application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING (GClosure data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } - callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback); + callback = (GMarshalFunc_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_string (param_values + 1), @@ -88,10 +92,51 @@ _application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING (GClosure g_marshal_value_peek_string (param_values + 3), g_marshal_value_peek_string (param_values + 4), g_marshal_value_peek_string (param_values + 5), + g_marshal_value_peek_string (param_values + 6), + g_marshal_value_peek_string (param_values + 7), data2); } -/* VOID:INT,STRING (./application-service-marshal.list:20) */ +/* VOID:INT,STRING,STRING (./application-service-marshal.list:20) */ +void +_application_service_marshal_VOID__INT_STRING_STRING (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__INT_STRING_STRING) (gpointer data1, + gint arg_1, + gpointer arg_2, + gpointer arg_3, + gpointer data2); + register GMarshalFunc_VOID__INT_STRING_STRING callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 4); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__INT_STRING_STRING) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_int (param_values + 1), + g_marshal_value_peek_string (param_values + 2), + g_marshal_value_peek_string (param_values + 3), + data2); +} + +/* VOID:INT,STRING (./application-service-marshal.list:21) */ void _application_service_marshal_VOID__INT_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -128,3 +173,40 @@ _application_service_marshal_VOID__INT_STRING (GClosure *closure, data2); } +/* VOID:STRING,STRING (./application-service-marshal.list:22) */ +void +_application_service_marshal_VOID__STRING_STRING (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_VOID__STRING_STRING callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_string (param_values + 1), + g_marshal_value_peek_string (param_values + 2), + data2); +} + diff --git a/src/application-service-marshal.list b/src/application-service-marshal.list index 4ac8398..f432028 100644 --- a/src/application-service-marshal.list +++ b/src/application-service-marshal.list @@ -16,5 +16,7 @@ # # You should have received a copy of the GNU General Public License along # with this program. If not, see <http://www.gnu.org/licenses/>. -VOID: STRING, INT, STRING, STRING, STRING +VOID: STRING, INT, STRING, STRING, STRING, STRING, STRING +VOID: INT, STRING, STRING VOID: INT, STRING +VOID: STRING, STRING diff --git a/src/application-service.c b/src/application-service.c index ffd042e..94e7d2e 100644 --- a/src/application-service.c +++ b/src/application-service.c @@ -25,7 +25,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "notification-item-client.h" #include "application-service-appstore.h" #include "application-service-watcher.h" -#include "application-service-lru-file.h" #include "dbus-shared.h" /* The base main loop */ @@ -36,8 +35,6 @@ static ApplicationServiceAppstore * appstore = NULL; static ApplicationServiceWatcher * watcher = NULL; /* The service management interface */ static IndicatorService * service = NULL; -/* The LRU file interface */ -static AppLruFile * lrufile = NULL; /* Recieves the disonnection signal from the service object and closes the mainloop. */ @@ -62,11 +59,8 @@ main (int argc, char ** argv) service = indicator_service_new(INDICATOR_APPLICATION_DBUS_ADDR); g_signal_connect(G_OBJECT(service), INDICATOR_SERVICE_SIGNAL_SHUTDOWN, G_CALLBACK(service_disconnected), NULL); - /* Start up the LRU file reading */ - lrufile = app_lru_file_new(); - /* Building our app store */ - appstore = application_service_appstore_new(lrufile); + appstore = application_service_appstore_new(); /* Adding a watcher for the Apps coming up */ watcher = application_service_watcher_new(appstore); @@ -79,7 +73,6 @@ main (int argc, char ** argv) g_object_unref(G_OBJECT(watcher)); g_object_unref(G_OBJECT(appstore)); g_object_unref(G_OBJECT(service)); - g_object_unref(G_OBJECT(lrufile)); return 0; } diff --git a/src/application-service.xml b/src/application-service.xml index 0b2e959..031bf68 100644 --- a/src/application-service.xml +++ b/src/application-service.xml @@ -26,7 +26,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. <!-- Methods --> <method name="GetApplications"> - <arg type="a(sisos)" name="applications" direction="out" /> + <arg type="a(sisosss)" name="applications" direction="out" /> </method> <!-- Signals --> @@ -36,6 +36,8 @@ with this program. If not, see <http://www.gnu.org/licenses/>. <arg type="s" name="dbusaddress" direction="out" /> <arg type="o" name="dbusobject" direction="out" /> <arg type="s" name="iconpath" direction="out" /> + <arg type="s" name="label" direction="out" /> + <arg type="s" name="labelguide" direction="out" /> </signal> <signal name="ApplicationRemoved"> <arg type="i" name="position" direction="out" /> @@ -44,6 +46,14 @@ with this program. If not, see <http://www.gnu.org/licenses/>. <arg type="i" name="position" direction="out" /> <arg type="s" name="icon_name" direction="out" /> </signal> - + <signal name="ApplicationIconThemePathChanged"> + <arg type="i" name="position" direction="out" /> + <arg type="s" name="icon_theme_path" direction="out" /> + </signal> + <signal name="ApplicationLabelChanged"> + <arg type="i" name="position" direction="out" /> + <arg type="s" name="label" direction="out" /> + <arg type="s" name="guide" direction="out" /> + </signal> </interface> </node> diff --git a/src/generate-id.c b/src/generate-id.c new file mode 100644 index 0000000..14d762e --- /dev/null +++ b/src/generate-id.c @@ -0,0 +1,69 @@ +/* +Quick litte lack to generate the ordering ID. + +Copyright 2010 Canonical Ltd. + +Authors: + Ted Gould <ted@canonical.com> + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "generate-id.h" + +#define MULTIPLIER 32 + +guint32 +generate_id (const AppIndicatorCategory catenum, const gchar * id) +{ + guchar category = 0; + guchar first = 0; + guchar second = 0; + guchar third = 0; + + switch (catenum) { + case APP_INDICATOR_CATEGORY_OTHER: + category = MULTIPLIER * 5; + break; + case APP_INDICATOR_CATEGORY_APPLICATION_STATUS: + category = MULTIPLIER * 4; + break; + case APP_INDICATOR_CATEGORY_COMMUNICATIONS: + category = MULTIPLIER * 3; + break; + case APP_INDICATOR_CATEGORY_SYSTEM_SERVICES: + category = MULTIPLIER * 2; + break; + case APP_INDICATOR_CATEGORY_HARDWARE: + category = MULTIPLIER * 1; + break; + default: + g_warning("Got an undefined category: %d", category); + category = 0; + break; + } + + if (id != NULL) { + if (id[0] != '\0') { + first = id[0]; + if (id[1] != '\0') { + second = id[1]; + if (id[2] != '\0') { + third = id[2]; + } + } + } + } + + return (((((category * 256) + first) * 256) + second) * 256) + third; +} diff --git a/src/generate-id.h b/src/generate-id.h new file mode 100644 index 0000000..9d3167d --- /dev/null +++ b/src/generate-id.h @@ -0,0 +1,30 @@ +/* +Quick litte lack to generate the ordering ID. + +Copyright 2010 Canonical Ltd. + +Authors: + Ted Gould <ted@canonical.com> + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef __GENERATE_ID_H__ +#define __GENERATE_ID_H__ + +#include <glib.h> +#include "app-indicator.h" + +guint32 generate_id (const AppIndicatorCategory category, const gchar * id); + +#endif /* __GENERATE_ID_H__ */ diff --git a/src/indicator-application.c b/src/indicator-application.c index 16c3a9f..36e1446 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -84,10 +84,12 @@ struct _IndicatorApplicationPrivate { typedef struct _ApplicationEntry ApplicationEntry; struct _ApplicationEntry { IndicatorObjectEntry entry; - gchar * icon_path; + gchar * icon_theme_path; gboolean old_service; gchar * dbusobject; gchar * dbusaddress; + gchar * guide; + gchar * longname; }; #define INDICATOR_APPLICATION_GET_PRIVATE(o) \ @@ -105,9 +107,11 @@ static void disconnected (IndicatorApplication * application); static void disconnected_helper (gpointer data, gpointer user_data); static gboolean disconnected_kill (gpointer user_data); static void disconnected_kill_helper (gpointer data, gpointer user_data); -static void application_added (DBusGProxy * proxy, const gchar * iconname, gint position, const gchar * dbusaddress, const gchar * dbusobject, const gchar * icon_path, IndicatorApplication * application); +static void application_added (DBusGProxy * proxy, const gchar * iconname, gint position, const gchar * dbusaddress, const gchar * dbusobject, const gchar * icon_theme_path, const gchar * label, const gchar * guide, IndicatorApplication * application); static void application_removed (DBusGProxy * proxy, gint position , IndicatorApplication * application); +static void application_label_changed (DBusGProxy * proxy, gint position, const gchar * label, const gchar * guide, IndicatorApplication * application); static void application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconname, IndicatorApplication * application); +static void application_icon_theme_path_changed (DBusGProxy * proxy, gint position, const gchar * icon_theme_path, IndicatorApplication * application); static void get_applications (DBusGProxy *proxy, GPtrArray *OUT_applications, GError *error, gpointer userdata); static void get_applications_helper (gpointer data, gpointer user_data); static void theme_dir_unref(IndicatorApplication * ia, const gchar * dir); @@ -130,19 +134,27 @@ indicator_application_class_init (IndicatorApplicationClass *klass) io_class->get_entries = get_entries; io_class->get_location = get_location; - dbus_g_object_register_marshaller(_application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING, + dbus_g_object_register_marshaller(_application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_INVALID); dbus_g_object_register_marshaller(_application_service_marshal_VOID__INT_STRING, G_TYPE_NONE, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_object_register_marshaller(_application_service_marshal_VOID__INT_STRING_STRING, + G_TYPE_NONE, + G_TYPE_INT, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_INVALID); return; } @@ -270,6 +282,8 @@ connected (IndicatorApplication * application) G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_add_signal(priv->service_proxy, "ApplicationRemoved", @@ -280,6 +294,17 @@ connected (IndicatorApplication * application) G_TYPE_INT, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal(priv->service_proxy, + "ApplicationIconThemePathChanged", + G_TYPE_INT, + G_TYPE_STRING, + G_TYPE_INVALID); + dbus_g_proxy_add_signal(priv->service_proxy, + "ApplicationLabelChanged", + G_TYPE_INT, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_INVALID); /* Connect to them */ g_debug("Connect to them."); @@ -298,6 +323,16 @@ connected (IndicatorApplication * application) G_CALLBACK(application_icon_changed), application, NULL /* Disconnection Signal */); + dbus_g_proxy_connect_signal(priv->service_proxy, + "ApplicationIconThemePathChanged", + G_CALLBACK(application_icon_theme_path_changed), + application, + NULL /* Disconnection Signal */); + dbus_g_proxy_connect_signal(priv->service_proxy, + "ApplicationLabelChanged", + G_CALLBACK(application_label_changed), + application, + NULL /* Disconnection Signal */); } /* Query it for existing applications */ @@ -409,11 +444,51 @@ application_added_search (gconstpointer a, gconstpointer b) return -1; } +/* Does a quick meausre of how big the string is in + pixels with a Pango layout */ +static gint +measure_string (GtkStyle * style, PangoContext * context, const gchar * string) +{ + PangoLayout * layout = pango_layout_new(context); + pango_layout_set_text(layout, string, -1); + pango_layout_set_font_description(layout, style->font_desc); + + gint width; + pango_layout_get_pixel_size(layout, &width, NULL); + g_object_unref(layout); + return width; +} + +/* Try to get a good guess at what a maximum width of the entire + string would be. */ +static void +guess_label_size (ApplicationEntry * app) +{ + /* This is during startup. */ + if (app->entry.label == NULL) return; + + GtkStyle * style = gtk_widget_get_style(GTK_WIDGET(app->entry.label)); + PangoContext * context = gtk_widget_get_pango_context(GTK_WIDGET(app->entry.label)); + + gint length = measure_string(style, context, gtk_label_get_text(app->entry.label)); + + if (app->guide != NULL) { + gint guidelen = measure_string(style, context, app->guide); + if (guidelen > length) { + length = guidelen; + } + } + + gtk_widget_set_size_request(GTK_WIDGET(app->entry.label), length, -1); + + return; +} + /* Here we respond to new applications by building up the ApplicationEntry and signaling the indicator host that we've got a new indicator. */ static void -application_added (DBusGProxy * proxy, const gchar * iconname, gint position, const gchar * dbusaddress, const gchar * dbusobject, const gchar * icon_path, IndicatorApplication * application) +application_added (DBusGProxy * proxy, const gchar * iconname, gint position, const gchar * dbusaddress, const gchar * dbusobject, const gchar * icon_theme_path, const gchar * label, const gchar * guide, IndicatorApplication * application) { g_return_if_fail(IS_INDICATOR_APPLICATION(application)); g_debug("Building new application entry: %s with icon: %s", dbusaddress, iconname); @@ -435,28 +510,46 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co ApplicationEntry * app = g_new(ApplicationEntry, 1); app->old_service = FALSE; - app->icon_path = NULL; - if (icon_path != NULL && icon_path[0] != '\0') { - app->icon_path = g_strdup(icon_path); - theme_dir_ref(application, icon_path); + app->icon_theme_path = NULL; + if (icon_theme_path != NULL && icon_theme_path[0] != '\0') { + app->icon_theme_path = g_strdup(icon_theme_path); + theme_dir_ref(application, icon_theme_path); } app->dbusaddress = g_strdup(dbusaddress); app->dbusobject = g_strdup(dbusobject); + app->guide = NULL; /* We make a long name using the suffix, and if that icon is available we want to use it. Otherwise we'll just use the name we were given. */ - gchar * longname = NULL; + app->longname = NULL; if (!g_str_has_suffix(iconname, PANEL_ICON_SUFFIX)) { - longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + app->longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); } else { - longname = g_strdup(iconname); + app->longname = g_strdup(iconname); + } + app->entry.image = indicator_image_helper(app->longname); + + if (label == NULL || label[0] == '\0') { + app->entry.label = NULL; + } else { + app->entry.label = GTK_LABEL(gtk_label_new(label)); + g_object_ref(G_OBJECT(app->entry.label)); + gtk_widget_show(GTK_WIDGET(app->entry.label)); + + if (app->guide != NULL) { + g_free(app->guide); + app->guide = NULL; + } + + if (guide != NULL) { + app->guide = g_strdup(guide); + } + + guess_label_size(app); } - app->entry.image = indicator_image_helper(longname); - g_free(longname); - app->entry.label = NULL; app->entry.menu = GTK_MENU(dbusmenu_gtkmenu_new((gchar *)dbusaddress, (gchar *)dbusobject)); /* Keep copies of these for ourself, just in case. */ @@ -467,7 +560,6 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co priv->applications = g_list_insert(priv->applications, app, position); - /* TODO: Need to deal with position here somehow */ g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, &(app->entry), TRUE); return; } @@ -489,9 +581,9 @@ application_removed (DBusGProxy * proxy, gint position, IndicatorApplication * a priv->applications = g_list_remove(priv->applications, app); g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, &(app->entry), TRUE); - if (app->icon_path != NULL) { - theme_dir_unref(application, app->icon_path); - g_free(app->icon_path); + if (app->icon_theme_path != NULL) { + theme_dir_unref(application, app->icon_theme_path); + g_free(app->icon_theme_path); } if (app->dbusaddress != NULL) { g_free(app->dbusaddress); @@ -499,11 +591,16 @@ application_removed (DBusGProxy * proxy, gint position, IndicatorApplication * a if (app->dbusobject != NULL) { g_free(app->dbusobject); } + if (app->guide != NULL) { + g_free(app->guide); + } + if (app->longname != NULL) { + g_free(app->longname); + } if (app->entry.image != NULL) { g_object_unref(G_OBJECT(app->entry.image)); } if (app->entry.label != NULL) { - g_warning("Odd, an application indicator with a label?"); g_object_unref(G_OBJECT(app->entry.label)); } if (app->entry.menu != NULL) { @@ -514,6 +611,87 @@ application_removed (DBusGProxy * proxy, gint position, IndicatorApplication * a return; } +/* The callback for the signal that the label for an application + has changed. */ +static void +application_label_changed (DBusGProxy * proxy, gint position, const gchar * label, const gchar * guide, IndicatorApplication * application) +{ + IndicatorApplicationPrivate * priv = INDICATOR_APPLICATION_GET_PRIVATE(application); + ApplicationEntry * app = (ApplicationEntry *)g_list_nth_data(priv->applications, position); + gboolean signal_reload = FALSE; + + if (app == NULL) { + g_warning("Unable to find application at position: %d", position); + return; + } + + if (label == NULL || label[0] == '\0') { + /* No label, let's see if we need to delete the old one */ + if (app->entry.label != NULL) { + g_object_unref(G_OBJECT(app->entry.label)); + app->entry.label = NULL; + + signal_reload = TRUE; + } + } else { + /* We've got a label, is this just an update or is + it a new thing. */ + if (app->entry.label != NULL) { + gtk_label_set_text(app->entry.label, label); + } else { + app->entry.label = GTK_LABEL(gtk_label_new(label)); + g_object_ref(G_OBJECT(app->entry.label)); + gtk_widget_show(GTK_WIDGET(app->entry.label)); + + signal_reload = TRUE; + } + } + + /* Copy the guide if we have one */ + if (app->guide != NULL) { + g_free(app->guide); + app->guide = NULL; + } + + if (guide != NULL && guide[0] != '\0') { + app->guide = g_strdup(guide); + } + + /* Protected against not having a label */ + guess_label_size(app); + + if (signal_reload) { + /* Telling the listener that this has been removed, and then + readded to make it reparse the entry. */ + if (app->entry.label != NULL) { + gtk_widget_hide(GTK_WIDGET(app->entry.label)); + } + + if (app->entry.image != NULL) { + gtk_widget_hide(GTK_WIDGET(app->entry.image)); + } + + if (app->entry.menu != NULL) { + gtk_menu_detach(app->entry.menu); + } + + g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, &(app->entry), TRUE); + + if (app->entry.label != NULL) { + gtk_widget_show(GTK_WIDGET(app->entry.label)); + } + + if (app->entry.image != NULL) { + indicator_image_helper_update(app->entry.image, app->longname); + gtk_widget_show(GTK_WIDGET(app->entry.image)); + } + + g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, &(app->entry), TRUE); + } + + return; +} + /* The callback for the signal that the icon for an application has changed. */ static void @@ -530,9 +708,45 @@ application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconn /* We make a long name using the suffix, and if that icon is available we want to use it. Otherwise we'll just use the name we were given. */ - gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); - indicator_image_helper_update(app->entry.image, longname); - g_free(longname); + if (app->longname != NULL) { + g_free(app->longname); + app->longname = NULL; + } + if (!g_str_has_suffix(iconname, PANEL_ICON_SUFFIX)) { + app->longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + } else { + app->longname = g_strdup(iconname); + } + indicator_image_helper_update(app->entry.image, app->longname); + + return; +} + +/* The callback for the signal that the icon theme path for an application + has changed. */ +static void +application_icon_theme_path_changed (DBusGProxy * proxy, gint position, const gchar * icon_theme_path, IndicatorApplication * application) +{ + IndicatorApplicationPrivate * priv = INDICATOR_APPLICATION_GET_PRIVATE(application); + ApplicationEntry * app = (ApplicationEntry *)g_list_nth_data(priv->applications, position); + + if (app == NULL) { + g_warning("Unable to find application at position: %d", position); + return; + } + + if (g_strcmp0(icon_theme_path, app->icon_theme_path) != 0) { + if(app->icon_theme_path != NULL) { + theme_dir_unref(application, app->icon_theme_path); + g_free(app->icon_theme_path); + app->icon_theme_path = NULL; + } + if (icon_theme_path != NULL && icon_theme_path[0] != '\0') { + app->icon_theme_path = g_strdup(icon_theme_path); + theme_dir_ref(application, app->icon_theme_path); + } + indicator_image_helper_update(app->entry.image, app->longname); + } return; } @@ -558,19 +772,21 @@ get_applications_helper (gpointer data, gpointer user_data) { GValueArray * array = (GValueArray *)data; - g_return_if_fail(array->n_values == 5); + g_return_if_fail(array->n_values == 7); const gchar * icon_name = g_value_get_string(g_value_array_get_nth(array, 0)); gint position = g_value_get_int(g_value_array_get_nth(array, 1)); const gchar * dbus_address = g_value_get_string(g_value_array_get_nth(array, 2)); const gchar * dbus_object = g_value_get_boxed(g_value_array_get_nth(array, 3)); - const gchar * icon_path = g_value_get_string(g_value_array_get_nth(array, 4)); + const gchar * icon_theme_path = g_value_get_string(g_value_array_get_nth(array, 4)); + const gchar * label = g_value_get_string(g_value_array_get_nth(array, 5)); + const gchar * guide = g_value_get_string(g_value_array_get_nth(array, 6)); - return application_added(NULL, icon_name, position, dbus_address, dbus_object, icon_path, user_data); + return application_added(NULL, icon_name, position, dbus_address, dbus_object, icon_theme_path, label, guide, user_data); } -/* Refs a theme directory, and it may add it to the search - path */ +/* Unrefs a theme directory. This may involve removing it from + the search path. */ static void theme_dir_unref(IndicatorApplication * ia, const gchar * dir) { @@ -629,8 +845,8 @@ theme_dir_unref(IndicatorApplication * ia, const gchar * dir) return; } -/* Unrefs a theme directory. This may involve removing it from - the search path. */ +/* Refs a theme directory, and it may add it to the search + path */ static void theme_dir_ref(IndicatorApplication * ia, const gchar * dir) { diff --git a/src/notification-item.xml b/src/notification-item.xml index a0141c3..05afd83 100644 --- a/src/notification-item.xml +++ b/src/notification-item.xml @@ -12,6 +12,9 @@ to find the icons specified above. --> <property name="IconThemePath" type="s" access="read" /> <property name="Menu" type="o" access="read" /> + <property name="XAyatanaLabel" type="s" access="read" /> + <property name="XAyatanaLabelGuide" type="s" access="read" /> + <property name="XAyatanaOrderingIndex" type="u" access="read" /> <!-- Methods --> <!-- None currently --> @@ -19,11 +22,18 @@ <!-- Signals --> <signal name="NewIcon"> </signal> + <signal name="NewIconThemePath"> + <arg type="s" name="icon_theme_path" direction="out" /> + </signal> <signal name="NewAttentionIcon"> </signal> <signal name="NewStatus"> <arg type="s" name="status" direction="out" /> </signal> + <signal name="XAyatanaNewLabel"> + <arg type="s" name="label" direction="out" /> + <arg type="s" name="guide" direction="out" /> + </signal> </interface> </node> diff --git a/tests/Makefile.in b/tests/Makefile.in index dc4be9b..10be609 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -277,6 +277,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYTHON = @PYTHON@ diff --git a/tests/test-libappindicator.c b/tests/test-libappindicator.c index 86879b3..8d12ac5 100644 --- a/tests/test-libappindicator.c +++ b/tests/test-libappindicator.c @@ -163,12 +163,145 @@ test_libappindicator_init (void) } void +test_libappindicator_set_label (void) +{ + AppIndicator * ci = app_indicator_new ("my-id", + "my-name", + APP_INDICATOR_CATEGORY_APPLICATION_STATUS); + + g_assert(ci != NULL); + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + /* First check all the clearing modes, this is important as + we're going to use them later, we need them to work. */ + app_indicator_set_label(ci, NULL, NULL); + + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, "", NULL); + + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, NULL, ""); + + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, "", ""); + + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, "label", ""); + + g_assert(g_strcmp0(app_indicator_get_label(ci), "label") == 0); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, NULL, NULL); + + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + app_indicator_set_label(ci, "label", "guide"); + + g_assert(g_strcmp0(app_indicator_get_label(ci), "label") == 0); + g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "guide") == 0); + + app_indicator_set_label(ci, "label2", "guide"); + + g_assert(g_strcmp0(app_indicator_get_label(ci), "label2") == 0); + g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "guide") == 0); + + app_indicator_set_label(ci, "trick-label", "trick-guide"); + + g_assert(g_strcmp0(app_indicator_get_label(ci), "trick-label") == 0); + g_assert(g_strcmp0(app_indicator_get_label_guide(ci), "trick-guide") == 0); + + g_object_unref(G_OBJECT(ci)); + return; +} + +void +label_signals_cb (AppIndicator * appindicator, gchar * label, gchar * guide, gpointer user_data) +{ + gint * label_signals_count = (gint *)user_data; + (*label_signals_count)++; + return; +} + +void +label_signals_check (void) +{ + while (g_main_context_pending(NULL)) { + g_main_context_iteration(NULL, TRUE); + } + + return; +} + +void +test_libappindicator_label_signals (void) +{ + gint label_signals_count = 0; + AppIndicator * ci = app_indicator_new ("my-id", + "my-name", + APP_INDICATOR_CATEGORY_APPLICATION_STATUS); + + g_assert(ci != NULL); + g_assert(app_indicator_get_label(ci) == NULL); + g_assert(app_indicator_get_label_guide(ci) == NULL); + + g_signal_connect(G_OBJECT(ci), APP_INDICATOR_SIGNAL_NEW_LABEL, G_CALLBACK(label_signals_cb), &label_signals_count); + + /* Shouldn't be a signal as it should be stuck in idle */ + app_indicator_set_label(ci, "label", "guide"); + g_assert(label_signals_count == 0); + + /* Should show up after idle processing */ + label_signals_check(); + g_assert(label_signals_count == 1); + + /* Shouldn't signal with no change */ + label_signals_count = 0; + app_indicator_set_label(ci, "label", "guide"); + label_signals_check(); + g_assert(label_signals_count == 0); + + /* Change one, we should get one signal */ + app_indicator_set_label(ci, "label2", "guide"); + label_signals_check(); + g_assert(label_signals_count == 1); + + /* Change several times, one signal */ + label_signals_count = 0; + app_indicator_set_label(ci, "label1", "guide0"); + app_indicator_set_label(ci, "label1", "guide1"); + app_indicator_set_label(ci, "label2", "guide2"); + app_indicator_set_label(ci, "label3", "guide3"); + label_signals_check(); + g_assert(label_signals_count == 1); + + /* Clear should signal too */ + label_signals_count = 0; + app_indicator_set_label(ci, NULL, NULL); + label_signals_check(); + g_assert(label_signals_count == 1); + + return; +} + +void test_libappindicator_props_suite (void) { g_test_add_func ("/indicator-application/libappindicator/init", test_libappindicator_init); g_test_add_func ("/indicator-application/libappindicator/init_props", test_libappindicator_init_with_props); g_test_add_func ("/indicator-application/libappindicator/init_set_props", test_libappindicator_init_set_props); g_test_add_func ("/indicator-application/libappindicator/prop_signals", test_libappindicator_prop_signals); + g_test_add_func ("/indicator-application/libappindicator/set_label", test_libappindicator_set_label); + g_test_add_func ("/indicator-application/libappindicator/label_signals", test_libappindicator_label_signals); return; } |