Revision: 16158
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 27, 2009 18:50 by keigoi
Initial Code
import EnableGUI -- from http://wxhaskell.sourceforge.net/download/EnableGUI.hs
import Graphics.UI.WXCore hiding (Var)
import Graphics.UI.WX hiding (Var, enter)
import Data.Bits ((.&.), complement)
myEventId = wxID_HIGHEST+1 -- the custom event ID
-- the custom event is registered as a menu event
createMyEvent = commandEventCreate wxEVT_COMMAND_MENU_SELECTED myEventId
registerMyEvent win io = evtHandlerOnMenuCommand win myEventId io
gui
= do f <- frame [text := "custom event sample"]
bt <- button f [text := "click to invoke a custom event"]
set f [layout := column 1 [hfill (widget bt)]]
set bt [on command := onClick f]
registerMyEvent f (putStrLn "The custom event is fired!!")
return ()
where
onClick f
= do
ev <- createMyEvent
evtHandlerProcessEvent f ev
return ()
main = enableGUI >> start gui
Initial URL
Initial Description
This examples shows how to handle user-defined events in wxHaskell via menu events. If the thread issues an event is not the main thread, use evtHandlerAddPendingEvent instead of evtHandlerProcessEvent.
Initial Title
wxHaskell multi-thread & custom event example
Initial Tags
Initial Language
Haskell