gtk2hs

Christian Buschmann christian@snowblack.de
Fri, 13 Jun 2003 19:39:53 +0200


Hi!
I tried to implement a simple counter with gtk2hs. To increase my 
counter I defined following event:

onClicked btn $ do si <- textBufferGetStartIter tb
                    ei <- textBufferGetEndIter tb
                    val <- textBufferGetText tb si ei False
                    textBufferSetText tb $ show $ (+1) $ read val

But now I don't want always read the textfield to get my counter-value, 
I would like to save the state of my increased value and would like to 
pass it to the next call of the function.
How can I do this?

thanks
   Christian



This is the complete code:

import Gtk

quitDialog :: IO Bool
quitDialog = .....

main :: IO ()
main = do
        initGUI
        --main window
        win <- windowNew
        onDelete win (\_->(quitDialog>>= (return . not )))
        onDestroy win mainQuit
        vb <- vBoxNew True 5
        hb <- hBoxNew True 5
        btn <- buttonNewFromStock stockExecute
        btn2 <- buttonNewFromStock stockQuit
        tv <- textViewNew
        tb <- textBufferNew Nothing
        textBufferSetText tb "0"
        textViewSetEditable tv False
        textViewSetCursorVisible tv False
        textViewSetBuffer tv tb
        boxPackStartDefaults vb tv
        boxPackStartDefaults vb hb
        boxPackStartDefaults hb btn
        boxPackStartDefaults hb btn2
        hgf <- onClicked btn $ do si <- textBufferGetStartIter tb
                                  ei <- textBufferGetEndIter tb
                                  val <- textBufferGetText tb si ei False
                                  textBufferSetText tb $ show $ (+1) $ 
read val
        disconnect hgf
        onClicked btn2 $ do quit <- quitDialog
                            if quit then
                               widgetDestroy win
                               else return ()
        containerAdd win vb
        widgetShowAll win
        mainGUI