Files
gimp/plug-ins/pygimp/gimpui.override
Michael Natterer 66060e3307 app, libgimp*, plug-ins: replace enum GimpLayerModeEffects by GimpLayerMode
with proper value names. Mark most values as _BROKEN because they use
weird alpha compositing that has to die. Move GimpLayerModeEffects to
libgimpbase, deprecate it, and set it as compat enum for GimpLayerMode.
Add the GimpLayerModeEffects values as compat constants to script-fu
and pygimp.
2017-01-08 23:00:19 +01:00

2076 lines
59 KiB
Plaintext

headers
#include <Python.h>
#define NO_IMPORT_PYGOBJECT
#include <pygobject.h>
#include <pycairo.h>
extern Pycairo_CAPI_t *Pycairo_CAPI;
#define GIMP_DISABLE_DEPRECATION_WARNINGS
#include <libgimp/gimp.h>
#undef GIMP_DISABLE_DEPRECATED
#include <libgimp/gimpui.h>
#define GIMP_DISABLE_DEPRECATED
#define NO_IMPORT_PYGIMP
#include "pygimp-api.h"
#define NO_IMPORT_PYGIMPCOLOR
#include "pygimpcolor-api.h"
typedef struct {
PyObject *constraint;
PyObject *user_data;
} PyGimpConstraintData;
typedef struct {
PyObject *sensitivity_func;
PyObject *user_data;
} PyGimpIntSensitivityData;
/* TODO: Add a header for these */
void gimpui_register_classes(PyObject *d);
void gimpui_add_constants(PyObject *module, const gchar *strip_prefix);
static void
pygimp_decref_callback(PyObject* obj) {
Py_XDECREF (obj);
}
%%
modulename gimpui
%%
import gobject.GObject as PyGObject_Type
import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
import gtk.Object as PyGtkObject_Type
import gtk.Widget as PyGtkWidget_Type
import gtk.Dialog as PyGtkDialog_Type
import gtk.Window as PyGtkWindow_Type
import gtk.Label as PyGtkLabel_Type
import gtk.Button as PyGtkButton_Type
import gtk.ToggleButton as PyGtkToggleButton_Type
import gtk.RadioButton as PyGtkRadioButton_Type
import gtk.SpinButton as PyGtkSpinButton_Type
import gtk.Entry as PyGtkEntry_Type
import gtk.DrawingArea as PyGtkDrawingArea_Type
import gtk.Table as PyGtkTable_Type
import gtk.Frame as PyGtkFrame_Type
import gtk.HBox as PyGtkHBox_Type
import gtk.VBox as PyGtkVBox_Type
import gtk.HPaned as PyGtkHPaned_Type
import gtk.VPaned as PyGtkVPaned_Type
import gtk.Scale as PyGtkScale_Type
import gtk.ProgressBar as PyGtkProgressBar_Type
import gtk.OptionMenu as PyGtkOptionMenu_Type
import gtk.ComboBox as PyGtkComboBox_Type
import gtk.ListStore as PyGtkListStore_Type
import gtk.TreeModel as PyGtkTreeModel_Type
import gtk.CellRenderer as PyGtkCellRenderer_Type
import gtk.CellRendererToggle as PyGtkCellRendererToggle_Type
import gimp.Parasite as PyGimpParasite_Type
%%
ignore
gimp_dialog_add_buttons
gimp_int_combo_box_connect
gimp_color_profile_combo_box_new
gimp_enum_store_new_with_values
gimp_int_combo_box_new_array
%%
ignore-glob
*_get_type
*_valist
gimp_resolution_*
%%
ignore-type
GimpIntStoreColumns
%%
override gimp_drawable_combo_box_new kwargs
static gboolean
pygimp_drawable_constraint_marshal(gint32 image_id, gint32 drawable_id,
gpointer user_data)
{
PyObject *img, *drw, *ret;
gboolean res;
PyGimpConstraintData *data = user_data;
img = pygimp_image_new(image_id);
if (!img) {
PyErr_Print();
return FALSE;
}
drw = pygimp_drawable_new(NULL, drawable_id);
if (!drw) {
PyErr_Print();
Py_DECREF(img);
return FALSE;
}
if (data->user_data && data->user_data != Py_None)
ret = PyObject_CallFunctionObjArgs(data->constraint, img, drw,
data->user_data, NULL);
else
ret = PyObject_CallFunctionObjArgs(data->constraint, img, drw, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(drw);
Py_DECREF(img);
return res;
}
static int
_wrap_gimp_drawable_combo_box_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *constraint = NULL, *user_data = NULL;
GimpDrawableConstraintFunc func = NULL;
PyGimpConstraintData *data = NULL;
static char *kwlist[] = { "constraint", "data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|OO:gimpui.DrawableComboBox.__init__",
kwlist,
&constraint, &user_data))
return -1;
if (constraint && constraint != Py_None) {
if (!PyCallable_Check(constraint)) {
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
return -1;
}
data = g_new(PyGimpConstraintData, 1);
data->constraint = constraint;
Py_XINCREF(constraint);
data->user_data = user_data;
Py_XINCREF(user_data);
func = pygimp_drawable_constraint_marshal;
}
self->obj = (GObject *)gimp_drawable_combo_box_new(func, data);
Py_XDECREF(constraint);
Py_XDECREF(user_data);
g_free(data);
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_DRAWABLE_COMBO_BOX) {
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
"when subclassing gimpui.DrawableComboBox");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
define GimpDrawableComboBox.set_active_drawable kwargs
static PyObject *
_wrap_gimp_drawable_combo_box_set_active_drawable(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyGimpDrawable *drw;
static char *kwlist[] = { "drawable", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpDrawableComboBox.set_active_drawable",
kwlist,
PyGimpDrawable_Type, &drw))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), drw->ID)) {
PyErr_Format(pygimp_error,
"Drawable (ID %d) does not exist in GimpDrawableComboBox",
drw->ID);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
define GimpDrawableComboBox.get_active_drawable noargs
static PyObject *
_wrap_gimp_drawable_combo_box_get_active_drawable(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return pygimp_drawable_new(NULL, value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_channel_combo_box_new kwargs
static gboolean
pygimp_channel_constraint_marshal(gint32 image_id, gint32 channel_id,
gpointer user_data)
{
PyObject *img, *chn, *ret;
gboolean res;
PyGimpConstraintData *data = user_data;
img = pygimp_image_new(image_id);
if (!img) {
PyErr_Print();
return FALSE;
}
chn = pygimp_channel_new(channel_id);
if (!chn) {
PyErr_Print();
Py_DECREF(img);
return FALSE;
}
if (data->user_data && data->user_data != Py_None)
ret = PyObject_CallFunctionObjArgs(data->constraint, img, chn,
data->user_data, NULL);
else
ret = PyObject_CallFunctionObjArgs(data->constraint, img, chn, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(chn);
Py_DECREF(img);
return res;
}
static int
_wrap_gimp_channel_combo_box_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *constraint = NULL, *user_data = NULL;
GimpDrawableConstraintFunc func = NULL;
PyGimpConstraintData *data = NULL;
static char *kwlist[] = { "constraint", "data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|OO:gimpui.ChannelComboBox.__init__",
kwlist,
&constraint, &user_data))
return -1;
if (constraint && constraint != Py_None) {
if (!PyCallable_Check(constraint)) {
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
return -1;
}
data = g_new(PyGimpConstraintData, 1);
data->constraint = constraint;
Py_INCREF(constraint);
data->user_data = user_data;
Py_XINCREF(user_data);
func = pygimp_channel_constraint_marshal;
}
self->obj = (GObject *)gimp_channel_combo_box_new(func, data);
Py_XDECREF(constraint);
Py_XDECREF(user_data);
g_free(data);
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_CHANNEL_COMBO_BOX) {
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
"when subclassing gimpui.ChannelComboBox");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
define GimpChannelComboBox.set_active_channel kwargs
static PyObject *
_wrap_gimp_channel_combo_box_set_active_channel(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyGimpChannel *chn;
static char *kwlist[] = { "channel", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpChannelComboBox.set_active_channel",
kwlist,
PyGimpChannel_Type, &chn))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), chn->ID)) {
PyErr_Format(pygimp_error,
"Channel (ID %d) does not exist in GimpChannelComboBox",
chn->ID);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
define GimpChannelComboBox.get_active_channel noargs
static PyObject *
_wrap_gimp_channel_combo_box_get_active_channel(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return pygimp_channel_new(value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_layer_combo_box_new kwargs
static gboolean
pygimp_layer_constraint_marshal(gint32 image_id, gint32 layer_id,
gpointer user_data)
{
PyObject *img, *lay, *ret;
gboolean res;
PyGimpConstraintData *data = user_data;
img = pygimp_image_new(image_id);
if (!img) {
PyErr_Print();
return FALSE;
}
lay = pygimp_layer_new(layer_id);
if (!lay) {
PyErr_Print();
Py_DECREF(img);
return FALSE;
}
if (data->user_data && data->user_data != Py_None)
ret = PyObject_CallFunctionObjArgs(data->constraint, img, lay,
data->user_data, NULL);
else
ret = PyObject_CallFunctionObjArgs(data->constraint, img, lay, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(lay);
Py_DECREF(img);
return res;
}
static int
_wrap_gimp_layer_combo_box_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *constraint = NULL, *user_data = NULL;
GimpDrawableConstraintFunc func = NULL;
PyGimpConstraintData *data = NULL;
static char *kwlist[] = { "constraint", "data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|OO:gimpui.LayerComboBox.__init__",
kwlist,
&constraint, &user_data))
return -1;
if (constraint && constraint != Py_None) {
if (!PyCallable_Check(constraint)) {
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
return -1;
}
data = g_new(PyGimpConstraintData, 1);
data->constraint = constraint;
Py_INCREF(constraint);
data->user_data = user_data;
Py_XINCREF(user_data);
func = pygimp_layer_constraint_marshal;
}
self->obj = (GObject *)gimp_layer_combo_box_new(func, data);
Py_XDECREF(constraint);
Py_XDECREF(user_data);
g_free(data);
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_LAYER_COMBO_BOX) {
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
"when subclassing gimpui.LayerComboBox");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
define GimpLayerComboBox.set_active_layer kwargs
static PyObject *
_wrap_gimp_layer_combo_box_set_active_layer(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyGimpLayer *lay;
static char *kwlist[] = { "layer", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpLayerComboBox.set_active_layer",
kwlist,
PyGimpLayer_Type, &lay))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), lay->ID)) {
PyErr_Format(pygimp_error,
"Layer (ID %d) does not exist in GimpLayerComboBox",
lay->ID);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
define GimpLayerComboBox.get_active_layer noargs
static PyObject *
_wrap_gimp_layer_combo_box_get_active_layer(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return pygimp_layer_new(value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_vectors_combo_box_new kwargs
static gboolean
pygimp_vectors_constraint_marshal(gint32 image_id, gint32 vectors_id,
gpointer user_data)
{
PyObject *img, *vect, *ret;
gboolean res;
PyGimpConstraintData *data = user_data;
img = pygimp_image_new(image_id);
if (!img) {
PyErr_Print();
return FALSE;
}
vect = pygimp_vectors_new(vectors_id);
if (!vect) {
PyErr_Print();
Py_DECREF(img);
return FALSE;
}
if (data->user_data && data->user_data != Py_None)
ret = PyObject_CallFunctionObjArgs(data->constraint, img, vect,
data->user_data, NULL);
else
ret = PyObject_CallFunctionObjArgs(data->constraint, img, vect, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(vect);
Py_DECREF(img);
return res;
}
static int
_wrap_gimp_vectors_combo_box_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *constraint = NULL, *user_data = NULL;
GimpVectorsConstraintFunc func = NULL;
PyGimpConstraintData *data = NULL;
static char *kwlist[] = { "constraint", "data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|OO:gimpui.VectorsComboBox.__init__",
kwlist,
&constraint, &user_data))
return -1;
if (constraint && constraint != Py_None) {
if (!PyCallable_Check(constraint)) {
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
return -1;
}
data = g_new(PyGimpConstraintData, 1);
data->constraint = constraint;
Py_INCREF(constraint);
data->user_data = user_data;
Py_XINCREF(user_data);
func = pygimp_vectors_constraint_marshal;
}
self->obj = (GObject *)gimp_vectors_combo_box_new(func, data);
Py_XDECREF(constraint);
Py_XDECREF(user_data);
g_free(data);
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_VECTORS_COMBO_BOX) {
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
"when subclassing gimpui.VectorsComboBox");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
define GimpVectorsComboBox.set_active_vectors kwargs
static PyObject *
_wrap_gimp_vectors_combo_box_set_active_vectors(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyGimpVectors *vect;
static char *kwlist[] = { "vectors", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpVectorsComboBox.set_active_vectors",
kwlist,
PyGimpVectors_Type, &vect))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), vect->ID)) {
PyErr_Format(pygimp_error,
"Vectors (ID %d) does not exist in GimpVectorsComboBox",
vect->ID);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
define GimpVectorsComboBox.get_active_vectors noargs
static PyObject *
_wrap_gimp_vectors_combo_box_get_active_vectors(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return pygimp_vectors_new(value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_image_combo_box_new kwargs
static gboolean
pygimp_image_constraint_marshal(gint32 image_id, gpointer user_data)
{
PyObject *img, *ret;
gboolean res;
PyGimpConstraintData *data = user_data;
img = pygimp_image_new(image_id);
if (!img) {
PyErr_Print();
return FALSE;
}
if (data->user_data && data->user_data != Py_None)
ret = PyObject_CallFunctionObjArgs(data->constraint, img,
data->user_data, NULL);
else
ret = PyObject_CallFunctionObjArgs(data->constraint, img, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(img);
return res;
}
static int
_wrap_gimp_image_combo_box_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *constraint = NULL, *user_data = NULL;
GimpImageConstraintFunc func = NULL;
PyGimpConstraintData *data = NULL;
static char *kwlist[] = { "constraint", "data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|OO:gimpui.ImageComboBox.__init__",
kwlist,
&constraint, &user_data))
return -1;
if (constraint && constraint != Py_None) {
if (!PyCallable_Check(constraint)) {
PyErr_SetString(PyExc_TypeError, "first arg must be callable");
return -1;
}
data = g_new(PyGimpConstraintData, 1);
data->constraint = constraint;
Py_INCREF(constraint);
data->user_data = user_data;
Py_XINCREF(user_data);
func = pygimp_image_constraint_marshal;
}
self->obj = (GObject *)gimp_image_combo_box_new(func, data);
Py_XDECREF(constraint);
Py_XDECREF(user_data);
g_free(data);
if (pyg_type_from_object((PyObject *)self) != GIMP_TYPE_IMAGE_COMBO_BOX) {
PyErr_SetString(PyExc_RuntimeError, "__gobject_init__ must be used "
"when subclassing gimpui.ImageComboBox");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
define GimpImageComboBox.set_active_image kwargs
static PyObject *
_wrap_gimp_image_combo_box_set_active_image(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyGimpImage *img;
static char *kwlist[] = { "image", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpImageComboBox.set_active_image",
kwlist,
PyGimpImage_Type, &img))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), img->ID)) {
PyErr_Format(pygimp_error,
"Image (ID %d) does not exist in GimpImageComboBox",
img->ID);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
define GimpImageComboBox.get_active_image noargs
static PyObject *
_wrap_gimp_image_combo_box_get_active_image(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return pygimp_image_new(value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_dialog_new kwargs
static void
pygimp_help_func_marshal(const gchar *help_id, gpointer help_data)
{
GObject *dialog = help_data;
PyObject *py_dialog, *help_func, *ret;
py_dialog = g_object_get_data(dialog, "pygimp-dialog-pyobject");
help_func = g_object_get_data(dialog, "pygimp-dialog-help_func");
ret = PyObject_CallFunction(help_func, "sO", help_id, py_dialog);
if (ret)
Py_DECREF(ret);
else
PyErr_Print();
}
static void
pygimp_help_func_destroy(gpointer data)
{
PyObject *help_func = data;
Py_DECREF(help_func);
}
static void
pygimp_dialog_close(GtkWidget *widget)
{
/* Synthesize delete_event to close dialog. */
if (gtk_widget_get_window (widget)) {
GdkEvent *event = gdk_event_new(GDK_DELETE);
event->any.window = g_object_ref (gtk_widget_get_window (widget));
event->any.send_event = TRUE;
gtk_main_do_event(event);
gdk_event_free(event);
}
}
static int
_wrap_gimp_dialog_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
gchar *title, *role;
PyGObject *py_window = NULL;
PyObject *py_flags = NULL, *py_buttons = Py_None;
PyObject *help_func = NULL;
gchar *help_id = NULL;
GtkDialogFlags flags = 0;
int len, i;
GtkWidget *parent;
GimpHelpFunc func;
static char *kwlist[] = { "title", "role", "parent", "flags",
"help_func", "help_id", "buttons", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"zz|OOOzO:gimpui.GimpDialog.__init__",
kwlist,
&title, &role, &py_window, &py_flags,
&help_func, &help_id, &py_buttons))
return -1;
if (py_window == NULL || (PyObject*)py_window == Py_None)
parent = NULL;
else if (pygobject_check(py_window, &PyGtkWindow_Type))
parent = GTK_WIDGET(py_window->obj);
else {
PyErr_SetString(PyExc_TypeError, "parent must be a GtkWindow or None");
return -1;
}
if (pyg_flags_get_value(GTK_TYPE_DIALOG_FLAGS, py_flags, (gint *)&flags))
return -1;
if (py_buttons == Py_None)
len = 0;
else if (PyTuple_Check(py_buttons))
len = PyTuple_Size(py_buttons);
else {
PyErr_SetString(PyExc_TypeError, "buttons must be a tuple containing text/response pairs or None");
return -1;
}
if (len % 2) {
PyErr_SetString(PyExc_RuntimeError,
"buttons tuple must contain text/response id pairs");
return -1;
}
if (help_func) {
if (help_func != Py_None) {
if (!PyCallable_Check(help_func)) {
PyErr_SetString(PyExc_TypeError, "help_func must be callable");
return -1;
}
func = pygimp_help_func_marshal;
} else {
func = gimp_standard_help_func;
}
} else {
func = gimp_standard_help_func;
}
pygobject_construct(self,
"title", title,
"role", role,
"modal", (flags & GTK_DIALOG_MODAL),
"help-func", func,
"help-id", help_id,
NULL);
if (!self->obj) {
PyErr_SetString(PyExc_RuntimeError,
"could not create GimpDialog object");
return -1;
}
if (parent) {
if (GTK_IS_WINDOW(parent))
gtk_window_set_transient_for(GTK_WINDOW(self->obj),
GTK_WINDOW(parent));
else
gtk_window_set_screen(GTK_WINDOW(self->obj),
gtk_widget_get_screen(parent));
if (flags & GTK_DIALOG_DESTROY_WITH_PARENT)
g_signal_connect_object(parent, "destroy",
G_CALLBACK(pygimp_dialog_close),
self->obj, G_CONNECT_SWAPPED);
}
for (i = 0; i < len; i += 2) {
PyObject *text = PyTuple_GetItem(py_buttons, i);
PyObject *id = PyTuple_GetItem(py_buttons, i + 1);
if (!PyString_Check(text) && !PyUnicode_Check(text)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"first member of each text/response id pair "
"must be a string");
return -1;
}
if (!PyInt_Check(id)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"second member of each text/response id pair "
"must be a number");
return -1;
}
gimp_dialog_add_button(GIMP_DIALOG(self->obj), PyString_AsString(text),
PyInt_AsLong(id));
}
if (help_func && help_func != Py_None) {
g_object_set_data(self->obj, "pygimp-dialog-help-data", self);
Py_INCREF(help_func);
g_object_set_data_full(self->obj, "pygimp-dialog-help-func",
help_func, pygimp_help_func_destroy);
}
return 0;
}
%%
new-constructor GIMP_TYPE_DIALOG
%%
override gimp_color_button_get_color noargs
static PyObject *
_wrap_gimp_color_button_get_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_button_get_color(GIMP_COLOR_BUTTON(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_brush_select_button_get_brush noargs
static PyObject *
_wrap_gimp_brush_select_button_get_brush(PyGObject *self)
{
const gchar *brush_name;
gdouble opacity;
gint spacing;
GimpLayerMode paint_mode;
brush_name =
gimp_brush_select_button_get_brush(GIMP_BRUSH_SELECT_BUTTON(self->obj),
&opacity, &spacing, &paint_mode);
return Py_BuildValue("(sdiN)", brush_name, opacity, spacing,
pyg_enum_from_gtype(GIMP_TYPE_LAYER_MODE,
paint_mode));
}
%%
override gimp_window_set_transient
static PyObject *
_wrap_gimp_window_set_transient(PyGObject *self)
{
gimp_window_set_transient(GTK_WINDOW(self->obj));
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_color_button_new kwargs
static int
_wrap_gimp_color_button_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
gchar *title = NULL;
gint width = -1, height = -1;
PyObject *py_color = NULL, *py_type = NULL;
GimpRGB *color, default_color = { 0.0, 0.0, 0.0, 100.0 };
GimpColorAreaType type;
static char *kwlist[] = { "title", "width", "height", "color", "type",
NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|ziiOO:gimpui.ColorButton.__init__",
kwlist,
&title, &width, &height,
&py_color, &py_type))
return -1;
if (py_color == NULL || (PyObject*)py_color == Py_None)
color = &default_color;
else if (pyg_boxed_check(py_color, GIMP_TYPE_RGB))
color = pyg_boxed_get(py_color, GimpRGB);
else {
PyErr_SetString(PyExc_TypeError, "color should be a GimpRGB or None");
return -1;
}
if (py_type == NULL || (PyObject*)py_type == Py_None)
type = GIMP_COLOR_AREA_FLAT;
else if (pyg_enum_get_value(GIMP_TYPE_COLOR_AREA_TYPE, py_type,
(gint*)&type))
return -1;
if (pygobject_construct(self,
"title", title,
"type", type,
"color", color,
"area-width", width,
"area-height", height,
NULL))
return -1;
return 0;
}
%%
new-constructor GIMP_TYPE_COLOR_BUTTON
%%
override gimp_color_scale_new kwargs
static int
_wrap_gimp_color_scale_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
PyObject *py_orientation, *py_channel;
GtkOrientation orientation;
GimpColorSelectorChannel channel;
static char *kwlist[] = { "orientation", "channel", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"OO:gimpui.ColorScale.__init__",
kwlist,
&py_orientation, &py_channel))
return -1;
if (pyg_enum_get_value(GTK_TYPE_ORIENTATION, py_orientation,
(gint*)&orientation))
return -1;
if (pyg_enum_get_value(GIMP_TYPE_COLOR_SELECTOR_CHANNEL, py_channel,
(gint*)&channel))
return -1;
if (pygobject_construct(self,
"orientation", orientation,
"channel", channel,
NULL))
return -1;
gtk_range_set_flippable (GTK_RANGE (self->obj),
orientation == GTK_ORIENTATION_HORIZONTAL);
return 0;
}
%%
new-constructor GIMP_TYPE_COLOR_SCALE
%%
override gimp_enum_label_new kwargs
static int
_wrap_gimp_enum_label_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
PyObject *py_enum_type = NULL;
GType enum_type;
gint value;
static char *kwlist[] = { "enum_type", "value", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"Oi:gimpui.GimpEnumLabel.__init__",
kwlist,
&py_enum_type, &value))
return -1;
if ((enum_type = pyg_type_from_object(py_enum_type)) == 0)
return -1;
if (pygobject_construct(self,
"enum-type", enum_type,
"enum-value", value,
NULL))
return -1;
return 0;
}
%%
new-constructor GIMP_TYPE_ENUM_LABEL
%%
override gimp_int_combo_box_new kwargs
static int
_wrap_gimp_int_combo_box_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
PyObject *py_items = NULL;
int len, i;
static char *kwlist[] = { "items", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"|O:gimpui.IntComboBox.__init__",
kwlist,
&py_items))
return -1;
if (py_items == NULL || py_items == Py_None)
len = 0;
else if (PyTuple_Check(py_items))
len = PyTuple_Size(py_items);
else {
PyErr_SetString(PyExc_TypeError,
"items must be a tuple containing label/value pairs "
"or None");
return -1;
}
if (len % 2) {
PyErr_SetString(PyExc_RuntimeError,
"items tuple must contain label/value pairs");
return -1;
}
if (pygobject_construct(self, NULL))
return -1;
for (i = 0; i < len; i += 2) {
PyObject *label = PyTuple_GetItem(py_items, i);
PyObject *value = PyTuple_GetItem(py_items, i + 1);
if (!PyString_Check(label)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"first member of each label/value pair "
"must be a string");
return -1;
}
if (!PyInt_Check(value)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"second member of each label/value pair "
"must be a number");
return -1;
}
gimp_int_combo_box_append(GIMP_INT_COMBO_BOX(self->obj),
GIMP_INT_STORE_LABEL,
PyString_AsString(label),
GIMP_INT_STORE_VALUE,
PyInt_AsLong(value),
-1);
}
return 0;
}
%%
new-constructor GIMP_TYPE_INT_COMBO_BOX
%%
override gimp_int_combo_box_set_sensitivity kwargs
static gboolean
pygimp_int_combo_box_sensitivity_marshal(gint value, gpointer user_data)
{
PyObject *py_value;
PyGimpIntSensitivityData *data;
PyObject *ret;
gboolean res;
data = user_data;
py_value = PyInt_FromLong(value);
ret = PyObject_CallFunctionObjArgs(data->sensitivity_func, py_value,
data->user_data, NULL);
if (!ret) {
PyErr_Print();
res = FALSE;
} else {
res = PyObject_IsTrue(ret);
Py_DECREF(ret);
}
Py_DECREF(py_value);
return res;
}
static void
pygimp_int_combo_box_sensitivity_data_destroy(gpointer user_data)
{
PyGimpIntSensitivityData *data;
data = user_data;
Py_DECREF(data->sensitivity_func);
Py_XDECREF(data->user_data);
g_free(data);
}
static PyObject *
_wrap_gimp_int_combo_box_set_sensitivity(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *py_sensitivity_func;
PyObject *py_user_data = NULL;
PyGimpIntSensitivityData *data;
static char *kwlist[] = { "sensitivity_func", "user_data", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O|O:GimpIntComboBox.set_sensitivity",
kwlist, &py_sensitivity_func,
&py_user_data))
return NULL;
if (!PyCallable_Check(py_sensitivity_func)) {
PyErr_SetString(PyExc_TypeError, "first argument must be callable.");
return NULL;
}
data = g_new(PyGimpIntSensitivityData, 1);
data->sensitivity_func = py_sensitivity_func;
Py_INCREF(data->sensitivity_func);
if (py_user_data == NULL || py_user_data == Py_None)
data->user_data = NULL;
else {
data->user_data = py_user_data;
Py_INCREF(data->user_data);
}
gimp_int_combo_box_set_sensitivity(GIMP_INT_COMBO_BOX(self->obj),
pygimp_int_combo_box_sensitivity_marshal,
data,
pygimp_int_combo_box_sensitivity_data_destroy);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_int_combo_box_get_active noargs
static PyObject *
_wrap_gimp_int_combo_box_get_active(PyGObject *self)
{
int value;
if (gimp_int_combo_box_get_active(GIMP_INT_COMBO_BOX(self->obj), &value))
return PyLong_FromLong(value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_int_combo_box_set_active kwargs
static PyObject *
_wrap_gimp_int_combo_box_set_active(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
int value;
static char *kwlist[] = { "value", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"i:GimpIntComboBox.set_active", kwlist,
&value))
return NULL;
if (!gimp_int_combo_box_set_active(GIMP_INT_COMBO_BOX(self->obj), value)) {
PyErr_Format(pygimp_error,
"Value %d does not exist in GimpIntComboBox",
value);
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_int_combo_box_append kwargs
static PyObject *
_wrap_gimp_int_combo_box_append(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *py_items;
int i, len;
static char *kwlist[] = { "items", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O:gimpui.IntComboBox.append",
kwlist,
&py_items))
return NULL;
if (py_items == NULL || py_items == Py_None)
len = 0;
else if (PyTuple_Check(py_items))
len = PyTuple_Size(py_items);
else {
PyErr_SetString(PyExc_TypeError,
"items must be a tuple containing label/value pairs "
"or None");
return NULL;
}
if (len % 2) {
PyErr_SetString(PyExc_RuntimeError,
"items tuple must contain label/value pairs");
return NULL;
}
for (i = 0; i < len; i += 2) {
PyObject *label = PyTuple_GetItem(py_items, i);
PyObject *value = PyTuple_GetItem(py_items, i + 1);
if (!PyString_Check(label)) {
PyErr_SetString(PyExc_RuntimeError,
"first member of each label/value pair "
"must be a string");
return NULL;
}
if (!PyInt_Check(value)) {
PyErr_SetString(PyExc_RuntimeError,
"second member of each label/value pair "
"must be a number");
return NULL;
}
gimp_int_combo_box_append(GIMP_INT_COMBO_BOX(self->obj),
GIMP_INT_STORE_LABEL,
PyString_AsString(label),
GIMP_INT_STORE_VALUE,
PyInt_AsLong(value),
-1);
}
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_int_combo_box_prepend kwargs
static PyObject *
_wrap_gimp_int_combo_box_prepend(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *py_items;
int i, len;
static char *kwlist[] = { "items", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O:gimpui.IntComboBox.prepend",
kwlist,
&py_items))
return NULL;
if (py_items == NULL || py_items == Py_None)
len = 0;
else if (PyTuple_Check(py_items))
len = PyTuple_Size(py_items);
else {
PyErr_SetString(PyExc_TypeError,
"items must be a tuple containing label/value pairs "
"or None");
return NULL;
}
if (len % 2) {
PyErr_SetString(PyExc_RuntimeError,
"items tuple must contain label/value pairs");
return NULL;
}
for (i = 0; i < len; i += 2) {
PyObject *label = PyTuple_GetItem(py_items, i);
PyObject *value = PyTuple_GetItem(py_items, i + 1);
if (!PyString_Check(label)) {
PyErr_SetString(PyExc_RuntimeError,
"first member of each label/value pair "
"must be a string");
return NULL;
}
if (!PyInt_Check(value)) {
PyErr_SetString(PyExc_RuntimeError,
"second member of each label/value pair "
"must be a number");
return NULL;
}
gimp_int_combo_box_prepend(GIMP_INT_COMBO_BOX(self->obj),
GIMP_INT_STORE_LABEL,
PyString_AsString(label),
GIMP_INT_STORE_VALUE,
PyInt_AsLong(value),
-1);
}
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_browser_add_search_types args
static PyObject *
_wrap_gimp_browser_add_search_types(PyGObject *self, PyObject *args)
{
GimpBrowser *browser;
int len, i;
PyObject *element;
gchar *label;
gint id;
browser = GIMP_BROWSER(self->obj);
len = PyTuple_Size(args);
for (i = 0; i < len; ++i) {
element = PyTuple_GetItem(args, i);
if (!PyTuple_Check(element)) {
PyErr_SetString(PyExc_TypeError, "GimpBrowser.add_search_types: Arguments must be tuples");
return NULL;
}
if (!PyArg_ParseTuple(element, "si", &label, &id))
return NULL;
gimp_browser_add_search_types(browser, label, id, NULL);
}
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_proc_browser_dialog_new kwargs
static int
_wrap_gimp_proc_browser_dialog_new(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
gchar *title, *role;
PyObject *py_buttons = Py_None;
PyObject *help_func = NULL;
gchar *help_id = NULL;
int len, i;
GimpHelpFunc func;
static char *kwlist[] = { "title", "role", "help_func", "help_id",
"buttons", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"zz|OzO:gimpui.GimpProcBrowserDialog.__init__",
kwlist,
&title, &role, &help_func, &help_id,
&py_buttons))
return -1;
if (py_buttons == Py_None)
len = 0;
else if (PyTuple_Check(py_buttons))
len = PyTuple_Size(py_buttons);
else {
PyErr_SetString(PyExc_TypeError,
"buttons must be a tuple containing text/response "
"pairs or None");
return -1;
}
if (len % 2) {
PyErr_SetString(PyExc_RuntimeError,
"buttons tuple must contain text/response id pairs");
return -1;
}
if (help_func) {
if (help_func != Py_None) {
if (!PyCallable_Check(help_func)) {
PyErr_SetString(PyExc_TypeError, "help_func must be callable");
return -1;
}
func = pygimp_help_func_marshal;
} else {
func = gimp_standard_help_func;
}
} else {
func = gimp_standard_help_func;
}
pygobject_construct(self,
"title", title,
"role", role,
"help-func", func,
"help-id", help_id,
NULL);
if (!self->obj) {
PyErr_SetString(PyExc_RuntimeError,
"could not create GimpProcBrowserDialog object");
return -1;
}
for (i = 0; i < len; i += 2) {
PyObject *text = PyTuple_GetItem(py_buttons, i);
PyObject *id = PyTuple_GetItem(py_buttons, i + 1);
if (!PyString_Check(text) && !PyUnicode_Check(text)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"first member of each text/response id pair "
"must be a string");
return -1;
}
if (!PyInt_Check(id)) {
gtk_object_destroy(GTK_OBJECT(self->obj));
self->obj = NULL;
PyErr_SetString(PyExc_RuntimeError,
"second member of each text/response id pair "
"must be a number");
return -1;
}
gimp_dialog_add_button(GIMP_DIALOG(self->obj), PyString_AsString(text),
PyInt_AsLong(id));
}
if (help_func && help_func != Py_None) {
g_object_set_data(self->obj, "pygimp-dialog-help-data", self);
Py_INCREF(help_func);
g_object_set_data_full(self->obj, "pygimp-dialog-help-func",
help_func, pygimp_help_func_destroy);
}
g_signal_emit_by_name(GIMP_PROC_BROWSER_DIALOG(self->obj)->browser,
"search", "", 0, self->obj);
return 0;
}
%%
new-constructor GIMP_TYPE_PROC_BROWSER_DIALOG
%%
override gimp_number_pair_entry_get_values noargs
static PyObject *
_wrap_gimp_number_pair_entry_get_values(PyGObject *self)
{
gdouble left, right;
gimp_number_pair_entry_get_values(GIMP_NUMBER_PAIR_ENTRY(self->obj),
&left, &right);
return Py_BuildValue("(dd)", left, right);
}
%%
override gimp_number_pair_entry_get_default_values noargs
static PyObject *
_wrap_gimp_number_pair_entry_get_default_values(PyGObject *self)
{
gdouble left, right;
gimp_number_pair_entry_get_default_values(
GIMP_NUMBER_PAIR_ENTRY(self->obj),
&left, &right);
return Py_BuildValue("(dd)", left, right);
}
%%
override gimp_number_pair_entry_get_aspect noargs
static PyObject *
_wrap_gimp_number_pair_entry_get_aspect(PyGObject *self)
{
GimpAspectType aspect;
aspect =
gimp_number_pair_entry_get_aspect(GIMP_NUMBER_PAIR_ENTRY(self->obj));
return pyg_enum_from_gtype(GIMP_TYPE_ASPECT_TYPE, aspect);
}
%%
override gimp_number_pair_entry_set_aspect kwargs
static PyObject *
_wrap_gimp_number_pair_entry_set_aspect(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PyObject *py_aspect;
GimpAspectType aspect;
static char *kwlist[] = {"aspect", NULL};
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O:GimpNumberPairEntry.set_aspect",
kwlist, &py_aspect))
return NULL;
if (pyg_enum_get_value(GIMP_TYPE_ASPECT_TYPE, py_aspect, (gint*)&aspect))
{
Py_XDECREF(py_aspect);
return NULL;
}
gimp_number_pair_entry_set_aspect(GIMP_NUMBER_PAIR_ENTRY(self->obj),
aspect);
Py_DECREF(py_aspect);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_page_selector_get_selected_pages noargs
static PyObject *
_wrap_gimp_page_selector_get_selected_pages(PyGObject *self)
{
gint *selected_pages;
gint n_selected_pages;
PyObject *py_selected_pages;
int i;
selected_pages = gimp_page_selector_get_selected_pages(
GIMP_PAGE_SELECTOR (self->obj),
&n_selected_pages);
py_selected_pages = PyTuple_New(n_selected_pages);
for (i = 0; i < n_selected_pages; ++i)
PyTuple_SetItem(py_selected_pages, i,
PyInt_FromLong(selected_pages[i]));
g_free(selected_pages);
return py_selected_pages;
}
%%
override gimp_preview_get_position noargs
static PyObject *
_wrap_gimp_preview_get_position(PyGObject *self)
{
gint x;
gint y;
gimp_preview_get_position(GIMP_PREVIEW(self->obj), &x, &y);
return Py_BuildValue("(ii)", x, y);
}
%%
override gimp_preview_get_size noargs
static PyObject *
_wrap_gimp_preview_get_size(PyGObject *self)
{
gint width;
gint height;
gimp_preview_get_size(GIMP_PREVIEW(self->obj), &width, &height);
return Py_BuildValue("(ii)", width, height);
}
%%
override gimp_preview_transform kwargs
static PyObject *
_wrap_gimp_preview_transform(PyGObject *self, PyObject *args, PyObject *kwargs)
{
gint src_x;
gint src_y;
gint dest_x;
gint dest_y;
static char *kwlist[] = {"x", "y", NULL};
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GimpPreview.transform",
kwlist, &src_x, &src_y))
return NULL;
gimp_preview_transform(GIMP_PREVIEW(self->obj), src_x, src_y, &dest_x,
&dest_y);
return Py_BuildValue("(ii)", dest_x, dest_y);
}
%%
override gimp_preview_untransform kwargs
static PyObject *
_wrap_gimp_preview_untransform(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
gint src_x;
gint src_y;
gint dest_x;
gint dest_y;
static char *kwlist[] = {"x", "y", NULL};
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"ii:GimpPreview.untransform",
kwlist, &src_x, &src_y))
return NULL;
gimp_preview_untransform(GIMP_PREVIEW(self->obj), src_x, src_y, &dest_x,
&dest_y);
return Py_BuildValue("(ii)", dest_x, dest_y);
}
%%
override gimp_zoom_model_get_fraction noargs
static PyObject *
_wrap_gimp_zoom_model_get_fraction(PyGObject *self)
{
gint numerator;
gint denominator;
gimp_zoom_model_get_fraction(GIMP_ZOOM_MODEL(self->obj), &numerator,
&denominator);
return Py_BuildValue("(ii)", numerator, denominator);
}
%%
override gimp_drawable_preview_get_drawable noargs
static PyObject *
_wrap_gimp_drawable_preview_get_drawable(PyGObject *self)
{
PyObject *drawable;
drawable = g_object_get_data(self->obj,
"pygimp-drawable-preview-pydrawable");
Py_INCREF(drawable);
return drawable;
}
%%
override gimp_zoom_preview_get_drawable noargs
static PyObject *
_wrap_gimp_zoom_preview_get_drawable(PyGObject *self)
{
PyObject *drawable;
drawable = g_object_get_data(self->obj,
"pygimp-zoom-preview-pydrawable");
Py_INCREF(drawable);
return drawable;
}
%%
override gimp_drawable_preview_draw_region kwargs
static PyObject *
_wrap_gimp_drawable_preview_draw_region(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
/* PyGimpPixelRgn *pypixelrgn;
static char *kwlist[] = {"drawable", NULL};
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpDrawablePreview.draw_region",
kwlist, PyGimpPixelRgn_Type, &pypixelrgn))
return NULL;
gimp_drawable_preview_draw_region(GIMP_DRAWABLE_PREVIEW(self->obj),
&pypixelrgn->pr);
*/
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_int_store_lookup_by_value
static PyObject *
_wrap_gimp_int_store_lookup_by_value(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "value", NULL };
int value, ret;
GtkTreeIter iter;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"i:GimpIntStore.gimp_int_store_lookup_by_value",
kwlist, &value))
return NULL;
ret = gimp_int_store_lookup_by_value(GTK_TREE_MODEL(self->obj), value,
&iter);
if (ret)
pyg_boxed_new(GTK_TYPE_TREE_ITER, &iter, TRUE, TRUE);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_memsize_entry_new
static int
_wrap_gimp_memsize_entry_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "value", "lower", "upper", NULL };
guint64 value, lower, upper;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"LLL:GimpMemsizeEntry.__init__",
kwlist, &value, &lower, &upper))
return -1;
self->obj = (GObject *)gimp_memsize_entry_new(value, lower, upper);
if (!self->obj) {
PyErr_SetString(PyExc_RuntimeError,
"could not create GimpMemsizeEntry object");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
override gimp_memsize_entry_set_value
static PyObject *
_wrap_gimp_memsize_entry_set_value(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
static char *kwlist[] = { "value", NULL };
guint64 value;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"L:GimpMemsizeEntry.set_value",
kwlist, &value))
return NULL;
gimp_memsize_entry_set_value(GIMP_MEMSIZE_ENTRY(self->obj), value);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_color_area_get_color noargs
static PyObject *
_wrap_gimp_color_area_get_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_area_get_color(GIMP_COLOR_AREA(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_color_hex_entry_get_color noargs
static PyObject *
_wrap_gimp_color_hex_entry_get_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_hex_entry_get_color(GIMP_COLOR_HEX_ENTRY(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_color_notebook_get_color noargs
static PyObject *
_wrap_gimp_color_notebook_get_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_notebook_get_color(GIMP_COLOR_NOTEBOOK(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_color_selection_get_color noargs
static PyObject *
_wrap_gimp_color_selection_get_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_selection_get_color(GIMP_COLOR_SELECTION(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_color_selection_get_old_color noargs
static PyObject *
_wrap_gimp_color_selection_get_old_color(PyGObject *self)
{
GimpRGB rgb;
gimp_color_selection_get_old_color(GIMP_COLOR_SELECTION(self->obj), &rgb);
return pygimp_rgb_new(&rgb);
}
%%
override gimp_enum_store_new kwargs
static int
_wrap_gimp_enum_store_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "enum_type", "minimum", "maximum", NULL };
PyObject *py_enum_type = NULL;
PyObject *py_minimum = NULL;
PyObject *py_maximum = NULL;
GType enum_type;
GEnumClass *enum_class;
gint minimum, maximum;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O|O!O!:GimpEnumStore.__init__", kwlist,
&py_enum_type, &PyInt_Type, &py_minimum,
&PyInt_Type, &py_maximum))
return -1;
if ((enum_type = pyg_type_from_object(py_enum_type)) == 0)
return -1;
enum_class = g_type_class_ref(enum_type);
if (py_minimum == NULL)
minimum = enum_class->minimum;
else
minimum = PyInt_AsLong(py_minimum);
if (py_maximum == NULL)
maximum = enum_class->maximum;
else
maximum = PyInt_AsLong(py_maximum);
g_type_class_unref(enum_class);
self->obj = (GObject *)gimp_enum_store_new_with_range(enum_type, minimum, maximum);
if (!self->obj) {
PyErr_SetString(PyExc_RuntimeError, "could not create GimpEnumStore object");
return -1;
}
pygobject_register_wrapper((PyObject *)self);
return 0;
}
%%
override gimp_zoom_preview_new_with_model kwargs
static int
_wrap_gimp_zoom_preview_new_with_model(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "drawable", "model", NULL };
PyGimpDrawable *py_drawable;
PyGObject *py_zoom_model = NULL;
GimpZoomModel *zoom_model;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!|O!:GimpZoomPreview.__init__", kwlist,
PyGimpDrawable_Type, &py_drawable,
&PyGimpZoomModel_Type, &py_zoom_model))
return -1;
if (py_zoom_model)
zoom_model = (GimpZoomModel*)py_zoom_model->obj;
else
zoom_model = NULL;
if (!py_drawable->drawable)
py_drawable->drawable = gimp_drawable_get(py_drawable->ID);
if (pygobject_construct(self, "drawable", py_drawable->drawable, "model", zoom_model, NULL))
return -1;
g_object_set_data_full(self->obj, "pygimp-zoom-preview-pydrawable",
py_drawable,
(GDestroyNotify)pygimp_decref_callback);
Py_INCREF(py_drawable);
return 0;
}
%%
new-constructor GIMP_TYPE_ZOOM_PREVIEW
%%
override gimp_aspect_preview_new kwargs
static int
_wrap_gimp_aspect_preview_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "drawable", NULL };
PyGimpDrawable *py_drawable;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!|:GimpAspectPreview.__init__", kwlist,
PyGimpDrawable_Type, &py_drawable))
return -1;
if (!py_drawable->drawable)
py_drawable->drawable = gimp_drawable_get(py_drawable->ID);
if (pygobject_construct(self, "drawable", py_drawable->drawable, NULL))
return -1;
g_signal_connect_swapped(self->obj, "destroy",
(GCallback)pygimp_decref_callback, py_drawable);
Py_INCREF(py_drawable);
return 0;
}
%%
new-constructor GIMP_TYPE_ASPECT_PREVIEW
%%
override gimp_drawable_preview_new kwargs
static int
_wrap_gimp_drawable_preview_new(PyGObject *self, PyObject *args, PyObject *kwargs)
{
static char *kwlist[] = { "drawable", NULL };
PyGimpDrawable *py_drawable;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!|:GimpDrawablePreview.__init__", kwlist,
PyGimpDrawable_Type, &py_drawable))
return -1;
if (!py_drawable->drawable)
py_drawable->drawable = gimp_drawable_get(py_drawable->ID);
if (pygobject_construct(self, "drawable", py_drawable->drawable, NULL))
return -1;
g_object_set_data_full(self->obj, "pygimp-drawable-preview-pydrawable",
py_drawable,
(GDestroyNotify)pygimp_decref_callback);
Py_INCREF(py_drawable);
return 0;
}
%%
new-constructor GIMP_TYPE_DRAWABLE_PREVIEW
%%
override gimp_ruler_get_range noargs
static PyObject *
_wrap_gimp_ruler_get_range(PyGObject *self)
{
gdouble lower, upper, max_size;
gimp_ruler_get_range(GIMP_RULER(self->obj), &lower, &upper, &max_size);
return Py_BuildValue("(ddd)", lower, upper, max_size);
}
%%
override gimp_color_display_convert_surface kwargs
static PyObject *
_wrap_gimp_color_display_convert_surface(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PycairoSurface *pysurface;
static char *kwlist[] = { "surface", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpColorDisplay.convert_surface",
kwlist,
&PycairoSurface_Type, &pysurface))
return NULL;
gimp_color_display_convert_surface(GIMP_COLOR_DISPLAY(self->obj),
pysurface->surface);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_color_display_stack_convert_surface kwargs
static PyObject *
_wrap_gimp_color_display_stack_convert_surface(PyGObject *self, PyObject *args,
PyObject *kwargs)
{
PycairoSurface *pysurface;
static char *kwlist[] = { "surface", NULL };
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
"O!:GimpColorDisplayStack.convert_surface",
kwlist,
&PycairoSurface_Type, &pysurface))
return NULL;
gimp_color_display_stack_convert_surface(GIMP_COLOR_DISPLAY_STACK(self->obj),
pysurface->surface);
Py_INCREF(Py_None);
return Py_None;
}
%%
override gimp_zoom_preview_get_source noargs
static PyObject *
_wrap_gimp_zoom_preview_get_source(PyGObject *self)
{
gint width, height, bpp;
guchar *image;
PyObject *pyimage;
image = gimp_zoom_preview_get_source(GIMP_ZOOM_PREVIEW(self->obj),
&width, &height, &bpp);
if (image)
{
pyimage = PyByteArray_FromStringAndSize((const char *)image,
width * height * bpp);
g_free (image);
}
else
{
Py_INCREF(Py_None);
pyimage = Py_None;
}
return Py_BuildValue("(Niii)", pyimage, width, height, bpp);
}
%%
override gimp_ui_init noargs
static PyObject *
_wrap_gimp_ui_init(PyObject *self)
{
extern const char *prog_name;
gimp_ui_init (prog_name, FALSE);
Py_INCREF(Py_None);
return Py_None;
}