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
|