]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/theme/switching/switching.factor
ui.theme.switching: split out ui.tools themeing
[factor.git] / basis / ui / theme / switching / switching.factor
1 ! Copyright (C) 2016 Nicolas PĂ©net.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: hashtables kernel namespaces sequences ui.theme
4 vocabs.loader ;
5 IN: ui.theme.switching
6
7 SYMBOL: default-theme?
8 t default-theme? set-global
9
10 : update-style ( style color elt -- )
11     '[ _ _ rot ?set-at ] change-global ;
12
13 : update-stylesheet ( -- )
14     \ update-stylesheet get [ execute( -- ) ] each ;
15
16 : switch-theme ( theme -- )
17     theme set-global update-stylesheet
18     f default-theme? set-global ;
19
20 : switch-theme-if-default ( theme -- )
21     default-theme? get [
22         switch-theme t default-theme? set-global
23     ] [ drop ] if ;
24
25 : light-mode ( -- ) light-theme switch-theme ;
26
27 : dark-mode ( -- ) dark-theme switch-theme ;
28
29 { "ui.theme.switching" "ui.tools" } "ui.theme.switching.tools" require-when