Can I use menus created with Glade in gtk2hs?

I have menus created using Glade in my gtk2hs application. Is it possible to use this in my Haskell code to record actions for each activated menu item? Is there a simple example somewhere or a project in Hackage that can be used as an illustrative example?

The only example menu I could find http://www.muitovar.com/gtk2hs/chap7-1.html does not seem to help XML Gtk Builder work.

+3
source share
1 answer

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.

+3

All Articles