/* URLBar&D 1.1 (11.11.2000) */ signal on halt signal on break_c call init call CreateApp call HandleApp /* never reached */ init: procedure expose global. l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit if AddLibrary("rxmui.library")~=0 then exit global.url.0.url="http://www.amiga.org"; global.url.0.name="Amiga org" global.url.1.url="http://www.napster.com"; global.url.1.name="Napster" global.url.2.url="http://web.tiscalinet.it/amiga/rxmui"; global.url.2.name="RxMUI" global.url.3.url="http://ftp.unina.it/~aminet/"; global.url.3.name="Aminet" global.url.max=4 return HandleApp: procedure expose global. 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="DROPEVENT" then call DropFun(h.from,h.to) when left(h.event,1)="B" then do parse var h.event "B" b say global.url.b.url global.url.b.name end otherwise interpret h.event end end /* never reached */ err: procedure expose sigl RxMUIError parse arg res msg = ProgramName()":" GetRxMUIString(res) "in line" sigl-1 if RxMUIError~="RXMUIERROR" then msg = msg "["RxMUIError"]" say msg exit CreateApp: procedure expose global. strip.0="mproject" mproject.class="menu" mproject.Title="Project" mproject.0=menuitem("mabout","About...","?") mproject.1=menuitem("maboutrxmui","About RxMUI...") mproject.2=menuitem("maboutmui","About MUI...") mproject.3=menuitem("","BAR") mproject.4=menuitem("mhide","Hide","H") mproject.5=menuitem("","BAR") mproject.6=menuitem("mquit","Quit","Q") strip.1="meditor" meditor.class="menu" meditor.Title="Editor" meditor.0=menuitem("msort","Sort") meditor.1=menuitem("","BAR") meditor.2=menuitem("mmui","MUI...") res=NewObj("menustrip","strip") if res~=0 then call err(res) app.title="URLBar" app.version="$VER: URLBar&D 1.0 (12.10.2000)" app.copyright="©2000, alfie" app.author="alfie" app.description="URLBar (RxMUI D&D example)" app.base="URLBAR" app.MenuStrip="strip" app.SubWindow="win" win.title="URLBar" win.ScreenTitle="URLBar" win.ID="MWIN" win.contents="mgroup" mgroup.0="g" g.class="group" g.Frame="group" g.FrameTitle="Drag & Drop these buttons!" g.SameSize=1 g.columns=4 do i=0 to global.url.max-1 interpret "b"i".draggable=1" interpret "b"i".dropable=1" g.i=button("b"i,global.url.i.name) end res=NewObj("application","app") if res~=0 then call err(res) do i=0 to global.url.max-2 do j=i+1 to global.url.max-1 call DandD("b"i,"b"j,"both") end call Notify("b"i,"pressed",0,"app","ReturnID") end call Notify("b"i,"pressed",0,"app","ReturnID") call Notify("win","CloseRequest",1,"app","ReturnID","quit") call Notify("mabout","MenuTrigger","EveryTime","app","about","win") call Notify("maboutrxmui","MenuTrigger","EveryTime","app","AboutRxMUI","win") call Notify("maboutmui","menutrigger","everytime","app","AboutMUI","win") call Notify("mhide","menutrigger","everytime","app","set","iconified",1) call Notify("mquit","menutrigger","everytime","app","ReturnID","quit") call Notify("msort","menutrigger","everytime","app","return","call sort") call Notify("mmui","menutrigger","everytime","app","OpenConfigWindow") call set("win","open",1) call GetAttr("win","open","o") if o=0 then do say ProgramName()": can't open window" exit end return halt: break_c: exit /* this is a drag and drop between 2 NList view */ DropFun: procedure expose global. parse arg from,to parse var from "B" f parse var to "B" t TempURL = global.url.f.url TempName = global.url.f.name global.url.f.url = global.url.t.url global.url.f.name = global.url.t.name global.url.t.url = TempURL global.url.t.name = TempName call GetAttr(from,"contents",ft) call GetAttr(to,"contents",tt) call set(from,"contents",tt) call set(to,"contents",ft) return sort: procedure expose global. call set("win","sleep",1) do i=0 to global.url.max-2 do j=i+1 to global.url.max-1 if global.url.j.name