svitak/app/Gui.hs

31 lines
740 B
Haskell

{-# LANGUAGE OverloadedStrings, OverloadedLabels #-}
module Gui (runWindow) where
import qualified GI.Gtk as Gtk
import qualified GI.Gio as Gio
import qualified GI.WebKit as WebKit
import qualified Data.Text as T
runWindow :: String -> IO ()
runWindow htmlContent = do
app <- Gtk.applicationNew (Just "com.svitak.reader") []
_ <- Gtk.on app #activate $ do
window <- Gtk.applicationWindowNew app
Gtk.windowSetTitle window (Just "Svitak Reader (GTK 4)")
Gtk.windowSetDefaultSize window 800 600
webView <- WebKit.webViewNew
WebKit.webViewLoadHtml webView (T.pack htmlContent) (Just "file:///")
Gtk.windowSetChild window (Just webView)
#present window
_ <- Gio.applicationRun app Nothing
pure ()