home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / e / EasyGUI_v33b2.lha / Src / EasyGUI / alldist2.e < prev    next >
Text File  |  1997-02-12  |  10KB  |  380 lines

  1. -> Test GUI's gathered in one program.
  2.  
  3. OPT OSVERSION=37
  4. MODULE 'tools/EasyGUI', 'tools/exceptions', 'libraries/gadtools'
  5.  
  6. DEF gh
  7.  
  8. DEF havefonts=FALSE, havescreenmode=FALSE, havefile=FALSE, havesearch=FALSE,
  9.     havesearch2=FALSE, haveamosaic=FALSE, havedb=FALSE, havedm=FALSE,
  10.     havetiny=FALSE, havemessy=FALSE
  11.  
  12. DEF s[50]:STRING
  13.  
  14. PROC main() HANDLE
  15.   DEF mh=NIL:PTR TO multihandle
  16.   StrCopy(s,'bla')
  17.   mh:=multiinit()
  18.   addmultiA(mh,'EasyGUI Tests',
  19.     [EQROWS,
  20.       [BUTTON,{fonts},'Fonts'],
  21.       [BUTTON,{screenmode},'ScreenMode'],
  22.       [BUTTON,{file},'File Requester'],
  23.       [BUTTON,{search},'Search Requester'],
  24.       [BUTTON,{search2},'Search Requester 2'],
  25.       [BUTTON,{amosaic},'Amosaic'],
  26.       [BUTTON,{db},'DataBase'],
  27.       [BUTTON,{dm},'DiskMaster'],
  28.       [BUTTON,{tiny},'Tiny Test'],
  29.       [BUTTON,{messy},'Messy Test']
  30.     ],
  31.     [EG_CLOSE,{quit}, NIL]
  32.   )
  33.   REPEAT
  34.     WriteF('result=\d\n',multiloop(mh))
  35.   UNTIL mh.opencount=0
  36. EXCEPT DO
  37.   cleanmulti(mh)
  38.   report_exception()
  39. ENDPROC
  40.  
  41. PROC quit(mh,info) IS multiforall({gh},mh,`cleangui(gh))
  42.  
  43. PROC havenot(var:PTR TO LONG)
  44.   var[]:=FALSE
  45. ENDPROC
  46.  
  47. PROC fonts(x:PTR TO guihandle)
  48.   IF havefonts=FALSE
  49.     havefonts:=TRUE
  50.     addmultiA(x.mh, 'Font Preferences',
  51.       [EQROWS,
  52.         [TEXT,'Selected Fonts',NIL,FALSE,3],
  53.         [BEVELR,
  54.           [EQROWS,
  55.             [TEXT,'xentiny 8','Workbench Icon Text:',FALSE,3],
  56.             [TEXT,'end 10','System Default Text:',FALSE,3],
  57.             [TEXT,'except 12','Screen text:',FALSE,3]
  58.           ]
  59.         ],
  60.         [SBUTTON,0,'Select Workbench Icon Text...'],
  61.         [SBUTTON,0,'Select System Default Text...'],
  62.         [SBUTTON,0,'Select Screen text...'],
  63.         [BAR],
  64.         [COLS,
  65.           [BUTTON,0,'Save'],
  66.           [SPACEH],
  67.           [BUTTON,0,'Use'],
  68.           [SPACEH],
  69.           [BUTTON,0,'Cancel']
  70.         ]
  71.       ],
  72.       [EG_CLEAN,{havenot}, EG_INFO,{havefonts}, NIL]
  73.     )
  74.   ENDIF
  75. ENDPROC
  76.  
  77. PROC screenmode(x:PTR TO guihandle)
  78.   IF havescreenmode=FALSE
  79.     havescreenmode:=TRUE
  80.     addmultiA(x.mh,'ScreenMode Preferences',
  81.       [EQROWS,
  82.         [COLS,
  83.           [EQROWS,
  84.             [LISTV,0,'Display Mode',10,4,NIL,TRUE,0,0],
  85.             [COLS,
  86.               [EQROWS,[INTEGER,0,'Width:',640,5],[INTEGER,0,'Height:',512,5]],
  87.               [ROWS,[CHECK,0,'Default',TRUE,FALSE],[CHECK,0,'Default',TRUE,FALSE]]
  88.             ],
  89.             [SLIDE,0,'Colors:',FALSE,1,8,3,5,''],
  90.             [CHECK,0,'AutoScroll:',TRUE,TRUE]
  91.           ],
  92.           ->[BAR],
  93.           [BEVELR,
  94.             [EQROWS,
  95.               [TEXT,'688x539','Visible Size:',FALSE,3],
  96.               [TEXT,'640x200','Minimum Size:',FALSE,3],
  97.               [TEXT,'16368x16384','Maximum Size:',FALSE,3],
  98.               [TEXT,'256','Maximum Colors:',FALSE,3],
  99.               [SPACE]
  100.             ]
  101.           ]
  102.         ],
  103.         [BAR],
  104.         [COLS,
  105.           [BUTTON,0,'Save'],
  106.           [SPACEH],
  107.           [BUTTON,0,'Use'],
  108.           [SPACEH],
  109.           [BUTTON,0,'Cancel']
  110.         ]
  111.       ],
  112.       [EG_CLEAN,{havenot}, EG_INFO,{havescreenmode}, NIL]
  113.     )
  114.   ENDIF
  115. ENDPROC
  116.  
  117. PROC file(x:PTR TO guihandle)
  118.   IF havefile=FALSE
  119.     havefile:=TRUE
  120.     addmultiA(x.mh,'Select a file:',
  121.       [EQROWS,
  122.         [LISTV,0,NIL,1,5,NIL,0,NIL,0],
  123.         [STR,{fr},'Pattern',s,200,5],
  124.         [STR,{fr},'Drawer',s,200,5],
  125.         [STR,{fr},'File',s,200,5],
  126.         [COLS,
  127.           [BUTTON,1,'Ok'],
  128.           [SPACEH],
  129.           [BUTTON,2,'Disks'],
  130.           [SPACEH],
  131.           [BUTTON,3,'Parent'],
  132.           [SPACEH],
  133.           [BUTTON,0,'Cancel']
  134.         ]
  135.       ],
  136.       [EG_CLEAN,{havenot}, EG_INFO,{havefile}, NIL]
  137.     )
  138.   ENDIF
  139. ENDPROC
  140.  
  141. PROC fr(a,b) IS WriteF('fr: \s\n',b)
  142.  
  143. PROC search(x:PTR TO guihandle)
  144.   IF havesearch=FALSE
  145.     havesearch:=TRUE
  146.     addmultiA(x.mh,'Enter Search/Replace text:',
  147.       [ROWS,
  148.         [ROWS,                        -> ROWS
  149.           [EQROWS,
  150.             [STR,{find},'Locate',s,10,10],
  151.             [STR,{repl},'Replace',s,10,10]
  152.           ],
  153.           [COLS,                        -> COLS
  154.             [CHECK,{case},'Ignore case',TRUE,FALSE],
  155.             [CHECK,{word},'Whole words only',FALSE,FALSE],
  156.             [CHECK,{forw},'Search forward',TRUE,FALSE]
  157.           ]
  158.         ],
  159.         [BAR],
  160.         [EQCOLS,
  161.           [BUTTON,1,'Search'],
  162.           [SPACEH],
  163.           [BUTTON,2,'Replace'],
  164.           [SPACEH],
  165.           [BUTTON,0,'Cancel']
  166.         ]
  167.       ],
  168.       [EG_CLEAN,{havenot}, EG_INFO,{havesearch}, NIL]
  169.     )
  170.   ENDIF
  171. ENDPROC
  172.  
  173. PROC find(x,y) IS WriteF('Find="\s"!\n',y)
  174. PROC repl(x,y) IS WriteF('Repl="\s"!\n',y)
  175. PROC case(x,y) IS WriteF('Case=\d!\n',y)
  176. PROC word(x,y) IS WriteF('Word=\d!\n',y)
  177. PROC forw(x,y) IS WriteF('Forw=\d!\n',y)
  178.  
  179. PROC search2(x:PTR TO guihandle)
  180.   IF havesearch2=FALSE
  181.     havesearch2:=TRUE
  182.     addmultiA(x.mh,'Enter Search/Replace text:',
  183.       [ROWS,
  184.         [COLS,                        -> ROWS
  185.           [EQROWS,
  186.             [STR,{find},'Locate',s,10,10],
  187.             [STR,{repl},'Replace',s,10,10]
  188.           ],
  189.           [EQROWS,                        -> COLS
  190.             [CHECK,{case},'Ignore case',TRUE,FALSE],
  191.             [CHECK,{word},'Whole words only',FALSE,FALSE],
  192.             [CHECK,{forw},'Search forward',TRUE,FALSE]
  193.           ]
  194.         ],
  195.         [BAR],
  196.         [EQCOLS,
  197.           [BUTTON,1,'Search'],
  198.           [SPACEH],
  199.           [BUTTON,2,'Replace'],
  200.           [SPACEH],
  201.           [BUTTON,0,'Cancel']
  202.         ]
  203.       ],
  204.       [EG_CLEAN,{havenot}, EG_INFO,{havesearch2}, NIL]
  205.     )
  206.   ENDIF
  207. ENDPROC
  208.  
  209. PROC amosaic(x:PTR TO guihandle)
  210.   IF haveamosaic=FALSE
  211.     haveamosaic:=TRUE
  212.     addmultiA(x.mh,'AMosaic',
  213.       [EQROWS,
  214.         [TEXT,'Wouter''s WWW page','Title:',TRUE,3],
  215.         [TEXT,'file://localhost/...','URL:',TRUE,3],
  216.         [COLS,
  217.           [SBUTTON,0,'Back'],
  218.           [SBUTTON,0,'Forward'],
  219.           [SBUTTON,0,'Home'],
  220.           [SBUTTON,0,'Open'],
  221.           [SBUTTON,0,'Reload'],
  222.           [SBUTTON,0,'Quit']
  223.         ],
  224.         [COLS,
  225.           [BEVELR,
  226.             [SPACE]
  227.           ],
  228.           [SCROLL,0,TRUE,10,0,2,10]
  229.         ],
  230.         [TEXT,'file://localhost/...',NIL,FALSE,3]
  231.       ],
  232.       [EG_CLEAN,{havenot}, EG_INFO,{haveamosaic}, NIL]
  233.     )
  234.   ENDIF
  235. ENDPROC
  236.  
  237. PROC db(x:PTR TO guihandle)
  238.   IF havedb=FALSE
  239.     havedb:=TRUE
  240.     addmultiA(x.mh,'EasyBase v0.1',
  241.       [ROWS,
  242.         [LISTV,0,NIL,5,4,NIL,0,NIL,0],
  243.         [COLS,
  244.           [BUTTON,0,'New'],
  245.           [BUTTON,{fields},'Fields',x.mh],
  246.           [BUTTON,0,'Load'],
  247.           [BUTTON,0,'Save']]],
  248.       [EG_CLEAN,{havenot}, EG_INFO,{havedb}, NIL])
  249.   ENDIF
  250. ENDPROC
  251.  
  252. PROC fields(mh,i) HANDLE
  253.   multiforall({gh},mh,`blockwin(gh))
  254.   easyguiA('Edit Fields',
  255.     [ROWS,
  256.       [LISTV,0,NIL,5,3,NIL,0,NIL,0],
  257.       [COLS,
  258.         [BUTTON,{addfield},'Add'],
  259.         [BUTTON,0,'Delete'],
  260.         [BUTTON,0,'Change']]])
  261. EXCEPT DO
  262.   multiforall({gh},mh,`unblockwin(gh))
  263.   ReThrow()
  264. ENDPROC
  265.  
  266. PROC editfield(gh) HANDLE
  267.   blockwin(gh)
  268.   easyguiA('Field Characteristics',
  269.     [ROWS,
  270.       [EQROWS,
  271.         [STR,0,'fieldname',s,200,10],
  272.         [INTEGER,0,'fieldlength',40,10]],
  273.       [BUTTON,0,'Ok']])
  274. EXCEPT DO
  275.   unblockwin(gh)
  276.   ReThrow()
  277. ENDPROC
  278.  
  279. PROC addfield(i) IS editfield(i)
  280.  
  281. PROC dm(x:PTR TO guihandle)
  282.   IF havedm=FALSE
  283.     havedm:=TRUE
  284.     addmultiA(x.mh,'E FileManager v0.1',
  285.       [ROWS,
  286.         [COLS,
  287.           [ROWS,
  288.             [LISTV,0,NIL,1,10,NIL,0,NIL,0],
  289.             [STR,0,'',s,200,5]
  290.           ],
  291.           [EQROWS,
  292.             [BUTTON,1,'DF0:'],
  293.             [BUTTON,1,'DF1:'],
  294.             [BUTTON,1,'Ram:'],
  295.             [BUTTON,1,'System:'],
  296.             [BUTTON,1,'Work:'],
  297.             [BUTTON,1,'E:'],
  298.             [SPACEV]
  299.           ],
  300.           [ROWS,
  301.             [LISTV,0,NIL,1,5,NIL,0,NIL,0],
  302.             [STR,0,'',s,200,5]
  303.           ]
  304.         ],
  305.         [COLS,
  306.           [EQROWS,[SBUTTON,1,'Parent'],[SBUTTON,1,'All']],
  307.           [EQROWS,[SBUTTON,1,'Copy'],[SBUTTON,1,'Clear']],
  308.           [EQROWS,[SBUTTON,1,'Move'],[SBUTTON,1,'Toggle']],
  309.           [EQROWS,[SBUTTON,1,'Rename'],[SBUTTON,1,'Size']],
  310.           [EQROWS,[SBUTTON,1,'Delete'],[SBUTTON,1,'View']],
  311.           [EQROWS,[SBUTTON,1,'MakeDir'],[SBUTTON,0,'Config']]
  312.         ]
  313.       ],
  314.       [EG_CLEAN,{havenot}, EG_INFO,{havedm}, NIL]
  315.     )
  316.   ENDIF
  317. ENDPROC
  318.  
  319. PROC tiny(x:PTR TO guihandle)
  320.   IF havetiny=FALSE
  321.     havetiny:=TRUE
  322.     addmultiA(x.mh,'um..',[SBUTTON,0,'blerk'],
  323.              [EG_CLEAN,{havenot}, EG_INFO,{havetiny}, NIL])
  324.   ENDIF
  325. ENDPROC
  326.  
  327. PROC messy(x:PTR TO guihandle)
  328.   IF havemessy=FALSE
  329.     havemessy:=TRUE
  330.     addmultiA(x.mh,'test-gui',
  331.       [ROWS,
  332.         [COLS,
  333.           [BEVEL,
  334.             [ROWS,
  335.               [BUTTON,{um},'Um,...'],
  336.               [MX,{v},NIL,['One','Two','Three',NIL],FALSE,1],
  337.               [BUTTON,{pom},'PomPomPom'],
  338.               [CHECK,{v},'check this out!',TRUE,FALSE],
  339.               [STR,{v},'input',s,50,3],
  340.               [LISTV,{v},NIL,2,5,NIL,FALSE,0,0]
  341.             ]
  342.           ],
  343.           [BEVEL,
  344.             [EQROWS,
  345.               [STR,{v},'input',s,50,4],
  346.               [INTEGER,{v},'int:',5,3],
  347.               [SLIDE,{v},'tata:     ',FALSE,0,999,20,2,'%3ld'],
  348.               [TEXT,'bla','text:',FALSE,5],
  349.               [NUM,123,'num:',TRUE,5],
  350.               [PALETTE,{v},'kleur:',3,5,2,0],
  351.               [CYCLE,{v},'choose:',['Yep','Nope',NIL],1],
  352.               [SCROLL,{v},FALSE,10,0,2,2]
  353.             ]
  354.           ]
  355.         ],
  356.         [BAR],
  357.         [EQCOLS,
  358.           [BUTTON,1,'Save'],
  359.           [BUTTON,2,'Use'],
  360.           [BUTTON,0,'Cancel']
  361.         ]
  362.       ],
  363.       [EG_CLEAN,{havenot}, EG_INFO,{havemessy},
  364.        EG_MENU,[NM_TITLE,0,'Project',0,  0,0,0,
  365.                  NM_ITEM,0,'Load',   'l',0,0,{um},
  366.                  NM_ITEM,0,'Save',   's',0,0,{um},
  367.                  NM_ITEM,0,'Bla ->', 0,  0,0,0,
  368.                   NM_SUB,0,'aaargh', 'a',0,0,1,
  369.                   NM_SUB,0,'hmmm',   'h',0,0,2,
  370.                  NM_ITEM,0,'Quit',   'q',0,0,0,
  371.                 0,0,0,0,0,0,0]:newmenu,
  372.        NIL]
  373.     )
  374.   ENDIF
  375. ENDPROC
  376.  
  377. PROC um(x) IS WriteF('um!\n')
  378. PROC pom(x) IS WriteF('pom!\n')
  379. PROC v(x,y) IS WriteF('v=\d!\n',y)
  380.