diff options
author | Christian Hergert <chergert@redhat.com> | 2020-01-15 14:53:52 -0800 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2020-09-21 15:32:48 -0700 |
commit | 41e428762570d65dbe27529b232b8ad7f8ff3c90 (patch) | |
tree | 0a4157a2efbc624de6762a7eba8104d2c373666a /gtksourceview/gtksourcegutter.h | |
parent | 0207f78ddab3fd9d870dff8011d6557bf65530d9 (diff) | |
download | gtksourceview-41e428762570d65dbe27529b232b8ad7f8ff3c90.tar.gz |
gutter: port to GTK 4
- Use widgets instead of GInitiallyUnowned. This allows for much more
advanced usage of event controllers, snapshoting, and potentially
caching of render nodes.
- GtkSourceGutter is now a container of GtkSourceGutterRenderer
- Remove use of GdkEvent as much as possible and instead follow patterns
for events more closely to upstream GTK 4. In particular the query
and activate signals provide button/state/n_presses which are typically
what would be needed by renderers anyway.
- Tooltips can now be handled by renderers directly using the GtkWidget
infrastructure for that.
- Use GtkSourceGutterLines to reduce the number of passes we do through
the textbuffer btree. This helps achieve a few more frames per second
in the rendering pipeline during heavy kinetic scrolling. Especially
on HiDPI systems.
- Use GdkPaintable instead of GdkPixbuf for rendering pixbufs.
- Add alignment helper for renderers to center on a particular position.
This caches the positioning so that it can be reused by additional
cell renderers without the extra floating point math or view area
location.
- Renderer state is no longer necessary as that information can be
retrieved from the GtkSourceGutterLines using the helper functions.
State is simply a quark in the quarkset like any other status.
Diffstat (limited to 'gtksourceview/gtksourcegutter.h')
-rw-r--r-- | gtksourceview/gtksourcegutter.h | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/gtksourceview/gtksourcegutter.h b/gtksourceview/gtksourcegutter.h index 3fdf5b44..d25a1769 100644 --- a/gtksourceview/gtksourcegutter.h +++ b/gtksourceview/gtksourcegutter.h @@ -33,28 +33,17 @@ G_BEGIN_DECLS #define GTK_SOURCE_TYPE_GUTTER (gtk_source_gutter_get_type()) GTK_SOURCE_AVAILABLE_IN_ALL -G_DECLARE_FINAL_TYPE (GtkSourceGutter, gtk_source_gutter, GTK_SOURCE, GUTTER, GObject) +G_DECLARE_FINAL_TYPE (GtkSourceGutter, gtk_source_gutter, GTK_SOURCE, GUTTER, GtkContainer) GTK_SOURCE_AVAILABLE_IN_3_24 -GtkSourceView *gtk_source_gutter_get_view (GtkSourceGutter *gutter); -GTK_SOURCE_AVAILABLE_IN_3_24 -GtkTextWindowType gtk_source_gutter_get_window_type (GtkSourceGutter *gutter); -GTK_SOURCE_AVAILABLE_IN_ALL -gboolean gtk_source_gutter_insert (GtkSourceGutter *gutter, - GtkSourceGutterRenderer *renderer, - gint position); -GTK_SOURCE_AVAILABLE_IN_ALL -void gtk_source_gutter_reorder (GtkSourceGutter *gutter, - GtkSourceGutterRenderer *renderer, - gint position); -GTK_SOURCE_AVAILABLE_IN_ALL -void gtk_source_gutter_remove (GtkSourceGutter *gutter, - GtkSourceGutterRenderer *renderer); +GtkSourceView *gtk_source_gutter_get_view (GtkSourceGutter *gutter); GTK_SOURCE_AVAILABLE_IN_ALL -void gtk_source_gutter_queue_draw (GtkSourceGutter *gutter); +gboolean gtk_source_gutter_insert (GtkSourceGutter *gutter, + GtkSourceGutterRenderer *renderer, + gint position); GTK_SOURCE_AVAILABLE_IN_ALL -GtkSourceGutterRenderer *gtk_source_gutter_get_renderer_at_pos (GtkSourceGutter *gutter, - gint x, - gint y); +void gtk_source_gutter_reorder (GtkSourceGutter *gutter, + GtkSourceGutterRenderer *renderer, + gint position); G_END_DECLS |