5
#define NO_IMPORT_PYGOBJECT
8
#include <libgimp/gimp.h>
9
#include <libgimp/gimpui.h>
11
#define NO_IMPORT_PYGIMP
12
#include "pygimp-api.h"
14
#define NO_IMPORT_PYGIMPCOLOR
15
#include "pygimpcolor-api.h"
20
} PyGimpConstraintData;
24
import gobject.GObject as PyGObject_Type
25
import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
26
import gtk.Object as PyGtkObject_Type
27
import gtk.Widget as PyGtkWidget_Type
28
import gtk.Dialog as PyGtkDialog_Type
29
import gtk.Window as PyGtkWindow_Type
30
import gtk.Label as PyGtkLabel_Type
31
import gtk.Button as PyGtkButton_Type
32
import gtk.ToggleButton as PyGtkToggleButton_Type
33
import gtk.RadioButton as PyGtkRadioButton_Type
34
import gtk.SpinButton as PyGtkSpinButton_Type
35
import gtk.Entry as PyGtkEntry_Type
36
import gtk.DrawingArea as PyGtkDrawingArea_Type
37
import gtk.Table as PyGtkTable_Type
38
import gtk.Frame as PyGtkFrame_Type
39
import gtk.HBox as PyGtkHBox_Type
40
import gtk.VBox as PyGtkVBox_Type
41
import gtk.HPaned as PyGtkHPaned_Type
42
import gtk.VPaned as PyGtkVPaned_Type
43
import gtk.Scale as PyGtkScale_Type
44
import gtk.ProgressBar as PyGtkProgressBar_Type
45
import gtk.OptionMenu as PyGtkOptionMenu_Type
46
import gtk.ComboBox as PyGtkComboBox_Type
47
import gtk.ListStore as PyGtkListStore_Type
48
import gtk.TreeModel as PyGtkTreeModel_Type
49
import gtk.CellRenderer as PyGtkCellRenderer_Type
50
import gtk.CellRendererToggle as PyGtkCellRendererToggle_Type
53
gimp_dialog_add_buttons
60
override gimp_drawable_combo_box_new kwargs
62
pygimp_drawable_constraint_marshal(gint32 image_id, gint32 drawable_id,
65
PyObject *img, *drw, *ret;
67
PyGimpConstraintData *data = user_data;
69
img = pygimp_image_new(image_id);
75
drw = pygimp_drawable_new(NULL, drawable_id);
82
if (data->user_data && data->user_data != Py_None)
83
ret = PyObject_CallFunctionObjArgs(data->constraint, img, drw,
84
data->user_data, NULL);
86
ret = PyObject_CallFunctionObjArgs(data->constraint, img, drw, NULL);
92
res = PyObject_IsTrue(ret);
103
_wrap_gimp_drawable_combo_box_new(PyGObject *self, PyObject *args,
106
PyObject *constraint = NULL, *user_data = NULL;
107
GimpDrawableConstraintFunc func = NULL;
108
PyGimpConstraintData *data = NULL;
110
static char *kwlist[] = { "constraint", "data", NULL };
112
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
113
"|OO:gimpui.DrawableComboBox.__init__",
115
&constraint, &user_data))
118
if (constraint && constraint != Py_None) {
119
if (!PyCallable_Check(constraint)) {
120
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
124
data = g_new(PyGimpConstraintData, 1);
126
data->constraint = constraint;
127
Py_XINCREF(constraint);
129
data->user_data = user_data;
130
Py_XINCREF(user_data);
132
func = pygimp_drawable_constraint_marshal;
135
self->obj = (GObject *)gimp_drawable_combo_box_new(func, data);
137
Py_XDECREF(constraint);
138
Py_XDECREF(user_data);
141
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_DRAWABLE_COMBO_BOX) {
142
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
143
"when subclassing gimpui.DrawableComboBox");
147
pygobject_register_wrapper((PyObject *)self);
151
define GimpDrawableComboBox.set_active_drawable kwargs
153
_wrap_gimp_drawable_combo_box_set_active_drawable(PyGObject *self, PyObject *args, PyObject *kwargs)
157
static char *kwlist[] = { "drawable", NULL };
159
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
160
"O!:GimpDrawableComboBox.set_active_drawable",
162
PyGimpDrawable_Type, &drw))
165
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), drw->ID)) {
166
PyErr_Format(pygimp_error,
167
"Drawable (ID %d) does not exist in GimpDrawableComboBox",
176
define GimpDrawableComboBox.get_active_drawable noargs
178
_wrap_gimp_drawable_combo_box_get_active_drawable(PyGObject *self)
182
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
183
return pygimp_drawable_new(NULL, value);
189
override gimp_channel_combo_box_new kwargs
191
pygimp_channel_constraint_marshal(gint32 image_id, gint32 channel_id,
194
PyObject *img, *chn, *ret;
196
PyGimpConstraintData *data = user_data;
198
img = pygimp_image_new(image_id);
204
chn = pygimp_channel_new(channel_id);
211
if (data->user_data && data->user_data != Py_None)
212
ret = PyObject_CallFunctionObjArgs(data->constraint, img, chn,
213
data->user_data, NULL);
215
ret = PyObject_CallFunctionObjArgs(data->constraint, img, chn, NULL);
221
res = PyObject_IsTrue(ret);
232
_wrap_gimp_channel_combo_box_new(PyGObject *self, PyObject *args,
235
PyObject *constraint = NULL, *user_data = NULL;
236
GimpDrawableConstraintFunc func = NULL;
237
PyGimpConstraintData *data = NULL;
239
static char *kwlist[] = { "constraint", "data", NULL };
241
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
242
"|OO:gimpui.ChannelComboBox.__init__",
244
&constraint, &user_data))
247
if (constraint && constraint != Py_None) {
248
if (!PyCallable_Check(constraint)) {
249
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
253
data = g_new(PyGimpConstraintData, 1);
255
data->constraint = constraint;
256
Py_INCREF(constraint);
258
data->user_data = user_data;
259
Py_XINCREF(user_data);
261
func = pygimp_channel_constraint_marshal;
264
self->obj = (GObject *)gimp_channel_combo_box_new(func, data);
266
Py_XDECREF(constraint);
267
Py_XDECREF(user_data);
270
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_CHANNEL_COMBO_BOX) {
271
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
272
"when subclassing gimpui.ChannelComboBox");
276
pygobject_register_wrapper((PyObject *)self);
280
define GimpChannelComboBox.set_active_channel kwargs
282
_wrap_gimp_channel_combo_box_set_active_channel(PyGObject *self, PyObject *args, PyObject *kwargs)
286
static char *kwlist[] = { "channel", NULL };
288
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
289
"O!:GimpChannelComboBox.set_active_channel",
291
PyGimpChannel_Type, &chn))
294
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), chn->ID)) {
295
PyErr_Format(pygimp_error,
296
"Channel (ID %d) does not exist in GimpChannelComboBox",
305
define GimpChannelComboBox.get_active_channel noargs
307
_wrap_gimp_channel_combo_box_get_active_channel(PyGObject *self)
311
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
312
return pygimp_channel_new(value);
318
override gimp_layer_combo_box_new kwargs
320
pygimp_layer_constraint_marshal(gint32 image_id, gint32 layer_id,
323
PyObject *img, *lay, *ret;
325
PyGimpConstraintData *data = user_data;
327
img = pygimp_image_new(image_id);
333
lay = pygimp_layer_new(layer_id);
340
if (data->user_data && data->user_data != Py_None)
341
ret = PyObject_CallFunctionObjArgs(data->constraint, img, lay,
342
data->user_data, NULL);
344
ret = PyObject_CallFunctionObjArgs(data->constraint, img, lay, NULL);
350
res = PyObject_IsTrue(ret);
361
_wrap_gimp_layer_combo_box_new(PyGObject *self, PyObject *args,
364
PyObject *constraint = NULL, *user_data = NULL;
365
GimpDrawableConstraintFunc func = NULL;
366
PyGimpConstraintData *data = NULL;
368
static char *kwlist[] = { "constraint", "data", NULL };
370
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
371
"|OO:gimpui.LayerComboBox.__init__",
373
&constraint, &user_data))
376
if (constraint && constraint != Py_None) {
377
if (!PyCallable_Check(constraint)) {
378
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
382
data = g_new(PyGimpConstraintData, 1);
384
data->constraint = constraint;
385
Py_INCREF(constraint);
387
data->user_data = user_data;
388
Py_XINCREF(user_data);
390
func = pygimp_layer_constraint_marshal;
393
self->obj = (GObject *)gimp_layer_combo_box_new(func, data);
395
Py_XDECREF(constraint);
396
Py_XDECREF(user_data);
399
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_LAYER_COMBO_BOX) {
400
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
401
"when subclassing gimpui.LayerComboBox");
405
pygobject_register_wrapper((PyObject *)self);
409
define GimpLayerComboBox.set_active_layer kwargs
411
_wrap_gimp_layer_combo_box_set_active_layer(PyGObject *self, PyObject *args, PyObject *kwargs)
415
static char *kwlist[] = { "layer", NULL };
417
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
418
"O!:GimpLayerComboBox.set_active_layer",
420
PyGimpLayer_Type, &lay))
423
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), lay->ID)) {
424
PyErr_Format(pygimp_error,
425
"Layer (ID %d) does not exist in GimpLayerComboBox",
434
define GimpLayerComboBox.get_active_layer noargs
436
_wrap_gimp_layer_combo_box_get_active_layer(PyGObject *self)
440
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
441
return pygimp_layer_new(value);
447
override gimp_vectors_combo_box_new kwargs
449
pygimp_vectors_constraint_marshal(gint32 image_id, gint32 vectors_id,
452
PyObject *img, *vect, *ret;
454
PyGimpConstraintData *data = user_data;
456
img = pygimp_image_new(image_id);
462
vect = pygimp_vectors_new(vectors_id);
469
if (data->user_data && data->user_data != Py_None)
470
ret = PyObject_CallFunctionObjArgs(data->constraint, img, vect,
471
data->user_data, NULL);
473
ret = PyObject_CallFunctionObjArgs(data->constraint, img, vect, NULL);
479
res = PyObject_IsTrue(ret);
490
_wrap_gimp_vectors_combo_box_new(PyGObject *self, PyObject *args,
493
PyObject *constraint = NULL, *user_data = NULL;
494
GimpVectorsConstraintFunc func = NULL;
495
PyGimpConstraintData *data = NULL;
497
static char *kwlist[] = { "constraint", "data", NULL };
499
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
500
"|OO:gimpui.VectorsComboBox.__init__",
502
&constraint, &user_data))
505
if (constraint && constraint != Py_None) {
506
if (!PyCallable_Check(constraint)) {
507
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
511
data = g_new(PyGimpConstraintData, 1);
513
data->constraint = constraint;
514
Py_INCREF(constraint);
516
data->user_data = user_data;
517
Py_XINCREF(user_data);
519
func = pygimp_vectors_constraint_marshal;
522
self->obj = (GObject *)gimp_vectors_combo_box_new(func, data);
524
Py_XDECREF(constraint);
525
Py_XDECREF(user_data);
528
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_VECTORS_COMBO_BOX) {
529
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
530
"when subclassing gimpui.VectorsComboBox");
534
pygobject_register_wrapper((PyObject *)self);
538
define GimpVectorsComboBox.set_active_vectors kwargs
540
_wrap_gimp_vectors_combo_box_set_active_vectors(PyGObject *self, PyObject *args, PyObject *kwargs)
544
static char *kwlist[] = { "vectors", NULL };
546
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
547
"O!:GimpVectorsComboBox.set_active_vectors",
549
PyGimpVectors_Type, &vect))
552
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), vect->ID)) {
553
PyErr_Format(pygimp_error,
554
"Vectors (ID %d) does not exist in GimpVectorsComboBox",
563
define GimpVectorsComboBox.get_active_vectors noargs
565
_wrap_gimp_vectors_combo_box_get_active_vectors(PyGObject *self)
569
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
570
return pygimp_vectors_new(value);
576
override gimp_image_combo_box_new kwargs
578
pygimp_image_constraint_marshal(gint32 image_id, gpointer user_data)
582
PyGimpConstraintData *data = user_data;
584
img = pygimp_image_new(image_id);
590
if (data->user_data && data->user_data != Py_None)
591
ret = PyObject_CallFunctionObjArgs(data->constraint, img,
592
data->user_data, NULL);
594
ret = PyObject_CallFunctionObjArgs(data->constraint, img, NULL);
600
res = PyObject_IsTrue(ret);
610
_wrap_gimp_image_combo_box_new(PyGObject *self, PyObject *args,
613
PyObject *constraint = NULL, *user_data = NULL;
614
GimpImageConstraintFunc func = NULL;
615
PyGimpConstraintData *data = NULL;
617
static char *kwlist[] = { "constraint", "data", NULL };
619
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
620
"|OO:gimpui.ImageComboBox.__init__",
622
&constraint, &user_data))
625
if (constraint && constraint != Py_None) {
626
if (!PyCallable_Check(constraint)) {
627
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
631
data = g_new(PyGimpConstraintData, 1);
633
data->constraint = constraint;
634
Py_INCREF(constraint);
636
data->user_data = user_data;
637
Py_XINCREF(user_data);
639
func = pygimp_image_constraint_marshal;
642
self->obj = (GObject *)gimp_image_combo_box_new(func, data);
644
Py_XDECREF(constraint);
645
Py_XDECREF(user_data);
648
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_IMAGE_COMBO_BOX) {
649
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
650
"when subclassing gimpui.ImageComboBox");
654
pygobject_register_wrapper((PyObject *)self);
658
define GimpImageComboBox.set_active_image kwargs
660
_wrap_gimp_image_combo_box_set_active_image(PyGObject *self, PyObject *args, PyObject *kwargs)
664
static char *kwlist[] = { "image", NULL };
666
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
667
"O!:GimpImageComboBox.set_active_image",
669
PyGimpImage_Type, &img))
672
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), img->ID)) {
673
PyErr_Format(pygimp_error,
674
"Image (ID %d) does not exist in GimpImageComboBox",
683
define GimpImageComboBox.get_active_image noargs
685
_wrap_gimp_image_combo_box_get_active_image(PyGObject *self)
689
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
690
return pygimp_image_new(value);
696
override gimp_dialog_new kwargs
698
pygimp_help_func_marshal(const gchar *help_id, gpointer help_data)
700
GObject *dialog = help_data;
701
PyObject *py_dialog, *help_func, *ret;
703
py_dialog = g_object_get_data(dialog, "pygimp-dialog-pyobject");
704
help_func = g_object_get_data(dialog, "pygimp-dialog-help_func");
706
ret = PyObject_CallFunction(help_func, "sO", help_id, py_dialog);
715
pygimp_help_func_destroy(gpointer data)
717
PyObject *help_func = data;
719
Py_DECREF(help_func);
723
pygimp_dialog_close(GtkWidget *widget)
725
/* Synthesize delete_event to close dialog. */
727
if (widget->window) {
728
GdkEvent *event = gdk_event_new(GDK_DELETE);
730
event->any.window = g_object_ref(widget->window);
731
event->any.send_event = TRUE;
733
gtk_main_do_event(event);
734
gdk_event_free(event);
739
_wrap_gimp_dialog_new(PyGObject *self, PyObject *args, PyObject *kwargs)
742
PyGObject *py_window = NULL;
743
PyObject *py_flags = NULL, *py_buttons = Py_None;
744
PyObject *help_func = NULL;
745
gchar *help_id = NULL;
746
GtkDialogFlags flags = 0;
751
static char *kwlist[] = { "title", "role", "parent", "flags",
752
"help_func", "help_id", "buttons", NULL };
754
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
755
"zz|OOOzO:gimpui.GimpDialog.__init__",
757
&title, &role, &py_window, &py_flags,
758
&help_func, &help_id, &py_buttons))
761
if (py_window == NULL || (PyObject*)py_window == Py_None)
763
else if (pygobject_check(py_window, &PyGtkWindow_Type))
764
parent = GTK_WIDGET(py_window->obj);
766
PyErr_SetString(PyExc_TypeError, "parent must be a GtkWindow or None");
770
if (pyg_flags_get_value(GTK_TYPE_DIALOG_FLAGS, py_flags, (gint *)&flags))
774
if (help_func != Py_None) {
775
if (!PyCallable_Check(help_func)) {
776
PyErr_SetString(PyExc_TypeError, "help_func must be callable");
780
func = pygimp_help_func_marshal;
782
g_object_set_data(self->obj, "pygimp-dialog-help-data", self);
784
Py_INCREF(help_func);
785
g_object_set_data_full(self->obj, "pygimp-dialog-help-func",
786
help_func, pygimp_help_func_destroy);
788
func = gimp_standard_help_func;
791
func = gimp_standard_help_func;
794
if (py_buttons == Py_None)
796
else if (PyTuple_Check(py_buttons))
797
len = PyTuple_Size(py_buttons);
799
PyErr_SetString(PyExc_TypeError, "buttons must be a tuple containing text/response pairs or None");
804
PyErr_SetString(PyExc_RuntimeError,
805
"buttons tuple must contain text/response id pairs");
809
pygobject_construct(self,
812
"modal", (flags & GTK_DIALOG_MODAL),
818
PyErr_SetString(PyExc_RuntimeError,
819
"could not create GimpDialog object");
824
if (GTK_IS_WINDOW(parent))
825
gtk_window_set_transient_for(GTK_WINDOW(self->obj),
828
gtk_window_set_screen(GTK_WINDOW(self->obj),
829
gtk_widget_get_screen(parent));
831
if (flags & GTK_DIALOG_DESTROY_WITH_PARENT)
832
g_signal_connect_object(parent, "destroy",
833
G_CALLBACK(pygimp_dialog_close),
834
self->obj, G_CONNECT_SWAPPED);
837
for (i = 0; i < len; i += 2) {
838
PyObject *text = PyTuple_GetItem(py_buttons, i);
839
PyObject *id = PyTuple_GetItem(py_buttons, i + 1);
840
if (!PyString_Check(text) && !PyUnicode_Check(text)) {
841
gtk_object_destroy(GTK_OBJECT(self->obj));
843
PyErr_SetString(PyExc_RuntimeError,
844
"first member of each text/response id pair "
848
if (!PyInt_Check(id)) {
849
gtk_object_destroy(GTK_OBJECT(self->obj));
851
PyErr_SetString(PyExc_RuntimeError,
852
"second member of each text/response id pair "
857
gimp_dialog_add_button(GIMP_DIALOG(self->obj), PyString_AsString(text),
864
new-constructor GIMP_TYPE_DIALOG
866
override gimp_color_button_get_color noargs
868
_wrap_gimp_color_button_get_color(PyGObject *self)
872
gimp_color_button_get_color(GIMP_COLOR_BUTTON(self->obj), &rgb);
874
return pygimp_rgb_new(&rgb);
877
override gimp_brush_select_button_get_brush noargs
879
_wrap_gimp_brush_select_button_get_brush(PyGObject *self)
881
const gchar *brush_name;
884
GimpLayerModeEffects paint_mode;
887
gimp_brush_select_button_get_brush(GIMP_BRUSH_SELECT_BUTTON(self->obj),
888
&opacity, &spacing, &paint_mode);
890
return Py_BuildValue("(sdiN)", brush_name, opacity, spacing,
891
pyg_enum_from_gtype(GIMP_TYPE_LAYER_MODE_EFFECTS,
895
override gimp_window_set_transient
897
_wrap_gimp_window_set_transient(PyGObject *self)
899
gimp_window_set_transient(GTK_WINDOW(self->obj));
904
override gimp_color_button_new kwargs
906
_wrap_gimp_color_button_new(PyGObject *self, PyObject *args, PyObject *kwargs)
909
gint width = -1, height = -1;
910
PyObject *py_color = NULL, *py_type = NULL;
911
GimpRGB *color, default_color = { 0.0, 0.0, 0.0, 100.0 };
912
GimpColorAreaType type;
914
static char *kwlist[] = { "title", "width", "height", "color", "type",
917
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
918
"|ziiOO:gimpui.ColorButton.__init__",
920
&title, &width, &height,
921
&py_color, &py_type))
924
if (py_color == NULL || (PyObject*)py_color == Py_None)
925
color = &default_color;
926
else if (pyg_boxed_check(py_color, GIMP_TYPE_RGB))
927
color = pyg_boxed_get(py_color, GimpRGB);
929
PyErr_SetString(PyExc_TypeError, "color should be a GimpRGB or None");
933
if (py_type == NULL || (PyObject*)py_type == Py_None)
934
type = GIMP_COLOR_AREA_FLAT;
935
else if (pyg_enum_get_value(GIMP_TYPE_COLOR_AREA_TYPE, py_type, (gint*)&type))
938
if (pygobject_construct(self,
945
gtk_widget_set_size_request(GIMP_COLOR_BUTTON(self->obj)->color_area,
950
new-constructor GIMP_TYPE_COLOR_BUTTON
952
override gimp_color_scale_new kwargs
954
_wrap_gimp_color_scale_new(PyGObject *self, PyObject *args, PyObject *kwargs)
956
PyObject *py_orientation, *py_channel;
957
GtkOrientation orientation;
958
GimpColorSelectorChannel channel;
959
GimpColorScale *scale;
962
static char *kwlist[] = { "orientation", "channel", NULL };
964
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
965
"OO:gimpui.ColorScale.__init__",
967
&py_orientation, &py_channel))
970
if (pyg_enum_get_value(GTK_TYPE_ORIENTATION, py_orientation,
971
(gint*)&orientation))
974
if (pyg_enum_get_value(GIMP_TYPE_COLOR_SELECTOR_CHANNEL, py_channel,
978
if (pygobject_construct(self, NULL))
981
scale = GIMP_COLOR_SCALE(self->obj);
982
scale->channel = channel;
984
range = GTK_RANGE(scale);
985
range->orientation = orientation;
986
range->flippable = (orientation == GTK_ORIENTATION_HORIZONTAL);
991
new-constructor GIMP_TYPE_COLOR_SCALE
993
override gimp_enum_label_new kwargs
995
_wrap_gimp_enum_label_new(PyGObject *self, PyObject *args, PyObject *kwargs)
997
PyObject *py_enum_type = NULL;
1000
GimpEnumLabel *label;
1002
static char *kwlist[] = { "enum_type", "value", NULL };
1004
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1005
"Oi:gimpui.GimpEnumLabel.__init__",
1007
&py_enum_type, &value))
1010
if ((enum_type = pyg_type_from_object(py_enum_type)) == 0)
1013
if (pygobject_construct(self, NULL))
1016
label = GIMP_ENUM_LABEL(self->obj);
1018
label->enum_class = g_type_class_ref(enum_type);
1020
gimp_enum_label_set_value (label, value);
1025
new-constructor GIMP_TYPE_ENUM_LABEL
1027
override gimp_int_combo_box_new kwargs
1029
_wrap_gimp_int_combo_box_new(PyGObject *self, PyObject *args, PyObject *kwargs)
1031
PyObject *py_items = NULL;
1034
static char *kwlist[] = { "items", NULL };
1036
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1037
"|O:gimpui.IntComboBox.__init__",
1042
if (py_items == NULL || py_items == Py_None)
1044
else if (PyTuple_Check(py_items))
1045
len = PyTuple_Size(py_items);
1047
PyErr_SetString(PyExc_TypeError,
1048
"items must be a tuple containing label/value pairs "
1054
PyErr_SetString(PyExc_RuntimeError,
1055
"items tuple must contain label/value pairs");
1059
if (pygobject_construct(self, NULL))
1062
for (i = 0; i < len; i += 2) {
1063
PyObject *label = PyTuple_GetItem(py_items, i);
1064
PyObject *value = PyTuple_GetItem(py_items, i + 1);
1066
if (!PyString_Check(label)) {
1067
gtk_object_destroy(GTK_OBJECT(self->obj));
1069
PyErr_SetString(PyExc_RuntimeError,
1070
"first member of each label/value pair "
1071
"must be a string");
1075
if (!PyInt_Check(value)) {
1076
gtk_object_destroy(GTK_OBJECT(self->obj));
1078
PyErr_SetString(PyExc_RuntimeError,
1079
"second member of each label/value pair "
1080
"must be a number");
1084
gimp_int_combo_box_append(GIMP_INT_COMBO_BOX(self->obj),
1085
PyString_AsString(label),
1086
PyInt_AsLong(value),
1093
new-constructor GIMP_TYPE_INT_COMBO_BOX
1095
override gimp_int_combo_box_get_active noargs
1097
_wrap_gimp_int_combo_box_get_active(PyGObject *self)
1101
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
1102
return PyLong_FromLong(value);
1108
override gimp_int_combo_box_set_active kwargs
1110
_wrap_gimp_int_combo_box_set_active(PyGObject *self, PyObject *args, PyObject *kwargs)
1114
static char *kwlist[] = { "value", NULL };
1116
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1117
"i:GimpIntComboBox.set_active", kwlist,
1121
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), value)) {
1122
PyErr_Format(pygimp_error,
1123
"Value %d does not exist in GimpIntComboBox",
1132
override gimp_browser_add_search_types kwargs
1134
_wrap_gimp_browser_add_search_types(PyGObject *self, PyObject *args, PyObject *kwargs)
1136
PyObject *py_types = NULL;
1139
static char *kwlist[] = { "search_types", NULL };
1141
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1142
"O:GimpBrowser.add_search_types",
1147
if (PyTuple_Check(py_types))
1148
len = PyTuple_Size(py_types);
1150
PyErr_SetString(PyExc_TypeError,
1151
"search_types must be a tuple containing label/id "
1157
PyErr_SetString(PyExc_RuntimeError,
1158
"search_types tuple must contain label/id pairs");
1162
for (i = 0; i < len; i += 2) {
1163
PyObject *label = PyTuple_GetItem(py_types, i);
1164
PyObject *id = PyTuple_GetItem(py_types, i + 1);
1166
if (!PyString_Check(label)) {
1167
PyErr_SetString(PyExc_RuntimeError,
1168
"first member of each label/id pair "
1169
"must be a string");
1173
if (!PyInt_Check(id)) {
1174
PyErr_SetString(PyExc_RuntimeError,
1175
"second member of each label/id pair "
1176
"must be a number");
1180
gimp_browser_add_search_types(GIMP_BROWSER(self->obj),
1181
PyString_AsString(label),
1190
override gimp_proc_browser_dialog_new kwargs
1192
_wrap_gimp_proc_browser_dialog_new(PyGObject *self, PyObject *args, PyObject *kwargs)
1194
gchar *title, *role;
1195
PyObject *py_buttons = Py_None;
1196
PyObject *help_func = NULL;
1197
gchar *help_id = NULL;
1201
static char *kwlist[] = { "title", "role", "help_func", "help_id",
1204
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1205
"zz|OzO:gimpui.GimpProcBrowserDialog.__init__",
1207
&title, &role, &help_func, &help_id,
1212
if (help_func != Py_None) {
1213
if (!PyCallable_Check(help_func)) {
1214
PyErr_SetString(PyExc_TypeError, "help_func must be callable");
1218
func = pygimp_help_func_marshal;
1220
g_object_set_data(self->obj, "pygimp-dialog-help-data", self);
1222
Py_INCREF(help_func);
1223
g_object_set_data_full(self->obj, "pygimp-dialog-help-func",
1224
help_func, pygimp_help_func_destroy);
1226
func = gimp_standard_help_func;
1229
func = gimp_standard_help_func;
1232
if (py_buttons == Py_None)
1234
else if (PyTuple_Check(py_buttons))
1235
len = PyTuple_Size(py_buttons);
1237
PyErr_SetString(PyExc_TypeError, "buttons must be a tuple containing text/response pairs or None");
1242
PyErr_SetString(PyExc_RuntimeError,
1243
"buttons tuple must contain text/response id pairs");
1247
pygobject_construct(self,
1255
PyErr_SetString(PyExc_RuntimeError,
1256
"could not create GimpProcBrowserDialog object");
1260
for (i = 0; i < len; i += 2) {
1261
PyObject *text = PyTuple_GetItem(py_buttons, i);
1262
PyObject *id = PyTuple_GetItem(py_buttons, i + 1);
1263
if (!PyString_Check(text) && !PyUnicode_Check(text)) {
1264
gtk_object_destroy(GTK_OBJECT(self->obj));
1266
PyErr_SetString(PyExc_RuntimeError,
1267
"first member of each text/response id pair "
1268
"must be a string");
1271
if (!PyInt_Check(id)) {
1272
gtk_object_destroy(GTK_OBJECT(self->obj));
1274
PyErr_SetString(PyExc_RuntimeError,
1275
"second member of each text/response id pair "
1276
"must be a number");
1280
gimp_dialog_add_button(GIMP_DIALOG(self->obj), PyString_AsString(text),
1284
g_signal_emit_by_name(GIMP_PROC_BROWSER_DIALOG(self->obj)->browser,
1285
"search", "", 0, self->obj);
1289
new-constructor GIMP_TYPE_PROC_BROWSER_DIALOG