pygobject r860 - in trunk: . glib gobject
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: pygobject r860 - in trunk: . glib gobject
- Date: Sat, 26 Jul 2008 09:11:09 +0000 (UTC)
Author: johan
Date: Sat Jul 26 09:11:08 2008
New Revision: 860
URL: http://svn.gnome.org/viewvc/pygobject?rev=860&view=rev
Log:
2008-07-26 Johan Dahlin <johan gnome org>
* glib/Makefile.am:
* glib/glibmodule.c (pyglib_register_constants), (init_glib):
* glib/option.py:
* glib/pyglib.c (pyglib_init),
(pyglib_option_group_transfer_group), (pyglib_option_group_new),
(pyglib_option_context_new):
* glib/pyglib.h:
* glib/pygoptioncontext.c (pyg_option_context_parse),
(pyg_option_context_set_main_group),
(pyg_option_context_add_group),
(pyglib_option_context_register_types):
* glib/pygoptioncontext.h:
* glib/pygoptiongroup.c (arg_func),
(pyglib_option_group_register_types):
* glib/pygoptiongroup.h:
* gobject/Makefile.am:
* gobject/__init__.py:
* gobject/gobjectmodule.c (init_gobject):
* gobject/option.py:
* gobject/pygobject-private.h:
* gobject/pygoptioncontext.c:
* gobject/pygoptiongroup.c:
Move option over from gobject to glib.
Added:
trunk/glib/option.py
- copied, changed from r854, /trunk/gobject/option.py
trunk/glib/pygoptioncontext.c
- copied, changed from r854, /trunk/gobject/pygoptioncontext.c
trunk/glib/pygoptioncontext.h
trunk/glib/pygoptiongroup.c
- copied, changed from r854, /trunk/gobject/pygoptiongroup.c
trunk/glib/pygoptiongroup.h
Removed:
trunk/gobject/option.py
trunk/gobject/pygoptioncontext.c
trunk/gobject/pygoptiongroup.c
Modified:
trunk/ChangeLog
trunk/glib/Makefile.am
trunk/glib/glibmodule.c
trunk/glib/pyglib.c
trunk/glib/pyglib.h
trunk/gobject/Makefile.am
trunk/gobject/__init__.py
trunk/gobject/gobjectmodule.c
trunk/gobject/pygobject-private.h
Modified: trunk/glib/Makefile.am
==============================================================================
--- trunk/glib/Makefile.am (original)
+++ trunk/glib/Makefile.am Sat Jul 26 09:11:08 2008
@@ -10,7 +10,8 @@
pyglibdir = $(pkgpyexecdir)/glib
pyglib_PYTHON = \
- __init__.py
+ __init__.py \
+ option.py
pyglib_LTLIBRARIES = _glib.la
common_ldflags = -module -avoid-version
@@ -28,17 +29,21 @@
_glib_la_CFLAGS = $(GLIB_CFLAGS)
_glib_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_glib
_glib_la_LIBADD = $(GLIB_LIBS) libpyglib-2.0.la
-_glib_la_SOURCES = \
- glibmodule.c \
- pygiochannel.c \
- pygiochannel.h \
- pygmaincontext.c \
- pygmaincontext.h \
- pygmainloop.c \
- pygmainloop.h \
- pygsource.c \
- pygsource.h \
- pygspawn.c \
+_glib_la_SOURCES = \
+ glibmodule.c \
+ pygiochannel.c \
+ pygiochannel.h \
+ pygoptioncontext.c \
+ pygoptioncontext.h \
+ pygoptiongroup.c \
+ pygoptiongroup.h \
+ pygmaincontext.c \
+ pygmaincontext.h \
+ pygmainloop.c \
+ pygmainloop.h \
+ pygsource.c \
+ pygsource.h \
+ pygspawn.c \
pygspawn.h
if PLATFORM_WIN32
Modified: trunk/glib/glibmodule.c
==============================================================================
--- trunk/glib/glibmodule.c (original)
+++ trunk/glib/glibmodule.c Sat Jul 26 09:11:08 2008
@@ -32,6 +32,8 @@
#include "pygiochannel.h"
#include "pygmaincontext.h"
#include "pygmainloop.h"
+#include "pygoptioncontext.h"
+#include "pygoptiongroup.h"
#include "pygsource.h"
#include "pygspawn.h"
@@ -679,8 +681,35 @@
G_IO_FLAG_GET_MASK);
PyModule_AddIntConstant(m, "IO_FLAG_SET_MASK",
G_IO_FLAG_SET_MASK);
-
+
+ PyModule_AddIntConstant(m, "OPTION_FLAG_HIDDEN",
+ G_OPTION_FLAG_HIDDEN);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_IN_MAIN",
+ G_OPTION_FLAG_IN_MAIN);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_REVERSE",
+ G_OPTION_FLAG_REVERSE);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_NO_ARG",
+ G_OPTION_FLAG_NO_ARG);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_FILENAME",
+ G_OPTION_FLAG_FILENAME);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_OPTIONAL_ARG",
+ G_OPTION_FLAG_OPTIONAL_ARG);
+ PyModule_AddIntConstant(m, "OPTION_FLAG_NOALIAS",
+ G_OPTION_FLAG_NOALIAS);
+
+ PyModule_AddIntConstant(m, "OPTION_ERROR_UNKNOWN_OPTION",
+ G_OPTION_ERROR_UNKNOWN_OPTION);
+ PyModule_AddIntConstant(m, "OPTION_ERROR_BAD_VALUE",
+ G_OPTION_ERROR_BAD_VALUE);
+ PyModule_AddIntConstant(m, "OPTION_ERROR_FAILED",
+ G_OPTION_ERROR_FAILED);
+
+ PyModule_AddStringConstant(m, "OPTION_REMAINING",
+ G_OPTION_REMAINING);
+ PyModule_AddStringConstant(m, "OPTION_ERROR",
+ (char*) g_quark_to_string(G_OPTION_ERROR));
}
+
DL_EXPORT(void)
init_glib(void)
{
@@ -698,4 +727,6 @@
pyglib_maincontext_register_types(d);
pyglib_source_register_types(d);
pyglib_spawn_register_types(d);
+ pyglib_option_context_register_types(d);
+ pyglib_option_group_register_types(d);
}
Copied: trunk/glib/option.py (from r854, /trunk/gobject/option.py)
==============================================================================
--- /trunk/gobject/option.py (original)
+++ trunk/glib/option.py Sat Jul 26 09:11:08 2008
@@ -2,7 +2,7 @@
# pygobject - Python bindings for the GObject library
# Copyright (C) 2006 Johannes Hoelzl
#
-# gobject/option.py: GOption command line parser
+# glib/option.py: GOption command line parser
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -26,7 +26,7 @@
line groups and contexts.
Use this interface instead of the raw wrappers of GOptionContext and
-GOptionGroup in gobject.
+GOptionGroup in glib.
"""
import sys
@@ -34,9 +34,7 @@
from optparse import OptParseError, OptionError, OptionValueError, \
BadOptionError, OptionConflictError
-from glib import GError
-
-import _gobject as gobject
+import _glib
__all__ = [
"OptParseError",
@@ -84,7 +82,7 @@
'optional_arg',
]
- REMAINING = '--' + gobject.OPTION_REMAINING
+ REMAINING = '--' + _glib.OPTION_REMAINING
def __init__(self, *args, **kwargs):
optparse.Option.__init__(self, *args, **kwargs)
@@ -111,19 +109,19 @@
flags = 0
if self.hidden:
- self.flags |= gobject.OPTION_FLAG_HIDDEN
+ self.flags |= _glib.OPTION_FLAG_HIDDEN
if self.in_main:
- self.flags |= gobject.OPTION_FLAG_IN_MAIN
+ self.flags |= _glib.OPTION_FLAG_IN_MAIN
if self.takes_value():
if self.optional_arg:
- flags |= gobject.OPTION_FLAG_OPTIONAL_ARG
+ flags |= _glib.OPTION_FLAG_OPTIONAL_ARG
else:
- flags |= gobject.OPTION_FLAG_NO_ARG
+ flags |= _glib.OPTION_FLAG_NO_ARG
if self.type == 'filename':
- flags |= gobject.OPTION_FLAG_FILENAME
+ flags |= _glib.OPTION_FLAG_FILENAME
for (long_name, short_name) in zip(self._long_opts, self._short_opts):
yield (long_name[2:], short_name[1], flags, self.help, self.metavar)
@@ -185,13 +183,13 @@
try:
opt.process(option_name, option_value, self.values, parser)
except OptionValueError, error:
- gerror = GError(str(error))
- gerror.domain = gobject.OPTION_ERROR
- gerror.code = gobject.OPTION_ERROR_BAD_VALUE
+ gerror = _glib.GError(str(error))
+ gerror.domain = _glib.OPTION_ERROR
+ gerror.code = _glib.OPTION_ERROR_BAD_VALUE
gerror.message = str(error)
raise gerror
- group = gobject.OptionGroup(self.name, self.description,
+ group = _glib.OptionGroup(self.name, self.description,
self.help_description, callback)
if self.translation_domain:
group.set_translation_domain(self.translation_domain)
@@ -234,9 +232,9 @@
knwon, the option will be in the result list.
OptionParser.add_option_group() does not only accept OptionGroup instances
- but also gobject.OptionGroup, which is returned by gtk_get_option_group().
+ but also glib.OptionGroup, which is returned by gtk_get_option_group().
- Only gobject.option.OptionGroup and gobject.option.Option instances should
+ Only glib.option.OptionGroup and glib.option.Option instances should
be passed as groups and options.
For further help, see optparse.OptionParser.
@@ -264,12 +262,12 @@
parameter_string = self.usage + " - " + self.description
else:
parameter_string = self.usage
- context = gobject.OptionContext(parameter_string)
+ context = _glib.OptionContext(parameter_string)
context.set_help_enabled(self.help_enabled)
context.set_ignore_unknown_options(self.ignore_unknown_options)
for option_group in self.option_groups:
- if isinstance(option_group, gobject.OptionGroup):
+ if isinstance(option_group, _glib.OptionGroup):
g_group = option_group
else:
g_group = option_group.get_option_group(self)
@@ -282,7 +280,7 @@
opt = self._short_opt[option_name]
opt.process(option_name, option_value, values, self)
- main_group = gobject.OptionGroup(None, None, None, callback)
+ main_group = _glib.OptionGroup(None, None, None, callback)
main_entries = []
for option in self.option_list:
main_entries.extend(option._to_goptionentries())
@@ -302,7 +300,7 @@
args[0].parser = self
if args[0].parser is not self:
raise ValueError("invalid OptionGroup (wrong parser)")
- if isinstance(args[0], gobject.OptionGroup):
+ if isinstance(args[0], _glib.OptionGroup):
self.option_groups.append(args[0])
return
optparse.OptionParser.add_option_group(self, *args, **kwargs)
@@ -316,7 +314,7 @@
def _process_args(self, largs, rargs, values):
context = self._to_goptioncontext(values)
-
+
# _process_args() returns the remaining parameters in rargs.
# The prepended program name is used to all g_set_prgname()
# The program name is cut away so it doesn't appear in the result.
@@ -327,14 +325,14 @@
try:
options, args = optparse.OptionParser.parse_args(
self, args, values)
- except GError, error:
- if error.domain != gobject.OPTION_ERROR:
+ except _glib.GError, error:
+ if error.domain != _glib.OPTION_ERROR:
raise
- if error.code == gobject.OPTION_ERROR_BAD_VALUE:
+ if error.code == _glib.OPTION_ERROR_BAD_VALUE:
raise OptionValueError(error.message)
- elif error.code == gobject.OPTION_ERROR_UNKNOWN_OPTION:
+ elif error.code == _glib.OPTION_ERROR_UNKNOWN_OPTION:
raise BadOptionError(error.message)
- elif error.code == gobject.OPTION_ERROR_FAILED:
+ elif error.code == _glib.OPTION_ERROR_FAILED:
raise OptParseError(error.message)
else:
raise
Modified: trunk/glib/pyglib.c
==============================================================================
--- trunk/glib/pyglib.c (original)
+++ trunk/glib/pyglib.c Sat Jul 26 09:11:08 2008
@@ -28,6 +28,8 @@
#include "pyglib.h"
#include "pyglib-private.h"
#include "pygmaincontext.h"
+#include "pygoptioncontext.h"
+#include "pygoptiongroup.h"
static struct _PyGLib_Functions *_PyGLib_API;
static int pyglib_thread_state_tls_key;
@@ -35,6 +37,12 @@
static PyTypeObject *_PyGMainContext_Type;
#define PyGMainContext_Type (*_PyGMainContext_Type)
+static PyTypeObject *_PyGOptionGroup_Type;
+#define PyGOptionGroup_Type (*_PyGOptionGroup_Type)
+
+static PyTypeObject *_PyGOptionContext_Type;
+#define PyGOptionContext_Type (*_PyGOptionContext_Type)
+
void
pyglib_init(void)
{
@@ -69,6 +77,8 @@
}
_PyGMainContext_Type = (PyTypeObject*)PyObject_GetAttrString(glib, "MainContext");
+ _PyGOptionGroup_Type = (PyTypeObject*)PyObject_GetAttrString(glib, "OptionGroup");
+ _PyGOptionContext_Type = (PyTypeObject*)PyObject_GetAttrString(glib, "OptionContext");
}
void
@@ -340,6 +350,92 @@
}
/**
+ * pyg_option_group_transfer_group:
+ * @group: a GOptionGroup wrapper
+ *
+ * This is used to transfer the GOptionGroup to a GOptionContext. After this
+ * is called, the calle must handle the release of the GOptionGroup.
+ *
+ * When #NULL is returned, the GOptionGroup was already transfered.
+ *
+ * Returns: Either #NULL or the wrapped GOptionGroup.
+ */
+GOptionGroup *
+pyglib_option_group_transfer_group(PyObject *obj)
+{
+ PyGOptionGroup *self = (PyGOptionGroup*)obj;
+
+ if (self->is_in_context)
+ return NULL;
+
+ self->is_in_context = TRUE;
+
+ /* Here we increase the reference count of the PyGOptionGroup, because now
+ * the GOptionContext holds an reference to us (it is the userdata passed
+ * to g_option_group_new().
+ *
+ * The GOptionGroup is freed with the GOptionContext.
+ *
+ * We set it here because if we would do this in the init method we would
+ * hold two references and the PyGOptionGroup would never be freed.
+ */
+ Py_INCREF(self);
+
+ return self->group;
+}
+
+/**
+ * pyglib_option_group_new:
+ * @group: a GOptionGroup
+ *
+ * The returned GOptionGroup can't be used to set any hooks, translation domains
+ * or add entries. It's only intend is, to use for GOptionContext.add_group().
+ *
+ * Returns: the GOptionGroup wrapper.
+ */
+PyObject *
+pyglib_option_group_new (GOptionGroup *group)
+{
+ PyGOptionGroup *self;
+
+ self = (PyGOptionGroup *)PyObject_NEW(PyGOptionGroup,
+ &PyGOptionGroup_Type);
+ if (self == NULL)
+ return NULL;
+
+ self->group = group;
+ self->other_owner = TRUE;
+ self->is_in_context = FALSE;
+
+ return (PyObject *)self;
+}
+
+/**
+ * pyglib_option_context_new:
+ * @context: a GOptionContext
+ *
+ * Returns: A new GOptionContext wrapper.
+ */
+PyObject *
+pyglib_option_context_new (GOptionContext *context)
+{
+ PyGOptionContext *self;
+
+ self = (PyGOptionContext *)PyObject_NEW(PyGOptionContext,
+ &PyGOptionContext_Type);
+ if (self == NULL)
+ return NULL;
+
+ self->context = context;
+ self->main_group = NULL;
+
+ return (PyObject *)self;
+}
+
+
+/****** Private *****/
+
+/**
* _pyglib_destroy_notify:
* @user_data: a PyObject pointer.
*
@@ -359,8 +455,6 @@
pyglib_gil_state_release(state);
}
-/****** Private *****/
-
gboolean
_pyglib_handler_marshal(gpointer user_data)
{
@@ -388,3 +482,4 @@
return res;
}
+
Modified: trunk/glib/pyglib.h
==============================================================================
--- trunk/glib/pyglib.h (original)
+++ trunk/glib/pyglib.h Sat Jul 26 09:11:08 2008
@@ -38,11 +38,14 @@
gboolean pyglib_error_check(GError **error);
gboolean pyglib_gerror_exception_check(GError **error);
gboolean pyglib_threads_enabled(void);
-PyObject *pyglib_main_context_new(GMainContext *context);
+PyObject * pyglib_main_context_new(GMainContext *context);
void pyglib_set_thread_block_funcs(PyGLibThreadBlockFunc block_threads_func,
PyGLibThreadBlockFunc unblock_threads_func);
void pyglib_block_threads(void);
void pyglib_unblock_threads(void);
+PyObject * pyglib_option_context_new(GOptionContext *context);
+PyObject * pyglib_option_group_new(GOptionGroup *group);
+GOptionGroup * pyglib_option_group_transfer_group(PyObject *self);
#define pyglib_begin_allow_threads \
G_STMT_START { \
@@ -55,6 +58,7 @@
PyEval_RestoreThread(_save); \
} G_STMT_END
+
G_END_DECLS
#endif /* __PYGLIB_H__ */
Copied: trunk/glib/pygoptioncontext.c (from r854, /trunk/gobject/pygoptioncontext.c)
==============================================================================
--- /trunk/gobject/pygoptioncontext.c (original)
+++ trunk/glib/pygoptioncontext.c Sat Jul 26 09:11:08 2008
@@ -24,7 +24,9 @@
# include <config.h>
#endif
-#include "pygobject-private.h"
+#include <pyglib.h>
+#include "pyglib-private.h"
+#include "pygoptioncontext.h"
static int
pyg_option_context_init(PyGOptionContext *self,
@@ -104,17 +106,17 @@
g_assert(argv_length <= G_MAXINT);
argv_length_int = argv_length;
- pyg_begin_allow_threads;
+ pyglib_begin_allow_threads;
result = g_option_context_parse(self->context, &argv_length_int, &argv_content,
&error);
- pyg_end_allow_threads;
+ pyglib_end_allow_threads;
argv_length = argv_length_int;
if (!result)
{
g_strfreev(argv_content);
g_strfreev(original);
- pyg_error_check(&error);
+ pyglib_error_check(&error);
return NULL;
}
@@ -184,16 +186,19 @@
static char *kwlist[] = { "group", NULL };
GOptionGroup *g_group;
PyObject *group;
+
if (! PyArg_ParseTupleAndKeywords(args, kwargs,
"O:GOptionContext.set_main_group",
kwlist, &group))
return NULL;
+
if (PyObject_IsInstance(group, (PyObject*) &PyGOptionGroup_Type) != 1) {
PyErr_SetString(PyExc_TypeError,
"GOptionContext.set_main_group expects a GOptionGroup.");
return NULL;
}
- g_group = pyg_option_group_transfer_group((PyGOptionGroup*) group);
+
+ g_group = pyglib_option_group_transfer_group((PyGOptionGroup*) group);
if (g_group == NULL)
{
PyErr_SetString(PyExc_RuntimeError, "Group is already in a OptionContext.");
@@ -237,7 +242,7 @@
"GOptionContext.add_group expects a GOptionGroup.");
return NULL;
}
- g_group = pyg_option_group_transfer_group((PyGOptionGroup*) group);
+ g_group = pyglib_option_group_transfer_group((PyGOptionGroup*) group);
if (g_group == NULL)
{
PyErr_SetString(PyExc_RuntimeError,
@@ -313,24 +318,8 @@
(initproc)pyg_option_context_init,
};
-/**
- * pyg_option_context_new:
- * @context: a GOptionContext
- *
- * Returns: A new GOptionContext wrapper.
- */
-PyObject *
-pyg_option_context_new (GOptionContext *context)
-{
- PyGOptionContext *self;
-
- self = (PyGOptionContext *)PyObject_NEW(PyGOptionContext,
- &PyGOptionContext_Type);
- if (self == NULL)
- return NULL;
-
- self->context = context;
- self->main_group = NULL;
-
- return (PyObject *)self;
+void
+pyglib_option_context_register_types(PyObject *d)
+{
+ PYGLIB_REGISTER_TYPE(d, PyGOptionContext_Type, "OptionContext");
}
Added: trunk/glib/pygoptioncontext.h
==============================================================================
--- (empty file)
+++ trunk/glib/pygoptioncontext.h Sat Jul 26 09:11:08 2008
@@ -0,0 +1,37 @@
+/* -*- Mode: C; c-basic-offset: 4 -*-
+ * pyglib - Python bindings for GLib toolkit.
+ * Copyright (C) 1998-2003 James Henstridge
+ * 2004-2008 Johan Dahlin
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef __PYG_OPTIONCONTEXT_H__
+#define __PYG_OPTIONCONTEXT_H__
+
+#include "pygoptiongroup.h"
+
+extern PyTypeObject PyGOptionContext_Type;
+
+typedef struct {
+ PyObject_HEAD
+ PyGOptionGroup *main_group;
+ GOptionContext *context;
+} PyGOptionContext;
+
+void pyglib_option_context_register_types(PyObject *d);
+
+#endif /* __PYG_OPTIONCONTEXT_H__ */
Copied: trunk/glib/pygoptiongroup.c (from r854, /trunk/gobject/pygoptiongroup.c)
==============================================================================
--- /trunk/gobject/pygoptiongroup.c (original)
+++ trunk/glib/pygoptiongroup.c Sat Jul 26 09:11:08 2008
@@ -25,8 +25,8 @@
#endif
#include <pyglib.h>
-#include "pygobject-private.h"
-#include "pygobject.h"
+#include "pyglib-private.h"
+#include "pygoptiongroup.h"
static gboolean
check_if_owned(PyGOptionGroup *self)
@@ -129,7 +129,7 @@
}
else
{
- no_error = pyg_gerror_exception_check(error) != -1;
+ no_error = pyglib_gerror_exception_check(error) != -1;
pyglib_gil_state_release(state);
return no_error;
}
@@ -295,59 +295,11 @@
(initproc)pyg_option_group_init,
};
-/**
- * pyg_option_group_transfer_group:
- * @group: a GOptionGroup wrapper
- *
- * This is used to transfer the GOptionGroup to a GOptionContext. After this
- * is called, the calle must handle the release of the GOptionGroup.
- *
- * When #NULL is returned, the GOptionGroup was already transfered.
- *
- * Returns: Either #NULL or the wrapped GOptionGroup.
- */
-GOptionGroup *
-pyg_option_group_transfer_group(PyGOptionGroup *self)
+void
+pyglib_option_group_register_types(PyObject *d)
{
- if (self->is_in_context) return NULL;
- self->is_in_context = TRUE;
-
- /* Here we increase the reference count of the PyGOptionGroup, because now
- * the GOptionContext holds an reference to us (it is the userdata passed
- * to g_option_group_new().
- *
- * The GOptionGroup is freed with the GOptionContext.
- *
- * We set it here because if we would do this in the init method we would
- * hold two references and the PyGOptionGroup would never be freed.
- */
- Py_INCREF(self);
-
- return self->group;
+ PYGLIB_REGISTER_TYPE(d, PyGOptionGroup_Type, "OptionGroup");
}
-/**
- * pyg_option_group_new:
- * @group: a GOptionGroup
- *
- * The returned GOptionGroup can't be used to set any hooks, translation domains
- * or add entries. It's only intend is, to use for GOptionContext.add_group().
- *
- * Returns: the GOptionGroup wrapper.
- */
-PyObject *
-pyg_option_group_new (GOptionGroup *group)
-{
- PyGOptionGroup *self;
- self = (PyGOptionGroup *)PyObject_NEW(PyGOptionGroup,
- &PyGOptionGroup_Type);
- if (self == NULL)
- return NULL;
- self->group = group;
- self->other_owner = TRUE;
- self->is_in_context = FALSE;
-
- return (PyObject *)self;
-}
Added: trunk/glib/pygoptiongroup.h
==============================================================================
--- (empty file)
+++ trunk/glib/pygoptiongroup.h Sat Jul 26 09:11:08 2008
@@ -0,0 +1,40 @@
+/* -*- Mode: C; c-basic-offset: 4 -*-
+ * pyglib - Python bindings for GLib toolkit.
+ * Copyright (C) 1998-2003 James Henstridge
+ * 2004-2008 Johan Dahlin
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef __PYG_OPTIONGROUP_H__
+#define __PYG_OPTIONGROUP_H__
+
+extern PyTypeObject PyGOptionGroup_Type;
+
+typedef struct {
+ PyObject_HEAD
+ GOptionGroup *group;
+ gboolean other_owner, is_in_context;
+ PyObject *callback;
+ GSList *strings; /* all strings added with the entries, are freed on
+ GOptionGroup.destroy() */
+} PyGOptionGroup;
+
+void pyglib_option_group_register_types(PyObject *d);
+
+#endif /* __PYG_OPTIONGROUP_H__ */
+
+
Modified: trunk/gobject/Makefile.am
==============================================================================
--- trunk/gobject/Makefile.am (original)
+++ trunk/gobject/Makefile.am Sat Jul 26 09:11:08 2008
@@ -10,7 +10,6 @@
pygobjectdir = $(pkgpyexecdir)/gobject
pygobject_PYTHON = \
__init__.py \
- option.py \
propertyhelper.py
pygobject_LTLIBRARIES = _gobject.la
nodist_pygobject_PYTHON = constants.py
@@ -54,8 +53,6 @@
pygparamspec.c \
pygpointer.c \
pygtype.c \
- pygoptioncontext.c \
- pygoptiongroup.c
_gobject_la_DEPENDENCIES = constants.py
if HAVE_LIBFFI
Modified: trunk/gobject/__init__.py
==============================================================================
--- trunk/gobject/__init__.py (original)
+++ trunk/gobject/__init__.py Sat Jul 26 09:11:08 2008
@@ -20,6 +20,7 @@
# USA
# this can go when things are a little further along
+
try:
import ltihooks
ltihooks # pyflakes
@@ -27,13 +28,15 @@
except ImportError:
pass
+import sys
+
from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
io_add_watch, source_remove, child_watch_add, markup_escape_text, \
get_current_time, filename_display_name, filename_display_basename, \
filename_from_utf8, get_application_name, set_application_name, \
get_prgname, set_prgname, main_depth, Pid, GError, glib_version, \
MainLoop, MainContext, main_context_default, IOChannel, Source, Idle, \
- Timeout, PollFD
+ Timeout, PollFD, OptionGroup, OptionContext, option
from glib import SPAWN_LEAVE_DESCRIPTORS_OPEN, SPAWN_DO_NOT_REAP_CHILD, \
SPAWN_SEARCH_PATH, SPAWN_STDOUT_TO_DEV_NULL, SPAWN_STDERR_TO_DEV_NULL, \
SPAWN_CHILD_INHERITS_STDIN, SPAWN_FILE_AND_ARGV_ZERO, PRIORITY_HIGH, \
@@ -42,7 +45,11 @@
IO_STATUS_ERROR, IO_STATUS_NORMAL, IO_STATUS_EOF, IO_STATUS_AGAIN, \
IO_FLAG_APPEND, IO_FLAG_NONBLOCK, IO_FLAG_IS_READABLE, \
IO_FLAG_IS_WRITEABLE, IO_FLAG_IS_SEEKABLE, IO_FLAG_MASK, \
- IO_FLAG_GET_MASK, IO_FLAG_SET_MASK
+ IO_FLAG_GET_MASK, IO_FLAG_SET_MASK, OPTION_FLAG_HIDDEN, \
+ OPTION_FLAG_IN_MAIN, OPTION_FLAG_REVERSE, OPTION_FLAG_NO_ARG, \
+ OPTION_FLAG_FILENAME, OPTION_FLAG_OPTIONAL_ARG, OPTION_FLAG_NOALIAS, \
+ OPTION_ERROR_UNKNOWN_OPTION, OPTION_ERROR_BAD_VALUE, \
+ OPTION_ERROR_FAILED, OPTION_REMAINING, OPTION_ERROR
from gobject.constants import *
from _gobject import *
@@ -50,6 +57,7 @@
from propertyhelper import property
+sys.modules['gobject.option'] = option
class GObjectMeta(type):
"Metaclass for automatically registering GObject classes"
Modified: trunk/gobject/gobjectmodule.c
==============================================================================
--- trunk/gobject/gobjectmodule.c (original)
+++ trunk/gobject/gobjectmodule.c Sat Jul 26 09:11:08 2008
@@ -2656,7 +2656,7 @@
pyg_type_register_custom_callback,
pyg_gerror_exception_check,
- pyg_option_group_new
+ pyglib_option_group_new
};
@@ -2753,9 +2753,6 @@
PyType_Ready(&PyGObjectWeakRef_Type);
PyDict_SetItemString(d, "GObjectWeakRef", (PyObject *) &PyGObjectWeakRef_Type);
- REGISTER_TYPE(d, PyGOptionContext_Type, "OptionContext");
- REGISTER_TYPE(d, PyGOptionGroup_Type, "OptionGroup");
-
/* pygobject version */
tuple = Py_BuildValue ("(iii)",
PYGOBJECT_MAJOR_VERSION,
@@ -2795,31 +2792,6 @@
PyModule_AddIntConstant(m, "PARAM_LAX_VALIDATION", G_PARAM_LAX_VALIDATION);
PyModule_AddIntConstant(m, "PARAM_READWRITE", G_PARAM_READWRITE);
- PyModule_AddIntConstant(m, "OPTION_FLAG_HIDDEN",
- G_OPTION_FLAG_HIDDEN);
- PyModule_AddIntConstant(m, "OPTION_FLAG_IN_MAIN",
- G_OPTION_FLAG_IN_MAIN);
- PyModule_AddIntConstant(m, "OPTION_FLAG_REVERSE",
- G_OPTION_FLAG_REVERSE);
- PyModule_AddIntConstant(m, "OPTION_FLAG_NO_ARG",
- G_OPTION_FLAG_NO_ARG);
- PyModule_AddIntConstant(m, "OPTION_FLAG_FILENAME",
- G_OPTION_FLAG_FILENAME);
- PyModule_AddIntConstant(m, "OPTION_FLAG_OPTIONAL_ARG",
- G_OPTION_FLAG_OPTIONAL_ARG);
- PyModule_AddIntConstant(m, "OPTION_FLAG_NOALIAS)",
- G_OPTION_FLAG_NOALIAS);
- PyModule_AddIntConstant(m, "OPTION_ERROR_UNKNOWN_OPTION",
- G_OPTION_ERROR_UNKNOWN_OPTION);
- PyModule_AddIntConstant(m, "OPTION_ERROR_BAD_VALUE",
- G_OPTION_ERROR_BAD_VALUE);
- PyModule_AddIntConstant(m, "OPTION_ERROR_FAILED",
- G_OPTION_ERROR_FAILED);
- PyModule_AddStringConstant(m, "OPTION_REMAINING",
- G_OPTION_REMAINING);
- PyModule_AddStringConstant(m, "OPTION_ERROR",
- (char*) g_quark_to_string(G_OPTION_ERROR));
-
/* 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));
Modified: trunk/gobject/pygobject-private.h
==============================================================================
--- trunk/gobject/pygobject-private.h (original)
+++ trunk/gobject/pygobject-private.h Sat Jul 26 09:11:08 2008
@@ -222,29 +222,7 @@
extern PyTypeObject PyGParamSpec_Type;
PyObject * pyg_param_spec_new (GParamSpec *pspec);
-/* pygoption.c */
-extern PyTypeObject PyGOptionContext_Type;
-extern PyTypeObject PyGOptionGroup_Type;
-
-typedef struct {
- PyObject_HEAD
- GOptionGroup *group;
- gboolean other_owner, is_in_context;
- PyObject *callback;
- GSList *strings; /* all strings added with the entries, are freed on
- GOptionGroup.destroy() */
-} PyGOptionGroup;
-
-typedef struct {
- PyObject_HEAD
- PyGOptionGroup *main_group;
- GOptionContext *context;
-} PyGOptionContext;
-
-PyObject * pyg_option_context_new (GOptionContext * context);
-PyObject * pyg_option_group_new (GOptionGroup * group);
-GOptionGroup *pyg_option_group_transfer_group(PyGOptionGroup *self);
-
+/* pygtype.c */
extern GHashTable *custom_type_registration;
void pyg_type_register_custom_callback(const gchar *type_name,
PyGTypeRegistrationFunction callback,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]