home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / easygui_os12 / examples / easygui / all_os12.e next >
Encoding:
Text File  |  2000-06-05  |  10.0 KB  |  393 lines

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