summaryrefslogtreecommitdiff
path: root/app/Main.hs
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-06-20 17:11:35 +0200
committerHannes Schulze <haschu0103@outlook.de>2025-06-20 17:11:35 +0200
commit75b5dde3a4d62acfc4f354b6dc237062cb83b89b (patch)
treea39283ff47a1a33a1a713e03a1e60b8efe80e03a /app/Main.hs
parent519956797d905c0925b8dd418ceb17c7495ad30a (diff)
add resources
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