File: gtksourceview.h

package info (click to toggle)
libgedit-gtksourceview 299.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 7,536 kB
  • sloc: ansic: 48,501; xml: 2,620; perl: 206; sh: 51; yacc: 45; makefile: 35; cobol: 20; objc: 19; javascript: 16; fortran: 14; python: 13; cpp: 8; ml: 3
file content (245 lines) | stat: -rw-r--r-- 8,239 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*-
 *
 * This file is part of GtkSourceView
 *
 * Copyright (C) 2001 - Mikael Hermansson <tyan@linux.se> and
 *                       Chris Phelps <chicane@reninet.com>
 * Copyright (C) 2003 - Gustavo Giráldez and Paolo Maggi
 *
 * GtkSourceView 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.
 *
 * GtkSourceView 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, see <http://www.gnu.org/licenses/>.
 */

#ifndef GTK_SOURCE_VIEW_H
#define GTK_SOURCE_VIEW_H

#if !defined (GTK_SOURCE_H_INSIDE) && !defined (GTK_SOURCE_COMPILATION)
#error "Only <gtksourceview/gtksource.h> can be included directly."
#endif

#include <gtk/gtk.h>
#include <gtksourceview/gtksourcetypes.h>

G_BEGIN_DECLS

#define GTK_SOURCE_TYPE_VIEW             (gtk_source_view_get_type ())
#define GTK_SOURCE_VIEW(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_SOURCE_TYPE_VIEW, GtkSourceView))
#define GTK_SOURCE_VIEW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_SOURCE_TYPE_VIEW, GtkSourceViewClass))
#define GTK_SOURCE_IS_VIEW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_SOURCE_TYPE_VIEW))
#define GTK_SOURCE_IS_VIEW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_SOURCE_TYPE_VIEW))
#define GTK_SOURCE_VIEW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_SOURCE_TYPE_VIEW, GtkSourceViewClass))

typedef struct _GtkSourceViewClass GtkSourceViewClass;
typedef struct _GtkSourceViewPrivate GtkSourceViewPrivate;

/**
 * GtkSourceViewGutterPosition:
 * @GTK_SOURCE_VIEW_GUTTER_POSITION_LINES: the gutter position of the lines
 * renderer
 * @GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS: the gutter position of the marks
 * renderer
 */
typedef enum _GtkSourceViewGutterPosition
{
	GTK_SOURCE_VIEW_GUTTER_POSITION_LINES = -30,
	GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS = -20
} GtkSourceViewGutterPosition;

/**
 * GtkSourceSmartHomeEndType:
 * @GTK_SOURCE_SMART_HOME_END_DISABLED: smart-home-end disabled.
 * @GTK_SOURCE_SMART_HOME_END_BEFORE: move to the first/last
 * non-whitespace character on the first press of the HOME/END keys and
 * to the beginning/end of the line on the second press.
 * @GTK_SOURCE_SMART_HOME_END_AFTER: move to the beginning/end of the
 * line on the first press of the HOME/END keys and to the first/last
 * non-whitespace character on the second press.
 * @GTK_SOURCE_SMART_HOME_END_ALWAYS: always move to the first/last
 * non-whitespace character when the HOME/END keys are pressed.
 */
typedef enum _GtkSourceSmartHomeEndType
{
	GTK_SOURCE_SMART_HOME_END_DISABLED,
	GTK_SOURCE_SMART_HOME_END_BEFORE,
	GTK_SOURCE_SMART_HOME_END_AFTER,
	GTK_SOURCE_SMART_HOME_END_ALWAYS
} GtkSourceSmartHomeEndType;

struct _GtkSourceView
{
	GtkTextView parent;

	GtkSourceViewPrivate *priv;
};

struct _GtkSourceViewClass
{
	GtkTextViewClass parent_class;

	void (*undo) (GtkSourceView *view);
	void (*redo) (GtkSourceView *view);
	void (*line_mark_activated) (GtkSourceView *view,
	                             GtkTextIter   *iter,
	                             GdkEvent      *event);
	void (*show_completion) (GtkSourceView *view);
	void (*move_lines) (GtkSourceView *view,
			    gboolean       down);

	void (*move_words) (GtkSourceView *view,
	                    gint           step);

	/* Padding for future expansion */
	gpointer padding[20];
};

G_MODULE_EXPORT
GType		 gtk_source_view_get_type		(void) G_GNUC_CONST;

G_MODULE_EXPORT
GtkWidget	*gtk_source_view_new			(void);

G_MODULE_EXPORT
GtkWidget 	*gtk_source_view_new_with_buffer	(GtkSourceBuffer *buffer);

G_MODULE_EXPORT
void		 gtk_source_view_set_show_line_numbers 	(GtkSourceView   *view,
							 gboolean         show);

G_MODULE_EXPORT
gboolean 	 gtk_source_view_get_show_line_numbers 	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_tab_width          (GtkSourceView   *view,
							 guint            width);

G_MODULE_EXPORT
guint            gtk_source_view_get_tab_width          (GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_indent_width 	(GtkSourceView   *view,
							 gint             width);

G_MODULE_EXPORT
gint		 gtk_source_view_get_indent_width	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_auto_indent 	(GtkSourceView   *view,
							 gboolean         enable);

G_MODULE_EXPORT
gboolean	 gtk_source_view_get_auto_indent 	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_insert_spaces_instead_of_tabs
							(GtkSourceView   *view,
							 gboolean         enable);

G_MODULE_EXPORT
gboolean	 gtk_source_view_get_insert_spaces_instead_of_tabs
							(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_indent_on_tab 	(GtkSourceView   *view,
							 gboolean         enable);

G_MODULE_EXPORT
gboolean	 gtk_source_view_get_indent_on_tab 	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_indent_lines		(GtkSourceView   *view,
							 GtkTextIter     *start,
							 GtkTextIter     *end);

G_MODULE_EXPORT
void		 gtk_source_view_unindent_lines		(GtkSourceView   *view,
							 GtkTextIter     *start,
							 GtkTextIter     *end);

G_MODULE_EXPORT
void		 gtk_source_view_set_highlight_current_line
							(GtkSourceView   *view,
							 gboolean         highlight);

G_MODULE_EXPORT
gboolean 	 gtk_source_view_get_highlight_current_line
							(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_show_right_margin 	(GtkSourceView   *view,
							 gboolean         show);

G_MODULE_EXPORT
gboolean 	 gtk_source_view_get_show_right_margin 	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_right_margin_position
					 		(GtkSourceView   *view,
							 guint            pos);

G_MODULE_EXPORT
guint		 gtk_source_view_get_right_margin_position
					 		(GtkSourceView   *view);

G_MODULE_EXPORT
void 		 gtk_source_view_set_show_line_marks    (GtkSourceView   *view,
							 gboolean         show);

G_MODULE_EXPORT
gboolean	 gtk_source_view_get_show_line_marks    (GtkSourceView   *view);

G_MODULE_EXPORT
void             gtk_source_view_set_mark_attributes    (GtkSourceView           *view,
                                                         const gchar             *category,
                                                         GtkSourceMarkAttributes *attributes,
                                                         gint                     priority);

G_MODULE_EXPORT
GtkSourceMarkAttributes *
                 gtk_source_view_get_mark_attributes    (GtkSourceView           *view,
                                                         const gchar             *category,
                                                         gint                    *priority);

G_MODULE_EXPORT
void		 gtk_source_view_set_smart_backspace	(GtkSourceView   *view,
							 gboolean        smart_backspace);

G_MODULE_EXPORT
gboolean	 gtk_source_view_get_smart_backspace	(GtkSourceView   *view);

G_MODULE_EXPORT
void		 gtk_source_view_set_smart_home_end	(GtkSourceView             *view,
							 GtkSourceSmartHomeEndType  smart_home_end);

G_MODULE_EXPORT
GtkSourceSmartHomeEndType
		 gtk_source_view_get_smart_home_end	(GtkSourceView   *view);

G_MODULE_EXPORT
guint		 gtk_source_view_get_visual_column	(GtkSourceView     *view,
							 const GtkTextIter *iter);

G_MODULE_EXPORT
GtkSourceCompletion *
		 gtk_source_view_get_completion		(GtkSourceView   *view);

G_MODULE_EXPORT
GtkSourceGutter *gtk_source_view_get_gutter		(GtkSourceView     *view,
                                                         GtkTextWindowType  window_type);

G_MODULE_EXPORT
GtkSourceSpaceDrawer *
		 gtk_source_view_get_space_drawer	(GtkSourceView   *view);

G_END_DECLS

#endif /* end of GTK_SOURCE_VIEW_H */