/* RxMUI by Alfonso Ranieri */
/* ghh RxMUI AppWindow */
signal on halt
signal on break_c
call Init /* volá funkci Init */
call CreateApp /* volá funkci CreateApp (hlavní program) */
call HandleApp /* volá funkci HandleApp (hlavní event) */
/**************************************** přítomnost knihoven Alfie ****/
Init: procedure expose global.
l="rmh.library";if ~show("L",l) then;if ~AddLib(l,0,-30) then exit
if RMH_AddLibrary("rexxsupport.library","rxmui.library")~=0 then exit
call Pragma("W","N")
call RxMUIOpt("DebugMode ShowErr")
return
/******************************************************** start gui ****/
CreateApp: procedure expose global. /* hlavní program */
app.Title="RxMUI AppWindow" /* název programu (v Exchange) */
app.Version="$VER: RxMUI AppWindow 0.1 (02.11.2016)" /* verze programu */
app.Copyright="Donotpanicware ghh 2016"
app.Author="ghh"
app.Description="RxMUI AppWindow" /* popis programu (v Exchange) */
app.Base="RXMUIAPP" /* název Arexx portu */
app.SubWindow="win" /* název hlavního okna "win" */
win.ID="MWIN" /* id hlavního okna */
win.ScreenTitle="RxMUI AppWindow" /* titulek na liště Workbenche */
win.Title="AppWindow" /* titulek na okně */
win.AppWindow=1 /* důležité aby fungoval drop ikon do okna */
win.Contents="mgroup" /* okno obsahuje hlavní skupinu s názvem "mgroup" */
mgroup.0="txg" /* pole "txg" */
txg.Class="Group" /* "txg" je další skupina */
txg.Frame="Group" /* typ rámečku */
txg.0=VSpace() /* vertikální mezera bez hodnoty = libovolně */
txg.1=Text("textpole","Drop icon here!","None","WindowBack",) /* textobjekt s názvem "textpole" */
txg.2=VSpace() /* vertikální mezera */ /* konec popisu gui */
/*********************************************************** notify ****/
if NewObj("Application","App")>0 then exit /* nový objekt - aplikace "App" */
call AppMessage("win") /* ještě toto je potřeba přidat pro drop do okna "win" */
call Notify("win","CloseRequest",1,"App","ReturnID","QUIT") /* opuštění programu zavřením okna */
call Set("win","Open",1)
return
/************************************************* funkce AppWinFun ****/
AppWinFun: procedure expose g.
parse arg kam,coto /* převede parametry se kterýmy byla funkce volána na proměnné "kam" a "coto" */
/* "kam" kam byla ikona upuštěna (do okna WIN) a "coto" co bylo do okna upuštěno */
call Set("textpole","Contents",coto) /* nastav u objektu "textpole", "Contents" obsah, název */
return
/*********************************************** hlavní event alfie ****/
HandleApp: procedure expose g.
ctrl_c=2**12
do forever
call NewHandle("App","h",ctrl_c)
if and(h.signals,ctrl_c)>0 then exit
select
when h.event="QUIT" then exit
when h.event="APPEVENT" then call AppWinFun(h.to,h.name) /* volá funkci "AppWinFun" se dvěma parametry */
/* názvy parametrů "h.to" a "h.name" jsou povinné viz dokumentace */
otherwise interpret h.event
end
end
/****************************************************** exit signal ****/
halt:
break_c:
exit
|