/* AmigaE MUI hello example ghh 2018 */
OPT PREPROCESS
MODULE 'amigaLib/boopsi' /* doMethodA() */
MODULE 'muimaster', 'libraries/mui'
MODULE 'utility/tagitem'
ENUM ID_CANCEL=1 /* case */
ENUM ER_NONE, ER_MUILIB, ER_APP /* exception handling */
DEF app,win /* gui */
PROC main() HANDLE
DEF signals,result
DEF running=TRUE
IF (muimasterbase := OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN))=NIL THEN Raise(ER_MUILIB)
/***** AmigaOS4 ****/
#ifdef __AMIGAOS4__
muimasteriface := GetInterface(muimasterbase, 'main', 1, NIL)
#endif
/**** Main GUI ****/
app:= ApplicationObject,
MUIA_Application_Title , 'EMUIHello',
MUIA_Application_Version , '$VER: EMUIHello 0.01 (25.06.18)',
MUIA_Application_Copyright , 'c2018, ghh',
MUIA_Application_Author , 'ghh',
MUIA_Application_Description, 'E MUI hello example.',
MUIA_Application_Base , 'MYHWN',
SubWindow, win:= WindowObject,
MUIA_Window_Title , 'E MUI hello',
MUIA_Window_ScreenTitle , 'E MUI Hello',
MUIA_Window_ID , 'MYWN',
WindowContents, HGroup,
Child,
TextObject,
MUIA_Text_Contents, 'Hello Amiga!',
End,
End,
End,
End
IF (app=NIL) THEN Raise(ER_APP)
/**** Notify ****/
doMethodA(win,[MUIM_Notify,MUIA_Window_CloseRequest,MUI_TRUE,app,2,MUIM_Application_ReturnID,ID_CANCEL]) /* zavreni hlavniho okna */
set(win,MUIA_Window_Open,MUI_TRUE) /* open main win */
WHILE running
result:=doMethodA(app,[MUIM_Application_Input,{signals}])
SELECT result
CASE ID_CANCEL
running:=FALSE
ENDSELECT
IF (running AND signals) THEN Wait(signals)
ENDWHILE
set(win,MUIA_Window_Open,FALSE) /* zavre hlavni okno po obdrzeni quit */
Raise (ER_NONE)
/**** Shut down ****/
EXCEPT
IF app THEN Mui_DisposeObject(app)
#ifdef __AMIGAOS4__
DropInterface(muimasteriface)
#endif
IF muimasterbase THEN CloseLibrary(muimasterbase)
SELECT exception
CASE ER_MUILIB
WriteF('Failed to open \s.\n',MUIMASTER_NAME)
CleanUp(20)
CASE ER_APP
WriteF('Failed to create application.\n')
CleanUp(20)
ENDSELECT
ENDPROC
|