diff options
Diffstat (limited to 'bindings')
| -rw-r--r-- | bindings/Makefile.am | 3 | ||||
| -rw-r--r-- | bindings/mono/Makefile.am | 2 | ||||
| -rw-r--r-- | bindings/mono/appindicator-sharp-0.1.pc.in | 6 | ||||
| -rw-r--r-- | bindings/mono/appindicator-sharp.dll.config.in | 2 | ||||
| -rw-r--r-- | bindings/python/Makefile.am | 40 | ||||
| -rw-r--r-- | bindings/python/__init__.py | 27 | ||||
| -rw-r--r-- | bindings/python/appindicator-arg-types.py | 27 | ||||
| -rw-r--r-- | bindings/python/appindicator.defs | 121 | ||||
| -rw-r--r-- | bindings/python/appindicator.override | 65 | ||||
| -rw-r--r-- | bindings/python/appindicatormodule.c | 49 | 
10 files changed, 336 insertions, 6 deletions
| diff --git a/bindings/Makefile.am b/bindings/Makefile.am index bee9b1d..71abb6c 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -1,2 +1,3 @@  SUBDIRS =		\ -	mono +	mono		\ +	python diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index b03cde8..87f1e5a 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -11,7 +11,7 @@ METADATA = libappindicator-api.metadata  ASSEMBLY_NAME = appindicator-sharp  ASSEMBLY = appindicator-sharp.dll  TARGET = $(ASSEMBLY) $(ASSEMBLY).config -assemblydir = $(libdir)/appindicator-sharp +assemblydir = $(libdir)/appindicator-sharp-0.1  assembly_DATA = $(TARGET)  CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) $(TEST)  DISTCLEANFILES = $(ASSEMBLY).config diff --git a/bindings/mono/appindicator-sharp-0.1.pc.in b/bindings/mono/appindicator-sharp-0.1.pc.in index 16872ae..33ff1d7 100644 --- a/bindings/mono/appindicator-sharp-0.1.pc.in +++ b/bindings/mono/appindicator-sharp-0.1.pc.in @@ -1,6 +1,6 @@ -prefix=${pcfiledir}/../.. -exec_prefix=${prefix} -libdir=${exec_prefix}/lib +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@  assemblies_dir=${libdir}/appindicator-sharp-0.1  Name: appindicator-sharp diff --git a/bindings/mono/appindicator-sharp.dll.config.in b/bindings/mono/appindicator-sharp.dll.config.in index c8caa80..d0e9e1e 100644 --- a/bindings/mono/appindicator-sharp.dll.config.in +++ b/bindings/mono/appindicator-sharp.dll.config.in @@ -1,5 +1,5 @@  <configuration> -  <dllmap dll="libappindicator.dll" target="libappindicator@LIB_PREFIX@.0@LIB_SUFFIX@"/> +  <dllmap dll="appindicator-sharp.dll" target="libappindicator@LIB_PREFIX@.0@LIB_SUFFIX@"/>    <dllmap dll="libgtk-2.0-0.dll" target="libgtk-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>    <dllmap dll="libglib-2.0-0.dll" target="libglib-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>    <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/> diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am new file mode 100644 index 0000000..0b606db --- /dev/null +++ b/bindings/python/Makefile.am @@ -0,0 +1,40 @@ +defsdir = $(datadir)/pygtk/2.0/defs +defs_DATA = appindicator.defs + +#CFLAGS = -Wall -Werror +INCLUDES = \ +		-I$(top_srcdir)/src \ +        -DG_LOG_DOMAIN=\"appindicator-python\" \ +        -DDATADIR=\"$(datadir)\" \ +        -DLIBDIR=\"$(libdir)\" \ +        $(APPINDICATOR_PYTHON_CFLAGS) \ +        $(PYTHON_INCLUDES) + +pkgpythondir = $(pyexecdir) +pkgpyexecdir = $(pyexecdir) + +pkgappindicatordir = $(pkgpythondir)/appindicator +pkgappindicator_PYTHON = __init__.py + +appindicatordir = $(pkgpyexecdir)/appindicator +appindicator_LTLIBRARIES = _appindicator.la + +_appindicator_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_appindicator -lpyglib-2.0-python2.6 +_appindicator_la_LIBADD = $(APPINDICATOR_PYTHON_LIBS) -L$(top_builddir)/src/.libs -lappindicator +_appindicator_la_SOURCES = appindicatormodule.c +nodist__appindicator_la_SOURCES = appindicator.c + +CLEANFILES = appindicator.c +EXTRA_DIST = appindicator.override appindicator-arg-types.py $(defs_DATA) +appindicator.c: $(defs_DATA) appindicator.override + +%.c: %.defs +	(cd $(srcdir) \ +	 && $(PYGTK_CODEGEN) \ +		--register $(PYGTK_DEFSDIR)/gtk-types.defs \ +		--register $(PYGTK_DEFSDIR)/gdk-types.defs \ +		--load-types appindicator-arg-types.py \ +	    --override $*.override \ +	    --prefix py$* $*.defs) > gen-$*.c \ +	 && cp gen-$*.c $*.c \ +	 && rm -f gen-$*.c diff --git a/bindings/python/__init__.py b/bindings/python/__init__.py new file mode 100644 index 0000000..20e2140 --- /dev/null +++ b/bindings/python/__init__.py @@ -0,0 +1,27 @@ +# Python bindings for libappindicator. +#  +# Copyright 2009 Canonical Ltd. +#  +# Authors: +#     Eitan Isaacson <eitan@ascender.com> +#     Neil Jagdish Patel <neil.patel@canonical.com> +#  +# This program is free software: you can redistribute it and/or modify it  +# under the terms of either or both of the following licenses: +#  +# 1) the GNU Lesser General Public License version 3, as published by the  +# Free Software Foundation; and/or +# 2) the GNU Lesser General Public License version 2.1, 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 applicable version of the GNU Lesser General Public  +# License for more details. +#  +# You should have received a copy of both the GNU Lesser General Public  +# License version 3 and version 2.1 along with this program.  If not, see  +# <http://www.gnu.org/licenses/> + +from _appindicator import * diff --git a/bindings/python/appindicator-arg-types.py b/bindings/python/appindicator-arg-types.py new file mode 100644 index 0000000..9d74aa0 --- /dev/null +++ b/bindings/python/appindicator-arg-types.py @@ -0,0 +1,27 @@ +# Python bindings for libappindicator. +#  +# Copyright 2009 Canonical Ltd. +#  +# Authors: +#     Eitan Isaacson <eitan@ascender.com> +#  +# This program is free software: you can redistribute it and/or modify it  +# under the terms of either or both of the following licenses: +#  +# 1) the GNU Lesser General Public License version 3, as published by the  +# Free Software Foundation; and/or +# 2) the GNU Lesser General Public License version 2.1, 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 applicable version of the GNU Lesser General Public  +# License for more details. +#  +# You should have received a copy of both the GNU Lesser General Public  +# License version 3 and version 2.1 along with this program.  If not, see  +# <http://www.gnu.org/licenses/> + +import argtypes + diff --git a/bindings/python/appindicator.defs b/bindings/python/appindicator.defs new file mode 100644 index 0000000..0349b64 --- /dev/null +++ b/bindings/python/appindicator.defs @@ -0,0 +1,121 @@ +;; -*- scheme -*- +; object definitions ... +(define-object Indicator +  (in-module "App") +  (parent "GObject") +  (c-name "AppIndicator") +  (gtype-id "APP_TYPE_INDICATOR") +) + +;; Enumerations and flags ... + +(define-enum IndicatorCategory +  (in-module "App") +  (c-name "AppIndicatorCategory") +  (gtype-id "APP_INDICATOR_TYPE_INDICATOR_CATEGORY") +  (values +    '("application-status" "APP_INDICATOR_CATEGORY_APPLICATION_STATUS") +    '("communications" "APP_INDICATOR_CATEGORY_COMMUNICATIONS") +    '("system-services" "APP_INDICATOR_CATEGORY_SYSTEM_SERVICES") +    '("hardware" "APP_INDICATOR_CATEGORY_HARDWARE") +    '("other" "APP_INDICATOR_CATEGORY_OTHER") +  ) +) + +(define-enum IndicatorStatus +  (in-module "App") +  (c-name "AppIndicatorStatus") +  (gtype-id "APP_INDICATOR_TYPE_INDICATOR_STATUS") +  (values +    '("passive" "APP_INDICATOR_STATUS_PASSIVE") +    '("active" "APP_INDICATOR_STATUS_ACTIVE") +    '("attention" "APP_INDICATOR_STATUS_ATTENTION") +  ) +) + + +;; From app-indicator.h + +(define-function app_indicator_get_type +  (c-name "app_indicator_get_type") +  (return-type "GType") +) + +(define-function app_indicator_new +  (c-name "app_indicator_new") +  (is-constructor-of "AppIndicator") +  (return-type "AppIndicator*") +  (parameters +    '("const-gchar*" "id") +    '("const-gchar*" "icon_name") +    '("AppIndicatorCategory" "category") +  ) +) + +(define-method set_status +  (of-object "AppIndicator") +  (c-name "app_indicator_set_status") +  (return-type "none") +  (parameters +    '("AppIndicatorStatus" "status") +  ) +) + +(define-method set_attention_icon +  (of-object "AppIndicator") +  (c-name "app_indicator_set_attention_icon") +  (return-type "none") +  (parameters +    '("const-gchar*" "icon_name") +  ) +) + +(define-method set_menu +  (of-object "AppIndicator") +  (c-name "app_indicator_set_menu") +  (return-type "none") +  (parameters +    '("GtkMenu*" "menu") +  ) +) + +(define-method set_icon +  (of-object "AppIndicator") +  (c-name "app_indicator_set_icon") +  (return-type "none") +  (parameters +    '("const-gchar*" "icon_name") +  ) +) + +(define-method get_id +  (of-object "AppIndicator") +  (c-name "app_indicator_get_id") +  (return-type "const-gchar*") +) + +(define-method get_category +  (of-object "AppIndicator") +  (c-name "app_indicator_get_category") +  (return-type "AppIndicatorCategory") +) + +(define-method get_status +  (of-object "AppIndicator") +  (c-name "app_indicator_get_status") +  (return-type "AppIndicatorStatus") +) + +(define-method get_icon +  (of-object "AppIndicator") +  (c-name "app_indicator_get_icon") +  (return-type "const-gchar*") +) + +(define-method get_attention_icon +  (of-object "AppIndicator") +  (c-name "app_indicator_get_attention_icon") +  (return-type "const-gchar*") +) + + diff --git a/bindings/python/appindicator.override b/bindings/python/appindicator.override new file mode 100644 index 0000000..a01a9a6 --- /dev/null +++ b/bindings/python/appindicator.override @@ -0,0 +1,65 @@ +/* +Python bindings for libappindicator. + +Copyright 2009 Canonical Ltd. + +Authors: +    Eitan Isaacson <eitan@ascender.com> (original) +    Neil Jagdish Patel <neil.patel@canonical.com> + +This program is free software: you can redistribute it and/or modify it  +under the terms of either or both of the following licenses: + +1) the GNU Lesser General Public License version 3, as published by the  +Free Software Foundation; and/or +2) the GNU Lesser General Public License version 2.1, 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 applicable version of the GNU Lesser General Public  +License for more details. + +You should have received a copy of both the GNU Lesser General Public  +License version 3 and version 2.1 along with this program.  If not, see  +<http://www.gnu.org/licenses/> +*/ +%% +headers +#include <Python.h> +#include "../src/libappindicator/app-indicator.h" +#include "../src/libappindicator/app-indicator-enum-types.h" +#include <glib.h> +#include "pygobject.h" +#include "pyglib.h" +#include <pygtk/pygtk.h> + +typedef PyObject* (*to_pyobject_func) (gpointer data); + +#define APP_TYPE_INDICATOR APP_INDICATOR_TYPE + +void +_appindicator_add_constants(PyObject *module, const gchar *strip_prefix) +{ +#ifdef VERSION +        PyModule_AddStringConstant(module, "__version__", VERSION); +#endif +        pyg_enum_add(module, +                     "IndicatorCategory",  +                     strip_prefix, +                     APP_INDICATOR_TYPE_INDICATOR_CATEGORY); + +        pyg_enum_add(module, +                     "IndicatorStatus",  +                     strip_prefix, +                     APP_INDICATOR_TYPE_INDICATOR_STATUS); + +        if (PyErr_Occurred()) +                PyErr_Print(); +} +%% +modulename appindicator +%% +import gobject.GObject as PyGObject_Type +import gtk.Menu as PyGtkMenu_Type diff --git a/bindings/python/appindicatormodule.c b/bindings/python/appindicatormodule.c new file mode 100644 index 0000000..b66639c --- /dev/null +++ b/bindings/python/appindicatormodule.c @@ -0,0 +1,49 @@ +/* +Python bindings for libappindicator. + +Copyright 2009 Canonical Ltd. + +Authors: +    Eitan Isaacson <eitan@ascender.com> +    Neil Jagdish Patel <neil.patel@canonical.com> + +This program is free software: you can redistribute it and/or modify it  +under the terms of either or both of the following licenses: + +1) the GNU Lesser General Public License version 3, as published by the  +Free Software Foundation; and/or +2) the GNU Lesser General Public License version 2.1, 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 applicable version of the GNU Lesser General Public  +License for more details. + +You should have received a copy of both the GNU Lesser General Public  +License version 3 and version 2.1 along with this program.  If not, see  +<http://www.gnu.org/licenses/> +*/ +#include <pygobject.h> +  +void pyappindicator_register_classes (PyObject *d);  +extern PyMethodDef pyappindicator_functions[]; + +DL_EXPORT(void) +init_appindicator(void) +{ +		PyObject *m, *d; +		 +		init_pygobject (); +		 +		m = Py_InitModule ("_appindicator", pyappindicator_functions); +		d = PyModule_GetDict (m); +		 +		pyappindicator_register_classes (d); + +		_appindicator_add_constants (m, "APP_INDICATOR_"); +		if (PyErr_Occurred ()) { +				Py_FatalError ("can't initialise module appindicator"); +		} +} | 
