content: import Graphics.UI.Gtk
  import Control.Monad
  
  main = do
    initGUI
  
    window <- windowNew
    set window [windowTitle := "Graphical user input", containerBorderWidth := 10]
  
    vb <- vBoxNew False 0
    containerAdd window vb
  
    hb1 <- hBoxNew False 0
    boxPackStart vb hb1 PackNatural 0
    hb2 <- hBoxNew False 0
    boxPackStart vb hb2 PackNatural 0
  
    lab1 <- labelNew (Just "Enter number 75000")
    boxPackStart hb1 lab1 PackNatural 0
    nrfield <- entryNew
    entrySetText nrfield "75000"
    boxPackStart hb1 nrfield PackNatural 5
  
    strfield <- entryNew
    boxPackEnd hb2 strfield PackNatural 5
    lab2 <- labelNew (Just "Enter a text")
    boxPackEnd hb2 lab2 PackNatural 0
  
    accbox    <- hBoxNew False 0
    boxPackStart vb accbox PackNatural 5
    im <- imageNewFromStock stockApply IconSizeButton
    acceptButton <- buttonNewWithLabel "Accept"
    buttonSetImage acceptButton im
    boxPackStart accbox acceptButton PackRepel 0
  
    txtstack <- statusbarNew
    boxPackStart vb txtstack PackNatural 0
    id <- statusbarGetContextId txtstack "Line"
  
    widgetShowAll window
  
    onEntryActivate nrfield (showStat nrfield txtstack id)
    onEntryActivate strfield (showStat strfield txtstack id)
  
    onPressed acceptButton $ do
      g <- entryGetText nrfield
      if g=="75000" then
        widgetDestroy window
       else do
         msgid <- statusbarPush txtstack id "You didn't enter 75000. Try again"
         return ()
  
    onDestroy window mainQuit
    mainGUI
  
  showStat :: Entry -> Statusbar -> ContextId -> IO ()
  showStat fld stk id = do
      txt <- entryGetText fld
      let mesg = "You entered \"" ++ txt ++ "\""
      msgid <- statusbarPush stk id mesg
      return ()
  