packages feed

hbro 0.3 → 0.4

raw patch · 3 files changed

+63/−53 lines, 3 files

Files

hbro.cabal view
@@ -1,5 +1,5 @@ Name:                hbro-Version:             0.3+Version:             0.4 Synopsis:            A suckless minimal KISSy browser Stability:           alpha -- Description:         
src/Gui.hs view
@@ -83,8 +83,8 @@  -- | Show the prompt bar label and default text. -- As the user validates its entry, the given callback is executed.-prompt :: String -> String -> GUI -> (GUI -> IO ()) -> IO ()-prompt label defaultText gui callback = do+prompt :: String -> String -> Bool -> GUI -> (GUI -> IO ()) -> IO ()+prompt label defaultText incremental gui callback = do     -- Show prompt     showPrompt True gui @@ -95,53 +95,44 @@     widgetGrabFocus (mPrompt gui)      -- Register callback-    rec id <- on (mPrompt gui) keyPressEvent $ do-        key <- eventKeyName--        case key of-            "Return" -> do liftIO $ showPrompt False gui-                           liftIO $ callback gui-                           liftIO $ signalDisconnect id-                           liftIO $ widgetGrabFocus (mWebView gui)-            "Escape" -> do liftIO $ showPrompt False gui-                           liftIO $ signalDisconnect id-                           liftIO $ widgetGrabFocus (mWebView gui)-            _        -> return ()--        return False--    return ()----- promptFind :: Maybe String -> GUI -> IO ()--- promptFind label gui = do---     -- Show prompt---     widgetShow (mPromptLabel gui)---     widgetShow (mPrompt gui)----     -- Fill prompt---     case label of---         Just text -> labelSetText (mPromptLabel gui) text---         _         -> return ()----     widgetGrabFocus (mPrompt gui)+    case incremental of+        True -> do +            id1 <- on (mPrompt gui) editableChanged $  +                liftIO $ callback gui+            rec id2 <- on (mPrompt gui) keyPressEvent $ do+                key <- eventKeyName+                +                case key of+                    "Return" -> do+                        liftIO $ showPrompt False gui+                        liftIO $ signalDisconnect id1+                        liftIO $ signalDisconnect id2+                        liftIO $ widgetGrabFocus (mWebView gui)+                    "Escape" -> do+                        liftIO $ showPrompt False gui+                        liftIO $ signalDisconnect id1+                        liftIO $ signalDisconnect id2+                        liftIO $ widgetGrabFocus (mWebView gui)+                    _ -> return ()+                return False+            return () ---     -- Register callback---     rec id <- on (mPrompt gui) keyPressEvent $ do---         key         <- eventKeyName---         --keywords    <- entryGetText (mPrompt gui)+        _ -> do+            rec id <- on (mPrompt gui) keyPressEvent $ do+                key <- eventKeyName ---         case key of---             "Return" -> do liftIO $ widgetHide (mPromptLabel gui)---                            liftIO $ widgetHide (mPrompt gui)---                            liftIO $ webViewMarkTextMatches (mWebView gui) keywords True 0---                            liftIO $ signalDisconnect id---             "Escape" -> do liftIO $ widgetHide (mPromptLabel gui)---                            liftIO $ widgetHide (mPrompt gui)---                            liftIO $ signalDisconnect id---             _        -> return ()+                case key of+                    "Return" -> do+                        liftIO $ showPrompt False gui+                        liftIO $ callback gui+                        liftIO $ signalDisconnect id+                        liftIO $ widgetGrabFocus (mWebView gui)+                    "Escape" -> do+                        liftIO $ showPrompt False gui+                        liftIO $ signalDisconnect id+                        liftIO $ widgetGrabFocus (mWebView gui)+                    _        -> return ()+                return False ---         return False+            return () ---     return ()---     
src/Main.hs view
@@ -36,6 +36,12 @@         (([],           "o"),       promptURL False),          (([Shift],      "O"),       promptURL True), +        -- Search+        (([Shift],      "/"),       promptFind False True),+        (([Shift],      "?"),       promptFind False False),+        (([],           "n"),       findNext False True),+        (([Shift],      "N"),       findNext False False),+         -- Others         (([Control],    "i"),       showWebInspector),         (([Control],    "u"),       toggleSourceMode),@@ -123,8 +129,8 @@             _ <- on webView downloadRequested $ \download -> do                 getUrl <- downloadGetUri download                 _ <- case getUrl of-                        Just url -> forkOS $ do _ <- rawSystem "wget" [url]; return ()-                        _        -> forkOS $ do _ <- rawSystem "pwd"  []; return ()+                        Just url -> forkOS $ (rawSystem "wget" [url]) >> return ()+                        _        -> forkOS $ return ()                 return True              _ <- on webView mimeTypePolicyDecisionRequested $ \_ request mimetype policyDecision -> do@@ -181,16 +187,29 @@          promptURL :: Bool -> GUI -> IO ()                 promptURL False gui = -            prompt "Open URL" "" gui (\g -> do +            prompt "Open URL" "" False gui (\g -> do                  uri <- entryGetText (mPrompt g)                 loadURL uri g)         promptURL _ gui = do             uri <- webViewGetUri (mWebView gui)             case uri of-                Just url -> prompt "Open URL" url gui (\g -> do+                Just url -> prompt "Open URL" url False gui (\g -> do                                 u <- entryGetText (mPrompt g)                                 loadURL u g)                 _ -> return ()++        promptFind :: Bool -> Bool -> GUI -> IO ()+        promptFind caseSensitive forward gui =+            prompt "Search" "" True gui (\gui' -> do+                keyWord <- entryGetText (mPrompt gui')+                webViewSearchText (mWebView gui) keyWord caseSensitive forward True+                return ())++        findNext :: Bool -> Bool -> GUI -> IO()+        findNext caseSensitive forward gui = do+            keyWord <- entryGetText (mPrompt gui)+            webViewSearchText (mWebView gui) keyWord caseSensitive forward True+            return ()          printPage :: GUI -> IO ()         printPage gui = do