From def21c26e7c517b3abd8db299b8601742bccbafd Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Nov 2015 20:58:24 +0100 Subject: Fork from Ubuntu's libappindicator project. --- bindings/python/Makefile.am | 25 +-- bindings/python/__init__.py | 2 +- bindings/python/appindicator-arg-types.py | 2 +- bindings/python/appindicator.defs | 200 ----------------------- bindings/python/appindicator.override.in | 65 -------- bindings/python/appindicatormodule.c | 49 ------ bindings/python/ayatana_appindicator.defs | 200 +++++++++++++++++++++++ bindings/python/ayatana_appindicator.override.in | 65 ++++++++ bindings/python/ayatana_appindicatormodule.c | 51 ++++++ 9 files changed, 331 insertions(+), 328 deletions(-) delete mode 100644 bindings/python/appindicator.defs delete mode 100644 bindings/python/appindicator.override.in delete mode 100644 bindings/python/appindicatormodule.c create mode 100644 bindings/python/ayatana_appindicator.defs create mode 100644 bindings/python/ayatana_appindicator.override.in create mode 100644 bindings/python/ayatana_appindicatormodule.c (limited to 'bindings/python') diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am index fe95c02..f57a2f7 100644 --- a/bindings/python/Makefile.am +++ b/bindings/python/Makefile.am @@ -1,10 +1,10 @@ defsdir = $(datadir)/pygtk/2.0/defs -defs_DATA = appindicator.defs +defs_DATA = ayatana_appindicator.defs #CFLAGS = -Wall -Werror INCLUDES = \ -I$(top_srcdir)/src \ - -DG_LOG_DOMAIN=\"appindicator-python\" \ + -DG_LOG_DOMAIN=\"ayatana-appindicator-python\" \ -DDATADIR=\"$(datadir)\" \ -DLIBDIR=\"$(libdir)\" \ $(APPINDICATOR_PYTHON_CFLAGS) \ @@ -13,20 +13,21 @@ INCLUDES = \ pkgpythondir = $(pyexecdir) pkgpyexecdir = $(pyexecdir) -pkgappindicatordir = $(pkgpythondir)/appindicator +pkgappindicatordir = $(pkgpythondir)/ayatana_appindicator pkgappindicator_PYTHON = __init__.py -appindicatordir = $(pkgpyexecdir)/appindicator -appindicator_LTLIBRARIES = _appindicator.la +appindicatordir = $(pkgpyexecdir)/ayatana_appindicator +appindicator_LTLIBRARIES = _ayatana_appindicator.la -_appindicator_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_appindicator -_appindicator_la_LIBADD = $(APPINDICATOR_PYTHON_LIBS) -L$(top_builddir)/src/.libs -lappindicator -_appindicator_la_SOURCES = appindicatormodule.c -nodist__appindicator_la_SOURCES = appindicator.c +_ayatana_appindicator_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_appindicator +_ayatana_appindicator_la_LIBADD = $(APPINDICATOR_PYTHON_LIBS) -L$(top_builddir)/src/.libs -layatana-appindicator +_ayatana_appindicator_la_SOURCES = ayatana_appindicatormodule.c +nodist__ayatana_appindicator_la_SOURCES = ayatana_appindicator.c -CLEANFILES = appindicator.c -EXTRA_DIST = appindicator.override.in appindicator-arg-types.py $(defs_DATA) -appindicator.c: $(defs_DATA) appindicator.override +CLEANFILES = ayatana_appindicator.c +DISTCLEANFILES = Makefile.in +EXTRA_DIST = ayatana_appindicator.override.in appindicator-arg-types.py $(defs_DATA) +ayatana_appindicator.c: $(defs_DATA) ayatana_appindicator.override %.c: %.defs ($(PYGTK_CODEGEN) \ diff --git a/bindings/python/__init__.py b/bindings/python/__init__.py index 20e2140..5dd1329 100644 --- a/bindings/python/__init__.py +++ b/bindings/python/__init__.py @@ -24,4 +24,4 @@ # License version 3 and version 2.1 along with this program. If not, see # -from _appindicator import * +from _ayatana_appindicator import * diff --git a/bindings/python/appindicator-arg-types.py b/bindings/python/appindicator-arg-types.py index 9d74aa0..46066ca 100644 --- a/bindings/python/appindicator-arg-types.py +++ b/bindings/python/appindicator-arg-types.py @@ -1,4 +1,4 @@ -# Python bindings for libappindicator. +# Python bindings for libayatana-appindicator. # # Copyright 2009 Canonical Ltd. # diff --git a/bindings/python/appindicator.defs b/bindings/python/appindicator.defs deleted file mode 100644 index 4fcc2d5..0000000 --- a/bindings/python/appindicator.defs +++ /dev/null @@ -1,200 +0,0 @@ -;; -*- 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 - '("ApplicationStatus" "APP_INDICATOR_CATEGORY_APPLICATION_STATUS") - '("Communications" "APP_INDICATOR_CATEGORY_COMMUNICATIONS") - '("SystemServices" "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") - '("NeedsAttention" "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_with_path - (c-name "app_indicator_new_with_path") - (is-constructor-of "AppIndicator") - (return-type "AppIndicator*") - (parameters - '("const-gchar*" "id") - '("const-gchar*" "icon_name") - '("AppIndicatorCategory" "category") - '("const-gchar*" "icon_theme_path" (null-ok) (default "NULL")) - ) -) - -(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_full") - (return-type "none") - (parameters - '("const-gchar*" "icon_name") - '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) - ) -) - -(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_full") - (return-type "none") - (parameters - '("const-gchar*" "icon_name") - '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) - ) -) - -(define-method set_label - (of-object "AppIndicator") - (c-name "app_indicator_set_label") - (return-type "none") - (parameters - '("const-gchar*" "label" (null-ok)) - '("const-gchar*" "guide" (null-ok) (default "NULL")) - ) -) - -(define-method set_ordering_index - (of-object "AppIndicator") - (c-name "app_indicator_set_ordering_index") - (parameters - '("guint32" "ordering_index") - ) -) - -(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") - (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_icon_desc - (of-object "AppIndicator") - (c-name "app_indicator_get_icon_desc") - (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") - (return-type "const-gchar*") -) - -(define-method get_attention_icon_desc - (of-object "AppIndicator") - (c-name "app_indicator_get_attention_icon_desc") - (return-type "const-gchar*") -) - -(define-method get_menu - (of-object "AppIndicator") - (c-name "app_indicator_get_menu") - (return-type "GtkMenu*") -) - -(define-method get_label - (of-object "AppIndicator") - (c-name "app_indicator_get_label") - (return-type "const-gchar*") -) - -(define-method get_label_guide - (of-object "AppIndicator") - (c-name "app_indicator_get_label_guide") - (return-type "const-gchar*") -) - -(define-method get_ordering_index - (of-object "AppIndicator") - (c-name "app_indicator_get_ordering_index") - (return-type "guint32") -) - -(define-method build_menu_from_desktop - (of-object "AppIndicator") - (c-name "app_indicator_build_menu_from_desktop") - (return-type "none") - (parameters - '("const-gchar*" "desktop_file") - '("const-gchar*" "desktop_profile") - ) -) diff --git a/bindings/python/appindicator.override.in b/bindings/python/appindicator.override.in deleted file mode 100644 index 84d3159..0000000 --- a/bindings/python/appindicator.override.in +++ /dev/null @@ -1,65 +0,0 @@ -/* -Python bindings for libappindicator. - -Copyright 2009 Canonical Ltd. - -Authors: - Eitan Isaacson (original) - Neil Jagdish Patel - -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 - -*/ -%% -headers -#include -#include "@top_srcdir@/src/app-indicator.h" -#include "@top_builddir@/src/app-indicator-enum-types.h" -#include -#include "pygobject.h" -#include "pyglib.h" -#include - -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 deleted file mode 100644 index b66639c..0000000 --- a/bindings/python/appindicatormodule.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -Python bindings for libappindicator. - -Copyright 2009 Canonical Ltd. - -Authors: - Eitan Isaacson - Neil Jagdish Patel - -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 - -*/ -#include - -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"); - } -} diff --git a/bindings/python/ayatana_appindicator.defs b/bindings/python/ayatana_appindicator.defs new file mode 100644 index 0000000..4fcc2d5 --- /dev/null +++ b/bindings/python/ayatana_appindicator.defs @@ -0,0 +1,200 @@ +;; -*- 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 + '("ApplicationStatus" "APP_INDICATOR_CATEGORY_APPLICATION_STATUS") + '("Communications" "APP_INDICATOR_CATEGORY_COMMUNICATIONS") + '("SystemServices" "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") + '("NeedsAttention" "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_with_path + (c-name "app_indicator_new_with_path") + (is-constructor-of "AppIndicator") + (return-type "AppIndicator*") + (parameters + '("const-gchar*" "id") + '("const-gchar*" "icon_name") + '("AppIndicatorCategory" "category") + '("const-gchar*" "icon_theme_path" (null-ok) (default "NULL")) + ) +) + +(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_full") + (return-type "none") + (parameters + '("const-gchar*" "icon_name") + '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) + ) +) + +(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_full") + (return-type "none") + (parameters + '("const-gchar*" "icon_name") + '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) + ) +) + +(define-method set_label + (of-object "AppIndicator") + (c-name "app_indicator_set_label") + (return-type "none") + (parameters + '("const-gchar*" "label" (null-ok)) + '("const-gchar*" "guide" (null-ok) (default "NULL")) + ) +) + +(define-method set_ordering_index + (of-object "AppIndicator") + (c-name "app_indicator_set_ordering_index") + (parameters + '("guint32" "ordering_index") + ) +) + +(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") + (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_icon_desc + (of-object "AppIndicator") + (c-name "app_indicator_get_icon_desc") + (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") + (return-type "const-gchar*") +) + +(define-method get_attention_icon_desc + (of-object "AppIndicator") + (c-name "app_indicator_get_attention_icon_desc") + (return-type "const-gchar*") +) + +(define-method get_menu + (of-object "AppIndicator") + (c-name "app_indicator_get_menu") + (return-type "GtkMenu*") +) + +(define-method get_label + (of-object "AppIndicator") + (c-name "app_indicator_get_label") + (return-type "const-gchar*") +) + +(define-method get_label_guide + (of-object "AppIndicator") + (c-name "app_indicator_get_label_guide") + (return-type "const-gchar*") +) + +(define-method get_ordering_index + (of-object "AppIndicator") + (c-name "app_indicator_get_ordering_index") + (return-type "guint32") +) + +(define-method build_menu_from_desktop + (of-object "AppIndicator") + (c-name "app_indicator_build_menu_from_desktop") + (return-type "none") + (parameters + '("const-gchar*" "desktop_file") + '("const-gchar*" "desktop_profile") + ) +) diff --git a/bindings/python/ayatana_appindicator.override.in b/bindings/python/ayatana_appindicator.override.in new file mode 100644 index 0000000..3fdeb24 --- /dev/null +++ b/bindings/python/ayatana_appindicator.override.in @@ -0,0 +1,65 @@ +/* +Python bindings for libayatana-appindicator. + +Copyright 2009 Canonical Ltd. + +Authors: + Eitan Isaacson (original) + Neil Jagdish Patel + +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 + +*/ +%% +headers +#include +#include "@top_srcdir@/src/app-indicator.h" +#include "@top_builddir@/src/app-indicator-enum-types.h" +#include +#include "pygobject.h" +#include "pyglib.h" +#include + +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 ayatana_appindicator +%% +import gobject.GObject as PyGObject_Type +import gtk.Menu as PyGtkMenu_Type diff --git a/bindings/python/ayatana_appindicatormodule.c b/bindings/python/ayatana_appindicatormodule.c new file mode 100644 index 0000000..31d23a2 --- /dev/null +++ b/bindings/python/ayatana_appindicatormodule.c @@ -0,0 +1,51 @@ +/* +Python bindings for libayatana-appindicator. + +Copyright 2009 Canonical Ltd. +Copyright 2015 Mike Gabriel + +Authors: + Eitan Isaacson + Neil Jagdish Patel + Mike Gabriel + +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 + +*/ +#include + +void pyappindicator_register_classes (PyObject *d); +extern PyMethodDef pyappindicator_functions[]; + +DL_EXPORT(void) +init_appindicator(void) +{ + PyObject *m, *d; + + init_pygobject (); + + m = Py_InitModule ("_ayatana_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 ayatana_appindicator"); + } +} -- cgit v1.2.3