Add WebKit.hs

This commit is contained in:
千住柱間 2025-02-17 00:37:07 +00:00
commit a8430bb3b4

48
WebKit.hs Normal file
View file

@ -0,0 +1,48 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE ImplicitParams #-}
import qualified GI.Gtk as Gtk
import qualified GI.WebKit.Objects.WebView as WK
import Data.GI.Base
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import System.Environment (getArgs)
import System.FilePath ((</>))
import Control.Monad
main :: IO ()
main = do
-- Read HTML content from /tmp/index.html
let htmlFilePath = "/tmp/index.html"
-- TIO ensures proper utf8 support
content <- TIO.readFile htmlFilePath
-- Initialize application
app <- new Gtk.Application
[ #applicationId := "wazajisho.browser"
, On #activate $ do
-- Create main window
window <- new Gtk.Window
[ #application := ?self -- Implicit param
, #title := "Wazajisho"
, #defaultWidth := 1024
, #defaultHeight := 768
]
-- Create WebView with explicit GTK4 compatibility
webview <- WK.webViewNew
-- Load HTML content
WK.webViewLoadHtml webview content (Nothing :: Maybe T.Text)
-- Assemble UI
#setChild window (Just webview)
#show window
]
-- Start application
args <- getArgs
void $ #run app (Just args)