diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-07-12 08:45:23 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-07-12 08:45:27 +0900 |
commit | ee6939d73fd96606a92eee870014c58eafee5e63 (patch) | |
tree | 6a3526fab8e841879fbcab05749fcb4a91a4f580 /gi/_glib/pygoptioncontext.c | |
parent | 0df45a72dc2a72275a5c49c38b87f73341987192 (diff) | |
download | pygobject2-ee6939d73fd96606a92eee870014c58eafee5e63.tar.gz pygobject2-ee6939d73fd96606a92eee870014c58eafee5e63.tar.bz2 pygobject2-ee6939d73fd96606a92eee870014c58eafee5e63.zip |
Imported Upstream version 3.20.0
Change-Id: I8106882e9a0d7a8fb554f9549e7c2cde111c104b
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'gi/_glib/pygoptioncontext.c')
-rw-r--r-- | gi/_glib/pygoptioncontext.c | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/gi/_glib/pygoptioncontext.c b/gi/_glib/pygoptioncontext.c deleted file mode 100644 index b985dbe..0000000 --- a/gi/_glib/pygoptioncontext.c +++ /dev/null @@ -1,337 +0,0 @@ -/* -*- Mode: C; c-basic-offset: 4 -*- - * pygtk- Python bindings for the GTK toolkit. - * Copyright (C) 2006 Johannes Hoelzl - * - * pygoptioncontext.c: GOptionContext wrapper - * - * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 - * USA - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <pyglib.h> -#include "pyglib-private.h" -#include "pygoptioncontext.h" - -PYGLIB_DEFINE_TYPE("gi._glib.OptionContext", PyGOptionContext_Type, PyGOptionContext) - -/** - * 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; -} - -static int -pyg_option_context_init(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - char *parameter_string; - - if (!PyArg_ParseTuple(args, "s:gi._glib.GOptionContext.__init__", - ¶meter_string)) - return -1; - - self->context = g_option_context_new(parameter_string); - return 0; -} - -static void -pyg_option_context_dealloc(PyGOptionContext *self) -{ - Py_CLEAR(self->main_group); - - if (self->context != NULL) - { - GOptionContext *tmp = self->context; - self->context = NULL; - g_option_context_free(tmp); - } - - PyObject_Del(self); -} - -static PyObject * -pyg_option_context_parse(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = { "argv", NULL }; - PyObject *arg; - PyObject *new_argv, *argv; - Py_ssize_t argv_length, pos; - gint argv_length_int; - char **argv_content, **original; - GError *error = NULL; - gboolean result; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GOptionContext.parse", - kwlist, &argv)) - return NULL; - - if (!PyList_Check(argv)) - { - PyErr_SetString(PyExc_TypeError, - "GOptionContext.parse expects a list of strings."); - return NULL; - } - - argv_length = PyList_Size(argv); - if (argv_length == -1) - { - PyErr_SetString(PyExc_TypeError, - "GOptionContext.parse expects a list of strings."); - return NULL; - } - - argv_content = g_new(char*, argv_length + 1); - argv_content[argv_length] = NULL; - for (pos = 0; pos < argv_length; pos++) - { - arg = PyList_GetItem(argv, pos); - argv_content[pos] = g_strdup(PYGLIB_PyUnicode_AsString(arg)); - if (argv_content[pos] == NULL) - { - g_strfreev(argv_content); - return NULL; - } - } - original = g_strdupv(argv_content); - - g_assert(argv_length <= G_MAXINT); - argv_length_int = argv_length; - pyglib_begin_allow_threads; - result = g_option_context_parse(self->context, &argv_length_int, &argv_content, - &error); - pyglib_end_allow_threads; - argv_length = argv_length_int; - - if (!result) - { - g_strfreev(argv_content); - g_strfreev(original); - pyglib_error_check(&error); - return NULL; - } - - new_argv = PyList_New(g_strv_length(argv_content)); - for (pos = 0; pos < argv_length; pos++) - { - arg = PYGLIB_PyUnicode_FromString(argv_content[pos]); - PyList_SetItem(new_argv, pos, arg); - } - - g_strfreev(original); - g_strfreev(argv_content); - return new_argv; -} - -static PyObject * -pyg_option_context_set_help_enabled(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = { "help_enable", NULL }; - - PyObject *help_enabled; - if (! PyArg_ParseTupleAndKeywords(args, kwargs, - "O:GOptionContext.set_help_enabled", - kwlist, &help_enabled)) - return NULL; - - g_option_context_set_help_enabled(self->context, PyObject_IsTrue(help_enabled)); - - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -pyg_option_context_get_help_enabled(PyGOptionContext *self) -{ - return PyBool_FromLong(g_option_context_get_help_enabled(self->context)); -} - -static PyObject * -pyg_option_context_set_ignore_unknown_options(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = { "ignore_unknown_options", NULL }; - PyObject *ignore_unknown_options; - - if (! PyArg_ParseTupleAndKeywords(args, kwargs, - "O:GOptionContext.set_ignore_unknown_options", - kwlist, &ignore_unknown_options)) - return NULL; - - g_option_context_set_ignore_unknown_options(self->context, - PyObject_IsTrue(ignore_unknown_options)); - - - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -pyg_option_context_get_ignore_unknown_options(PyGOptionContext *self) -{ - return PyBool_FromLong( - g_option_context_get_ignore_unknown_options(self->context)); -} - -static PyObject * -pyg_option_context_set_main_group(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - 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 = pyglib_option_group_transfer_group(group); - if (g_group == NULL) - { - PyErr_SetString(PyExc_RuntimeError, - "Group is already in a OptionContext."); - return NULL; - } - - g_option_context_set_main_group(self->context, g_group); - - Py_INCREF(group); - self->main_group = (PyGOptionGroup*) group; - - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -pyg_option_context_get_main_group(PyGOptionContext *self) -{ - if (self->main_group == NULL) - { - Py_INCREF(Py_None); - return Py_None; - } - Py_INCREF(self->main_group); - return (PyObject*) self->main_group; -} - -static PyObject * -pyg_option_context_add_group(PyGOptionContext *self, - PyObject *args, - PyObject *kwargs) -{ - static char *kwlist[] = { "group", NULL }; - GOptionGroup *g_group; - PyObject *group; - - if (! PyArg_ParseTupleAndKeywords(args, kwargs, - "O:GOptionContext.add_group", - kwlist, &group)) - return NULL; - - if (PyObject_IsInstance(group, (PyObject*) &PyGOptionGroup_Type) != 1) { - PyErr_SetString(PyExc_TypeError, - "GOptionContext.add_group expects a GOptionGroup."); - return NULL; - } - - g_group = pyglib_option_group_transfer_group(group); - if (g_group == NULL) - { - PyErr_SetString(PyExc_RuntimeError, - "Group is already in a OptionContext."); - return NULL; - } - Py_INCREF(group); - - g_option_context_add_group(self->context, g_group); - - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject* -pyg_option_context_richcompare(PyObject *self, PyObject *other, int op) -{ - if (Py_TYPE(self) == Py_TYPE(other) && Py_TYPE(self) == &PyGOptionContext_Type) - return _pyglib_generic_ptr_richcompare(((PyGOptionContext*)self)->context, - ((PyGOptionContext*)other)->context, - op); - else { - Py_INCREF(Py_NotImplemented); - return Py_NotImplemented; - } -} - -static PyObject * -pyg_option_get_context(PyGOptionContext *self) -{ - return PYGLIB_CPointer_WrapPointer(self->context, "goption.context"); -} - -static PyMethodDef pyg_option_context_methods[] = { - { "parse", (PyCFunction)pyg_option_context_parse, METH_VARARGS | METH_KEYWORDS }, - { "set_help_enabled", (PyCFunction)pyg_option_context_set_help_enabled, METH_VARARGS | METH_KEYWORDS }, - { "get_help_enabled", (PyCFunction)pyg_option_context_get_help_enabled, METH_NOARGS }, - { "set_ignore_unknown_options", (PyCFunction)pyg_option_context_set_ignore_unknown_options, METH_VARARGS | METH_KEYWORDS }, - { "get_ignore_unknown_options", (PyCFunction)pyg_option_context_get_ignore_unknown_options, METH_NOARGS }, - { "set_main_group", (PyCFunction)pyg_option_context_set_main_group, METH_VARARGS | METH_KEYWORDS }, - { "get_main_group", (PyCFunction)pyg_option_context_get_main_group, METH_NOARGS }, - { "add_group", (PyCFunction)pyg_option_context_add_group, METH_VARARGS | METH_KEYWORDS }, - { "_get_context", (PyCFunction)pyg_option_get_context, METH_NOARGS }, - { NULL, NULL, 0 }, -}; - -void -pyglib_option_context_register_types(PyObject *d) -{ - PyGOptionContext_Type.tp_dealloc = (destructor)pyg_option_context_dealloc; - PyGOptionContext_Type.tp_richcompare = pyg_option_context_richcompare; - PyGOptionContext_Type.tp_flags = Py_TPFLAGS_DEFAULT; - PyGOptionContext_Type.tp_methods = pyg_option_context_methods; - PyGOptionContext_Type.tp_init = (initproc)pyg_option_context_init; - PYGLIB_REGISTER_TYPE(d, PyGOptionContext_Type, "OptionContext"); -} |