packages feed

hbro 0.7.1.0 → 0.7.1.1

raw patch · 7 files changed

+52/−33 lines, 7 files

Files

Hbro/Core.hs view
@@ -19,7 +19,7 @@  -- {{{ Imports import Hbro.Gui---import Hbro.Keys+import Hbro.Keys import Hbro.Socket import Hbro.Types --import Hbro.Util@@ -32,7 +32,7 @@  import qualified Data.Map as M ---import Graphics.UI.Gtk.Abstract.Widget+import Graphics.UI.Gtk.Abstract.Widget import Graphics.UI.Gtk.General.General hiding(initGUI) import Graphics.UI.Gtk.Misc.Adjustment import Graphics.UI.Gtk.Scrolling.ScrolledWindow@@ -45,7 +45,7 @@ import System.Console.CmdArgs import System.Directory import System.Environment.XDG.BaseDir---import System.Glib.Signals+import System.Glib.Signals import System.IO import System.Posix.Process import System.Posix.Signals@@ -94,6 +94,8 @@     mHomePage          = "https://encrypted.google.com/",     mSocketDir         = mTemporary directories,     mUIFile            = (mConfiguration directories) ++ "/ui.xml",+    mKeyEventHandler   = simpleKeyEventHandler,+    mKeyEventCallback  = \_ -> simpleKeyEventCallback (keysListToMap []),     mWebSettings       = [],     mSetup             = const (return () :: IO ()),     mCommands          = [],@@ -145,14 +147,14 @@     setup            = mSetup config     socketDir        = mSocketDir config      commands         = mCommands config-    --keyEventHandler  = mKeyEventHandler config-    --keyEventCallback = (mKeyEventCallback config) environment+    keyEventHandler  = mKeyEventHandler config+    keyEventCallback = (mKeyEventCallback config) environment   in do -- Apply custom setup     setup environment      -- Setup key handler-    --rec i <- after webView keyPressEvent $ keyEventHandler keyEventCallback i webView+    rec i <- after webView keyPressEvent $ keyEventHandler keyEventCallback i webView  -- Load homepage     case (mURI options) of
Hbro/Extra/StatusBar.hs view
@@ -13,7 +13,7 @@ import Graphics.Rendering.Pango.Layout  import Graphics.UI.Gtk.Display.Label---import Graphics.UI.Gtk.Gdk.EventM+import Graphics.UI.Gtk.Gdk.EventM import Graphics.UI.Gtk.Misc.Adjustment import Graphics.UI.Gtk.Scrolling.ScrolledWindow import Graphics.UI.Gtk.WebKit.WebView@@ -56,8 +56,8 @@       -- | -withFeedback :: Label -> WebView -> KeyEventCallback -> KeyEventCallback-withFeedback widget webView callback modifiers keys = do  +withFeedback :: Label -> KeyEventCallback -> [Modifier] -> String -> IO Bool+withFeedback widget callback modifiers keys = do   -- Trigger callback     result <- callback modifiers keys     
Hbro/Keys.hs view
@@ -1,5 +1,15 @@ {-# LANGUAGE DoRec #-}-module Hbro.Keys where+module Hbro.Keys (+-- * Key event callbacks  +    withKeys,+    simpleKeyEventCallback,+-- * Key event handlers    +    simpleKeyEventHandler,+    advancedKeyEventHandler,+-- * Util+    keyToString,+    keysListToMap  +) where  -- {{{ Imports import Hbro.Types
Hbro/Types.hs view
@@ -18,7 +18,7 @@  import System.Console.CmdArgs import System.Glib.Attributes---import System.Glib.Signals+import System.Glib.Signals import System.ZMQ  -- }}} @@ -55,8 +55,8 @@     mHomePage          :: String,                    -- ^ Startup page      mSocketDir         :: FilePath,                  -- ^ Directory where 0MQ will be created ("/tmp" for example)     mUIFile            :: FilePath,                  -- ^ Path to XML file describing UI (used by GtkBuilder)---    mKeyEventHandler   :: KeyEventCallback -> ConnectId WebView -> WebView -> EventM EKey Bool,  -- ^ Key event handler, which forwards keystrokes to mKeyEventCallback---    mKeyEventCallback  :: Environment -> KeyEventCallback, -- ^ Main key event callback, assumed to deal with each keystroke separately+    mKeyEventHandler   :: KeyEventCallback -> ConnectId WebView -> WebView -> EventM EKey Bool,  -- ^ Key event handler, which forwards keystrokes to mKeyEventCallback+    mKeyEventCallback  :: Environment -> KeyEventCallback,          -- ^ Main key event callback, assumed to deal with each keystroke separately     mWebSettings       :: [AttrOp WebSettings],      -- ^ WebSettings' attributes to use with webkit (see Webkit.WebSettings documentation)     mSetup             :: Environment -> IO (),      -- ^ Custom startup instructions     mCommands          :: CommandsList,              -- ^ Custom commands to use with IPC sockets
Hbro/Util.hs view
@@ -60,13 +60,14 @@   where     clear = labelSetMarkup label "" >> return False --(>>?) :: (a -> IO ()) -> Maybe a -> IO ()-(>>?) = maybe (return ())+-- | Similar to forM_ (from Control.Monad) but for Maybe instead of List.+forMaybeM_ :: Maybe a -> (a -> IO ()) -> IO ()+forMaybeM_ = flip $ maybe (return ()) -    -    -dmenu :: [String] -> T.Text -> IO String+-- | Open dmenu with given input and return selected entry.+dmenu :: [String]    -- ^ dmenu's commandline options+      -> T.Text      -- ^ dmenu's input+      -> IO String   -- ^ Selected entry dmenu options input = do     (in_, out, err, pid) <- runInteractiveProcess "dmenu" options Nothing Nothing     T.hPutStr in_ input
examples/hbro.hs view
@@ -50,11 +50,13 @@ -- use the defaults defined in Hbro.Types.Parameters. myConfig :: CommonDirectories -> Config myConfig directories = (defaultConfig directories) {-    mSocketDir   = mySocketDirectory,-    mUIFile      = myUIFile directories,-    mHomePage    = myHomePage,-    mWebSettings = myWebSettings,-    mSetup       = mySetup+    mSocketDir        = mySocketDirectory directories,+    mUIFile           = myUIFile directories,+    mKeyEventHandler  = myKeyEventHandler,+    mKeyEventCallback = myKeyEventCallback,+    mHomePage         = myHomePage,+    mWebSettings      = myWebSettings,+    mSetup            = mySetup }  -- Various constant parameters@@ -78,7 +80,17 @@ --myDownload directories uri name = spawn "wget" [uri, "-O", (mHome directories) ++ "/" ++ name] --myDownload directories uri name = spawn "axel" [uri, "-o", (mHome directories) ++ "/" ++ name]     +myKeyEventHandler :: KeyEventCallback -> ConnectId WebView -> WebView -> EventM EKey Bool+myKeyEventHandler = advancedKeyEventHandler +myKeyEventCallback :: Environment -> KeyEventCallback+myKeyEventCallback environment@Environment{ mGUI = gui } modifiers keys = do+    keysLabel <- builderGetObject builder castToLabel "keys"+    withFeedback keysLabel (simpleKeyEventCallback $ keysListToMap (myKeys environment)) modifiers keys+  where+    builder = mBuilder gui++ -- {{{ Keys -- Note that this example is suited for an azerty keyboard. myKeys :: Environment -> KeysList@@ -236,10 +248,6 @@         uriLabel <- getLabel "uri"         statusBarURI uriLabel webView         -    -- Manage keystrokes-        keysLabel <- getLabel "keys"-        rec i <- after webView keyPressEvent $ advancedKeyEventHandler (withFeedback keysLabel webView (simpleKeyEventCallback $ keysListToMap (myKeys environment))) i webView-     -- Session manager         --setupSession browser 
hbro.cabal view
@@ -1,10 +1,9 @@ Name:                hbro-Version:             0.7.1.0+Version:             0.7.1.1 Synopsis:            A minimal KISS compliant browser -- Description:          Homepage:            http://projects.haskell.org/hbro/ Category:            Browser,Web-Stability:           alpha  License:             OtherLicense License-file:        LICENSE@@ -19,11 +18,10 @@  Source-repository head     Type:     git-    Location: git@twyk.org/haskell-browser.git-+    Location: git@github.com:k0ral/hbro.git Source-repository head     Type:     git-    Location: git@github.com:k0ral/hbro.git+    Location: git@twyk.org/haskell-browser.git  Library     Build-depends: