summaryrefslogtreecommitdiff
path: root/app/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'app/Main.hs')
-rw-r--r--app/Main.hs19
1 files changed, 16 insertions, 3 deletions
diff --git a/app/Main.hs b/app/Main.hs
index 609b53d..25ad7d4 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -4,13 +4,23 @@
{-# LANGUAGE ImplicitParams #-}
import Control.Monad (void)
+import Control.Exception (bracket_)
+import Data.Maybe (fromJust)
import Data.GI.Base
+
import qualified GI.Gtk as Gtk
+import qualified GI.Gdk as Gdk
import qualified GI.Gio as Gio
import qualified GI.Foobar as FB
activate :: Gtk.Application -> IO ()
activate app = do
+ provider <- new Gtk.CssProvider []
+ provider.loadFromResource "/foobar/styles/default.css"
+ disp <- Gdk.displayGetDefault
+ Gtk.styleContextAddProviderForDisplay (fromJust disp)
+ provider
+ (fromIntegral Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
button <- new Gtk.Button [ #label := "Hello, world!" ]
window <- new Gtk.ApplicationWindow [ #application := app
, #title := "Test"
@@ -24,6 +34,9 @@ activate app = do
main :: IO ()
main = do
- app <- new Gtk.Application [ #applicationId := "com.github.hannesschulze.foobar-hs"
- , On #activate (activate ?self) ]
- void $ app.run Nothing
+ bracket_
+ (do FB.stylesRegisterResource; FB.iconsRegisterResource)
+ (do FB.stylesUnregisterResource; FB.iconsUnregisterResource) $
+ do app <- new Gtk.Application [ #applicationId := "com.github.hannesschulze.foobar-hs"
+ , On #activate (activate ?self) ]
+ void $ app.run Nothing