From: <kr_...@us...> - 2003-11-16 09:03:18
|
Update of /cvsroot/htoolkit/gio/src/Graphics/UI/GIO In directory sc8-pr-cvs1:/tmp/cvs-serv10600/src/Graphics/UI/GIO Modified Files: StatusBar.hs Log Message: A litle bit simplified push/pop API Index: StatusBar.hs =================================================================== RCS file: /cvsroot/htoolkit/gio/src/Graphics/UI/GIO/StatusBar.hs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StatusBar.hs 15 Nov 2003 10:34:14 -0000 1.1 --- StatusBar.hs 16 Nov 2003 09:02:35 -0000 1.2 *************** *** 22,25 **** --- 22,26 ---- import Graphics.UI.GIO.Types import Graphics.UI.GIO.Attributes + import Control.Exception(bracket_) data StatusBar = StatusBar *************** *** 33,48 **** instance Titled StatusBar where title = newAttr (\sb -> Lib.getStatusBarTitle) (\sb -> Lib.setStatusBarTitle) - - pushStatusBarContext :: StatusBar -> IO () - pushStatusBarContext sb = Lib.pushStatusBarContext popStatusBarContext :: StatusBar -> IO () popStatusBarContext sb = Lib.popStatusBarContext withStatus :: StatusBar -> String -> IO a -> IO a ! withStatus sb txt action = do ! pushStatusBarContext sb ! set sb [title =: txt] ! r <- action ! popStatusBarContext sb ! return r --- 34,51 ---- instance Titled StatusBar where title = newAttr (\sb -> Lib.getStatusBarTitle) (\sb -> Lib.setStatusBarTitle) + -- | Push a new status message onto the status bar stack and display it. + pushStatusBarContext :: StatusBar -> String -> IO () + pushStatusBarContext sb title = Lib.pushStatusBarContext title + + -- | Remove current status message, and display previous status + -- message, if any. It is fine to call this with an empty stack. popStatusBarContext :: StatusBar -> IO () popStatusBarContext sb = Lib.popStatusBarContext withStatus :: StatusBar -> String -> IO a -> IO a ! withStatus sb title action = ! bracket_ ! (pushStatusBarContext sb title) ! (popStatusBarContext sb) ! action |