Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
61
Task/User-input-Graphical/Haskell/user-input-graphical-1.hs
Normal file
61
Task/User-input-Graphical/Haskell/user-input-graphical-1.hs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
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 ()
|
||||
|
|
@ -0,0 +1 @@
|
|||
*Main> main
|
||||
Loading…
Add table
Add a link
Reference in a new issue