summaryrefslogtreecommitdiff
path: root/app/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'app/Main.hs')
-rw-r--r--app/Main.hs29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/Main.hs b/app/Main.hs
new file mode 100644
index 0000000..609b53d
--- /dev/null
+++ b/app/Main.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE OverloadedLabels #-}
+{-# LANGUAGE OverloadedRecordDot #-}
+{-# LANGUAGE ImplicitParams #-}
+
+import Control.Monad (void)
+import Data.GI.Base
+import qualified GI.Gtk as Gtk
+import qualified GI.Gio as Gio
+import qualified GI.Foobar as FB
+
+activate :: Gtk.Application -> IO ()
+activate app = do
+ button <- new Gtk.Button [ #label := "Hello, world!" ]
+ window <- new Gtk.ApplicationWindow [ #application := app
+ , #title := "Test"
+ , #child := button ]
+ _ <- FB.serverProxyNewForBusSync Gio.BusTypeSession
+ []
+ "com.github.hannesschulze.foobar"
+ "/com/github/hannesschulze/foobar/server"
+ (Nothing :: Maybe Gio.Cancellable)
+ window.show
+
+main :: IO ()
+main = do
+ app <- new Gtk.Application [ #applicationId := "com.github.hannesschulze.foobar-hs"
+ , On #activate (activate ?self) ]
+ void $ app.run Nothing