summaryrefslogtreecommitdiff
path: root/gtksourceview/gtksourcegutter.h
diff options
context:
space:
mode:
authorJesse van den Kieboom <jesse@icecrew.nl>2009-05-30 12:34:06 +0200
committerJesse van den Kieboom <jesse@icecrew.nl>2009-05-30 12:34:06 +0200
commit0d803836e458f3b816b22bb8f79b289a4139da70 (patch)
tree7a8ed6a189d911ebe6e68b0756b12cfa393fb856 /gtksourceview/gtksourcegutter.h
parente4216a10cbd67a1a210db945c627bbdfb100f483 (diff)
downloadgtksourceview-0d803836e458f3b816b22bb8f79b289a4139da70.tar.gz
Implemented GtkSourceGutter
GtkSourceGutter replaces the custom drawing of lines and marks and at the same time, provides a public API to allow users to extend the gutter. The gutter works very much the same as a GtkCellLayout, in the sense that you can pack GtkCellRenderer objects in the gutter.
Diffstat (limited to 'gtksourceview/gtksourcegutter.h')
-rw-r--r--gtksourceview/gtksourcegutter.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/gtksourceview/gtksourcegutter.h b/gtksourceview/gtksourcegutter.h
new file mode 100644
index 00000000..32c57a98
--- /dev/null
+++ b/gtksourceview/gtksourcegutter.h
@@ -0,0 +1,108 @@
+/*
+ * gtksourcegutter.h
+ * This file is part of gtksourceview
+ *
+ * Copyright (C) 2009 - Jesse van den Kieboom
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+
+#ifndef __GTK_SOURCE_GUTTER_H__
+#define __GTK_SOURCE_GUTTER_H__
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SOURCE_GUTTER (gtk_source_gutter_get_type ())
+#define GTK_SOURCE_GUTTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOURCE_GUTTER, GtkSourceGutter))
+#define GTK_SOURCE_GUTTER_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOURCE_GUTTER, GtkSourceGutter const))
+#define GTK_SOURCE_GUTTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOURCE_GUTTER, GtkSourceGutterClass))
+#define GTK_IS_SOURCE_GUTTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SOURCE_GUTTER))
+#define GTK_IS_SOURCE_GUTTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOURCE_GUTTER))
+#define GTK_SOURCE_GUTTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SOURCE_GUTTER, GtkSourceGutterClass))
+
+typedef struct _GtkSourceGutter GtkSourceGutter;
+typedef struct _GtkSourceGutterClass GtkSourceGutterClass;
+typedef struct _GtkSourceGutterPrivate GtkSourceGutterPrivate;
+
+struct _GtkSourceGutter {
+ GObject parent;
+
+ GtkSourceGutterPrivate *priv;
+};
+
+struct _GtkSourceGutterClass {
+ GObjectClass parent_class;
+
+ void (*cell_activated) (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ GtkTextIter *iter,
+ GdkEvent *event);
+
+ gboolean (*query_tooltip) (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ GtkTextIter *iter,
+ GtkTooltip *tooltip);
+};
+
+typedef void (*GtkSourceGutterDataFunc) (GtkSourceGutter *gutter,
+ GtkCellRenderer *cell,
+ gint line_number,
+ gboolean current_line,
+ gpointer data);
+
+typedef void (*GtkSourceGutterSizeFunc) (GtkSourceGutter *gutter,
+ GtkCellRenderer *cell,
+ gpointer data);
+
+GType gtk_source_gutter_get_type (void) G_GNUC_CONST;
+
+GdkWindow *gtk_source_gutter_get_window (GtkSourceGutter *gutter);
+
+void gtk_source_gutter_insert (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ gint position);
+
+void gtk_source_gutter_reorder (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ gint position);
+
+void gtk_source_gutter_remove (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer);
+
+void gtk_source_gutter_set_cell_data_func (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ GtkSourceGutterDataFunc func,
+ gpointer func_data,
+ GDestroyNotify destroy);
+
+void gtk_source_gutter_set_cell_size_func (GtkSourceGutter *gutter,
+ GtkCellRenderer *renderer,
+ GtkSourceGutterSizeFunc func,
+ gpointer func_data,
+ GDestroyNotify destroy);
+
+void gtk_source_gutter_queue_draw (GtkSourceGutter *gutter);
+
+G_END_DECLS
+
+#endif /* __GTK_SOURCE_GUTTER_H__ */
+
+/* vi:ts=8 */