home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / gui / E_Mgui_Src.lha / e_mgui_src / External_Example.e next >
Encoding:
Text File  |  1997-01-21  |  1.8 KB  |  91 lines

  1. /*
  2.     MGUI Example
  3.  
  4.     MGUI_ADDEXTERNAL tag example
  5.  
  6.     (C)Copyright 1996/97 Amiga Foundation Classes
  7.  
  8.     See: http://www.intercom.it/~fsoft/afc.html
  9.  
  10.          FOR more info about AFC AND more modules
  11.  
  12. */
  13.  
  14. OPT OSVERSION=37
  15.  
  16. MODULE 'afc/mgui_oo',
  17.        'exec/ports',
  18.        'intuition/intuition',
  19.        'tools/easygui'
  20.  
  21. DEF times=0
  22.  
  23. PROC main() HANDLE
  24.   DEF mg=NIL:PTR TO mgui
  25.   DEF win=NIL:PTR TO window
  26.   DEF sig
  27.  
  28.   NEW mg.mgui()
  29.  
  30.   mg.add('MGUI Main', [ROWS,
  31.                             [SBUTTON, {kill_all}, 'Kill ALL'],
  32.                             [SBUTTON, {msg}, 'Msg'],
  33.                             [SBUTTON, {newgui}, 'NEW GUI!']
  34.                          ], mg)
  35.   mg.setattrs(NEW [MGUI_MAIN, TRUE,0,0])
  36.  
  37.   test(mg)
  38.  
  39.   test(mg)
  40.  
  41.   test(mg)
  42.  
  43.   IF (win:=OpenWindowTagList(NIL, [WA_WIDTH, 200,
  44.                                WA_HEIGHT, 100,
  45.                                WA_TITLE, 'Click Inside!',
  46.                                WA_IDCMP, IDCMP_MOUSEBUTTONS,
  47.                                NIL, NIL]))=NIL THEN Raise("win")
  48.  
  49.   sig:=win.userport::mp.sigbit
  50.   sig:=Shl(1, sig)
  51.  
  52.   mg.setattrs([MGUI_ADDEXTERNAL, [{click}, sig, [win, win.userport, mg, sig, {win}]],
  53.              0,0])
  54.  
  55.   WHILE (mg.empty() = FALSE)
  56.     mg.message()
  57.   ENDWHILE
  58.  
  59. EXCEPT DO
  60.   IF exception THEN WriteF('Exception:\z\h[8]\n', exception)
  61.   END mg
  62.   IF win THEN CloseWindow(win)
  63.   CleanUp(0)
  64. ENDPROC
  65.  
  66. PROC newgui(mg:PTR TO mgui) IS test(mg)
  67.  
  68.  
  69. PROC kill_all(mg:PTR TO mgui) IS mg.clear()
  70.  
  71. PROC msg() IS WriteF('Message!\n')
  72.  
  73. PROC test(mg:PTR TO mgui)
  74.   DEF gui:PTR TO LONG
  75.  
  76.   gui:=NEW [ROWS,
  77.        NEW   [SBUTTON, {msg}, 'Msg']
  78.            ]
  79.  
  80.   mg.add('NEW Window', gui)
  81. ENDPROC
  82.  
  83. PROC click(t:PTR TO LONG)
  84.   DEF x:PTR TO LONG
  85.  
  86.   x:=GetMsg(t[1])
  87.   ReplyMsg(x)
  88.   WriteF('Win Clicked: \d Times!\n', times++)
  89. ENDPROC
  90.  
  91.