hbro 0.1.1 → 0.2
raw patch · 3 files changed
+58/−17 lines, 3 files
Files
- hbro.cabal +1/−1
- src/Browser.hs +42/−4
- src/Gui.hs +15/−12
hbro.cabal view
@@ -3,7 +3,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.1.1+Version: 0.2 Synopsis: A suckless minimal KISSy browser stability: alpha
src/Browser.hs view
@@ -79,6 +79,43 @@ Nothing -> return () return (mWebView gui) + -- Web inspector+ inspector <- webViewGetInspector (mWebView gui)+ _ <- on inspector inspectWebView $ \_ -> do+ webView <- webViewNew+ containerAdd (mInspectorWindow gui) webView+ return webView+ + _ <- on inspector showWindow $ do+ widgetShowAll (mInspectorWindow gui)+ return True++ -- TODO: when does this signal happen ?!+ --_ <- on inspector finished $ return ()++ _ <- on inspector attachWindow $ do+ getWebView <- webInspectorGetWebView inspector+ case getWebView of+ Just webView -> do widgetHide (mInspectorWindow gui)+ containerRemove (mInspectorWindow gui) webView+ widgetSetSizeRequest webView (-1) 250+ boxPackEnd (mWindowBox gui) webView PackNatural 0+ widgetShow webView+ return True+ _ -> return False++ _ <- on inspector detachWindow $ do+ getWebView <- webInspectorGetWebView inspector+ case getWebView of+ Just webView -> do containerRemove (mWindowBox gui) webView+ containerAdd (mInspectorWindow gui) webView+ widgetShowAll (mInspectorWindow gui)+ return True+ _ -> return False+ + widgetShowAll (mInspectorWindow gui)+ return True+ -- Key bindings _ <- after (mWebView gui) keyPressEvent $ do keyVal <- eventKeyVal@@ -109,8 +146,9 @@ showWebInspector :: GUI -> IO () showWebInspector gui = do inspector <- webViewGetInspector (mWebView gui)- webInspectorShow inspector+ webInspectorInspectCoordinates inspector 0 0 + -- | Load given URL in the browser. loadURL :: String -> GUI -> IO () loadURL url gui =@@ -133,9 +171,9 @@ browser :: Configuration -> IO () browser = Dyre.wrapMain Dyre.defaultParams {- Dyre.projectName = "browser",+ Dyre.projectName = "hbro", Dyre.showError = showError,- Dyre.realMain = realMain,- Dyre.ghcOpts = ["-i /path/to/src", "-O2"]+ Dyre.realMain = realMain--,+ --Dyre.ghcOpts = ["-i /path/to/src", "-O2"] } -- }}}
src/Gui.hs view
@@ -9,13 +9,15 @@ -- }}} data GUI = GUI {- mWindow :: Window, -- ^ Main window- mWebView :: WebView, -- ^ Browser's webview- mPromptLabel :: Label, -- ^ Description of current prompt- mPrompt :: Entry, -- ^ Prompt entry- mStatusBox :: HBox, -- ^ Status bar's layout- mProgressLabel :: Label,- mUrlLabel :: Label+ mWindow :: Window, -- ^ Main window+ mInspectorWindow :: Window, -- ^ WebInspector window+ mWebView :: WebView, -- ^ Browser's webview+ mPromptLabel :: Label, -- ^ Description of current prompt+ mPrompt :: Entry, -- ^ Prompt entry+ mWindowBox :: VBox, -- ^ Window's layout+ mStatusBox :: HBox, -- ^ Status bar's layout+ mProgressLabel :: Label,+ mUrlLabel :: Label } -- {{{ Load glade GUI@@ -32,12 +34,14 @@ -- promptLabel <- xmlGetWidget xml castToLabel "promptLabel" -- prompt <- xmlGetWidget xml castToEntry "prompt" - window <- windowNew+ window <- windowNew+ inspectorWindow <- windowNew+ windowSetDefaultSize window 1024 768 windowSetPosition window WinPosCenter --windowSetOpacity window 0.8 --windowSetIconFromFile window "/path/to/icon"- set window [ windowTitle := "Browser" ]+ set window [ windowTitle := "hbro" ] webView <- webViewNew winBox <- vBoxNew False 0@@ -64,10 +68,9 @@ mainQuit return True -- webFrame <- webViewGetMainFrame webView+ --webFrame <- webViewGetMainFrame webView - return $ GUI window webView promptLabel promptEntry statusBox progressLabel urlLabel+ return $ GUI window inspectorWindow webView promptLabel promptEntry winBox statusBox progressLabel urlLabel -- }}} -- | Show or hide the prompt bar (label + entry).