[pygtksourceview/gtksourcecompletion: 26/27] Merge branch 'master' into gtksourcecompletion



commit 79e3fe9421a95396e129965c703719771121ed9e
Merge: 6ef81e2... 03de663...
Author: Jesse van den Kieboom <jesse icecrew nl>
Date:   Sun Sep 20 17:43:29 2009 +0200

    Merge branch 'master' into gtksourcecompletion
    
    Conflicts:
    	gtksourceview2.defs
    	gtksourceview2.override

 .gitignore                                        |   47 ++
 ChangeLog => ChangeLog-pre-git                    |    3 +
 Makefile.am                                       |   59 ++-
 NEWS                                              |    8 +
 autogen.sh                                        |    2 +-
 configure.ac                                      |    9 +-
 docs/Makefile.am                                  |   32 +-
 docs/reference/gtksourceview2-gtksourcegutter.xml |  511 +++++++++++++++++++++
 docs/reference/gtksourceview2-gtksourceview.xml   |  301 ++++++++++++-
 docs/reference/gtksourceview2-ref.xml             |    1 +
 gtksourceview2.defs                               |  173 +++++++-
 gtksourceview2.override                           |  284 ++++++++++++-
 pygtksourceview-private.h                         |   31 ++
 pygtksourceview.doap                              |   30 ++
 14 files changed, 1455 insertions(+), 36 deletions(-)
---
diff --cc gtksourceview2.defs
index eece535,7e501cd..f0b8816
--- a/gtksourceview2.defs
+++ b/gtksourceview2.defs
@@@ -844,20 -893,70 +925,83 @@@
    )
  )
  
 +(define-method get_completion
 +  (of-object "GtkSourceView")
 +  (c-name "gtk_source_view_get_completion")
 +  (return-type "GtkSourceCompletion*")
 +)
 +
+ (define-method get_gutter
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_get_gutter")
+   (return-type "GtkSourceGutter*")
+   (parameters
+     '("GtkTextWindowType" "window_type")
+   )
+ )
+ 
+ (define-method set_mark_category_icon_from_pixbuf
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_set_mark_category_icon_from_pixbuf")
+   (return-type "none")
+   (parameters
+     '("const-gchar*" "category")
+     '("GdkPixbuf*" "pixbuf" (null-ok))
+   )
+ )
+ 
+ (define-method set_mark_category_icon_from_stock
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_set_mark_category_icon_from_stock")
+   (return-type "none")
+   (parameters
+     '("const-gchar*" "category")
+     '("const-gchar*" "stock_id" (null-ok))
+   )
+ )
+ 
+ (define-method set_mark_category_icon_from_icon_name
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_set_mark_category_icon_from_icon_name")
+   (return-type "none")
+   (parameters
+     '("const-gchar*" "category")
+     '("const-gchar*" "name" (null-ok))
+   )
+ )
+ 
+ (define-method set_mark_category_tooltip_func
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_set_mark_category_tooltip_func")
+   (return-type "none")
+   (parameters
+     '("const-gchar*" "category")
+     '("GtkSourceViewMarkTooltipFunc" "func")
+     '("gpointer" "user_data")
+     '("GDestroyNotify" "user_data_notify")
+   )
+ )
+ 
+ (define-method set_mark_category_tooltip_markup_func
+   (of-object "GtkSourceView")
+   (c-name "gtk_source_view_set_mark_category_tooltip_markup_func")
+   (return-type "none")
+   (parameters
+     '("const-gchar*" "category")
+     '("GtkSourceViewMarkTooltipFunc" "markup_func")
+     '("gpointer" "user_data")
+     '("GDestroyNotify" "user_data_notify")
+   )
+ )
+ 
 -
 +(define-method show_completion
 +  (of-object "GtkSourceView")
 +  (c-name "gtk_source_view_show_completion")
 +  (return-type "none")
 +  (parameters
 +    '("GList*" "providers")
 +  )
 +)
  
  ;; From gtksourcemark.h
  
@@@ -1468,88 -1318,29 +1612,113 @@@
    (of-object "GtkSourceView")
    (return-type "none")
  )
 +
 +(define-virtual get_label
 +  (of-object "GtkSourceCompletionProposal")
 +  (return-type "const-gchar*")
 +)
 +
 +(define-virtual get_icon
 +  (of-object "GtkSourceCompletionProposal")
 +  (return-type "GdkPixbuf*")
 +)
 +
 +(define-virtual get_info
 +  (of-object "GtkSourceCompletionProposal")
 +  (return-type "const-gchar*")
 +)
 +
 +(define-virtual changed
 +  (of-object "GtkSourceCompletionProposal")
 +  (return-type "none")
 +)
 +
 +(define-virtual get_name
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "const-gchar*")
 +)
 +
 +(define-virtual get_icon
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "GdkPixbuf*")
 +)
 +
 +(define-virtual get_proposals
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "GList*")
 +  (parameters
 +    '("GtkTextIter*" "iter")
 +  )
 +)
 +
 +(define-virtual filter_proposal
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "gboolean")
 +  (parameters
 +    '("GtkSourceCompletionProposal*" "proposal")
 +    '("GtkTextIter*" "iter")
 +    '("const-gchar*" "criteria")
 +  )
 +)
 +
 +(define-virtual get_automatic
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "gboolean")
 +)
 +
 +(define-virtual get_interactive
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "gboolean")
 +)
 +
 +(define-virtual get_info_widget
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "GtkWidget*")
 +  (caller-owns-return #t)
 +  (parameters
 +    '("GtkSourceCompletionProposal*" "proposal")
 +  )
 +)
 +
 +(define-virtual update_info
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "none")
 +  (parameters
 +    '("GtkSourceCompletionProposal*" "proposal")
 +    '("GtkSourceCompletionInfo*" "info")
 +  )
 +)
 +
 +(define-virtual activate_proposal
 +  (of-object "GtkSourceCompletionProvider")
 +  (return-type "gboolean")
 +  (parameters
 +    '("GtkSourceCompletionProposal*" "proposal")
 +    '("GtkTextIter*" "iter")
++
+ (define-virtual cell_activated
+   (of-object "GtkSourceGutter")
+   (return-type "none")
+   (parameters
+     '("GtkCellRenderer*" "renderer")
+     '("GtkTextIter*" "iter")
+     '("GdkEvent*" "event")
+   )
+ )
+ (define-virtual query_tooltip
+   (of-object "GtkSourceGutter")
+   (return-type "gboolean")
+   (parameters
+     '("GtkCellRenderer*" "renderer")
+     '("GtkTextIter*" "iter")
+     '("GtkTooltip*" "tooltip")
+   )
+ )
+ (define-virtual line_mark_activated
+   (of-object "GtkSourceView")
+   (return-type "none")
+   (parameters
+     '("GtkTextIter*" "iter")
+     '("GdkEvent*" "event")
    )
  )
diff --cc gtksourceview2.override
index 753d1f5,e2da2da..64641b9
--- a/gtksourceview2.override
+++ b/gtksourceview2.override
@@@ -124,9 -124,9 +142,11 @@@ import gtk.TextView as PyGtkTextView_Ty
  import gtk.TextBuffer as PyGtkTextBuffer_Type
  import gtk.TextMark as PyGtkTextMark_Type
  import gtk.PrintContext as PyGtkPrintContext_Type
 +import gtk.Widget as PyGtkWidget_Type
 +import gtk.Window as PyGtkWindow_Type
 +import gtk.TextIter as PyGtkTextIter_Type
+ import gtk.CellRenderer as PyGtkCellRenderer_Type
+ import gtk.Tooltip as PyGtkTooltip_Type
 -
  %%
  ignore-glob
  *_get_type
@@@ -489,279 -488,263 +509,541 @@@ _wrap_gtk_source_view_get_mark_category
  }
  
  %%
 +override gtk_source_view_show_completion kwargs
 +
 +static GList *
 +pylist_to_glist_gobjs (PyObject *object, GType gtype)
 +{
 +    PyObject *item;
 +    GObject *obj;
 +    GList *ret = NULL;
 +    int num;
 +    int i;
 +    
 +    if (object == Py_None) {
 +        return ret;
 +    }
 +    
 +    num = PySequence_Size (object);
 +    
 +    for (i = 0; i < num; ++i) {
 +        item = PySequence_GetItem (object, i);
 +        
 +        if (PyObject_TypeCheck(item, &PyGObject_Type)) {
 +            obj = pygobject_get (item);
 +            
 +            if (g_type_is_a (G_TYPE_FROM_INSTANCE (obj), gtype)) {
 +                ret = g_list_prepend (ret, g_object_ref (obj));
 +            }
 +        }
 +    }
 +    
 +    return g_list_reverse (ret);
 +}
 +
 +static PyObject *
 +_wrap_gtk_source_view_show_completion (PyGObject *self, 
 +                                       PyObject  *args, 
 +                                       PyObject  *kwargs)
 +{
 +    static char *kwlist[] = { "providers", NULL };
 +    PyObject *providers;
 +    GList *items;
 +    
 +    if (!PyArg_ParseTupleAndKeywords(args,
 +                                         kwargs,
 +                                         "|O:GtkSourceView.show_completion",
 +                                         kwlist, &providers));
 +
 +    if (providers != Py_None && !PySequence_Check(providers)) {
 +        PyErr_SetString(PyExc_TypeError, "providers must be a list");
 +        return NULL;
 +    }
 +    
 +    items = pylist_to_glist_gobjs (providers, GTK_TYPE_SOURCE_COMPLETION_PROVIDER);
 +    gtk_source_view_show_completion (GTK_SOURCE_VIEW(self->obj), items);
 +    
 +    g_list_foreach (items, (GFunc)g_object_unref, NULL);
 +    g_list_free (items);
-         
++
++    Py_INCREF(Py_None);
++    return Py_None;
++}
++
++%%
+ override gtk_source_gutter_set_cell_data_func kwargs
+ static void
+ pygtksourceview_cell_data_func_marshal (GtkSourceGutter *gutter,
+                                         GtkCellRenderer *cell,
+                                         gint line_number,
+                                         gboolean current_line,
+                                         gpointer data)
+ {
+     PyGILState_STATE state;
+     PyGtkSourceViewCustomNotify *cunote = data;
+     PyObject *retobj;
+     PyObject *pygutter, *pycell;
+ 
+     g_assert (cunote->func);
+ 
+     state = pyg_gil_state_ensure();
+ 
+     pygutter = pygobject_new((GObject *)gutter);
+     pycell = pygobject_new((GObject *)cell);
+     
+     if (cunote->data)
+         retobj = PyEval_CallFunction(cunote->func, "(NNiiO)",
+                                      pygutter, pycell,
+                                      line_number, current_line, cunote->data);
+     else
+         retobj = PyEval_CallFunction(cunote->func, "(NNii)",
+                                      pygutter, pycell,
+                                      line_number, current_line);
+ 
+     if (retobj == NULL) {
+         PyErr_Print();
+     } else
+         Py_DECREF(retobj);
+ 
+     pyg_gil_state_release(state);
+ }
+ 
+ static PyObject *
+ _wrap_gtk_source_gutter_set_cell_data_func (PyGObject *self,
+                                             PyObject *args,
+                                             PyObject *kwargs)
+ {
+     PyObject *pycell, *pyfunc, *pyarg = NULL;
+     GtkCellRenderer *cell;
+     PyGtkSourceViewCustomNotify *cunote;
+ 
+     if (!PyArg_ParseTuple(args, "OO|O:GtkSourceGutter.set_cell_data_func",
+                           &pycell, &pyfunc, &pyarg))
+         return NULL;
+ 
+     if (pygobject_check(pycell, &PyGtkCellRenderer_Type))
+         cell = GTK_CELL_RENDERER(pygobject_get(pycell));
+     else {
+         PyErr_SetString(PyExc_TypeError,
+                         "first argument must be a GtkCellRenderer");
+         return NULL;
+     }
+ 
+     if (pyfunc == Py_None) {
+         PyErr_SetString(PyExc_TypeError,
+                         "Function can't be None");
+     } else {
+         cunote = g_new0(PyGtkSourceViewCustomNotify, 1);
+         cunote->func = pyfunc;
+         cunote->data = pyarg;
+         Py_INCREF(cunote->func);
+         Py_XINCREF(cunote->data);
+ 
+         gtk_source_gutter_set_cell_data_func(GTK_SOURCE_GUTTER(self->obj), cell,
+                                         pygtksourceview_cell_data_func_marshal,
+                                         cunote,
+                                         pygtksourceview_custom_destroy_notify);
+     }
+ 
      Py_INCREF(Py_None);
      return Py_None;
  }
  
  %%
 +override gtk_source_completion_show kwargs
 +static PyObject *
 +_wrap_gtk_source_completion_show(PyGObject *self,
 +                                  PyObject  *args,
 +                                  PyObject  *kwargs)
 +{
 +    static char *kwlist[] = { "providers", "criteria", "place", NULL };
 +    PyObject *providers;
 +    const char *criteria;
 +    GList *items;
 +    PyGBoxed *iter;
 +    
 +    if (!PyArg_ParseTupleAndKeywords(args,
 +                                         kwargs,
 +                                         "|OzO!:GtkSourceCompletion.show",
 +                                         kwlist, &providers, &criteria, &PyGtkTextIter_Type, &iter));
 +
 +    if (providers != Py_None && !PySequence_Check(providers)) {
 +        PyErr_SetString(PyExc_TypeError, "providers must be a list");
 +        return NULL;
 +    }
 +    
 +    items = pylist_to_glist_gobjs (providers, GTK_TYPE_SOURCE_COMPLETION_PROVIDER);
 +    gtk_source_completion_show (GTK_SOURCE_COMPLETION(self), items, criteria, pyg_boxed_get (iter, GtkTextIter));
 +    
 +    g_list_foreach (items, (GFunc)g_object_unref, NULL);
 +    g_list_free (items);
 +    
 +    Py_INCREF(Py_None);
 +    return Py_None;
 +}
 +
 +%%
 +override GtkSourceCompletionProvider__do_get_proposals kwargs
 +static PyObject *
 +_wrap_GtkSourceCompletionProvider__do_get_proposals(PyObject *cls,
 +                                                    PyObject *args,
 +                                                    PyObject *kwargs)
 +{
 +    GtkSourceCompletionProviderIface *iface;
 +    static char *kwlist[] = { "self", "iter", NULL };
 +    PyGObject *self;
 +    PyGBoxed *iter;
 +    GList *ret;
 +
 +    if (!PyArg_ParseTupleAndKeywords(args, kwargs,"O!O!:GtkSourceCompletionProvider.get_proposals", kwlist, &PyGtkSourceCompletionProvider_Type, &self, &PyGtkTextIter_Type, &iter))
 +        return NULL;
 +    iface = g_type_interface_peek(g_type_class_peek(pyg_type_from_object(cls)), GTK_TYPE_SOURCE_COMPLETION_PROVIDER);
 +    if (iface->get_proposals)
 +        ret = iface->get_proposals(GTK_SOURCE_COMPLETION_PROVIDER(self->obj), pyg_boxed_get(iter, GtkTextIter));
 +    else {
 +        PyErr_SetString(PyExc_NotImplementedError, "interface method GtkSourceCompletionProvider.get_proposals not implemented");
 +        return NULL;
 +    }
 +    
 +    return glist_to_pylist_objs (ret);
 +}
 +
 +%%
 +override gtk_source_completion_provider_get_proposals kwargs
 +static PyObject *
 +_wrap_gtk_source_completion_provider_get_proposals(PyGObject *self,
 +                                                   PyObject  *args,
 +                                                   PyObject  *kwargs)
 +{
 +	GList *proposals;
 +	static char *kwlist[] = { "iter", NULL };
 +	PyGBoxed *iter;
 +	
 +	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:GtkSourceCompletionProvider.get_proposals", kwlist,  &PyGtkTextIter_Type, &iter))
 +        return NULL;
 +	
 +	proposals = gtk_source_completion_provider_get_proposals (GTK_SOURCE_COMPLETION_PROVIDER (self),
 +	                                                          pyg_boxed_get(iter, GtkTextIter));
 +	
 +	return glist_to_pylist_objs (proposals);
 +}
 +%%
 +override GtkSourceCompletionProvider__proxy_do_get_proposals
 +static GList *
 +_wrap_GtkSourceCompletionProvider__proxy_do_get_proposals(GtkSourceCompletionProvider *self, GtkTextIter *iter)
 +{
 +    PyGILState_STATE __py_state;
 +    PyObject *py_self;
 +    GList *retval;
 +    PyObject *py_retval;
 +    PyObject *py_method;
 +    PyObject *py_iter;
 +    PyObject *py_args;
 +    
 +    __py_state = pyg_gil_state_ensure();
 +    py_self = pygobject_new((GObject *) self);
 +    if (!py_self) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        pyg_gil_state_release(__py_state);
 +        return FALSE;
 +    }
 +    
 +    
 +    py_method = PyObject_GetAttrString(py_self, "do_get_proposals");
 +    if (!py_method) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        Py_DECREF(py_self);
 +        pyg_gil_state_release(__py_state);
 +        return FALSE;
 +    }
 +    
 +    py_iter = pyg_boxed_new (GTK_TYPE_TEXT_ITER, iter, FALSE, FALSE);
 +    py_args = PyTuple_New(1);
 +    PyTuple_SET_ITEM(py_args, 0, py_iter);
 +    
 +    py_retval = PyObject_CallObject(py_method, py_args);
 +    Py_XDECREF(py_args);
 +
 +    if (!py_retval) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        Py_XDECREF(py_retval);
 +        Py_DECREF(py_method);
 +        Py_DECREF(py_self);
 +        pyg_gil_state_release(__py_state);
 +        return NULL;
 +    }
 +    
 +    if (py_retval != Py_None && !PySequence_Check (py_retval)) {
 +        PyErr_SetString(PyExc_TypeError, "proposals must be a list");
 +        PyErr_Print();
 +        retval = NULL;
 +    } else {
 +        retval = pylist_to_glist_gobjs (py_retval, GTK_TYPE_SOURCE_COMPLETION_PROPOSAL);
 +    }
 +    
 +    Py_XDECREF(py_retval);
 +    Py_DECREF(py_method);
 +    Py_DECREF(py_self);
 +    pyg_gil_state_release(__py_state);
++
++    return retval;
++}
++
++%%
+ override gtk_source_gutter_set_cell_size_func kwargs
+ static void
+ pygtksourceview_cell_size_func_marshal (GtkSourceGutter *gutter,
+                                         GtkCellRenderer *cell,
+                                         gpointer data)
+ {
+     PyGILState_STATE state;
+     PyGtkSourceViewCustomNotify *cunote = data;
+     PyObject *retobj;
+     PyObject *pygutter, *pycell;
+ 
+     g_assert (cunote->func);
+ 
+     state = pyg_gil_state_ensure();
+ 
+     pygutter = pygobject_new((GObject *)gutter);
+     pycell = pygobject_new((GObject *)cell);
+     
+     if (cunote->data)
+         retobj = PyEval_CallFunction(cunote->func, "(NNO)",
+                                      pygutter, pycell,
+                                      cunote->data);
+     else
+         retobj = PyEval_CallFunction(cunote->func, "(NN)",
+                                      pygutter, pycell);
+ 
+     if (retobj == NULL) {
+         PyErr_Print();
+     } else
+         Py_DECREF(retobj);
+ 
+     pyg_gil_state_release(state);
+ }
+ 
+ static PyObject *
+ _wrap_gtk_source_gutter_set_cell_size_func (PyGObject *self,
+                                             PyObject *args,
+                                             PyObject *kwargs)
+ {
+     PyObject *pycell, *pyfunc, *pyarg = NULL;
+     GtkCellRenderer *cell;
+     PyGtkSourceViewCustomNotify *cunote;
+ 
+     if (!PyArg_ParseTuple(args, "OO|O:GtkSourceGutter.set_cell_size_func",
+                           &pycell, &pyfunc, &pyarg))
+         return NULL;
+ 
+     if (pygobject_check(pycell, &PyGtkCellRenderer_Type))
+         cell = GTK_CELL_RENDERER(pygobject_get(pycell));
+     else {
+         PyErr_SetString(PyExc_TypeError,
+                         "first argument must be a GtkCellRenderer");
+         return NULL;
+     }
+ 
+     if (pyfunc == Py_None) {
+         PyErr_SetString(PyExc_TypeError,
+                         "func must be a callable object");
+     } else {
+         cunote = g_new0(PyGtkSourceViewCustomNotify, 1);
+         cunote->func = pyfunc;
+         cunote->data = pyarg;
+         Py_INCREF(cunote->func);
+         Py_XINCREF(cunote->data);
+ 
+         gtk_source_gutter_set_cell_size_func(GTK_SOURCE_GUTTER(self->obj), cell,
+                                         pygtksourceview_cell_size_func_marshal,
+                                         cunote,
+                                         pygtksourceview_custom_destroy_notify);
+     }
+ 
+     Py_INCREF(Py_None);
+     return Py_None;
+ }
+ 
+ %%
+ override gtk_source_view_set_mark_category_tooltip_func kwargs
+ static gchar *
+ pygtksourceview_mark_tooltip_func_marshal (GtkSourceMark *mark,
+                                            gpointer data)
+ {
+     PyGILState_STATE state;
+     PyGtkSourceViewCustomNotify *cunote = data;
+     PyObject *retobj;
+     PyObject *pymark;
+     gchar *retval = NULL;
+ 
+     g_assert (cunote->func);
+ 
+     state = pyg_gil_state_ensure();
+ 
+     pymark = pygobject_new((GObject *)mark);
+     
+     if (cunote->data)
+         retobj = PyEval_CallFunction(cunote->func, "(NO)",
+                                      pymark,
+                                      cunote->data);
+     else
+         retobj = PyEval_CallFunction(cunote->func, "(N)",
+                                      pymark);
+ 
+     if (retobj == NULL) {
+         PyErr_Print();
+     } else
+         retval = PyString_AsString(retobj);
+         Py_DECREF(retobj);
+ 
+     pyg_gil_state_release(state);
      
      return retval;
  }
  
 +%%
 +override GtkSourceCompletionProvider__proxy_do_get_info_widget
 +
 +static GtkWidget*
 +_wrap_GtkSourceCompletionProvider__proxy_do_get_info_widget(GtkSourceCompletionProvider *self, GtkSourceCompletionProposal*proposal)
 +{
 +    PyGILState_STATE __py_state;
 +    PyObject *py_self;
 +    PyObject *py_proposal = NULL;
 +    GtkWidget* retval;
 +    PyObject *py_retval;
 +    PyObject *py_args;
 +    PyObject *py_method;
 +    
 +    __py_state = pyg_gil_state_ensure();
 +    py_self = pygobject_new((GObject *) self);
 +    if (!py_self) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        pyg_gil_state_release(__py_state);
 +        return NULL;
 +    }
 +    if (proposal)
 +        py_proposal = pygobject_new((GObject *) proposal);
 +    else {
 +        Py_INCREF(Py_None);
 +        py_proposal = Py_None;
 +    }
 +    
 +    py_args = PyTuple_New(1);
 +    PyTuple_SET_ITEM(py_args, 0, py_proposal);
 +    
 +    py_method = PyObject_GetAttrString(py_self, "do_get_info_widget");
 +    if (!py_method) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        Py_DECREF(py_args);
 +        Py_DECREF(py_self);
 +        pyg_gil_state_release(__py_state);
 +        return NULL;
 +    }
 +    py_retval = PyObject_CallObject(py_method, py_args);
 +    if (!py_retval) {
 +        if (PyErr_Occurred())
 +            PyErr_Print();
 +        Py_XDECREF(py_retval);
 +        Py_DECREF(py_method);
 +        Py_DECREF(py_args);
 +        Py_DECREF(py_self);
 +        pyg_gil_state_release(__py_state);
 +        return NULL;
 +    }
 +    if (!PyObject_TypeCheck(py_retval, &PyGObject_Type)) {
 +        PyErr_SetString(PyExc_TypeError, "retval should be a GObject");
 +        PyErr_Print();
 +        Py_XDECREF(py_retval);
 +        Py_DECREF(py_method);
 +        Py_DECREF(py_args);
 +        Py_DECREF(py_self);
 +        pyg_gil_state_release(__py_state);
 +        return NULL;
 +    }
 +    retval = (GtkWidget*) pygobject_get(py_retval);    
 +    
 +    Py_XDECREF(py_retval);
 +    Py_DECREF(py_method);
 +    Py_DECREF(py_args);
 +    Py_DECREF(py_self);
 +    pyg_gil_state_release(__py_state);
 +    
 +    return retval;
 +}
++
+ static PyObject *
+ _wrap_gtk_source_view_set_mark_category_tooltip_func (PyGObject *self,
+                                                       PyObject *args,
+                                                       PyObject *kwargs)
+ {
+     PyObject *pyfunc, *pyarg = NULL;
+     PyGtkSourceViewCustomNotify *cunote;
+     gchar *category;
+ 
+     if (!PyArg_ParseTuple(args, "sO|O:GtkSourceView.set_mark_category_tooltip_func",
+                           &category, &pyfunc, &pyarg))
+         return NULL;
+ 
+     if (pyfunc == Py_None) {
+         gtk_source_view_set_mark_category_tooltip_func(GTK_SOURCE_VIEW(self->obj),
+                                         category, NULL, NULL, NULL);
+     } else {
+         cunote = g_new0(PyGtkSourceViewCustomNotify, 1);
+         cunote->func = pyfunc;
+         cunote->data = pyarg;
+         Py_INCREF(cunote->func);
+         Py_XINCREF(cunote->data);
+ 
+         gtk_source_view_set_mark_category_tooltip_func(GTK_SOURCE_VIEW(self->obj),
+                                         category,
+                                         pygtksourceview_mark_tooltip_func_marshal,
+                                         cunote,
+                                         pygtksourceview_custom_destroy_notify);
+     }
+ 
+     Py_INCREF(Py_None);
+     return Py_None;
+ }
+ 
+ %%
+ override gtk_source_view_set_mark_category_tooltip_markup_func kwargs
+ static PyObject *
+ _wrap_gtk_source_view_set_mark_category_tooltip_markup_func (PyGObject *self,
+                                                              PyObject *args,
+                                                              PyObject *kwargs)
+ {
+     PyObject *pyfunc, *pyarg = NULL;
+     PyGtkSourceViewCustomNotify *cunote;
+     gchar *category;
+ 
+     if (!PyArg_ParseTuple(args, "sO|O:GtkSourceView.set_mark_category_tooltip_markup_func",
+                           &category, &pyfunc, &pyarg))
+         return NULL;
+ 
+     if (pyfunc == Py_None) {
+         gtk_source_view_set_mark_category_tooltip_markup_func(GTK_SOURCE_VIEW(self->obj),
+                                         category, NULL, NULL, NULL);
+     } else {
+         cunote = g_new0(PyGtkSourceViewCustomNotify, 1);
+         cunote->func = pyfunc;
+         cunote->data = pyarg;
+         Py_INCREF(cunote->func);
+         Py_XINCREF(cunote->data);
+ 
+         gtk_source_view_set_mark_category_tooltip_markup_func(GTK_SOURCE_VIEW(self->obj),
+                                         category,
+                                         pygtksourceview_mark_tooltip_func_marshal,
+                                         cunote,
+                                         pygtksourceview_custom_destroy_notify);
+     }
+ 
+     Py_INCREF(Py_None);
+     return Py_None;
+ }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]