Here are two examples from my application. Basically, I bind GTK widgets to variables, as well as to callback functions that I implement in other modules.
- Glade:
gui <- builderNew
builderAddFromFile gui "myGUI.glade"
- :
- "mainWindow" ( Glade)
mainWindow <- builderGetObject gui castToWindow "mainWindow"
- "menu_Quit" ( Glade)
mQuit <- builderGetObject gui castToMenuItem "menu_Quit"
- GTK "widgetDestroy"
on mQuit menuItemActivate $ widgetDestroy mainWindow
- mainWindow "objectDestroy" GTK "mainQuit"
on mainWindow objectDestroy mainQuit
- , , , "menu_About":
-
mAbout <- builderGetObject gui castToMenuItem "menu_About"
- " " ( Glade).
on mAbout menuItemActivate $ do
aboutDialog <- builderGetObject gui castToDialog "aboutDialog"
set aboutDialog [ widgetVisible := True ]
dialogRun aboutDialog
set aboutDialog [ widgetVisible := False ]
do , , , GTK:
showAboutDialog :: Builder -> IO ()
showAboutDialog gui = [insert do block here]
do menuItemActivate :
on mAbout menuItemActivate $ showAboutDialog gui
, Builder showAboutDialog, Glade.