[meld] gutterrendererchunk: Add support for mapping sourceview states to GTK+



commit c478cbb9407a3f3ca73a6074fa9c6165d1574ac4
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun Sep 25 08:54:57 2016 +1000

    gutterrendererchunk: Add support for mapping sourceview states to GTK+

 meld/gutterrendererchunk.py |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/meld/gutterrendererchunk.py b/meld/gutterrendererchunk.py
index dc92b1d..d9f2dbc 100644
--- a/meld/gutterrendererchunk.py
+++ b/meld/gutterrendererchunk.py
@@ -30,6 +30,13 @@ from meld.settings import meldsettings
 # and not necessarily desirable.
 LINE_HEIGHT = 16
 
+GTK_RENDERER_STATE_MAPPING = {
+    GtkSource.GutterRendererState.NORMAL: Gtk.StateFlags.NORMAL,
+    GtkSource.GutterRendererState.CURSOR: Gtk.StateFlags.FOCUSED,
+    GtkSource.GutterRendererState.PRELIT: Gtk.StateFlags.PRELIGHT,
+    GtkSource.GutterRendererState.SELECTED: Gtk.StateFlags.SELECTED,
+}
+
 
 def load(icon_name):
     icon_theme = Gtk.IconTheme.get_default()
@@ -57,6 +64,14 @@ def get_background_rgba(renderer):
 _background_rgba = None
 
 
+def renderer_to_gtk_state(state):
+    gtk_state = Gtk.StateFlags(0)
+    for renderer_flag, gtk_flag in GTK_RENDERER_STATE_MAPPING.items():
+        if renderer_flag & state:
+            gtk_state |= gtk_flag
+    return gtk_state
+
+
 class MeldGutterRenderer(object):
 
     def on_setting_changed(self, meldsettings, key):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]