static void on_renderer_notify_visible (GtkSourceGutterRenderer *renderer, GParamSpec *spec, GtkSourceGutter *gutter) { update_gutter_size (gutter); }
static void on_renderer_size_changed (GtkSourceGutterRenderer *renderer, GParamSpec *spec, GtkSourceGutter *gutter) { update_gutter_size (gutter); }
static void append_renderer (GtkSourceGutter *gutter, Renderer *renderer) { gutter->priv->renderers = g_list_insert_sorted_with_data (gutter->priv->renderers, renderer, (GCompareDataFunc)sort_by_position, NULL); update_gutter_size (gutter); }
void gtk_source_gutter_set_padding (GtkSourceGutter *gutter, gint xpad, gint ypad) { g_return_if_fail (GTK_SOURCE_IS_GUTTER (gutter)); if (set_xpad (gutter, xpad, FALSE) || set_ypad (gutter, ypad, FALSE)) { update_gutter_size (gutter); } }
static Renderer * renderer_at_x (GtkSourceGutter *gutter, gint x, gint *start, gint *width) { GList *item; gint s; gint w; update_gutter_size (gutter); s = 0; for (item = gutter->priv->renderers; item; item = g_list_next (item)) { Renderer *renderer = item->data; gint xpad; if (!gtk_source_gutter_renderer_get_visible (renderer->renderer)) { continue; } w = gtk_source_gutter_renderer_get_size (renderer->renderer); gtk_source_gutter_renderer_get_padding (renderer->renderer, &xpad, NULL); s += xpad; if (w > 0 && x >= s && x < s + w) { if (width) { *width = w; } if (start) { *start = s; } return renderer; } s += w + xpad; } return NULL; }
/** * gtk_source_gutter_remove: * @gutter: a #GtkSourceGutter. * @renderer: a #GtkSourceGutterRenderer. * * Removes @renderer from @gutter. * * Since: 2.8 */ void gtk_source_gutter_remove (GtkSourceGutter *gutter, GtkSourceGutterRenderer *renderer) { Renderer *ret; GList *retlist; g_return_if_fail (GTK_SOURCE_IS_GUTTER (gutter)); g_return_if_fail (GTK_SOURCE_IS_GUTTER_RENDERER (renderer)); if (renderer_find (gutter, renderer, &ret, &retlist)) { gutter->priv->renderers = g_list_delete_link (gutter->priv->renderers, retlist); update_gutter_size (gutter); renderer_free (ret); } }
static gboolean set_padding (GtkSourceGutter *gutter, gint *field, gint padding, const gchar *name, gboolean resize) { if (*field == padding || padding < 0) { return FALSE; } *field = padding; g_object_notify (G_OBJECT (gutter), name); if (resize) { update_gutter_size (gutter); } return TRUE; }
static void on_view_realize (GtkSourceView *view, GtkSourceGutter *gutter) { update_gutter_size (gutter); }