Add color/style reset option to theme-default
authorJack Miller <jack@codezen.org>
Sat, 13 Jun 2015 20:11:24 +0000 (15:11 -0500)
committerJack Miller <jack@codezen.org>
Sat, 13 Jun 2015 20:11:24 +0000 (15:11 -0500)
plugins/theme-default.py

index 4cc236c..eadfcec 100644 (file)
@@ -2,6 +2,9 @@
 
 # Defined as a plugin to use as a base for other themes.
 
+FORCE_COLORS = False
+FORCE_STYLE = False
+
 from canto_next.plugins import check_program
 
 check_program("canto-curses")
@@ -11,6 +14,13 @@ from canto_curses.tag import TagPlugin
 from canto_curses.theme import prep_for_display
 from canto_curses.color import cc
 
+cmds = []
+
+if FORCE_COLORS:
+    cmds.append("reset-config color")
+if FORCE_STYLE:
+    cmds.append("reset-config style")
+
 class CantoThemeStoryDefault(StoryPlugin):
     def __init__(self, story):
         self.story = story
@@ -83,3 +93,21 @@ class CantoThemeTagDefault(TagPlugin):
 
         return s
 
+# Stolen from autocmd.py, but simple enough to copy instead of introducing a
+# dependency.
+
+from canto_curses.gui import GuiPlugin
+from canto_next.hooks import on_hook
+
+class AutoCmdGui(GuiPlugin):
+    def __init__(self, gui):
+        self.plugin_attrs = {}
+        self.gui = gui
+
+        on_hook("curses_start", self.do_cmds)
+
+    def do_cmds(self):
+        self.gui.callbacks["set_var"]("quiet", True)
+        for cmd in cmds:
+            self.gui.issue_cmd(cmd)
+        self.gui.callbacks["set_var"]("quiet", False)