/* AmigaE MUI string example ghh 2018 */
OPT PREPROCESS
MODULE 'amigaLib/boopsi' /* doMethodA() */
MODULE 'muimaster', 'libraries/mui'
MODULE 'utility/tagitem'
ENUM ID_CANCEL=1,ID_USE /* case */
ENUM ER_NONE, ER_MUILIB, ER_APP /* exception handling */
DEF app,win,mystr,btok,btquit /* 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 , 'EMUIString',
MUIA_Application_Version , '$VER: EMUIString 0.01 (02.07.18)',
MUIA_Application_Copyright , 'c2018, ghh',
MUIA_Application_Author , 'ghh',
MUIA_Application_Description, 'E MUI string example.',
MUIA_Application_Base , 'MYSWN',
SubWindow, win:= WindowObject,
MUIA_Window_Title , 'E MUI string',
MUIA_Window_ScreenTitle , 'E MUI string',
MUIA_Window_ID , 'MYWN',
WindowContents, VGroup,
Child,
mystr:= StringObject, StringFrame,
MUIA_String_Contents, 'Amiga', /* obsah stringu na zacatku */
MUIA_String_Reject,':(', /* "zakazane" znaky */
MUIA_ShortHelp, 'Simple string.', /* napoveda v bubline */
End,
Child, HGroup, /* horiz skupina s tlacitkama */
Child, HGroup,
Child, btok:= SimpleButton('Ok'), /* tlacitko Ok */
MUIA_ShortHelp, 'Ok button.', /* napoveda v bubline */
End,
Child, HGroup,
Child, btquit:= SimpleButton('Quit'), /* tlacitko Quit */
MUIA_ShortHelp, 'Quit button.', /* napoveda v bubline */
End,
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 */
doMethodA(btok, [MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_USE])
doMethodA(btquit, [MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_CANCEL])
set(win,MUIA_Window_Open,MUI_TRUE) /* open main win */
WHILE running
result:=doMethodA(app,[MUIM_Application_Input,{signals}])
SELECT result
CASE ID_USE /* provede funkci esay */
esay()
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
PROC esay()
DEF tx
DEF buff[512]:STRING /* estring [delka] pro execute */
get(mystr,MUIA_String_Contents,{tx}) /* zjisti obsah stringu a ulozi do tx */
StringF(buff,'echo \q\s\q',tx) /* buffer pro AmigaDOS prikaz echo */
Execute(buff,0,0) /* provede prikazy co jsou v bufferu */
ENDPROC
|