diff options
Diffstat (limited to 'plugin-loaders/python/bindings/plumautils.override')
-rwxr-xr-x | plugin-loaders/python/bindings/plumautils.override | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/plugin-loaders/python/bindings/plumautils.override b/plugin-loaders/python/bindings/plumautils.override new file mode 100755 index 00000000..3b2116e9 --- /dev/null +++ b/plugin-loaders/python/bindings/plumautils.override @@ -0,0 +1,85 @@ +%% +headers +#define NO_IMPORT_PYGOBJECT +#define NO_IMPORT_PYGTK +#include <pygobject.h> +#include <pygtk/pygtk.h> + +#include "pluma-utils.h" + +void pyplumautils_register_classes (PyObject *d); +void pyplumautils_add_constants (PyObject *module, const gchar *strip_prefix); + +%% +modulename pluma.utils +%% +import gtk.Widget as PyGtkWidget_Type +import gtk.TreeView as PyGtkTreeView_Type +import gtk.Menu as PyGtkMenu_Type +%% +ignore-glob + _* +%% +override pluma_utils_menu_position_under_widget kwargs +static PyObject * +_wrap_pluma_utils_menu_position_under_widget (PyObject *self, + PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "menu", "widget", NULL }; + PyObject *py_menu, *py_widget; + GtkMenu *menu; + GtkWidget *widget; + gint x, y; + gboolean push_in; + PyObject *tuple; + + if (!PyArg_ParseTupleAndKeywords (args, kwargs, + "O!O!", kwlist, + &PyGtkMenu_Type, &py_menu, + &PyGtkWidget_Type, &py_widget)) + return NULL; + + menu = GTK_MENU (pygobject_get (py_menu)); + widget = GTK_WIDGET (pygobject_get (py_widget)); + + pluma_utils_menu_position_under_widget (menu, &x, &y, &push_in, widget); + + tuple = PyTuple_New (3); + PyTuple_SetItem (tuple, 0, PyInt_FromLong (x)); + PyTuple_SetItem (tuple, 1, PyInt_FromLong (y)); + PyTuple_SetItem (tuple, 2, PyBool_FromLong (push_in)); + return tuple; +} +%% +override pluma_utils_menu_position_under_tree_view kwargs +static PyObject * +_wrap_pluma_utils_menu_position_under_tree_view (PyObject *self, + PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "menu", "tree_view", NULL }; + PyObject *py_menu, *py_view; + GtkMenu *menu; + GtkTreeView *view; + gint x, y; + gboolean push_in; + PyObject *tuple; + + if (!PyArg_ParseTupleAndKeywords (args, kwargs, + "O!O!", kwlist, + &PyGtkMenu_Type, &py_menu, + &PyGtkTreeView_Type, &py_view)) + return NULL; + + menu = GTK_MENU (pygobject_get (py_menu)); + view = GTK_TREE_VIEW (pygobject_get (py_view)); + + pluma_utils_menu_position_under_widget (menu, &x, &y, &push_in, view); + + tuple = PyTuple_New (3); + PyTuple_SetItem (tuple, 0, PyInt_FromLong (x)); + PyTuple_SetItem (tuple, 1, PyInt_FromLong (y)); + PyTuple_SetItem (tuple, 2, PyBool_FromLong (push_in)); + return tuple; +} |