-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | The Haskell/Gtk+ Integrated Live Environment -- -- Manatee is Haskell integrated environment written in Haskell. -- -- The goal of the Manatee project is to provide a fast, safe and -- flexible integrated environment for haskell hacking. -- -- You can consider it is new environment mix Gnome and Emacs. Like Gnome -- to provide friendly graphics interface and work efficient like Emacs. -- -- Manatee use multi-processes framework, any sub-module running in -- separate process to protected core won't crash. So it minimize your -- losses when some unexpected exception throw in extension. -- -- You can find screenshots at : http://goo.gl/MkVw -- -- Below is build step for Manatee: -- -- 1) Install C library: In Debian use below command: -- --
--   sudo aptitude install libgtksourceview2.0-dev libgconf2-dev libwebkit-dev libcurl4-openssl-dev libgtkimageview-dev libpoppler-glib-dev poppler-data libtagc0-dev -y
--   
-- -- 2) Install Gtk2hs: -- --
--   cabal install gtk2hs-buildtools gtk
--   
-- -- And make sure `HOME/.cabal/bin/` in your PATH. -- -- 3) Install Manatee: -- --
--   cabal install manatee-core manatee-anything manatee-browser manatee-editor manatee-filemanager manatee-imageviewer manatee-ircclient manatee-mplayer manatee-pdfviewer manatee-processmanager manatee-reader manatee
--   
-- -- That's all, then type command manatee to play it! :) -- -- Now Manatee looks can't work in XMonad, i'm working on it. It's no -- problem if you use Gnome. @package manatee @version 0.0.2 -- | FocusNotifier use Cairo draw highlight frame when widget is focus. module Manatee.UI.FocusNotifier data FocusNotifier FocusNotifier :: FocusNotifierId -> Widget -> Bool -> FocusNotifier focusNotifierId :: FocusNotifier -> FocusNotifierId focusNotifierBody :: FocusNotifier -> Widget focusNotifierFocus :: FocusNotifier -> Bool type FocusNotifierId = Int data FocusNotifierList FocusNotifierList :: (Set FocusNotifier) -> (Maybe FocusNotifierId) -> FocusNotifierList -- | The frame size for notifier. focusNotifierSize :: Int -- | The color of notifier. focusNotifierColor :: Color -- | The alpha value of color. focusNotifierAlpha :: Double -- | Create new FocusNotifier. focusNotifierNew :: (WidgetClass widget) => FocusNotifierId -> widget -> TVar FocusNotifierList -> IO FocusNotifier focusNotifierIsFocus :: FocusNotifierId -> TVar FocusNotifierList -> IO Bool -- | Hide focus notifier. focusNotifierHide :: TVar FocusNotifierList -> IO () -- | Show focus notifier. focusNotifierShow :: FocusNotifierId -> TVar FocusNotifierList -> IO () -- | Draw highlight frame around widget. focusNotifierDraw :: Double -> Double -> Double -> Double -> Double -> Render () -- | Get notifier with id. focusNotifierGetWithId :: FocusNotifierId -> TVar FocusNotifierList -> IO (Maybe FocusNotifier) -- | Erase highlight frame around widget. focusNotifierErase :: (WidgetClass self) => self -> IO () instance Ord FocusNotifier instance Eq FocusNotifier module Manatee.UI.Frame type Frame = Window -- | Create new frame. frameNew :: IO Frame -- | Toggle fullscreen. toggleFullscreen :: Frame -> IO () module Manatee.Types -- | Environment. data Environment Environment :: Frame -> Client -> TVar WindowList -> TVar WindowNodeList -> TVar Tabbar -> TVar BufferList -> TVar SignalBoxList -> TVar PageId -> TVar SignalBoxId -> TVar FocusNotifierList -> VBox -> Interactivebar -> PopupWindow -> TVar ProcessID -> TVar AnythingKeyPressId -> TVar Int -> TVar (Set Tooltip) -> MVar (Either Text [String]) -> TVar [(String, String)] -> TVar [String] -> MVar (Either Text [String]) -> TVar [(String, String)] -> TVar [String] -> TVar TabCloseHistory -> TVar [BufferHistory] -> Environment envFrame :: Environment -> Frame envDaemonClient :: Environment -> Client envWindowList :: Environment -> TVar WindowList envWindowNodeList :: Environment -> TVar WindowNodeList envTabbar :: Environment -> TVar Tabbar envBufferList :: Environment -> TVar BufferList envSignalBoxList :: Environment -> TVar SignalBoxList envPageIdCounter :: Environment -> TVar PageId envSignalBoxIdCounter :: Environment -> TVar SignalBoxId envFocusNotifierList :: Environment -> TVar FocusNotifierList envInitBox :: Environment -> VBox envInitInteractivebar :: Environment -> Interactivebar envAnythingPopupWindow :: Environment -> PopupWindow envAnythingProcessId :: Environment -> TVar ProcessID envAnythingKeyPressId :: Environment -> TVar AnythingKeyPressId envTooltipCounter :: Environment -> TVar Int envTooltipSet :: Environment -> TVar (Set Tooltip) envLocalInteractiveLock :: Environment -> MVar (Either Text [String]) envLocalInteractiveTrack :: Environment -> TVar [(String, String)] envLocalInteractiveReturn :: Environment -> TVar [String] envGlobalInteractiveLock :: Environment -> MVar (Either Text [String]) envGlobalInteractiveTrack :: Environment -> TVar [(String, String)] envGlobalInteractiveReturn :: Environment -> TVar [String] envTabCloseHistory :: Environment -> TVar TabCloseHistory envBufferHistory :: Environment -> TVar [BufferHistory] -- | Tab close history for undo close action. data TabCloseHistory TabCloseHistory :: [(PageModeName, PageType, PagePath)] -> TabCloseHistory -- | Keymap | The design of Keymap is do a friendly, easy keymap -- interface. type Keymap = Map Text Action -- | Action just wrap to taken polymorphism function. It won't store -- polymorphism function. You can use Action wrap any polymorphism -- functions that input argument is instance of ActionInputArgs and -- output argument is instance of ActionOutputArgs. data Action Action :: (a -> IO b) -> Action actionFun :: Action -> a -> IO b -- | ActionInputArgs is class to implement polymorphism keymap function. -- -- Example, you have functions: -- -- foo :: (Arg1, (Arg2, Arg3)) -> IO () bar :: (Arg1, (Arg2, (Arg3, -- Arg4))) -> IO () -- -- you can write your keymap with below: -- -- keymap :: Keymap keymap = M.fromList [M-1 ==> foo -- ,M-2 ==> bar] -- -- See? It's so flexible. class ActionInputArgs a envGet :: (ActionInputArgs a) => Environment -> IO a -- | ActionOutputArgs is class to implement polymorphism result. This class -- is very useful when you want transform pure function to Keymap. -- You can return any result that instance of ActionOutputArgs, -- then system will write those value back to Environment. If you -- want update those value (such as TVar) yourself, just return `()`. class ActionOutputArgs b envPut :: (ActionOutputArgs b) => Environment -> b -> IO () -- | SignalBox build when create socket. Pick info when receive dbus -- signal. Delete after create new page. data SignalBox SignalBox :: SignalBoxId -> UIFrame -> WindowId -> SignalBox signalBoxId :: SignalBox -> SignalBoxId signalBoxUIFrame :: SignalBox -> UIFrame signalBoxWindowId :: SignalBox -> WindowId type SignalBoxList = Set SignalBox -- | WindowNode containe window node. data WindowNode WindowNode :: WindowNodeId -> Paned -> TVar (Maybe WindowNodeId) -> TVar (Maybe WindowNodeId) -> TVar (Maybe WindowNodeId) -> TVar WindowNodeType -> WindowNodeDirection -> WindowNode windowNodeId :: WindowNode -> WindowNodeId windowNodePaned :: WindowNode -> Paned windowNodeParentId :: WindowNode -> TVar (Maybe WindowNodeId) windowNodeChildLeftId :: WindowNode -> TVar (Maybe WindowNodeId) windowNodeChildRightId :: WindowNode -> TVar (Maybe WindowNodeId) windowNodeType :: WindowNode -> TVar WindowNodeType windowNodeDirection :: WindowNode -> WindowNodeDirection type WindowNodeId = Int data WindowNodeType TNodeLeft :: WindowNodeType TNodeRight :: WindowNodeType TNodeRoot :: WindowNodeType data WindowNodeDirection DVertical :: WindowNodeDirection DHortizontal :: WindowNodeDirection data ZoomDirection ZUp :: ZoomDirection ZDown :: ZoomDirection ZLeft :: ZoomDirection ZRight :: ZoomDirection type WindowNodeList = SetList WindowNode -- | Window contain GtkNotebook for contain tabs. data Window Window :: WindowNode -> Notebook -> Window windowNode :: Window -> WindowNode windowNotebook :: Window -> Notebook type WindowList = ListZipper Window data WindowListSelectDirection VLeft :: WindowListSelectDirection VRight :: WindowListSelectDirection type WindowId = WindowNodeId type WindowListTuple = (WindowList, WindowNodeList) type WindowNodeArgs = (WindowNodeList, Container) type WindowArgs = (WindowList, WindowNodeList, Container) type WindowNodeAttr = (Maybe WindowNodeId, Maybe WindowNodeId, Maybe WindowNodeId, Maybe WindowNodeId, WindowNodeType, WindowNodeDirection) -- | Tabbar Contain all tab in windows. For update tab information in -- windows. PageId for synchronization with different window. Tabbar -- corresponding Notebook status. newtype Tabbar Tabbar :: (Map (WindowId, PageModeName) (Seq Tab)) -> Tabbar data Tab Tab :: ProcessID -> PageId -> PageSocketId -> PagePlugId -> UIFrame -> Tab tabProcessId :: Tab -> ProcessID tabPageId :: Tab -> PageId tabSocketId :: Tab -> PageSocketId tabPlugId :: Tab -> PagePlugId tabUIFrame :: Tab -> UIFrame -- | UIFrame. data UIFrame UIFrame :: VBox -> Interactivebar -> Frame -> Outputbar -> Statusbar -> NotebookTab -> UIFrame uiFrameBox :: UIFrame -> VBox uiFrameInteractivebar :: UIFrame -> Interactivebar uiFrameFrame :: UIFrame -> Frame uiFrameOutputbar :: UIFrame -> Outputbar uiFrameStatusbar :: UIFrame -> Statusbar uiFrameNotebookTab :: UIFrame -> NotebookTab -- | Focus status. data FocusStatus FocusInitInteractivebar :: FocusStatus FocusLocalInteractivebar :: FocusStatus FocusWindow :: FocusStatus -- | Anything startup function. data AnythingStartupFun AnythingStartupFun :: (IO ()) -> AnythingStartupFun instance Eq FocusStatus instance Show FocusStatus instance Read FocusStatus instance Ord FocusStatus instance Show Tab instance Show Tabbar instance Eq WindowListSelectDirection instance Show WindowListSelectDirection instance Read WindowListSelectDirection instance Eq ZoomDirection instance Show ZoomDirection instance Read ZoomDirection instance Eq WindowNodeDirection instance Show WindowNodeDirection instance Read WindowNodeDirection instance Eq WindowNodeType instance Show WindowNodeType instance Read WindowNodeType instance Show TabCloseHistory instance Show UIFrame instance Show Window instance Ord Window instance Eq Window instance Ord WindowNode instance Eq WindowNode instance Ord SignalBox instance Eq SignalBox instance (ActionOutputArgs a, ActionOutputArgs b) => ActionOutputArgs (a, b) instance ActionOutputArgs () instance (ActionInputArgs a, ActionInputArgs b) => ActionInputArgs (a, b) instance ActionInputArgs () module Manatee.UI.UIFrame -- | Stick ui frame to notebook. uiFrameStick :: (NotebookClass notebook) => notebook -> Maybe UIFrame -> IO UIFrame -- | Create UIFrame. uiFrameNew :: IO UIFrame -- | Clone UIFrame. uiFrameClone :: UIFrame -> IO UIFrame -- | Show interactivebar. uiFrameShowInteractivebar :: UIFrame -> IO () -- | Hide interactivebar. uiFrameHideInteractivebar :: UIFrame -> IO () -- | Is focus on interactivebar. uiFrameIsFocusInteractivebar :: UIFrame -> IO Bool -- | Show outputbar. uiFrameShowOutputbar :: UIFrame -> String -> IO () -- | Update statusbar. uiFrameUpdateStatusbar :: UIFrame -> String -> String -> IO () -- | Update statusbar. uiFrameUpdateProgress :: UIFrame -> Double -> IO () module Manatee.UI.WindowNode -- | The default zoom size. zoomDefaultSize :: Int -- | Create new window node. windowNodeNew :: Maybe WindowNode -> WindowNodeType -> WindowNodeDirection -> WindowNodeArgs -> IO (WindowNode, WindowNodeList) -- | Internal function for create window node. windowNodeNewInternal :: WindowNodeAttr -> WindowNodeArgs -> IO (WindowNode, WindowNodeList) -- | Remove window node. windowNodeRemove :: WindowNode -> WindowNodeArgs -> Bool -> IO WindowNodeList -- | Remove others window nodes except current window node. windowNodeRemoveOthers :: WindowNode -> WindowNodeArgs -> IO WindowNodeList -- | Get parent node of current node. windowNodeGetParentNode :: WindowNode -> WindowNodeList -> IO (Maybe WindowNode) -- | Get split container for child window node. windowNodeGetSplitContainer :: WindowNode -> WindowNodeDirection -> WindowNodeArgs -> IO (WindowNode, WindowNodeList) -- | Change window node to root node. windowNodeChangeToRoot :: WindowNode -> WindowNodeArgs -> IO () -- | Add window node paned to parent container. windowNodeConnectToParent :: WindowNode -> WindowNodeArgs -> IO () -- | Add window node to root container. windowNodeConnectToRootContainer :: (ContainerClass container) => WindowNode -> container -> IO () -- | Add window node to parent node. windowNodeConnectToParentNodeLeft :: WindowNode -> WindowNodeList -> IO () -- | Add window node to parent node right. windowNodeConnectToParentNodeRight :: WindowNode -> WindowNodeList -> IO () -- | Get window node paned with indicate split direction. windowNodePanedNew :: WindowNodeDirection -> IO Paned -- | Remove node paned from parent container. windowNodePanedRemove :: WindowNode -> WindowNodeArgs -> IO () -- | Is haven't any child node. windowNodeIsHaveChildNode :: WindowNode -> IO Bool -- | Remove from parent node. windowNodeRemoveFromParentNode :: WindowNode -> WindowNode -> IO () -- | Get type. windowNodeGetType :: WindowNode -> IO WindowNodeType -- | Get parent id. windowNodeGetParentId :: WindowNode -> IO (Maybe WindowNodeId) -- | Get child left id. windowNodeGetChildLeftId :: WindowNode -> IO (Maybe WindowNodeId) -- | Get child right id windowNodeGetChildRightId :: WindowNode -> IO (Maybe WindowNodeId) -- | Request node size. If vertical split times is vn, the request -- height is `height / (2 ^ vn)`. If horizontal split times is -- hn, the request width is `width / (2 ^ hn)`. windowNodeSetSizeRequest :: WindowNode -> WindowNodeList -> (Int, Int) -> IO () -- | Get split times of current window node. windowNodeGetSplitTimes :: WindowNode -> WindowNodeList -> (Int, Int) -> IO (Int, Int) -- | Show window node. windowNodeShow :: WindowNode -> IO () -- | New window node. windowNodeListNew :: WindowNodeList -- | Get window node with given id. windowNodeListGetNode :: WindowNodeList -> WindowNodeId -> Maybe WindowNode -- | Show window node list. windowNodeListShow :: WindowNodeList -> IO () -- | Get zoom direction of window node. windowNodeGetZoomDirection :: WindowNode -> WindowNode -> IO ZoomDirection -- | Get match zoom direction. windowNodeGetMatchZoomDirectionSize :: ZoomDirection -> Bool -> (ZoomDirection, Int) -- | Zoom window. windowNodeZoom :: WindowNodeList -> WindowNode -> ZoomDirection -> Bool -> IO () module Manatee.UI.Window -- | Create new window. windowNew :: WindowNodeType -> WindowNodeDirection -> Maybe WindowNode -> Container -> TVar FocusNotifierList -> WindowListTuple -> IO (Window, WindowListTuple) -- | New root window. windowRootNew :: WindowArgs -> TVar FocusNotifierList -> IO (Window, WindowListTuple) -- | Init window. windowInit :: WindowArgs -> TVar FocusNotifierList -> IO (WindowList, WindowNodeList) -- | Split window with indicate direction. windowSplitInternal :: WindowNodeDirection -> Window -> TVar WindowList -> TVar WindowNodeList -> TVar FocusNotifierList -> Container -> IO (Window, Window) -- | Remove window. windowRemoveInternal :: (Window, (Container, (WindowList, WindowNodeList))) -> IO WindowListTuple -- | Remove others windows except current window. windowRemoveOthers :: Window -> WindowArgs -> IO WindowListTuple -- | Get top window container. windowGetContainer :: Window -> Paned -- | Get window id. windowGetId :: Window -> WindowId -- | Create window list. windowListNew :: WindowList -- | Add window to window list. windowListAddWindow :: WindowList -> Window -> WindowNodeType -> WindowList -- | Remove others window except current window from window list. windowListRemoveOthersWindow :: WindowList -> WindowList -- | Get current focus window. windowListGetFocusWindow :: TVar WindowList -> TVar WindowNodeList -> TVar FocusNotifierList -> Container -> IO (Maybe Window) -- | Ge window with special id. windowListGetWindow :: WindowId -> WindowList -> Maybe Window -- | Apply window with special id. windowListApplyWithId :: WindowList -> WindowId -> (Window -> IO ()) -> IO () -- | Get list. windowListGetList :: WindowList -> [Window] -- | Show window list. windowListShow :: WindowList -> IO () -- | Get window list size. windowListGetSize :: WindowList -> Int -- | Apply window. windowListApplyWindow :: (Window -> IO ()) -> WindowList -> IO () -- | Select window with given direction. windowListSelect :: WindowListSelectDirection -> Bool -> WindowList -> WindowList -- | Next window in window list. windowListNext :: WindowList -> WindowList -- | Previous window in window list. windowListPrev :: WindowList -> WindowList -- | Next window circular in window list. windowListNextCircular :: WindowList -> WindowList -- | Previous window circular in window list. windowListPrevCircular :: WindowList -> WindowList -- | Focus window. windowListFocus :: WindowList -> Window -> WindowList -- | Focus window id. windowListFocusId :: WindowList -> WindowId -> WindowList -- | Remove current window from window list. windowListRemoveCurrentWindow :: WindowList -> WindowList -- | Remove window from window list. windowListRemoveWindow :: Window -> WindowList -> WindowList module Manatee.Environment -- | Build environment arguments. This is strut for manage miscellaneous -- state in Daemon process. mkEnvironment :: IO Environment module Manatee.Action.Tabbar -- | Swap tab. tabbarSwapTab :: PageModeName -> Int -> Int -> Tabbar -> Tabbar -- | Remove tab. tabbarRemoveTab :: PageModeName -> Int -> Tabbar -> Tabbar -- | Add new tab information in tabbar. tabbarAddTab :: WindowId -> PageModeName -> Tab -> Tabbar -> Tabbar -- | Remove tab with window id. tabbarRemoveTabs :: WindowId -> Tabbar -> Tabbar -- | Get tab that match plug id. tabbarGetTab :: PagePlugId -> Tabbar -> Maybe Tab -- | Get page mode with special tab. tabbarGetTabInfo :: Tabbar -> WindowId -> Maybe (PageModeName, Seq Tab) -- | Get page mode name with window id. tabbarGetPageModeName :: Tabbar -> WindowId -> Maybe PageModeName -- | Get tabs. tabbarGetTabSeq :: Tabbar -> WindowId -> Maybe (Seq Tab) -- | Get tab list of match window. tabbarGetTabList :: WindowId -> Tabbar -> [Tab] module Manatee.Action.BufferList -- | Replace path. bufferListReplacePath :: PageModeName -> PageId -> String -> BufferList -> BufferList -- | Replace tab name. bufferListReplaceName :: PageModeName -> PageId -> String -> BufferList -> BufferList -- | Strip tab name with special length. bufferListStripName :: PageModeName -> PageId -> String -> BufferList -> BufferList -- | Unique buffer name. bufferListUniqueName :: PageModeName -> BufferList -> BufferList -- | Remove buffer. bufferListRemoveBuffer :: PageModeName -> Int -> BufferList -> BufferList -- | Swap buffer. bufferListSwapBuffer :: PageModeName -> Int -> Int -> BufferList -> BufferList -- | Add buffer. bufferListAddBuffer :: (PageModeName, ProcessID, PageId, PageType, String) -> BufferList -> BufferList -- | Is buffer exist. bufferListGetBufferIndex :: BufferList -> PageModeName -> FilePath -> Maybe Int -- | Is buffer exist. bufferListGetBufferIndexWithId :: BufferList -> PageModeName -> PageId -> Maybe Int -- | Find match buffer. bufferListGetBufferInfo :: PageModeName -> PageId -> BufferList -> Maybe (Buffer, (Int, Seq Buffer)) -- | Get buffer with given mode name and page id. bufferListGetBuffer :: BufferList -> PageModeName -> PageId -> Maybe Buffer -- | Format unique name. formatBufferName :: FilePath -> FilePath -> FilePath -- | Return Ture if have any buffer exist, Otherwise return -- False bufferListHaveBufferExist :: BufferList -> Bool module Manatee.Action.Basic type PageActionInputArgs = (Window, (TVar SignalBoxList, (TVar PageId, TVar SignalBoxId))) -- | Run action. runAction :: Environment -> Action -> IO () (==>) :: (ActionInputArgs a, ActionOutputArgs b) => Text -> (a -> IO b) -> (Text, Action) -- | Build socket frame. socketFrameNew :: IO Frame -- | Create new signal box. signalBoxNew :: UIFrame -> WindowId -> TVar SignalBoxId -> TVar SignalBoxList -> IO SignalBox -- | Clone tabs. cloneTabs :: Window -> Client -> TVar Tabbar -> TVar SignalBoxList -> TVar SignalBoxId -> [(PageModeName, ProcessID, PageId)] -> IO () -- | Clone tab. cloneTab :: Window -> Client -> TVar Tabbar -> TVar SignalBoxList -> TVar SignalBoxId -> (PageModeName, ProcessID, PageId) -> IO () -- | Synchronization tab name. syncTabName :: Environment -> WindowId -> IO () -- | Get current interactivebar. getCurrentInteractivebar :: Environment -> IO (Maybe Interactivebar) -- | Get current uiFrame. getCurrentUIFrame :: Environment -> IO (Maybe UIFrame) -- | Get page mode name of specify window. getWindowPageModeName :: Environment -> Window -> IO (Maybe PageModeName) -- | Get current tab. getCurrentTab :: Environment -> IO (Maybe Tab) -- | Get next window. getNextWindow :: WindowList -> Maybe Window -- | Action in next window. withNextWindow :: Environment -> (Window -> IO ()) -> IO () -- | Display message. message :: Environment -> String -> IO () -- | Focus current tab.. focusCurrentTab :: Environment -> IO () -- | Init anything view. anythingInitStartup :: Frame -> VBox -> Interactivebar -> IO () -- | Remove tabs match window id. removeTabs :: Tabbar -> Client -> Window -> IO Tabbar -- | Exit all render processes. exitAllRenderProcess :: Environment -> IO () -- | Switch focus. focusSwitch :: Environment -> IO () -- | Focus tab. focusTab :: Environment -> IO () -- | Is focus on init interactivebar. isFocusOnInitInteractivebar :: VBox -> IO Bool -- | Get focus status. getFocusStatus :: Environment -> IO FocusStatus -- | Highlight window. highlightCurrentWindow :: (Window, TVar FocusNotifierList) -> IO () -- | Focus input. focusInteractivebar :: (Environment, PopupWindow) -> IO () -- | Startup anything. startupAnything :: SpawnProcessArgs -> IO () -- | Activate popup window. popupWindowActivate :: PopupWindow -> Interactivebar -> IO () -- | Exit input. exitInteractivebar :: Environment -> IO () -- | Exit popup window and fill envLocalInteractiveLock. popupWindowExit_ :: Environment -> IO () -- | Synchronization new tab in window. tabbarSyncNewTab :: Environment -> WindowId -> DaemonSignalArgs -> IO () -- | Get top-level container. getToplevelContainer :: Environment -> Container -- | Get focus window. getFocusWindow :: Environment -> IO Window instance ActionOutputArgs BufferList instance ActionOutputArgs Tabbar instance ActionOutputArgs WindowNodeList instance ActionOutputArgs WindowList instance ActionInputArgs PopupWindow instance ActionInputArgs ProcessID instance ActionInputArgs (TVar TabCloseHistory) instance ActionInputArgs (TVar BufferList) instance ActionInputArgs (TVar Tabbar) instance ActionInputArgs (TVar ProcessID) instance ActionInputArgs (TVar SignalBoxId) instance ActionInputArgs (TVar SignalBoxList) instance ActionInputArgs (TVar FocusNotifierList) instance ActionInputArgs (TVar WindowNodeList) instance ActionInputArgs (TVar WindowList) instance ActionInputArgs BufferList instance ActionInputArgs Tabbar instance ActionInputArgs FocusNotifierList instance ActionInputArgs WindowNodeList instance ActionInputArgs WindowList instance ActionInputArgs Interactivebar instance ActionInputArgs VBox instance ActionInputArgs Container instance ActionInputArgs Window instance ActionInputArgs Environment instance ActionInputArgs Client instance ActionInputArgs Frame module Manatee.Action.Window -- | Split window vertically. windowSplitVertically :: Environment -> IO () -- | Split window horizontally. windowSplitHortizontally :: Environment -> IO () -- | Spit window with specify direction. windowSplit :: WindowNodeDirection -> Environment -> IO () -- | Select next window and focus page. windowSelectNext :: TVar WindowList -> IO () -- | Select previous window and focus page. windowSelectPrev :: TVar WindowList -> IO () -- | Close current window. windowCloseCurrent :: Environment -> IO () -- | Close all windows except current one. windowCloseOthers :: Environment -> IO () -- | Close all windows. Will popup global input interactivebar after close -- all windows. windowCloseAll :: Environment -> IO () -- | Remove window. windowRemove :: Environment -> Window -> IO () -- | Re-parent tabs of parent in child window. windowChildReparentTabs :: Environment -> Window -> [Tab] -> PageModeName -> IO () -- | Clone tabs of parent in child window. windowChildCloneTabs :: Environment -> Window -> [Tab] -> PageModeName -> IO () -- | Enlarge window up. windowEnlargeUp :: Environment -> IO () -- | Enlarge window down. windowEnlargeDown :: Environment -> IO () -- | Enlarge window left. windowEnlargeLeft :: Environment -> IO () -- | Enlarge window right. windowEnlargeRight :: Environment -> IO () -- | Enlarge window. windowEnlarge :: Environment -> IO () -- | Shrink window up. windowShrinkUp :: Environment -> IO () -- | Shrink window down. windowShrinkDown :: Environment -> IO () -- | Shrink window left. windowShrinkLeft :: Environment -> IO () -- | Shrink window right. windowShrinkRight :: Environment -> IO () -- | Shrink window. windowShrink :: Environment -> IO () module Manatee.Action.Tab -- | New tab. If tab has created, switch to tab. Otherwise create tab. newTab :: PageType -> PagePath -> Environment -> IO () -- | New path. newTabInternal :: PageType -> PagePath -> Environment -> IO () -- | Move tab to left in next window. tabMoveToLeftWithNextWindow :: Environment -> IO () -- | Move tab to right in next window. tabMoveToRightWithNextWindow :: Environment -> IO () -- | Move tab to begin in next window. tabMoveToBeginWithNextWindow :: Environment -> IO () -- | Move tab to end in next window. tabMoveToEndWithNextWindow :: Environment -> IO () -- | Move tab to left. tabMoveToLeft :: (Window, Environment) -> IO () -- | Move tab to right. tabMoveToRight :: (Window, Environment) -> IO () -- | Move tab to first. tabMoveToBegin :: (Window, Environment) -> IO () -- | Move tab to end. tabMoveToEnd :: (Window, Environment) -> IO () -- | Move tab. tabMove :: Environment -> PageModeName -> Int -> Int -> IO () -- | Select next tab. tabSelectNext :: Window -> IO () -- | Select prev tab. tabSelectPrev :: Window -> IO () -- | Select first tab. tabSelectFirst :: Window -> IO () -- | Select last tab. tabSelectLast :: Window -> IO () -- | Select next tab in other window. tabSelectNextWithNextWindow :: Environment -> IO () -- | Select previous tab in other window. tabSelectPrevWithNextWindow :: Environment -> IO () -- | Select first tab in other window. tabSelectFirstWithNextWindow :: Environment -> IO () -- | Select last tab in other window. tabSelectLastWithNextWindow :: Environment -> IO () -- | Close specify tab. tabClose :: Environment -> PageId -> IO () -- | Push to tab close history. pushCloseTab :: Environment -> PageModeName -> PageId -> IO () -- | Undo close tab. tabUndoCloseGlobal :: Environment -> IO () -- | Undo close tab that same mode as current mode. tabUndoCloseLocal :: Environment -> IO () -- | Update output message. tabUpdateOutput :: TVar Tabbar -> PagePlugId -> String -> IO () -- | Update status message. tabUpdateStatus :: TVar Tabbar -> PagePlugId -> String -> String -> IO () -- | Update progress. tabUpdateProgress :: TVar Tabbar -> PagePlugId -> Double -> IO () -- | Get current page id. tabGetCurrentPageId :: Environment -> IO (Maybe PageId) -- | Close current tab. tabCloseCurrent :: Environment -> IO () -- | Close all tabs except current one. tabCloseOthers :: Environment -> IO () -- | Switch to next mode. tabForwardGroup :: (Window, Environment) -> IO () -- | Switch to previous mode. tabBackwardGroup :: (Window, Environment) -> IO () -- | Switch to next mode with next window. tabForwardGroupWithNextWindow :: Environment -> IO () -- | Switch to next mode with next window. tabBackwardGroupWithNextWindow :: Environment -> IO () -- | Switch to next mode with window. tabBackwardGroupWithWindow :: Environment -> Window -> IO () -- | Switch to next mode with window. tabForwardGroupWithWindow :: Environment -> Window -> IO () -- | Switch mode. tabSwitchGroupCurrentWindow :: Environment -> PageModeName -> IO () -- | Switch mode with window. tabSwitchGroupWithWindow :: Environment -> Window -> PageModeName -> IO () -- | Remove tab from window. windowRemoveTab :: Environment -> PageModeName -> Int -> Maybe PageModeName -> IO () -- | Swap tab in window. windowSwapTab :: Environment -> PageModeName -> Int -> Int -> IO () module Manatee.Daemon -- | Daemon process main entry. daemonMain :: IO () globalKeymap :: Keymap interactiveKeymap :: (EditableClass ed) => Map Text (ed -> IO ()) localKeymap :: Keymap -- | Build daemon client for listen dbus signal. mkDaemonClient :: Environment -> IO () -- | Handle render process exit signal. daemonHandleRenderProcessExit :: DaemonSignalArgs -> IO () -- | Handle new tab signal. daemonHandleNewTab :: Environment -> DaemonSignalArgs -> IO () -- | Handle new anything process confirm signal. daemonHandleNewAnythingProcessConfirm :: Environment -> DaemonSignalArgs -> IO () -- | Handle interactivebar input. daemonHandleAnythingViewOutput :: Environment -> DaemonSignalArgs -> IO () -- | Handle local interactivebar exit. daemonHandleLocalInteractivebarExit :: Environment -> DaemonSignalArgs -> IO () -- | Handle local outputbar update. daemonHandleLocalOutputbarUpdate :: TVar Tabbar -> DaemonSignalArgs -> IO () -- | Handle local statusbar update. daemonHandleLocalStatusbarUpdate :: TVar Tabbar -> DaemonSignalArgs -> IO () -- | Handle local statusbar update. daemonHandleLocalProgressUpdate :: TVar Tabbar -> DaemonSignalArgs -> IO () -- | Handle synchronization tab name. daemonHandleSynchronizationPathName :: Environment -> DaemonSignalArgs -> IO () -- | Handle synchronization tab name. daemonHandleChangeTabName :: Environment -> DaemonSignalArgs -> IO () -- | Handle switch buffer. daemonHandleSwitchBuffer :: Environment -> DaemonSignalArgs -> IO () -- | Handle InteractiveReturn return. daemonHandleLocalInteractiveReturn :: Environment -> DaemonSignalArgs -> IO () -- | Handle InteractiveReturn return. daemonHandleGlobalInteractiveReturn :: Environment -> DaemonSignalArgs -> IO () -- | Handle switch buffer. daemonHandleShowTooltip :: Environment -> DaemonSignalArgs -> IO () -- | Handle new page confirm signal. daemonHandleNewPageConfirm :: Environment -> DaemonSignalArgs -> IO () -- | Add socket to socket frame. socketFrameAdd :: UIFrame -> PagePlugId -> PageModeName -> IO PageSocketId -- | Return buffer history. callGetBufferHistory :: Environment -> Member -- | Return buffer list. callGetBufferList :: Environment -> Member -- | Return interactive [String]. callGetInteractive :: Environment -> Member -- | Global interactive. globalInteractive :: Environment -> String -> ([String] -> IO ()) -> IO () -- | Reply interactive error. replyLocalInteractiveError :: MethodCall -> Text -> IO () -- | Handle page view key press event. handlePageViewKeyPress :: Text -> SerializedEvent -> (Environment, Client) -> IO () -- | Handle interactivebar key press event. handleInteractivebarKeyPress :: Environment -> Text -> Interactivebar -> IO () -- | View buffer directory. If buffer path is not directory, view current -- directory. viewBufferDirectory :: Environment -> IO () -- | Lock screen. lockScreen :: Environment -> IO () -- | Startup process manager. startProcessManager :: Environment -> IO () -- | Startup rss/atom reader. startFeedReader :: Environment -> IO () -- | Startup file manager. startFileManager :: Environment -> IO () -- | Startup browser. startBrowser :: Environment -> IO () -- | Login default channel. loginIrcDefaultChannel :: Environment -> IO () -- | Start irc. startIrc :: Environment -> IO ()