module Hbro.Types where
import Graphics.UI.Gtk.Builder
import Graphics.UI.Gtk.Display.Label
import Graphics.UI.Gtk.Entry.Entry
import Graphics.UI.Gtk.Gdk.EventM
import Graphics.UI.Gtk.Scrolling.ScrolledWindow
import Graphics.UI.Gtk.WebKit.WebSettings
import Graphics.UI.Gtk.WebKit.WebView
import Graphics.UI.Gtk.Windows.Window
import Prelude
import System.Console.CmdArgs
data Browser = Browser {
mOptions :: CliOptions,
mConfiguration :: Configuration,
mGUI :: GUI
}
data CliOptions = CliOptions {
mURI :: Maybe String
} deriving (Data, Typeable, Show, Eq)
data Configuration = Configuration {
mHomePage :: String,
mSocketDir :: String,
mUIFile :: String,
mKeyBindings :: KeyBindingsList,
mWebSettings :: IO WebSettings,
mAtStartUp :: Browser -> IO (),
mError :: Maybe String
}
data GUI = GUI {
mWindow :: Window,
mInspectorWindow :: Window,
mScrollWindow :: ScrolledWindow,
mWebView :: WebView,
mPromptLabel :: Label,
mPromptEntry :: Entry,
mBuilder :: Builder
}
type KeyBindingsList = [(([Modifier], String), (Browser -> IO ()))]