From 24d6e7c51d6a43a31838065ea7bb7d664f53e4d4 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Tue, 8 Apr 2008 14:51:27 +0000 Subject: Add basic support for GThemedIcon, based on patch by Thomas Leonard 2008-04-08 Johan Dahlin * gio/gio-types.defs: * gio/gio.defs: * gio/gio.override: * tests/test_gio.py: Add basic support for GThemedIcon, based on patch by Thomas Leonard (#521883) svn path=/trunk/; revision=767 --- ChangeLog | 9 +++++++++ gio/gio-types.defs | 7 +++++++ gio/gio.defs | 14 ++++++++++++++ gio/gio.override | 21 +++++++++++++++++++++ tests/test_gio.py | 13 +++++++++++++ 5 files changed, 64 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6e28bc5..7eba371 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-04-08 Johan Dahlin + + * gio/gio-types.defs: + * gio/gio.defs: + * gio/gio.override: + * tests/test_gio.py: + Add basic support for GThemedIcon, based on patch by + Thomas Leonard (#521883) + 2008-04-08 Johan Dahlin * gobject/pygsource.c: diff --git a/gio/gio-types.defs b/gio/gio-types.defs index cf3a2f2..fa80816 100644 --- a/gio/gio-types.defs +++ b/gio/gio-types.defs @@ -36,6 +36,13 @@ (gtype-id "G_TYPE_ICON") ) +(define-object ThemedIcon + (in-module "gio") + (c-name "GThemedIcon") + (gtype-id "G_TYPE_THEMED_ICON") + (implements "GIcon") +) + (define-object LoadableIcon (in-module "gio") (c-name "GLoadableIcon") diff --git a/gio/gio.defs b/gio/gio.defs index 43847e7..4f293ac 100644 --- a/gio/gio.defs +++ b/gio/gio.defs @@ -4000,6 +4000,20 @@ ) ) +(define-method get_names + (c-name "g_themed_icon_get_names") + (of-object "GThemedIcon") + (return-type "const-gchar*-const*") +) + +(define-method append_name + (c-name "g_themed_icon_append_name") + (of-object "GThemedIcon") + (return-type "none") + (parameters + '("char*" "iconname") + ) +) ;; From gunionvolumemonitor.h diff --git a/gio/gio.override b/gio/gio.override index 702382d..33b8611 100644 --- a/gio/gio.override +++ b/gio/gio.override @@ -159,3 +159,24 @@ _wrap_g_app_info_get_all_for_type (PyGObject *self, PyObject *args) return ret; } +%% +override g_themed_icon_get_names noargs +static PyObject * +_wrap_g_themed_icon_get_names(PyGObject *self) +{ + const char * const *names; + PyObject *ret; + + names = g_themed_icon_get_names(G_THEMED_ICON(self->obj)); + + ret = PyList_New(0); + while (names && *names) { + PyObject *item = PyString_FromString(names[0]); + PyList_Append(ret, item); + Py_DECREF(item); + + names++; + } + + return ret; +} diff --git a/tests/test_gio.py b/tests/test_gio.py index 26ff2e8..2b8e9f1 100644 --- a/tests/test_gio.py +++ b/tests/test_gio.py @@ -199,3 +199,16 @@ class TestVolumeMonitor(unittest.TestCase): def testGetMounts(self): mounts = self.monitor.get_mounts() self.failUnless(isinstance(mounts, list)) + + +class TestThemedIcon(unittest.TestCase): + def setUp(self): + self.icon = gio.ThemedIcon("open") + + def testGetNames(self): + self.assertEquals(self.icon.get_names(), ['open']) + + def testAppendName(self): + self.assertEquals(self.icon.get_names(), ['open']) + self.icon.append_name('close') + self.assertEquals(self.icon.get_names(), ['open', 'close']) -- cgit