home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / RxMUI / Docs / English / docsbrowser.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2001-09-23  |  22.6 KB  |  711 lines

  1. /*
  2.  *
  3.  * A good RxMUI programming example.
  4.  * A good RxMUI HTML documentation browser.
  5.  *
  6.  */
  7.  
  8. signal on halt
  9. signal on break_c
  10.  
  11. call StartInit()
  12. call StartCreateApp()
  13. call ReadNav("PROGDIR:navigator.html")
  14. call FinishInit()
  15. call FinishCreateApp()
  16. call AdvanceIntro("Loading docs...")
  17. call set("mwin","Open",1)
  18. if ~xget("mwin","Open") then do
  19.     call EasyRequest("Can't open window")
  20.     exit
  21. end
  22. call AdvanceIntro("Done.")
  23. call Dispose("iwin")
  24. call HandleApp
  25.  
  26. /* never reached */
  27.  
  28. /***********************************************************************/
  29. StartInit: procedure expose global.
  30.     l="rmh.library";if ~show("L",l) then;if ~AddLib(l,0,-30) then exit
  31.     if AddLibrary("rxmui.library")~=0 then exit
  32.     call RxMUIOpt("DebugMode ShowErr")
  33.     call pragma(w,n)
  34.     call ProgDir()
  35.     return
  36. /***********************************************************************/
  37. FinishInit: procedure expose global.
  38.     call AdvanceIntro("Initializing...")
  39.  
  40.     global.history.0.target="right"
  41.     global.history.0.pred=-1
  42.     global.history.0.succ=-1
  43.     global.history.current=0
  44.     global.history.max=1
  45.  
  46.     global.Gadgets.0="imdir";   global.Gadgets.0.Attr="Contents"
  47.     global.Gadgets.1="vm";      global.Gadgets.1.Attr="active"
  48.     global.Gadgets.2="spc";     global.Gadgets.2.Attr="value"
  49.     global.Gadgets.3="bl";      global.Gadgets.3.Attr="Selected"
  50.     global.Gadgets.4="rf";      global.Gadgets.4.Attr="Selected"
  51.     global.Gadgets.5="si";      global.Gadgets.5.Attr="Selected"
  52.     global.Gadgets.6="sn";      global.Gadgets.6.Attr="Selected"
  53.  
  54.     global.Configwin=0
  55.  
  56.     call ReadConfig()
  57.  
  58.     global.file=AddPart("file://PROGDIR:","introduction.html")
  59.     global.history.0.url="introduction.html"
  60.  
  61.     global.DummySpace=HSpace()
  62.  
  63.     return
  64. /**************************************************************************/
  65. ReadConfig: procedure expose global.
  66.  
  67.     call AdvanceIntro("Reading configuration...")
  68.     global.BorderLess=1
  69.     if GetToolType("DocsBrowser","BORDERLESS","BR",global.BorderLess) then
  70.         if DataType(br,"N") then
  71.             if br=0 | br=1 then global.BorderLess=br
  72.  
  73.     global.RaisingFrame=1
  74.     if GetToolType("DocsBrowser","RAISINGFRAME","rf",global.RaisingFrame) then
  75.         if DataType(rf,"N") then
  76.             if rf=0 | rf=1 then global.RaisingFrame=rf
  77.  
  78.     global.SmallImages=0
  79.     if GetToolType("DocsBrowser","SMALLIMAGES","si",global.SmallImages) then
  80.         if DataType(si,"N") then
  81.             if si=0 | si=1 then global.SmallImages=si
  82.  
  83.     global.Sunny=0
  84.     if GetToolType("DocsBrowser","SUNNY","sn",global.Sunny) then
  85.         if DataType(sn,"N") then
  86.             if su=0 | su=1 then global.Sunny=sn
  87.  
  88.     global.ViewMode="GFX"
  89.     if GetToolType("DocsBrowser","VIEWMODE","VM",global.ViewMode) then do
  90.         vm=find("TEXTGFX GFX TEXT",vm)
  91.         if vm>0 then global.ViewMode=vm-1
  92.     end
  93.     else global.ViewMode=1
  94.  
  95.     global.ImagesDir="Images"
  96.     call GetToolType("DocsBrowser","IMAGESDIR","GLOBAL.IMAGESDIR","Images")
  97.  
  98.     global.Spacing=0
  99.     if GetToolType("DocsBrowser","SPACING","SP",global.Spacing) then
  100.         if DataType(su,"N") then
  101.             if su>-1 & su<16 then global.Spacing=sp
  102.  
  103.     return
  104. /**************************************************************************/
  105. UseConfig: procedure expose global.
  106.  
  107.     call set("mwin","Sleep",1)
  108.  
  109.     call DoMethod("DummyBarG","InitChanges")
  110.     call Dispose("sb")
  111.  
  112.     call MultiGetAttr("global.Gadgets")
  113.  
  114.     global.ImagesDir=global.Gadgets.0.Value
  115.     global.ViewMode=global.Gadgets.1.Value
  116.     global.Spacing=global.Gadgets.2.Value
  117.     global.BorderLess=global.Gadgets.3.Value
  118.     global.RaisingFrame=global.Gadgets.4.Value
  119.     global.SmallImages=global.Gadgets.5.Value
  120.     global.Sunny=global.Gadgets.6.Value
  121.  
  122.     bar=CreateBar("sb",global.ImagesDir,global.Spacing,global.ViewMode,global.BorderLess,global.RaisingFrame,global.SmallImages,global.Sunny,0)
  123.  
  124.     call SetBarNotifies()
  125.     call SetBarGadgets()
  126.  
  127.     call Add("DummyBarG",bar)
  128.     call DoMethod("DummyBarG","ExitChanges")
  129.  
  130.     call set("mwin","Sleep",0)
  131.  
  132.     return
  133. /**************************************************************************/
  134. SaveConfig: procedure expose global.
  135.     call set("app","Sleep",1)
  136.     call info("Saving preferences...")
  137.     call UseConfig()
  138.     call PutToolType("DocsBrowser","IMAGESDIR",global.ImagesDir)
  139.     call PutToolType("DocsBrowser","VIEWMODE",word("TEXTGFX GFX TEXT",global.ViewMode+1))
  140.     call PutToolType("DocsBrowser","SPACING",global.Spacing)
  141.     call PutToolType("DocsBrowser","BORDERLESS",global.BorderLess)
  142.     call PutToolType("DocsBrowser","RAISINGFRAME",global.RaisingFrame)
  143.     call PutToolType("DocsBrowser","SMALLIMAGES",global.SmallImages)
  144.     call PutToolType("DocsBrowser","SUNNY",global.Sunny)
  145.     call info("")
  146.     call set("app","Sleep",0)
  147.     return
  148. /**************************************************************************/
  149. StartCreateApp: procedure expose global.
  150.  
  151.     strip.0="mproject"
  152.      mproject.Title="Project"
  153.      mproject.Class="menu"
  154.       mproject.0=MenuItem("mabout","About...","?")
  155.       mproject.1=MenuItem("maboutrxmui","About RxMUI...")
  156.       mproject.2=MenuItem("maboutmui","About MUI...")
  157.       mproject.3=MenuItem("","BAR")
  158.       mproject.4=MenuItem("mhide","Hide","H")
  159.       mproject.5=MenuItem("","BAR")
  160.       mproject.6=MenuItem("mquit","Quit","Q")
  161.     strip.1="meditor"
  162.      meditor.Title="Editor"
  163.      meditor.Class="menu"
  164.       meditor.0=MenuItem("msearch","Search...","G")
  165.     strip.2="mprefs"
  166.      mprefs.Title="Preferences"
  167.      mprefs.Class="menu"
  168.       mprefs.0=MenuItem("mfull","Full screen","F","CHEKIT TOGGLE")
  169.       mprefs.1=MenuItem("","BAR")
  170.       mprefs.2=MenuItem("mdocs","DocsBrowser...","D")
  171.       mprefs.3=MenuItem("mmui","MUI...","M")
  172.     res=NewObj("menustrip","strip")
  173.     if res~=0 then call err(res)
  174.  
  175.     app.Title="RxMUI docs browser"
  176.     app.Version="$" || "VER: DocsBrowser 13.0 (18.9.2001)"
  177.     app.Copyright="Copyright 1999-2001 Alfonso Ranieri"
  178.     app.Author="Alfonso Ranieri"
  179.     app.Description="RxMUI documentation browser."
  180.     app.Base="DOCSBROWSER"
  181.     app.DiskObject="docs"
  182.     app.MenuStrip="strip"
  183.     app.SubWindow="iwin"
  184.  
  185.      iwin.BorderLess=1
  186.      iwin.CloseGadget=0
  187.      iwin.DepthGadget=0
  188.      iwin.DragBar=0
  189.      iwin.NoMenus=1
  190.      iwin.SizeGadget=0
  191.      iwin.Width=-200-25
  192.      iwin.Activate=0
  193.      iwin.Contents="igroup"
  194.  
  195.       igroup.Frame="inputlist"
  196.        igroup.0="ititle"
  197.         ititle.Class="text"
  198.         ititle.Font="Big"
  199.         ititle.Contents=ParseText("%c%bRxMUI documentation")
  200.        igroup.1=hbar()
  201.        igroup.2=vspace(2)
  202.        igroup.3="intro"
  203.         intro.Class="gauge"
  204.         intro.Horiz=1
  205.         intro.Max=5
  206.         intro.Current=0
  207.  
  208.     res=NewObj("application","app")
  209.     if res~=0 then do
  210.         call EasyRequest("Can't create Application")
  211.         exit
  212.     end
  213.     return
  214. /**************************************************************************/
  215. FinishCreateApp: procedure expose global.
  216.  
  217.     call AdvanceIntro("Creating main window...")
  218.     call set("iwin","Open",1)
  219.  
  220.     mHContext.0="mhc"
  221.      mhc.Title=""
  222.      mhc.Class="menu"
  223.      do i=0 to global.href.num-1
  224.          mhc.i=MenuItem("mhc."i,global.href.i.name)
  225.      end
  226.     res=NewObj("menustrip","mHContext")
  227.     if res~=0 then call err(res)
  228.  
  229.      mwin.ID="MWIN"
  230.      mwin.Title="RxMUI DocsBrowser"
  231.      mwin.UseBottomBorderScroller=1
  232.      mwin.UseRightBorderScroller=1
  233.      mwin.Contents="mgroup"
  234.  
  235.       mgroup.0="hg"
  236.        hg.Class="Group"
  237.        hg.Horiz=1
  238.        hg.HorizSpacing=2
  239.  
  240.         hg.0="NavGroup"
  241.          navGroup.Class="Group"
  242.          navGroup.FixWidthTxt=global.maxNav
  243.          navGroup.0="BarGroup"
  244.            BarGroup.Class="Group"
  245.            BarGroup.horiz=1
  246.            BarGroup.0="bg"
  247.             bg.Class="Group"
  248.             bg.Horiz=1
  249.              bg.0="DummyBarG"
  250.               DummyBarG.Class="Group"
  251.               DummyBarG.Spacing=0
  252.               DummyBarG.0=CreateBar("sb",global.ImagesDir,global.Spacing,global.ViewMode,global.BorderLess,global.RaisingFrame,global.SmallImages,global.Sunny,0)
  253.           bg.1=HSpace()
  254.          navGroup.1="htmlNav"
  255.           htmlNav.Class="HTMLview"
  256.           htmlNav.Frame="InputList"
  257.           htmlNav.NoContextMenu=1
  258.           htmlNav.NTAutoLoad=1
  259.  
  260.         hg.1="doc"
  261.          doc.Class="scrollgroup"
  262.          doc.UseWinBorder=1
  263.          doc.virtgroupcontents="html"
  264.           html.Class="HTMLview"
  265.           html.NoContextMenu=1
  266.           html.NTAutoLoad=1
  267.           html.Frame="Virtual"
  268.  
  269.       mgroup.1=text("info")
  270.  
  271.     res=NewObj("window","mwin")
  272.     if res~=0 then do
  273.         call EasyRequest("Can't create main window")
  274.         exit
  275.     end
  276.     call Add("app","mwin")
  277.  
  278.     swin.ID="SWIN"
  279.     swin.Title="Search window"
  280.     swin.Contents="msgroup"
  281.      msgroup.0="ssg0"
  282.       ssg0.Class="Group"
  283.       ssg0.Horiz=1
  284.        ssg0.0=Label("Searc_h")
  285.        ssg0.1=String("search","h")
  286.      msgroup.1="ssg1"
  287.        ssg.1="ssg1"
  288.         ssg1.Class="Group"
  289.         ssg1.Horiz=1
  290.          ssg1.0=Button("pred","_Pred")
  291.          ssg1.1=HSpace()
  292.          ssg1.2=Button("succ","_Succ")
  293.     res=NewObj("window","swin")
  294.     if res~=0 then do
  295.         call EasyRequest("Can't create search window")
  296.         exit
  297.     end
  298.     call Add("app","swin")
  299.  
  300.     call AdvanceIntro("Setting up ...")
  301.  
  302.     call Notify("mwin","CloseRequest",1,"app","ReturnID","quit")
  303.     call Notify("swin","CloseRequest",1,"swin","set","open",0)
  304.  
  305.     call Notify("mwin","InputEvent","ramiga b","app","Return","call GoURL('BACK')")
  306.     call Notify("mwin","InputEvent","ramiga n","app","Return","call GoURL('FORWARD')")
  307.     call Notify("mwin","InputEvent","ramiga r","html","Reload")
  308.  
  309.     call Notify("mabout","MenuTrigger","Everytime","app","About","mwin")
  310.     call Notify("maboutrxmui","MenuTrigger","Everytime","app","AboutRXMUI","mwin")
  311.     call Notify("maboutmui","MenuTrigger","Everytime","app","AboutMUI","mwin")
  312.     call Notify("mhide","MenuTrigger","Everytime","app","Set","Iconified",1)
  313.     call Notify("mquit","MenuTrigger","Everytime","app","ReturnID","QUIT")
  314.     call Notify("msearch","MenuTrigger","Everytime","swin","set","open",1)
  315.     call Notify("mfull","Checked","Everytime","NavGroup","set","ShowMe","nottriggervalue")
  316.     call notify("mfull","Checked","Everytime","info","set","ShowMe","nottriggervalue")
  317.     call Notify("mdocs","MenuTrigger","Everytime","app","Return","call OpenConfigWindow()")
  318.     call Notify("mmui","MenuTrigger","Everytime","app","OpenConfigWindow")
  319.  
  320.     call SetBarNotifies()
  321.  
  322.     call Notify("html","Title","Everytime","mwin","Set","title","TriggerValue")
  323.     call Notify("html","ClickedURL","Everytime","app","Return","call NewURLFun(h.clickedurl)","triggerattr")
  324.     call Notify("html","CurrentURL","Everytime","info","Set","Contents","TriggerValue")
  325.  
  326.     call Notify("search","NewContents","Everytime","app","Return","call SearchFun('SEARCHTOP ')")
  327.     call Notify("pred","Pressed",0,"app","Return","call SearchFun('SEARCHBACK')")
  328.     call Notify("succ","Pressed",0,"app","Return","call SearchFun('SEARCHNEXT')")
  329.  
  330.     call set("mwin","DefaultObject","html")
  331.  
  332.     call DoMethod("html","GoURL",global.file)
  333.  
  334.     call SetBarGadgets()
  335.  
  336.     call Notify("htmlNav","ClickedURL","Everytime","app","Return","call NewURLFun(filepart(h.clickedurl))","triggerattr")
  337.  
  338.     call DoMethod("htmlNav","GoURL","navigator.html")
  339.  
  340.     do i=0 to global.href.num-1
  341.         call Notify("mhc."i,"menutrigger","Everytime","app","Return","call NewURLFun("global.href.i")")
  342.     end
  343.  
  344.     call set("mgroup","ContextMenu","mHContext")
  345.  
  346.     return
  347. /***********************************************************************/
  348. SearchFun: procedure expose global.
  349. parse arg mode
  350.     call GetAttr("search","Contents","string")
  351.     if string~="" then call DoMethod("html","search",string,right(mode,4))
  352.     return
  353. /**************************************************************************/
  354. CreateBar: procedure expose global.
  355. parse arg name,dir,sp,vm,bl,rf,si,su,rec
  356.  
  357.     bar.Spacing=sp
  358.     bar.Spread=(sp>0)
  359.     bar.Horiz=1
  360.     bar.SameHeight=1
  361.     bar.SameWidth=1
  362.  
  363.     if rec then bar.ViewMode=2
  364.     else bar.ViewMode=vm
  365.     bar.Borderless=bl
  366.     bar.RaisingFrame=rf
  367.     bar.SmallImages=si
  368.     bar.Sunny=su
  369.  
  370.     im=(~rec & vm~=2)
  371.  
  372.     if im then bar.0.Img=AddPart(dir,"Back")
  373.     bar.0.Text="Back"
  374.  
  375.     if im then bar.1.Img=AddPart(dir,"Forward")
  376.     bar.1.Text="Forward"
  377.  
  378.     if im then bar.2.Img=AddPart(dir,"Reload")
  379.     bar.2.Text="Reload"
  380.  
  381.     if im then bar.3.Img=AddPart(dir,"Stop")
  382.     bar.3.Text="Stop"
  383.  
  384.     call RxMUIOpt("")
  385.     res=NewObj("speedbar",name,"bar")
  386.     call RxMUIOpt("DebugMode ShowErr")
  387.  
  388.     global.textforced=rec
  389.  
  390.     if res~=0 then
  391.         if im & ~rec then do
  392.             return CreateBar(name,dir,sp,2,bl,rf,si,su,1)
  393.         end
  394.         else do
  395.             call EasyRequest("Can't create Speedbar")
  396.             exit
  397.         end
  398.  
  399.     return name
  400. /**************************************************************************/
  401. SetBarNotifies: procedure expose global.
  402.     call Notify("sb.0","Pressed",0,"app","Return","call GoURL('BACK')")
  403.     call Notify("sb.1","Pressed",0,"app","Return","call GoURL('FORWARD')")
  404.     call Notify("sb.2","Pressed",0,"html","Reload")
  405.     call Notify("sb.3","Pressed",0,"html","Abort")
  406.     return
  407. /**************************************************************************/
  408. info: procedure expose global.
  409. parse arg msg
  410.     call set("info","Contents",msg)
  411.     return
  412. /**************************************************************************/
  413. SetBarGadgets: procedure expose global.
  414.     c=global.history.current
  415.     call DoMethod("sb","sbset",0,"Disabled",global.history.c.pred==-1)
  416.     call DoMethod("sb","sbset",1,"Disabled",global.history.c.succ==-1)
  417.     return
  418. /**************************************************************************/
  419. halt:
  420. break_c:
  421.     exit
  422. /**************************************************************************/
  423. HandleApp: procedure expose global.
  424.     ctrl_c=2**12
  425.     do forever
  426.         call NewHandle("app","h",ctrl_c)
  427.         if and(h.signals,ctrl_c)>0 then exit
  428.         select
  429.             when h.event="QUIT" then exit
  430.             otherwise interpret h.event
  431.         end
  432.     end
  433.     /* never reached */
  434. /***********************************************************************/
  435. GoURL: procedure expose global.
  436. parse arg method,nurl,ntarget
  437.  
  438.     select
  439.         when upper(left(nurl,12))="AREXXSCRIPT:" then do
  440.             parse var nurl +12 cmd
  441.             INTERPRET cmd
  442.             return
  443.         end
  444.  
  445.         when (upper(left(nurl,7))="HTTP://") |,
  446.              (upper(left(nurl,6))="FTP://") |,
  447.              (upper(left(nurl,7))="MAILTO:") then do
  448.             call OpenURL(nurl)
  449.             return
  450.         end
  451.  
  452.         otherwise
  453.             select
  454.  
  455.                 when method="NEWURL" then do
  456.                     i=global.history.current
  457.                     m=global.history.max
  458.  
  459.                     global.history.m.url=nurl
  460.                     global.history.m.target=ntarget
  461.                     global.history.m.pred=i
  462.                     global.history.m.succ=-1
  463.  
  464.                     global.history.i.succ=m
  465.                     global.history.current=m
  466.                     global.history.max=m+1
  467.  
  468.                     call DoMethod("html","GoURL",nurl,ntarget)
  469.                 end
  470.  
  471.                 when method="BACK" then do
  472.                     i=global.history.current
  473.                     if global.history.i.pred>-1 then do
  474.                         i=global.history.i.pred
  475.                         call DoMethod("html","GoURL",global.history.i.url,global.history.i.target)
  476.                         global.history.current=i
  477.                     end
  478.                 end
  479.  
  480.                 when method="FORWARD" then do
  481.                     i=global.history.current
  482.                     if global.history.i.succ>-1 then do
  483.                         i=global.history.i.succ
  484.                         call DoMethod("html","GoURL",global.history.i.url,global.history.i.target)
  485.                         global.history.current=i
  486.                     end
  487.                 end
  488.             end
  489.     end
  490.  
  491.     call SetBarGadgets()
  492.  
  493.     return
  494. /***********************************************************************/
  495. NewURLFun: procedure expose global.
  496. parse arg clicked
  497.     i=global.history.current
  498.     if upper(global.history.i.url)=upper(clicked) then return
  499.     call GetAttr("html","target","ntarget")
  500.     call GoURL("NEWURL",clicked,ntarget)
  501.     return
  502. /**************************************************************************/
  503. OpenConfigWindow: procedure expose global.
  504.  
  505.     if ~global.ConfigWin then do
  506.  
  507.         call set("app","Sleep",1)
  508.         call info("Creating preferences window...")
  509.  
  510.         cwin.ID="CWIN"
  511.         cwin.Title="DocsBrowser Preferences"
  512.         cwin.Contents="cmgroup"
  513.  
  514.          cmgroup.0="chg"
  515.           chg.Class="Group"
  516.           chg.Horiz=1
  517.  
  518.            chg.0="lister"
  519.             lister.Class="listview"
  520.             lister.Weight=0
  521.             lister.List="list"
  522.              list.Class="listtree"
  523.              list.Frame="inputlist"
  524.               list.0="Bar"
  525.  
  526.            chg.1="pager"
  527.             pager.Class="Group"
  528.             pager.PageMode=1
  529.             pager.Frame="readlist"
  530.  
  531.               BarPage.Class="Group"
  532.                BarPage.0="cbg"
  533.                 cbg.Class="Group"
  534.                 cbg.Horiz=1
  535.                 cbg.0=hspace()
  536.                 cbg.1="CDummyBarG"
  537.                  CDummyBarG.Class="Group"
  538.                  CDummyBarG.Spacing=0
  539.                   CDummyBarG.0="csb"
  540.                    csb.Class="rectangle"
  541.                 cbg.2=HSpace()
  542.                BarPage.1=HBar()
  543.                BarPage.2="cidg"
  544.                 cidg.Class="Group"
  545.                 cidg.Horiz=1
  546.                 cidg.0=Label("_Images")
  547.                  cidg.1="popd"
  548.                   popd.Class="popasl"
  549.                   popd.String=string("imdir",'i')
  550.                   popd.DrawersOnly=1
  551.                BarPage.3="cscg"
  552.                 cscg.Class="Group"
  553.                 cscg.Columns=4
  554.                  cscg.0=Label("_BorderLess")
  555.                  cscg.1=CheckMark("bl",,'b')
  556.                  cscg.2=Label("_RaisingFrame")
  557.                  cscg.3=CheckMark("rf",,'r')
  558.                  cscg.4=Label("S_mallImages")
  559.                  cscg.5=CheckMark("si",,'m')
  560.                  cscg.6=Label("Sunn_y")
  561.                  cscg.7=CheckMark("sn",,'y')
  562.                  cscg.8=Label("Spacing")
  563.                  cscg.9="spc"
  564.                   spc.Class="numericbutton"
  565.                   spc.Min=0
  566.                   spc.Max=15
  567.                  cscg.10=HSpace()
  568.                  cscg.11=HSpace()
  569.                BarPage.4="vm"
  570.                 vm.Class="cycle"
  571.                 vm.Entries="TextGfx|Gfx|Text"
  572.              pager.0=MakeObj(,"VCenter","BarPage")
  573.  
  574.          cmgroup.1="cbug"
  575.           cbug.Class="Group"
  576.           cbug.Horiz=1
  577.            cbug.0=Button("csave","_Save")
  578.            cbug.1=Button("cuse","_Use")
  579.            cbug.2=Button("ccancel","_Cancel")
  580.  
  581.         res=NewObj("window","cwin")
  582.         if res~=0 then exit
  583.  
  584.         call Add("app","cwin")
  585.  
  586.         call Notify("cwin","CloseRequest",1,"cwin","Set","Open",0)
  587.  
  588.         call Notify("imdir","NewContents","Everytime","app","Return","call CBarChanged()")
  589.         call Notify("spc","Value","Everytime","app","Return","call CBarChanged()")
  590.         call Notify("vm","Active","Everytime","app","Return","call CBarChanged()")
  591.  
  592.         call Notify("cuse","Pressed",0,"app","Return","call UseConfig()")
  593.         call Notify("cuse","Pressed",0,"cwin","Set","Open",0)
  594.         call Notify("csave","Pressed",0,"app","Return","call SaveConfig()")
  595.         call Notify("csave","Pressed",0,"cwin","Set","Open",0)
  596.         call Notify("ccancel","Pressed",0,"cwin","Set","Open",0)
  597.  
  598.         call info("")
  599.         call set("app","Sleep",0)
  600.  
  601.         call set("list","ActiveID",1)
  602.  
  603.         global.Configwin=1
  604.     end
  605.  
  606.     global.Gadgets.0.value=global.ImagesDir
  607.     global.Gadgets.1.value=global.viewmode
  608.     global.Gadgets.2.value=global.Spacing
  609.     global.Gadgets.3.value=global.BorderLess
  610.     global.Gadgets.4.value=global.RaisingFrame
  611.     global.Gadgets.5.value=global.SmallImages
  612.     global.Gadgets.6.value=global.Sunny
  613.     call MultiSetAttr("global.Gadgets",1)
  614.  
  615.     call CBarChanged()
  616.  
  617.     call set("cwin","Open",1)
  618.     call GetAttr("cwin","Open","O")
  619.     if ~o then exit
  620.  
  621.     return
  622. /**************************************************************************/
  623. ViewModeChanged: procedure expose global.
  624. parse arg vm
  625.     call CBarChanged()
  626.     return
  627.     call DoMethod("CDummyBarG","InitChanges")
  628.     call set("csb","viewmode",vm)
  629.     call DoMethod("CDummyBarG","ExitChanges")
  630.     return
  631. /**************************************************************************/
  632. SetCBarNotifies: procedure expose global.
  633.     call Notify("bl","Selected","Everytime","csb","Set","BorderLess","TriggerValue")
  634.     call Notify("rf","Selected","Everytime","csb","Set","RaisingFrame","TriggerValue")
  635.     call Notify("si","Selected","Everytime","csb","Set","SmallImages","TriggerValue")
  636.     call Notify("sn","Selected","Everytime","csb","Set","Sunny","TriggerValue")
  637.     return
  638. /**************************************************************************/
  639. CBarChanged: procedure expose global.
  640.  
  641.     call set("cwin","Sleep",1)
  642.  
  643.     call DoMethod("CDummyBarG","InitChanges")
  644.     call Dispose("csb")
  645.  
  646.     call MultiGetAttr("global.Gadgets")
  647.  
  648.     bar=CreateBar("csb",global.Gadgets.0.Value,global.Gadgets.2.Value,global.Gadgets.1.Value,global.Gadgets.3.Value,global.Gadgets.4.Value,global.Gadgets.5.Value,global.Gadgets.6.Value,0)
  649.  
  650.     call set("vm","disabled",global.textforced)
  651.  
  652.     call SetCBarNotifies()
  653.  
  654.     call Add("CDummyBarG",bar)
  655.     call DoMethod("CDummyBarG","ExitChanges")
  656.  
  657.     call set("cwin","Sleep",0)
  658.  
  659.     return
  660. /**************************************************************************/
  661. AdvanceIntro: procedure
  662. parse arg msg
  663.     call getattr("intro","current","c")
  664.     set.Current=c+1
  665.     set.InfoText=msg
  666.     call SetAttrs("intro","set")
  667.     return
  668. /**************************************************************************/
  669. MakeHRef: procedure expose global.
  670. parse arg name,con
  671.     t.Contents=con
  672.     t.InputMode="immediate"
  673.     t.preparse=parsetext("%r")
  674.     t.showselstate=0
  675.     t.font="button"
  676.     return xnewobj("text",name,"t")
  677. /**************************************************************************/
  678. ReadNav: procedure expose global.
  679. parse arg file
  680.     call open(in,file,r)
  681.     i=0
  682.     global.maxNav=""
  683.     global.maxNavSize=0
  684.     do while ~eof(in)
  685.         l=readln(in)
  686.         if l="" then iterate
  687.         parse var l "<a href=" h ">" n "</a>"
  688.         if h~="" then do
  689.             global.href.i=h
  690.             global.href.i.name=n
  691.             i=i+1
  692.             s=length(n)
  693.             if s>global.maxNavSize then do
  694.                 global.maxNav=n
  695.                 global.maxNavSize=s
  696.             end
  697.         end
  698.     end
  699.     global.href.num=i
  700.     return
  701. /**************************************************************************/
  702. HrefButton: procedure expose global.
  703. parse arg n,i
  704.     t.Contents="1B721B331B75"x || n
  705.     t.InputMode="immediate"
  706.     t.ShowSelState=0
  707.     t.Font="button"
  708.     return xnewobj("text",n,"t")
  709. /**************************************************************************/
  710. /* $VER: DocsBrowser.rexx 13.0 (18.9.2001)*/
  711.