TO buttondef windowcreate "main "defbouton [Defining button] 0 50 100 100 [] buttoncreate "defbouton "defboutbtq "X 0 0 10 10 [windowdelete "defbouton] staticcreate "defbouton "defboutstataff "Display 0 20 30 10 comboboxcreate "defbouton "defboutcmbAff 30 20 70 10 staticcreate "defbouton "defboutstatName "Name 0 10 30 10 comboboxcreate "defbouton "defboutcmbName 30 10 70 10 comboboxcreate "defbouton "defboutcmbAction 30 30 70 10 staticcreate "defbouton "defboutstatAction "Action 0 30 30 10 buttoncreate "defbouton "defboutbtsel "Select 30 40 45 10 [selectionne] buttoncreate "defbouton "defboutbtcree "Create 30 50 45 10 [~ localmake "data (se " list comboboxgettext "defboutcmbName ~ comboboxgettext "defboutcmbAff selection (list comboboxgettext "defboutcmbAction))~ apply "buttoncreate :data (pr "buttoncreate ""Screen :data) ] buttoncreate "defbouton "defboutbtef "Delete 30 60 45 10~ [buttondelete comboboxgettext "defboutcmbName ( pr "buttondelete (list comboboxgettext "defboutcmbName ))] END to checkboxdef windowcreate "main "defcoche [Defining Checkbox] 0 50 100 100 [] buttoncreate "defcoche "defcochebtq "X 0 0 10 10 [windowdelete "defcoche] staticcreate "defcoche "defcochestataff "Display 0 30 30 10 comboboxcreate "defcoche "defcochecmbAff 30 30 70 10 staticcreate "defcoche "defcochestatGr "Groupbox 0 10 30 10 comboboxcreate "defcoche "defcochecmbGr 30 10 70 10 staticcreate "defcoche "defcochestatName "Name 0 20 30 10 comboboxcreate "defcoche "defcochecmbName 30 20 70 10 buttoncreate "defcoche "defcochebtsel "Select 30 40 45 10 [selectionne] buttoncreate "defcoche "defcochebtcree "create 30 50 45 10 [ ~ localmake "data (se " (list comboboxgettext "defcochecmbGr comboboxgettext "defcochecmbName ~ comboboxgettext "defcochecmbAff ) selection ) apply "checkboxcreate :data~ ( pr "checkboxcreate ""Screen :data)] buttoncreate "defcoche "defcochebtef "Delete 30 60 45 10~ [checkboxdelete comboboxgettext "defcochecmbName ~ (show "coche.ef comboboxgettext "defcochecmbName) ] end TO comboboxdef windowcreate "main "defboitecomb [Defining Combobox] 0 50 100 100 [] buttoncreate "defboitecomb "defbtcmbbtq "X 0 0 10 10 [windowdelete "defboitecomb] staticcreate "defboitecomb "defbtcmbstatName "Name 0 10 30 10 comboboxcreate "defboitecomb "defbtcmbcmbName 30 10 70 10 buttoncreate "defboitecomb "defbtcmbbtsel "Select 30 40 45 10 [selectionne] buttoncreate "defboitecomb "defbtcmbbtcree "create 30 50 45 10 [~ localmake "data (se " comboboxgettext "defbtcmbcmbName selection )~ apply "comboboxcreate :data (pr "comboboxcreate ""Screen fput ( list first bf :data) bf bf :data) ] buttoncreate "defboitecomb "defbtcmbbtef "Delete 30 60 45 10~ [comboboxdelete comboboxgettext "defbtcmbcmbName ~ ( pr "comboboxdelete fput comboboxgettext "defbtcmbcmbName [] )] END to defbutton :name :label :action [:x item 1 :selection ][:width item 3 :selection][:height item 4 :selection]~ [:y :height + item 2 :selection] buttoncreate "screen :name :label :x :y :width :height :action end TO groupboxdef windowcreate "main "defgr [Defining Groupbox] 0 50 100 100 [] buttoncreate "defgr "defgrbtq "X 0 0 10 10 [windowdelete "defgr] staticcreate "defgr "defgrstatName "Name 0 10 30 10 comboboxcreate "defgr "defgrcmbName 30 10 70 10 buttoncreate "defgr "defgrbtsel "Select 30 40 45 10 [selectionne] buttoncreate "defgr "defgrbtcree "create 30 50 45 10 [ ~ localmake "data (fput " fput comboboxgettext "defgrcmbName selection ) ~ apply "groupboxcreate :data~ (pr "groupboxcreate ""Screen :data)] buttoncreate "defgr "defgrbtef "Delete 30 60 45 10~ [groupboxdelete comboboxgettext "defgrcmbName ~ (show "groupboxdelete comboboxgettext "defgrcmbName) ] end TO interface windowcreate "main "interface "Interface 0 50 100 100 [] buttoncreate "interface "intbtq "X 0 0 10 10 [windowdelete "interface] buttoncreate "interface "intbtbouton "Button 0 10 45 10 [buttondef ] buttoncreate "interface "intbtstat "Text 0 20 45 10 [staticdef ] buttoncreate "interface "intbtlst "Listbox 0 30 45 10 [listboxdef ] buttoncreate "interface "intbtcmb "Combobox 0 40 45 10 [comboboxdef ] buttoncreate "interface "intbtgr [Group] 50 10 45 10 [groupboxdef ] buttoncreate "interface "intbtrad [Radiobutton] 50 20 45 10 [radiobuttondef ] buttoncreate "interface "intbtcoche "Checkbox 50 30 45 10 [checkboxdef ] END TO listboxdef windowcreate "main "deflistbox [Defining a button] 0 50 100 100 [] buttoncreate "deflistbox "defbtlstbtq "X 0 0 10 10 [windowdelete "deflistbox] staticcreate "deflistbox "defbtlststatName "Name 0 10 30 10 comboboxcreate "deflistbox "defbtlstcmbName 30 10 70 10 buttoncreate "deflistbox "defbtlstbtsel "Select 30 40 45 10 [selectionne] buttoncreate "deflistbox "defbtlstbtcree "create 30 50 45 10 [~ localmake "data (se " comboboxgettext "defbtlstcmbName selection )~ apply "listboxcreate :data (pr "listboxcreate ""Screen fput (list first bf :data) bf bf :data) ] buttoncreate "deflistbox "defbtlstbtef "Delete 30 60 45 10~ [listboxdelete comboboxgettext "defbtlstcmbName ( pr "listboxdelete (list comboboxgettext "defbtlstcmbName ))] END to marquerect :r [:x1 item 1 :r][:y1 item 2 :r][:x2 sum :x1 item 3 :r][:y2 difference :y1 last :r]~ [:pos pos][:pen pen][:vis shownp] ht setpensize [2 2] pu setpos list :x1 :y1 px setpos list :x2 + 1 :y1 setpos list :x2 + 1 :y2 setpos list :x1 - 1 :y2 setpos list :x1 - 1 :y1 pu setpos :pos setpen :pen if :vis[mt] make "&selvis not :&selvis end to radiobuttondef windowcreate "main "defbttr [Defining "Radiobutton] 0 50 100 100 [] buttoncreate "defbttr "defbttrbtq "X 0 0 10 10 [windowdelete "defbttr] staticcreate "defbttr "defbttrstataff "Display 0 30 30 10 comboboxcreate "defbttr "defbttrcmbAff 30 30 70 10 staticcreate "defbttr "defbttrstatGr "Groupbox 0 10 30 10 comboboxcreate "defbttr "defbttrcmbGr 30 10 70 10 staticcreate "defbttr "defbttrstatName "Name 0 20 30 10 comboboxcreate "defbttr "defbttrcmbName 30 20 70 10 buttoncreate "defbttr "defbttrbtsel "Select 30 40 45 10 [selectionne] buttoncreate "defbttr "defbttrbtcree "create 30 50 45 10 [ ~ localmake "data (se " (list comboboxgettext "defbttrcmbGr comboboxgettext "defbttrcmbName ~ comboboxgettext "defbttrcmbAff ) selection ) apply "radiobuttoncreate :data~ (pr "radiobuttoncreate ""Screen :data)] buttoncreate "defbttr "defbttrbtef "Delete 30 60 45 10~ [radiobuttondelete comboboxgettext "defbttrcmbName ~ (show "boutonradio.ef comboboxgettext "defbttrcmbName) ] end to rect :p1 :p2[:x1 first :p1][:x2 first :p2][:y1 last :p1][:y2 last :p2] op (se ifelse :x1 < :x2[:x1 ][:x2] ifelse :y1> :y2 [:y1][:y2]~ abs :x1- :x2 abs :y1 - :y2 ) end to selection op gprop "selection "rect end to selectionne [:click "false][:pen pen][:posinit pos][:vis shownp][:selvis :&selvis] windowcreate "main "selection "Selection 200 0 100 25[] staticcreate "selection "selrect "Selection 5 0 90 10 ht make "stop "false make "&prop "false if :selvis [marquerect selection] mouseon [make "selpos1 mousepos make "pos :selpos1~ marquerect rect :selpos1 :pos make "click "true mouseoff]~ [ ][ make "selpos1 pos make "pos :selpos1 marquerect rect :selpos1 :pos make "click "true mouseoff ][]~ [staticupdate "selrect mousepos ] until [:click] [] if :stop [if :selvis [marquerect selection] stop] make "click "false mouseon ~ [] [ marquerect rect :selpos1 :pos make "click "true mouseoff ]~ [mouseoff marquerect rect :selpos1 :pos~ if :vis [mt] windowdelete "selection make "click "true make "stop "true ~ ] [ ]~ [ if not equalp mousepos :pos ~ [ marquerect rect :selpos1 :pos make "pos mousepos ~ marquerect rect :selpos1 :pos ~ staticupdate "selrect rect :selpos1 :pos ]~ ] until [:click] [] if :stop [if :selvis [marquerect selection] stop] if not( :selpos1 = :pos) [pprop "selection "rect rect :selpos1 :pos] pu setpos bl bl selection setpen :pen if :vis [mt] windowdelete "selection if :selvis [marquerect selection] end to staticdef windowcreate "main "defstat [Defining Static] 0 50 100 100 [] buttoncreate "defstat "defstatbtq "X 0 0 10 10 [windowdelete "defstat] staticcreate "defstat "defstatstataff "Display 0 20 30 10 comboboxcreate "defstat "defstatcmbAff 30 20 70 10 staticcreate "defstat "defstatstatName "Name 0 10 30 10 comboboxcreate "defstat "defstatcmbName 30 10 70 10 buttoncreate "defstat "defstatbtsel "Select 30 40 45 10 [selectionne] buttoncreate "defstat "defstatbtcree "create 30 50 45 10 [ ~ localmake "data (se " list comboboxgettext "defstatcmbName ~ comboboxgettext "defstatcmbAff selection ) apply "staticcreate :data~ ( pr "staticcreate ""Screen :data)] buttoncreate "defstat "defstatbtef "Delete 30 60 45 10~ [staticdelete comboboxgettext "defstatcmbName ~ (show "staticdelete comboboxgettext "defstatcmbName) ] end Make "&prop "false Make "&selvis "false Make "click "true Make "mousecopy "false Make "pos [171 81] Make "selpos1 [-69 166] Make "stop "false Pprop "selection "rect [-69 166 240 85]