diff options
| author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-06-24 16:06:41 +0000 |
|---|---|---|
| committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-06-24 16:06:41 +0000 |
| commit | da89a7fed41a58ba9fda0413c8d183608cca2c39 (patch) | |
| tree | 6c39bef5b0e996b0813cbe7a4b2db1029adbf474 /gobject/gobjectmodule.c | |
| parent | 71b23f187b97cc39fe1a78abc629b26cc30b78cc (diff) | |
| download | pygobject-da89a7fed41a58ba9fda0413c8d183608cca2c39.tar.gz pygobject-da89a7fed41a58ba9fda0413c8d183608cca2c39.tar.xz pygobject-da89a7fed41a58ba9fda0413c8d183608cca2c39.zip | |
Bindings for g_filename_display_basename and g_filename_display_name;
Add support for G_TYPE_GSTRING, at least in signals.
Diffstat (limited to 'gobject/gobjectmodule.c')
| -rw-r--r-- | gobject/gobjectmodule.c | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index e7cba75..b5dd261 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -2615,6 +2615,39 @@ pyg__install_metaclass(PyObject *dummy, PyTypeObject *metaclass) return Py_None; } + +static PyObject * +pyg_filename_display_name(PyGObject *self, PyObject *args) +{ + PyObject *py_display_name; + char *filename, *display_name; + + if (!PyArg_ParseTuple(args, "s:gobject.filename_display_name", + &filename)) + return NULL; + + display_name = g_filename_display_name(filename); + py_display_name = PyUnicode_DecodeUTF8(display_name, strlen(display_name), NULL); + g_free(display_name); + return py_display_name; +} + +static PyObject * +pyg_filename_display_basename(PyGObject *self, PyObject *args) +{ + PyObject *py_display_basename; + char *filename, *display_basename; + + if (!PyArg_ParseTuple(args, "s:gobject.filename_display_basename", + &filename)) + return NULL; + + display_basename = g_filename_display_basename(filename); + py_display_basename = PyUnicode_DecodeUTF8(display_basename, strlen(display_basename), NULL); + g_free(display_basename); + return py_display_basename; +} + static PyMethodDef pygobject_functions[] = { { "type_name", pyg_type_name, METH_VARARGS }, { "type_from_name", pyg_type_from_name, METH_VARARGS }, @@ -2668,6 +2701,10 @@ static PyMethodDef pygobject_functions[] = { (PyCFunction)pyg_remove_emission_hook, METH_VARARGS }, { "_install_metaclass", (PyCFunction)pyg__install_metaclass, METH_O }, + { "filename_display_name", + (PyCFunction)pyg_filename_display_name, METH_VARARGS }, + { "filename_display_basename", + (PyCFunction)pyg_filename_display_basename, METH_VARARGS }, { NULL, NULL, 0 } }; @@ -2688,8 +2725,8 @@ static PyMethodDef pygobject_functions[] = { * * Returns: the stripped constant name. */ -char * -pyg_constant_strip_prefix(gchar *name, const gchar *strip_prefix) +const gchar * +pyg_constant_strip_prefix(const gchar *name, const gchar *strip_prefix) { gint prefix_len; guint j; @@ -2734,7 +2771,7 @@ pyg_enum_add_constants(PyObject *module, GType enum_type, eclass = G_ENUM_CLASS(g_type_class_ref(enum_type)); for (i = 0; i < eclass->n_values; i++) { - gchar *name = eclass->values[i].value_name; + const gchar *name = eclass->values[i].value_name; gint value = eclass->values[i].value; PyModule_AddIntConstant(module, @@ -2773,7 +2810,7 @@ pyg_flags_add_constants(PyObject *module, GType flags_type, fclass = G_FLAGS_CLASS(g_type_class_ref(flags_type)); for (i = 0; i < fclass->n_values; i++) { - gchar *name = fclass->values[i].value_name; + const gchar *name = fclass->values[i].value_name; guint value = fclass->values[i].value; PyModule_AddIntConstant(module, @@ -3375,6 +3412,7 @@ init_gobject(void) /* The rest of the types are set in __init__.py */ PyModule_AddObject(m, "TYPE_INVALID", pyg_type_wrapper_new(G_TYPE_INVALID)); + PyModule_AddObject(m, "TYPE_GSTRING", pyg_type_wrapper_new(G_TYPE_GSTRING)); pyg_register_gtype_custom(G_TYPE_STRV, _pyg_strv_from_gvalue, |
