summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <zilch@src.gnome.org>2003-01-07 22:55:12 +0000
committerJohan Dahlin <zilch@src.gnome.org>2003-01-07 22:55:12 +0000
commit164aa1628e25513e723501ee685fdce59d20d740 (patch)
tree3cacfc6f36123ee105223a1dcb57239478f7a678
parent717914fd814ac64d6896c545a090c2e9e177ee96 (diff)
downloadpygtk-164aa1628e25513e723501ee685fdce59d20d740.tar.gz
Add default paramter.
* gtk/gtk.defs (gtk_text_tag_new): Add default paramter. * pangomodule.c (initpango): Added SCALE_* constants, patch by John Finlay, fixes #102731. * gtk/gtk.override (_wrap_gtk_text_buffer_create_tag): Modify to accept keyword parameters, largely based upon patch by John Finlay, fixes #102628 * gtk/gtk.defs (GtkTextBuffer.get_slice): default last parameter to TRUE. #102607 (GtkTextBuffer.get_text): ditto. #102607 (GtkTextBuffer.create_mark): Default last param. to FALSE. #102627
-rw-r--r--ChangeLog14
-rw-r--r--gtk/gtk.defs8
-rw-r--r--gtk/gtk.override42
-rw-r--r--pangomodule.c17
4 files changed, 72 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index ab705326..ba08e461 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2003-01-07 Johan Dahlin <jdahlin@async.com.br>
+ * gtk/gtk.defs (gtk_text_tag_new): Add default paramter.
+
+ * pangomodule.c (initpango): Added SCALE_* constants, patch by
+ John Finlay, fixes #102731.
+
+ * gtk/gtk.override (_wrap_gtk_text_buffer_create_tag): Modify to
+ accept keyword parameters, largely based upon patch by John
+ Finlay, fixes #102628
+
+ * gtk/gtk.defs (GtkTextBuffer.get_slice): default last parameter
+ to TRUE. #102607
+ (GtkTextBuffer.get_text): ditto. #102607
+ (GtkTextBuffer.create_mark): Default last param. to FALSE. #102627
+
* setup.py, MANIFEST.in: Added distutils support
* Makefile.am (EXTRA_DIST): Added setup.py and MANIFEST.in here.
diff --git a/gtk/gtk.defs b/gtk/gtk.defs
index 098d397e..bda7ff6c 100644
--- a/gtk/gtk.defs
+++ b/gtk/gtk.defs
@@ -11255,7 +11255,7 @@
(parameters
'("const-GtkTextIter*" "start")
'("const-GtkTextIter*" "end")
- '("gboolean" "include_hidden_chars")
+ '("gboolean" "include_hidden_chars" (default "TRUE"))
)
)
@@ -11266,7 +11266,7 @@
(parameters
'("const-GtkTextIter*" "start")
'("const-GtkTextIter*" "end")
- '("gboolean" "include_hidden_chars")
+ '("gboolean" "include_hidden_chars" (default "TRUE"))
)
)
@@ -11306,7 +11306,7 @@
(parameters
'("const-gchar*" "mark_name" (null-ok))
'("const-GtkTextIter*" "where")
- '("gboolean" "left_gravity")
+ '("gboolean" "left_gravity" (default "FALSE"))
)
)
@@ -12360,7 +12360,7 @@
(is-constructor-of GtkTextTag)
(return-type "GtkTextTag*")
(parameters
- '("const-gchar*" "name")
+ '("const-gchar*" "name" (null-ok) (default "NULL"))
)
)
diff --git a/gtk/gtk.override b/gtk/gtk.override
index f006b2ac..09dddb86 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -5997,15 +5997,14 @@ override gtk_text_buffer_create_tag kwargs
static PyObject *
_wrap_gtk_text_buffer_create_tag(PyGObject *self, PyObject *args, PyObject *kwargs)
{
- static char *kwlist[] = { "tag_name", NULL };
- gchar *tag_name;
+ gchar *tag_name = NULL;
GtkTextTag *tag;
GtkTextTagTable *table;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "s:GtkTextBuffer.create_tag", kwlist,
- &tag_name))
+ if (!PyArg_ParseTuple(args, "|z:GtkTextBuffer.create_tag",
+ &tag_name)) {
return NULL;
+ }
table = GTK_TEXT_TAG_TABLE(GTK_TEXT_BUFFER(self->obj)->tag_table);
if (tag_name && table && g_hash_table_lookup(table->hash, tag_name)) {
@@ -6020,6 +6019,39 @@ _wrap_gtk_text_buffer_create_tag(PyGObject *self, PyObject *args, PyObject *kwar
tag = gtk_text_buffer_create_tag(GTK_TEXT_BUFFER(self->obj),
tag_name, NULL);
+
+ /* set tag properties if any */
+ if (kwargs) {
+ gint i = 0;
+ PyObject *prop, *val;
+
+ while (PyDict_Next(kwargs, &i, &prop, &val)) {
+ GParamSpec *pspec;
+ GValue value = { 0, };
+ gchar *prop_str = PyString_AsString(prop);
+
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS(tag),
+ prop_str);
+ if (!pspec) {
+ PyErr_Format(PyExc_TypeError,
+ "unsupported tag property `%s'",
+ prop_str);
+ /* XXX: Free tag? */
+ return NULL;
+ }
+
+ g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+ if (pyg_value_from_pyobject(&value, val) < 0) {
+ PyErr_Format(PyExc_TypeError,
+ "could not convert tag property '%s' to correct type",
+ prop_str);
+ /* XXX: Free tag? */
+ return NULL;
+ }
+ g_object_set_property((GObject *)tag, prop_str, &value);
+ g_value_unset(&value);
+ }
+ }
return pygobject_new((GObject *)tag);
}
%%
diff --git a/pangomodule.c b/pangomodule.c
index 3d8a64f3..b974e629 100644
--- a/pangomodule.c
+++ b/pangomodule.c
@@ -5,6 +5,8 @@
#include <Python.h>
#include <pygobject.h>
+#include <pango/pango-font.h>
+
/* include any extra headers needed here */
void pypango_register_classes(PyObject *d);
@@ -25,6 +27,21 @@ initpango(void)
pypango_register_classes(d);
pypango_add_constants(m, "PANGO_");
+
+ PyModule_AddObject(m, "SCALE_XX_SMALL",
+ PyFloat_FromDouble(PANGO_SCALE_XX_SMALL));
+ PyModule_AddObject(m, "SCALE_X_SMALL",
+ PyFloat_FromDouble(PANGO_SCALE_X_SMALL));
+ PyModule_AddObject(m, "SCALE_SMALL",
+ PyFloat_FromDouble(PANGO_SCALE_SMALL));
+ PyModule_AddObject(m, "SCALE_MEDIUM",
+ PyFloat_FromDouble(PANGO_SCALE_MEDIUM));
+ PyModule_AddObject(m, "SCALE_LARGE",
+ PyFloat_FromDouble(PANGO_SCALE_LARGE));
+ PyModule_AddObject(m, "SCALE_X_LARGE",
+ PyFloat_FromDouble(PANGO_SCALE_LARGE));
+ PyModule_AddObject(m, "SCALE_XX_LARGE",
+ PyFloat_FromDouble(PANGO_SCALE_LARGE));
/* add anything else to the module dictionary (such as constants) */