// All the CIT gadgets in one hand

USE CITScreen
USE CITWindow
USE CITGadgets

DIM Error OF SHORT
DIM TermCode OF SHORT

DIM MyWd OF CITWindow
MyWd.Size(550,220)
MyWd.Activate
MyWd.CloseGadget
ComalScreen.InsObject(MyWd,Error)
IF Error THEN
  STOP "Could'nt open the window"
ENDIF

DIM AcceptGad OF ButtonGadget
AcceptGad.Position(10,8)
AcceptGad.Label("Accept",INSIDE)
AcceptGad.KeyEquivalent("Aa")
AcceptGad.EventHandler(Accept())
MyWd.InsObject(AcceptGad,Error)

DIM CancelGad OF ButtonGadget
CancelGad.Label("Cancel",INSIDE)
CancelGad.KeyEquivalent("Cc")
CancelGad.Position(150,8)
CancelGad.EventHandler(Cancel())
MyWd.InsObject(CancelGad,Error)

DIM CheckGad OF CheckboxGadget
CheckGad.Label("Select me",RIGHT)
CheckGad.KeyEquivalent("Ss")
CheckGad.Position(10,28)
CheckGad.EventHandler(Check())
MyWd.InsObject(CheckGad,Error)

DIM StringGad OF StringGadget
StringGad.Label("Type in a text",LEFT)
StringGad.KeyEquivalent("tT")
StringGad.Position(150,48)
MyWd.InsObject(StringGad,Error)

DIM NumberGad OF IntegerGadget
NumberGad.Label("Type in a number",LEFT)
NumberGad.Position(150,68)
NumberGad.Replace
NumberGad.Number(25)
NumberGad.EventHandler(NumGadHandler())
MyWd.InsObject(NumberGad,Error)

DIM SliderGad OF SliderGadget
SliderGad.Position(150,88)
SliderGad.Limits(0,100)
SliderGad.Label("Value:###%",LEFT)
SliderGad.KeyEquivalent("Ll")
MyWd.InsObject(SliderGad,Error)

DIM Scroller OF ScrollerGadget
Scroller.Orientation(HORIZONTAL)
Scroller.Position(40,108)
Scroller.Size(400,10)
Scroller.Arrows(16)
Scroller.Top(10)
Scroller.Total(30)
Scroller.Visible(5)
Scroller.KeyEquivalent("Oo")
MyWd.InsObject(Scroller,Error)

DIM CycleGad OF CycleGadget
DIM CycleValg$(4) OF 20
READ CycleValg$()
CycleGad.Position(330,8)
CycleGad.Size(190,14)
CycleGad.Label("Press here",LEFT)
CycleGad.KeyEquivalent("Hh")
CycleGad.Choices(CycleValg$())
MyWd.InsObject(CycleGad,Error)

DIM Text OF TextGadget
Text.Position(120,133)
Text.Label("SELECT!",INSIDE+HIGHLIGHT)
MyWd.InsObject(Text,Error)

DIM RadioButtons OF RadioButtonsGadget
DIM RadioValg$(4) OF 20
RESTORE
READ RadioValg$()
RadioButtons.Position(150,148)
RadioButtons.Choices(RadioValg$(),LEFT)
RadioButtons.Spacing(3)
RadioButtons.KeyEquivalent("Rr")
MyWd.InsObject(RadioButtons,Error)

DIM ListView OF ListViewGadget
DIM ListViewTexts$(4) OF 20
ListViewTexts$(1):="Choice1"
ListViewTexts$(2):="Choice2"
ListViewTexts$(3):="Choice3"
ListViewTexts$(4):="Choice4"
ListView.Position(200,128)
ListView.Size(100,40)
ListView.ChoiceArray(ListViewTexts$())
ListView.Selected(0)
ListView.KeyEquivalent("Vv")
MyWd.InsObject(ListView,Error)

DIM Palette OF PaletteGadget
Palette.Position(350,128)
Palette.Color(2)
Palette.KeyEquivalent("Pp")
MyWd.InsObject(Palette,Error)

DATA "Choice number 1"
DATA "Choice number 2"
DATA "Choice number 3"
DATA "Choice number 4"

IF Error THEN
  PRINT "One or more gadgets could not be created"
ELSE
  WHILE TermCode=0 AND NOT MyWd.ClosePressed DO WAIT

  PRINT "Check-gadget: ",CheckGad.Value
  PRINT "String-gadget: ",StringGad.Value$
  PRINT "Number-gadget: ",NumberGad.Value
  PRINT "Slider-gadget: ",SliderGad.Value
  PRINT "Scroller-gadget: ",Scroller.Value
  PRINT "Cycle-gadget: ",CycleGad.Value
  PRINT "Radio-knapper: ",RadioButtons.Value
  PRINT "ListView-gadget: ",ListView.Value
  PRINT "Palette: ",Palette.Value

  ComalScreen.RemObject(MyWd)
ENDIF

// ****** slut på hoveprogram *********


PROC Accept(ID OF USHORT)
  TermCode:=1
  PRINT "You pressed 'Accept'"
ENDPROC Accept

PROC Cancel(ID OF USHORT)
  TermCode:=2
  PRINT "You pressed 'Cancel'"
ENDPROC Cancel

PROC Check(ID OF USHORT)
  IF CheckGad.Value THEN
    CancelGad.Disable
  ELSE
    CancelGad.Enable
  ENDIF
ENDPROC Check

PROC NumGadHandler(ID OF USHORT)
  SliderGad.Level(NumberGad.Value)
ENDPROC NumGadHandler
