changeset 1228:af7bf271aaae

update CC gtk theme Ignore-this: b639ebc884c1e0ffc1f6f2257d995467
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 08 Jun 2015 09:28:30 +0000
parents 6a1076af059e
children 79c615718a2f
files bin/curvecalc
diffstat 1 files changed, 22 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/bin/curvecalc	Mon Jun 08 09:27:50 2015 +0000
+++ b/bin/curvecalc	Mon Jun 08 09:28:30 2015 +0000
@@ -56,16 +56,14 @@
         self.lastSeenInputTime = 0
         self.currentSubterms = [] # Subterm objects that are synced to the graph
 
+        self.setTheme()
         wtree = self.wtree = Gtk.Builder()
         wtree.add_from_file("light9/curvecalc/curvecalc.glade")
         mainwin = wtree.get_object("MainWindow")
         
         mainwin.connect("destroy", self.onQuit)
         wtree.connect_signals(self)
-        Gtk.rc_parse("theme/marble-ice/gtk-2.0/gtkrc")
-        Gtk.rc_parse_string("""style "default" {font_name = "sans 9"}""")
-        if self.opts.reload:
-            self.refreshTheme()
+
         mainwin.show_all()
 
         mainwin.connect("delete-event", lambda *args: reactor.crash())
@@ -118,7 +116,7 @@
                 
         # may not work
         wtree.get_object("paned1").set_position(600)
-
+        
     def setupNewSubZone(self):
         self.wtree.get_object("newSubZone").drag_dest_set(
             flags=Gtk.DestDefaults.ALL,
@@ -295,11 +293,26 @@
             add_one_subterm(term, self.curveset, master)
         master.show_all()
         log.debug("%s table children showing" % len(master.get_children()))
+
+    def setTheme(self):
+        settings = Gtk.Settings.get_default()
+        settings.set_property("gtk-application-prefer-dark-theme", True)
+
+        providers = []
+        providers.append(Gtk.CssProvider())
+        providers[-1].load_from_path("theme/Just-Dark/gtk-3.0/gtk.css")
+        providers.append(Gtk.CssProvider())
+        providers[-1].load_from_data('''
+          * { font-size: 92%; }
+          .button:link { font-size: 7px }
+        ''')
         
-    def refreshTheme(self):
-        Gtk.rc_reparse_all()
-        reactor.callLater(1, self.refreshTheme)
-
+        screen = Gdk.Display.get_default_screen(Gdk.Display.get_default())
+        for p in providers:
+            Gtk.StyleContext.add_provider_for_screen(
+                screen, p,
+                Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
+        
     def onSubtermChildAdded(self, subtermsTable, *args):
         # this would probably work, but isn't getting called
         log.info("onSubtermChildAdded")