How to write Manatee application?

Hi all, How to write Manatee extension? Now have answer: Please look http://www.flickr.com/photos/48809572@N02/5031811365/lightbox/ to understand framework before continue. Template code at http://hackage.haskell.org/package/manatee-template First, i explain Manatee package hierarchy: manatee-core contain DBus protocol detail and toolkit use in other manatee packages. manatee-anything is multi-task search interface for user input. manatee contain daemon process, Daemon process is root process to manage other manatee processes: such as render application process' graphics for sandbox protected, window manage ... etc. Daemon process just do manage job and don't running any special application code in it. Other manatee-* package, such as manatee-editor, manatee-browser...etc running in it's own process, you can write any code to implement your application, just need follow some interface: class Typeable a => PageBuffer a where -- Get buffer name. pageBufferGetName :: a -> IO String -- Set buffer name. pageBufferSetName :: a -> String -> IO () -- DBus client to handle DBus signal pageBufferClient :: a -> Client -- How to create view with buffer for MVC design. pageBufferCreateView :: a -> PagePlugId -> IO PageViewWrap -- Page buffer mode. pageBufferMode :: a -> PageMode -- Get package name to update user's configure. pageBufferPackageName :: a -> IO String class Typeable a => PageView a where -- Buffer for view. pageViewBuffer :: a -> PageBufferWrap -- GtkPlug id to send DBus signal to other process. pageViewPlugId :: a -> TVar PagePlugId -- How to handle key action from daemon process. pageViewHandleKeyAction :: a -> Text -> SerializedEvent -> IO () -- How to do when manatee framework focus on current application. pageViewFocus :: a -> IO () -- Scrolled window to contain application widget. pageViewScrolledWindow :: a -> ScrolledWindow -- How to handle cut action, can ignore. pageViewCut :: a -> IO Bool -- How to handle copy action, can ignore. pageViewCopy :: a -> IO Bool -- How to handle paste action, can ignore. pageViewPaste :: a -> IO Bool -- How to scroll top postion, can ignore. pageViewScrollToTop :: a -> IO () -- How to scroll bottom postion, can ignore. pageViewScrollToBottom :: a -> IO () -- How to scroll vertical page, can ignore. pageViewScrollVerticalPage :: Bool -> a -> IO () -- How to scroll vertical step, can ignore. pageViewScrollVerticalStep :: Bool -> a -> IO () -- How to scroll to left side, can ignore. pageViewScrollToLeft :: a -> IO () -- How to scroll to right side, can ignore. pageViewScrollToRight :: a -> IO () -- How to scroll horizontal page, can ignore. pageViewScrollHorizontalPage:: Bool -> a -> IO () -- How to scroll horizontal step, can ignore. pageViewScrollHorizontalStep:: Bool -> a -> IO () If you have any question, feel free to ask me (lazycat.manatee@gmail.com) -- Andy
participants (1)
-
Andy Stewart