summaryrefslogtreecommitdiff
path: root/gtk/gtk.override
diff options
context:
space:
mode:
authorJohan Dahlin <zilch@src.gnome.org>2004-03-30 08:32:30 +0000
committerJohan Dahlin <zilch@src.gnome.org>2004-03-30 08:32:30 +0000
commit0ca7e8ac4f160bb4a11f3fe552e7aaae46704c6c (patch)
tree413e466725481845c309c8a5be2e8abf56e4cb3a /gtk/gtk.override
parent6f3b3d41afbe5542a44f12c1bd0244fd693df604 (diff)
downloadpygtk-0ca7e8ac4f160bb4a11f3fe552e7aaae46704c6c.tar.gz
is Constructor of GtkUIManager, not GtkUiManager.
* gtk/gtk.defs (gtk_ui_manager_new): is Constructor of GtkUIManager, not GtkUiManager. * gtk/gtk.override (_wrap_gtk_action_group_add_actions): Impl
Diffstat (limited to 'gtk/gtk.override')
-rw-r--r--gtk/gtk.override57
1 files changed, 57 insertions, 0 deletions
diff --git a/gtk/gtk.override b/gtk/gtk.override
index a9538802..c29fc8f8 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -3825,3 +3825,60 @@ _wrap_gtk_ui_manager_get_toplevels(PyGObject *self, PyObject *args,
return ret;
}
+%%
+override gtk_action_group_add_actions kwargs
+static PyObject *
+_wrap_gtk_action_group_add_actions (PyGObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "entries", NULL };
+ PyObject *entries;
+ int len, i;
+ PyObject *item;
+ GtkActionEntry entry;
+ GtkAction *action;
+ PyObject *callback, *py_action;
+ GClosure *closure;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkActionGroup.add_actions",
+ kwlist, &entries))
+ return NULL;
+
+ if (!PySequence_Check(entries)) {
+ PyErr_SetString(PyExc_TypeError, "entries must be a sequence");
+ return NULL;
+ }
+
+ len = PySequence_Size(entries);
+ for (i = 0; i < len; i++) {
+ item = PySequence_GetItem(entries, i);
+ Py_DECREF(item);
+
+ memset(&entry, 0, sizeof(entry));
+ callback = Py_None;
+
+ if (!PyArg_ParseTuple(item, "s|zzzzO", &(entry.name), &(entry.stock_id),
+ &(entry.label), &(entry.accelerator), &(entry.tooltip),
+ &callback)) {
+ return NULL;
+ }
+
+ action = gtk_action_new(entry.name, entry.label, entry.tooltip,
+ entry.stock_id);
+
+ py_action = pygobject_new((GObject *)action);
+ if (action && PyCallable_Check(callback)) {
+ closure = pyg_closure_new(callback, NULL, NULL);
+ g_signal_connect_closure(action, "activate", closure, FALSE);
+ pygobject_watch_closure(py_action, closure);
+ }
+
+ gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP(self->obj),
+ GTK_ACTION(action),
+ entry.accelerator);
+
+ g_object_unref (action);
+
+ }
+ Py_INCREF(Py_None);
+ return Py_None;
+}