diff options
author | Jesse van den Kieboom <jesse@icecrew.nl> | 2009-05-30 12:34:06 +0200 |
---|---|---|
committer | Jesse van den Kieboom <jesse@icecrew.nl> | 2009-05-30 12:34:06 +0200 |
commit | 0d803836e458f3b816b22bb8f79b289a4139da70 (patch) | |
tree | 7a8ed6a189d911ebe6e68b0756b12cfa393fb856 /gtksourceview/gtksourcegutter.h | |
parent | e4216a10cbd67a1a210db945c627bbdfb100f483 (diff) | |
download | gtksourceview-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.h | 108 |
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 */ |