summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@async.com.br>2008-04-08 14:51:27 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-04-08 14:51:27 +0000
commit24d6e7c51d6a43a31838065ea7bb7d664f53e4d4 (patch)
tree5fcdb1f03c114dfd73ba2526eb69937864a60df1
parenta60fd2b2679c18174cefc11a3ac5573bfe1d6d15 (diff)
downloadpygobject-24d6e7c51d6a43a31838065ea7bb7d664f53e4d4.tar.gz
pygobject-24d6e7c51d6a43a31838065ea7bb7d664f53e4d4.tar.xz
pygobject-24d6e7c51d6a43a31838065ea7bb7d664f53e4d4.zip
Add basic support for GThemedIcon, based on patch by Thomas Leonard
2008-04-08 Johan Dahlin <jdahlin@async.com.br> * 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
-rw-r--r--ChangeLog9
-rw-r--r--gio/gio-types.defs7
-rw-r--r--gio/gio.defs14
-rw-r--r--gio/gio.override21
-rw-r--r--tests/test_gio.py13
5 files changed, 64 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6e28bc5..7eba371 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2008-04-08 Johan Dahlin <jdahlin@async.com.br>
+ * 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 <jdahlin@async.com.br>
+
* gobject/pygsource.c:
* tests/test_source.py:
Unbreak Source.prepare (#523075, Bryan Silverthorn)
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'])