/* Arexx Locatedb GUI */
/* Version 0.1 */
/* All operation will take a while (isnt very fast, but works) */
/* ©1998 by Blafasel */
/* If you have suggestions, questions, comments, bug reports etc. */
/* write to: blafasel@gmx.net */
/* More information in the readme */

if ~show('l', "rexxsupport.library") then do;call addlib('rexxsupport.library',0,-30,0);end
if ~show('L','rexxidentify.library') then do;call addlib('rexxidentify.library',0,-30,0);end
if ~show('l', "rexxreqtools.library") then do;call addlib('rexxreqtools.library',0,-30,0);end

NL = '0a'x
xyz = pragma('D')

options results
arg comm

/* Method TAG ID definitions */
Application_OpenConfigWindow = 0x804299ba
String_MaxLen =                0x80424984

/* TAG ID definitions */
MUIA_List_Format             = 0x80423c0a
MUIA_Listview_MultiSelect    = 0x80427e08
MUIM_Busy_Move               = 0x80020001
MUIA_VertWeight              = 0x804298d0
MUIA_Busy_Speed              = 0x80020049
MUIA_Weight                  = 0x80421d1f
MUIA_Selected                = 0x8042654b
MUIA_Slider_Level            = 0x8042ae3a
Fixwidth                     = 0x8042a3f1
FIXWidthTxt                  = 0x8042d044
Cycle_Active                 = 0x80421788 
Radio_Active                 = 0x80429b41 
MUIA_Window_Activate         = 0x80428d2f
MUIA_Window_PublicScreen     = 0x804278e4
Group_HorizSpacing           = 0x8042c651
Window_Width                 = 0x8042dcae
CycleChain                   = 0x80421ce7
MUIA_Background              = 0x8042545b
MUII_WindowBack              = 0
MUIA_ShowMe                  = 0x80429ba8
Slider_Level                 = 0x8042ae3a 
Slider_Max                   = 0x8042d78a 
Slider_Min                   = 0x8042e404 
MUIA_Busy_Speed              = 0x80020049
MUIA_Menuitem_Shortcut       = 0x80422030
MUIA_Menuitem_Title          = 0x804218be
Window_ActiveObject          = 0x80427925
MUIM_Application_OpenConfigWindow = 0x804299ba
MUIV_List_Insert_Bottom           = -3
MUIV_Listview_MultiSelect_Default =  1
MUIV_Busy_Speed_Off          = 0
MUIV_Busy_Speed_User         = -1
TRUE                         = 1
FALSE                        = 0
MUIV_List_Select_Off         =  0
MUIV_List_Select_On          =  1
MUIA_List_Quiet           = 0x8042d8c7
ASLFR_InitialDrawer       = 0x80080009
MUIA_List_Entries         = 0x80421654
MUIM_List_Jump            = 0x8042baab

mainfile=xyz||"/locatedb.rexx"
cmdfile=xyz||"/locatedbcmd.rexx"
readme=xyz||"/locatedb.txt"

globals='mainfile cmdfile MUIA_Window_Sleep MUIA_Window_Activate MUIA_Window_PublicScreen Selected MUIA_List_Entries MUIA_Listview_MultiSelect MUIA_List_Active MUIV_List_Active_Top MUIV_List_GetEntry_Active MUIV_List_Insert_Bottom MUIV_Listview_MultiSelect_Default TRUE FALSE globals'

if ~exists(mainfile) then do
 call rtezrequest( "You need locatedb.rexx in ," || NL ||,
                   "in " xyz " please install/move it..!!", "OK" ,,'RT_REQPOS=REQPOS_CENTERSCR RTGS_WIDTH=150 RT_PUBSCRNAME='pubs )
 exit
end

if ~show('ports',locatedbGUI) then do
 call pragma(S,20000)
 if exists('sys:rexxc/muirexx3.0') then do
  address command 'run <nil: >nil: SYS:Rexxc/MUIRexx3.0 PORT 'locatedbGUI
 end
 else do
  address command 'run <nil: >nil: SYS:Rexxc/MUIRexx PORT 'locatedbGUI
 end
 address command 'waitforport 'locatedbGUI
end
else do
 address locatedbGUI
 show
 call rtezrequest( "GUI is already open," || NL ||,
                  "if its iconified it should be open now!!", "OK|_Quit locatedbGUI" ,,'RT_REQPOS=REQPOS_CENTERSCR RTGS_WIDTH=150 RT_PUBSCRNAME='pubs )

 if rtresult == 0 then do
   address locatedbGUI
   quit
   exit
 end
 else exit
end

if comm = 'QUIT' then call squit

main:
address locatedbGUI

window ID PAGE TITLE LocateDB COMMAND "quit" PORT locatedbGUI
  menu LABEL 'Options'
     item COMMAND '"request TITLE About GADGETS '"_OK"' FILE 'readme' "' PORT locatedbGUI LABEL 'About...'
     item ATTRS MUIA_Menuitem_Title '-1'
     item COMMAND '"method 'Application_OpenConfigWindow'"' PORT locatedbGUI LABEL 'MUI...'
     item ATTRS MUIA_Menuitem_Title '-1'
     item COMMAND '"quit"' ATTRS MUIA_Menuitem_Shortcut 'Q' PORT locatedbGUI LABEL 'Quit'
 endmenu

      group Horiz
            label "Search Pattern :";string ID pattern HELP '"Pattern to search for"' ATTRS CycleChain 1 CONTENT pattern
            button COMMAND '"rexx:locatedbcmd.rexx SEARCH"' LABEL 'Search'
      endgroup
      group Horiz
            label "Guide Pattern  :";string ID makeguide HELP '"Pattern to make guides for"' ATTRS CycleChain 1 CONTENT guidepattern
            button COMMAND '"rexx:locatedbcmd.rexx MAKE"' LABEL 'Make Guide'
            button COMMAND '"rexx:locatedbcmd.rexx VIEW"' LABEL 'View Main Guide'
      endgroup
      group Horiz
            button COMMAND '"rexx:locatedbcmd.rexx CLEAR"' Label 'Clear List'
            button COMMAND '"rexx:locatedbcmd.rexx UPDATE"' LABEL 'Update DB'
            button COMMAND '"quit"' PORT locatedbGUI LABEL 'Quit'
      endgroup
      group Horiz
            list ID liste TITLE "Status:" POS 0 String "Waiting"
      endgroup

endwindow
exit

squit:
address locatedbGUI
quit
exit

syntax:   /* This function returns where you made a syntax error */
prefix="Syntax"
secho("Command on line" SIGL "returned" RC ":" errortext(rc) sourceline(SIGL))
exit

