summaryrefslogtreecommitdiff
path: root/plugin-loaders/python/bindings/plumautils.override
blob: 3b2116e9984158097084ec92a5d957c8dcc7b7e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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;
}