Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

gtksourcebuffer.h

00001 /*  gtksourcebuffer.h
00002  *
00003  *  Copyright (C) 1999,2000,2001,2002 by:
00004  *          Mikael Hermansson <tyan@linux.se>
00005  *          Chris Phelps <chicane@reninet.com>
00006  *          Jeroen Zwartepoorte <jeroen@xs4all.nl>
00007  *
00008  *  This program is free software; you can redistribute it and/or modify
00009  *  it under the terms of the GNU General Public License as published by
00010  *  the Free Software Foundation; either version 2 of the License, or
00011  *  (at your option) any later version.
00012  *
00013  *  This program is distributed in the hope that it will be useful,
00014  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  *  GNU General Public License for more details.
00017  *
00018  *  You should have received a copy of the GNU General Public License
00019  *  along with this program; if not, write to the Free Software
00020  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00021  */
00022 
00023 #ifndef __GTK_SOURCE_BUFFER_H__
00024 #define __GTK_SOURCE_BUFFER_H__
00025 
00026 #include <regex.h>
00027 #include <gtk/gtk.h>
00028 #include <vdk/gtksourcetag.h>
00029 
00030 G_BEGIN_DECLS
00031 
00032 #define GTK_TYPE_SOURCE_BUFFER                  (gtk_source_buffer_get_type ())
00033 #define GTK_SOURCE_BUFFER(obj)                  (GTK_CHECK_CAST ((obj), GTK_TYPE_SOURCE_BUFFER, GtkSourceBuffer))
00034 #define GTK_SOURCE_BUFFER_CLASS(klass)          (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOURCE_BUFFER, GtkSourceBufferClass))
00035 #define GTK_IS_SOURCE_BUFFER(obj)               (GTK_CHECK_TYPE ((obj), GTK_TYPE_SOURCE_BUFFER))
00036 #define GTK_IS_SOURCE_BUFFER_CLASS(klass)       (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOURCE_BUFFER))
00037 
00038 typedef struct _GtkSourceBuffer                 GtkSourceBuffer;
00039 typedef struct _GtkSourceBufferClass            GtkSourceBufferClass;
00040 typedef struct _GtkSourceBufferPrivate          GtkSourceBufferPrivate;
00041 typedef struct _GtkSourceBufferMarker           GtkSourceBufferMarker;
00042 
00043 struct _GtkSourceBuffer {
00044         GtkTextBuffer TextBuffer;
00045 
00046         GtkSourceBufferPrivate *priv;
00047 };
00048 
00049 struct _GtkSourceBufferClass {
00050         GtkTextBufferClass parent_class;
00051 
00052         void (* can_undo)               (GtkSourceBuffer *buffer,
00053                                          gboolean         can_undo);
00054         void (* can_redo)               (GtkSourceBuffer *buffer,
00055                                          gboolean         can_redo);
00056 };
00057 
00058 struct _GtkSourceBufferMarker {
00059         int line;
00060         char *name;
00061 };
00062 
00063 /* Creation. */
00064 GType            gtk_source_buffer_get_type (void);
00065 GtkSourceBuffer *gtk_source_buffer_new (GtkTextTagTable *table);
00066 void             gtk_source_buffer_attach_to_view (GtkSourceBuffer *buffer,
00067                                                    GtkTextView     *view);
00068 
00069 /* Properties. */
00070 void             gtk_source_buffer_set_check_brackets (GtkSourceBuffer *buf,
00071                                                        gboolean         check_brackets);
00072 gboolean         gtk_source_buffer_get_highlight      (GtkSourceBuffer *buffer);
00073 void             gtk_source_buffer_set_highlight      (GtkSourceBuffer *buf,
00074                                                        gboolean         highlight);
00075 
00076 /* Tags methods. */
00077 gint             gtk_source_buffer_get_tag_start       (GtkTextIter *iter);
00078 gint             gtk_source_buffer_get_tag_end         (GtkTextIter *iter);
00079 GtkSyntaxTag    *gtk_source_buffer_iter_has_syntax_tag (GtkTextIter *iter);
00080 
00081 void             gtk_source_buffer_highlight_region    (GtkSourceBuffer *sbuf,
00082                                                         GtkTextIter     *start,
00083                                                         GtkTextIter     *end);
00084 
00085 /* Regex methods. */
00086 gint             gtk_source_buffer_regex_search (const gchar          *text,
00087                                                  gint                  pos,
00088                                                  Regex                *regex,
00089                                                  gboolean              forward,
00090                                                  GtkSourceBufferMatch *match);
00091 gint             gtk_source_buffer_regex_match  (const gchar          *text,
00092                                                  gint                  pos,
00093                                                  gint                  end,
00094                                                  Regex                *regex);
00095 
00096 GList           *gtk_source_buffer_get_regex_tags      (GtkSourceBuffer *buffer);
00097 void             gtk_source_buffer_purge_regex_tags    (GtkSourceBuffer *buffer);
00098 void             gtk_source_buffer_install_regex_tags  (GtkSourceBuffer *buffer,
00099                                                         GList           *entries);
00100 void             gtk_source_buffer_sync_syntax_regex   (GtkSourceBuffer *buffer);
00101 GtkSyntaxTag    *gtk_source_buffer_iter_has_syntax_tag (GtkTextIter     *iter);
00102 
00103 /* Get only the syntax, pattern, or embedded entries. */
00104 GList           *gtk_source_buffer_get_syntax_entries   (GtkSourceBuffer *buffer);
00105 GList           *gtk_source_buffer_get_pattern_entries  (GtkSourceBuffer *buffer);
00106 GList           *gtk_source_buffer_get_embedded_entries (GtkSourceBuffer *buffer);
00107 
00108 /* Utility methods. */
00109 gchar           *gtk_source_buffer_convert_to_html    (GtkSourceBuffer *buffer,
00110                                                        const gchar     *title);
00111 gboolean         gtk_source_buffer_find_bracket_match (GtkTextIter     *orig);
00112 
00113 /* Undo/redo methods. */
00114 gboolean         gtk_source_buffer_can_undo (const GtkSourceBuffer *buffer);
00115 gboolean         gtk_source_buffer_can_redo (const GtkSourceBuffer *buffer);
00116 
00117 void             gtk_source_buffer_undo (GtkSourceBuffer *buffer);
00118 void             gtk_source_buffer_redo (GtkSourceBuffer *buffer);
00119 
00120 int              gtk_source_buffer_get_undo_levels (GtkSourceBuffer *buffer);
00121 void             gtk_source_buffer_set_undo_levels (GtkSourceBuffer *buffer,
00122                                                     int              undo_levels);
00123 
00124 void             gtk_source_buffer_begin_not_undoable_action (GtkSourceBuffer *buffer);
00125 void             gtk_source_buffer_end_not_undoable_action   (GtkSourceBuffer *buffer);
00126 
00127 /* Line marker methods. */
00128 void             gtk_source_buffer_line_add_marker     (GtkSourceBuffer *buffer,
00129                                                         gint             line,
00130                                                         const gchar     *marker);
00131 void             gtk_source_buffer_line_set_marker     (GtkSourceBuffer *buffer,
00132                                                         gint             line,
00133                                                         const gchar     *marker);
00134 gboolean         gtk_source_buffer_line_remove_marker  (GtkSourceBuffer *buffer,
00135                                                         gint             line,
00136                                                         const gchar     *marker);
00137 const GList     *gtk_source_buffer_line_get_markers    (GtkSourceBuffer *buffer,
00138                                                         gint             line);
00139 gint             gtk_source_buffer_line_has_markers    (GtkSourceBuffer *buffer,
00140                                                         gint             line);
00141 gint             gtk_source_buffer_line_remove_markers (GtkSourceBuffer *buffer,
00142                                                         gint             line);
00143 GList           *gtk_source_buffer_get_all_markers     (GtkSourceBuffer *buffer);
00144 gint             gtk_source_buffer_remove_all_markers  (GtkSourceBuffer *buffer,
00145                                                         gint             line_start,
00146                                                         gint             line_end);
00147 
00148 /* IO utility methods. */
00149 gboolean         gtk_source_buffer_load (GtkSourceBuffer *buffer,
00150                                          const gchar     *filename,
00151                                         GError**error);
00152 gboolean         gtk_source_buffer_save (GtkSourceBuffer *buffer,
00153                                          const gchar     *filename,
00154                                         GError**error);
00155 gboolean         gtk_source_buffer_load_with_character_encoding (GtkSourceBuffer *buffer,
00156                                                                  const gchar     *filename,
00157                                                                  const gchar     *encoding, 
00158                                                                 GError**error);
00159 gboolean         gtk_source_buffer_save_with_character_encoding (GtkSourceBuffer *buffer,
00160                                                                  const gchar     *filename,
00161                                                                  const gchar     *encoding, 
00162                                                                 GError **error);
00163 
00164 G_END_DECLS
00165 
00166 #endif /* __GTK_SOURCE_BUFFER_H__ */

Generated on Tue Oct 26 18:58:51 2004 for vdk 2.4.0 by  doxygen 1.3.9.1