]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/ui/theme/switching/switching.factor
Add Wombat theme, put it and Base16 theme in OS X menu
[factor.git] / basis / ui / theme / switching / switching.factor
index 0afdad0bc938c07103eed691e5cbab5540a31b97..2e68a99911a5fe01491d1f682aedb790fac3c737 100644 (file)
@@ -1,31 +1,33 @@
 ! Copyright (C) 2016 Nicolas PĂ©net.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: fry hashtables help.stylesheet help.tips io.styles
-kernel listener namespaces ui.theme ui.tools.listener ;
+USING: hashtables kernel namespaces sequences ui.theme ui.theme.base16
+ui.theme.wombat vocabs.loader ;
 IN: ui.theme.switching
 
-: (update-style) ( style color elt -- )
+SYMBOL: default-theme?
+t default-theme? set-global
+
+: update-style ( style color elt -- )
     '[ _ _ rot ?set-at ] change-global ;
 
 : update-stylesheet ( -- )
-    default-span-style text-color foreground (update-style)
-    link-style link-color foreground (update-style)
-    title-style title-color foreground (update-style)
-    heading-style heading-color foreground (update-style)
-    snippet-style snippet-color foreground (update-style)
-    code-style code-background-color page-color (update-style)
-    output-style output-color foreground (update-style)
-    url-style url-color foreground (update-style)
-    warning-style warning-background-color page-color (update-style)
-    deprecated-style warning-background-color page-color (update-style)
-    table-style line-color table-border (update-style)
-    prompt-style prompt-background-color background (update-style)
-    prompt-style text-color foreground (update-style)
-    tip-of-the-day-style tip-background-color page-color (update-style)
-    listener-input-style text-color foreground (update-style)
-    listener-word-style text-color foreground (update-style) ;
-
-: light-mode ( -- ) light-theme theme set-global update-stylesheet ;
-: dark-mode ( -- ) dark-theme theme set-global update-stylesheet ;
-
-light-mode
+    \ update-stylesheet get [ execute( -- ) ] each ;
+
+: switch-theme ( theme -- )
+    theme set-global update-stylesheet
+    f default-theme? set-global ;
+
+: switch-theme-if-default ( theme -- )
+    default-theme? get [
+        switch-theme t default-theme? set-global
+    ] [ drop ] if ;
+
+: light-mode ( -- ) light-theme switch-theme ;
+
+: dark-mode ( -- ) dark-theme switch-theme ;
+
+: wombat-mode ( -- ) wombat-theme switch-theme ;
+
+: base16-mode ( -- ) base16-theme switch-theme ;
+
+{ "ui.theme.switching" "ui.tools" } "ui.theme.switching.tools" require-when