-- | This module provides the application main "window" which is no real window -- at all. It just holds the menus so you can open each step of the tutorial -- or close it all at the same time. module Main where import Graphics.UI.WX import Graphics.UI.WXCore import Step1 import Step2 import Step3 import Step4 import Step5 import Step6 -- | The application entry point main :: IO () main = start gui gui :: IO () gui = do -- We create a hidden window win <- frame [text := "wxhNotepad", visible := False] -- If this window is closed, the application ends set win [on closing := wxcAppExit] let say title desc = infoDialog win title desc -- The only thing that this window will have is its menu bar to open all -- the other windows mnuSteps <- menuPane [text := "Steps"] menuItem mnuSteps [on command := step1, text := "Step &1 - Just a Text Field\tCtrl-1"] menuItem mnuSteps [on command := step2, text := "Step &2 - Open / Save / Save As...\tCtrl-2"] menuItem mnuSteps [on command := step3, text := "Step &3 - Undo / Redo...\tCtrl-3"] menuItem mnuSteps [on command := step4, text := "Step &4 - Cut / Copy / Paste...\tCtrl-4"] menuItem mnuSteps [on command := step5, text := "Step &5 - Find / Replace...\tCtrl-5"] menuItem mnuSteps [on command := step6, text := "Step &6 - Toolbar / Statusbar / Context Menus\tCtrl-6"] menuQuit mnuSteps [on command := wxcAppExit] -- the simplest about page... mnuHelp <- menuHelp [] menuAbout mnuHelp [on command := say "About wxHNotepad" "Author: Fernando Brujo Benavides\nWebsite: http://github.com/elbrujohalcon/wxhnotepad"] -- and... RUN, FORREST!! set win [menuBar := [mnuSteps, mnuHelp], visible := True, clientSize := sz 0 0] --HACK: Linux and Windows do not support invisible windows with menuBars on them -- Then, we need to "show" a really small window instead.