~ubuntu-branches/ubuntu/jaunty/ekiga/jaunty-updates

« back to all changes in this revision

Viewing changes to lib/gui/gm-text-buffer-enhancer-helper-iface.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2008-12-07 10:30:45 UTC
  • mfrom: (1.2.3 experimental)
  • Revision ID: james.westby@ubuntu.com-20081207103045-iaurrjo4p7d1nngo
Tags: 3.0.1-1ubuntu1
* Merge to Debian experimental, to get Ekiga 3. (LP: #274085) Remaining
  Ubuntu changes:
  - Launchpad Integration: (Ubuntu specific)
    + debian/control.in: Add liblaunchpad-integration-dev build dependency.
    + Add ubuntu_lpi.patch: Call launchpad_integration_add_items() in main() and
      check for the launchpad-integration pkg-config module.
    + Add autoconf.patch: autoconf changes from above patch.
  - Add ubuntu_desktop-file-onlyshowin.patch: Show ekiga in Mobile, too.
    (Ubuntu specific).
  - debian/control.in: Add missing fdupes build dependency for identical
    GNOME help file symlinking. (Debian #505536)
* Drop 42_change_pixmaps.dpatch: Many of the old icons do not exist any
  more, some have been replaced, and keeping the remaining three would make
  them look very inconsistent.
* Convert our dpatches to quilt patches and rewrite them for new upstream
  version.
* Add migrate_2.0_settings.patch: Properly migrate settings from
  2.0. Taken from upstream SVN, thanks to Damien Sandras!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/* Ekiga -- A VoIP and Video-Conferencing application
 
3
 * Copyright (C) 2000-2008 Damien Sandras
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License as published by
 
7
 * the Free Software Foundation; either version 2 of the License, or
 
8
 * (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this program; if not, write to the Free Software Foundation,
 
17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
18
 *
 
19
 *
 
20
 * Ekiga is licensed under the GPL license and as a special exception,
 
21
 * you have permission to link or otherwise combine this program with the
 
22
 * programs OPAL, OpenH323 and PWLIB, and distribute the combination,
 
23
 * without applying the requirements of the GNU GPL to the OPAL, OpenH323
 
24
 * and PWLIB programs, as long as you do follow the requirements of the
 
25
 * GNU GPL for all the rest of the software thus combined.
 
26
 */
 
27
 
 
28
 
 
29
/*
 
30
 *                        gm-text-buffer-enhancer-helper-iface.h  -  description
 
31
 *                         --------------------------------
 
32
 *   begin                : written in july 2008 by Julien Puydt
 
33
 *   copyright            : (C) 2008 by Julien Puydt
 
34
 *   description          : Declaration of the interface of a text decorator
 
35
 *                          (for use with GmTextBufferEnhancer)
 
36
 *
 
37
 */
 
38
 
 
39
#ifndef __GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE_H__
 
40
#define __GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE_H__
 
41
 
 
42
#include <gtk/gtk.h>
 
43
 
 
44
G_BEGIN_DECLS
 
45
 
 
46
typedef struct _GmTextBufferEnhancerHelperIFace      GmTextBufferEnhancerHelperIFace;
 
47
typedef struct _GmTextBufferEnhancerHelperIFaceClass GmTextBufferEnhancerHelperIFaceClass;
 
48
 
 
49
/* public api */
 
50
 
 
51
/* This method is used to have all enhancers tell what they think they can do
 
52
 * to enhance a text ; then the enhancer will choose the most suitable helper
 
53
 * and use the next method.
 
54
 * For this reason, the helper receives :
 
55
 * - the full text (full_text parameter) ;
 
56
 * - where in the full text it should start looking for interesting things (from
 
57
 *   parameter) ;
 
58
 * and it returns two values (the start and length out parameters) :
 
59
 * - where it thinks it can do something (the start parameter) ;
 
60
 * - on which length it will do it (the length parameter).
 
61
 *
 
62
 * The idea is :
 
63
 * - return a zero length if nothing interesting can be done (start will then
 
64
 *   be ignored by the caller) ;
 
65
 * - the length allows the enhancer to prefer the helper which saw "fooz" when
 
66
 *   compared to the one which saw "foo".
 
67
 */
 
68
void gm_text_buffer_enhancer_helper_check (GmTextBufferEnhancerHelperIFace* self,
 
69
                                           const gchar* full_text,
 
70
                                           gint from,
 
71
                                           gint* start,
 
72
                                           gint* length);
 
73
 
 
74
 
 
75
/* This method is called by the enhancer when the helper has been choosen
 
76
 * to act ; it receives :
 
77
 * - the buffer (buffer parameter) in which the enhanced text has to go ;
 
78
 * - the iterator (iter parameter) where to insert the enhanced text ;
 
79
 * - the active tags (tags parameter), which is an in&out parameter, hence
 
80
 *   the enhancer can change them and use them ;
 
81
 * - the full text which the enhancer is trying to insert ;
 
82
 * - where in the text the helper said it would work (the start parameter),
 
83
 *   as in&out parameter so the helper can swallow it ;
 
84
 * - the length (length parameter) of the part the helper said was interested
 
85
 *   in.
 
86
 *
 
87
 * "the helper said" means those values are those the helper answered in its
 
88
 * check method.
 
89
 */
 
90
void gm_text_buffer_enhancer_helper_enhance (GmTextBufferEnhancerHelperIFace* self,
 
91
                                             GtkTextBuffer* buffer,
 
92
                                             GtkTextIter* iter,
 
93
                                             GSList** tags,
 
94
                                             const gchar* full_text,
 
95
                                             gint* start,
 
96
                                             gint length);
 
97
 
 
98
/* GObject boilerplate */
 
99
 
 
100
struct _GmTextBufferEnhancerHelperIFaceClass {
 
101
  GTypeInterface parent;
 
102
 
 
103
  void (*do_check) (GmTextBufferEnhancerHelperIFace* self,
 
104
                    const gchar* full_text,
 
105
                    gint from,
 
106
                    gint* start,
 
107
                    gint* length);
 
108
 
 
109
  void (*do_enhance) (GmTextBufferEnhancerHelperIFace* self,
 
110
                      GtkTextBuffer* buffer,
 
111
                      GtkTextIter* iter,
 
112
                      GSList** tags,
 
113
                      const gchar* full_text,
 
114
                      gint* start,
 
115
                      gint length);
 
116
};
 
117
 
 
118
#define GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE (gm_text_buffer_enhancer_helper_iface_get_type())
 
119
#define GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE,GmTextBufferEnhancerHelperIFace))
 
120
#define GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST((vtable),GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE,GTypeInterface))
 
121
#define GM_IS_TEXT_BUFFER_ENHANCER_HELPER_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE))
 
122
#define GM_IS_TEXT_BUFFER_ENHANCER_HELPER_IFACE_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE((vtable),GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE))
 
123
#define GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE((inst),GM_TYPE_TEXT_BUFFER_ENHANCER_HELPER_IFACE,GmTextBufferEnhancerHelperIFaceClass))
 
124
 
 
125
GType gm_text_buffer_enhancer_helper_iface_get_type () G_GNUC_CONST;
 
126
 
 
127
G_END_DECLS
 
128
 
 
129
#endif /* __GM_TEXT_BUFFER_ENHANCER_HELPER_IFACE_H__ */