From: Timothy Rue 
Subject: For the fun of it - where I'm at in the IQ GUI.
Date: Fri, 20 Nov 98 13:16:00

Just for the fun of it, the following is where I'm at in the GUI for IQ.
Been real busy at work and the insanity or clownishness that has cropped
up recently in the industry and with AI has been a bit distracting. :)

There are still a few more GUI elements to add to the GUI (a gui4cli
definition file) as well as the functionality. But if you have Gui4cli
installed, you'll at least be able to get a better idea of what I have in
mind for the point and click GUI for IQ. And the coolest thing about it,
is that Gui4Cli certainly easily allows for some further integration with
GUIs to be made for other parts of the VIC (Gui4cli has a common control
point or mechanism for all GUIs started up from the same Gui4cli -
allowing one GUI to control or pass information to another GUI) AND on top
of this, Gui4cli is easy enough to learn that anyone with a little or less
effort can customise a GUI to their likings or needs. ;)

Once it's to a functioning point, I'll post it to my web page. Until then,
anyone want to help?  :) For the fun of it?

If you don't have Gui4Cli, see my web pages for a link to it.

------------->8-------------------------
G4C

;Work In Progress!!!! (W.I.P)
; working off of: "PipeBridge Control and Monitor" for use thru Gui4Cli
;                 Version 1.2 - By Timothy Rue 
;GPL
;
;Comments: This GUI requires Gui4Cli (min. install of Gui and Gui4Cli)
;
;           To fully use this GUI you also need:
;           Rebol v1.0.2.1          (note: PipeBridge can be used for arexx
;              rexx.r v1.2 (TBARS)         bridging other than with rebol!)
;           PipeBridge.rexx v1.2 (TBARS)
;           StopBridge.rexx v1.0
;           arexxports.rexx v1.0
;           pbshell.startup (optional)
;
; Feel free to expand on this GUI and share it with me and others. Or
; better yet, help fill in the functionality. :)
;

WINBIG 0 0 684 424 "W.I.P. Gui for IQ, from PipeBridge Control & Monitor"
WinType 11110000

xOnLoad
 ; look for arexx and if not found, launch it..
 ifexists port AREXX
   ; ok..
 else
   cli 'rexxmast'
   wait port AREXX 30
   if $$retcode > 0
      ezreq 'Could not launch RexxMast!' Quit ''
      guiquit PipeBridge.gc
      stop
   endif
 endif
 extract PipeBridge.gc guipath path
 joinfile $path PipeBridge.rexx app1
 joinfile $path StopBridge.rexx app2
 joinfile $path arexxports.rexx app3
 joinfile $path pbshell.startup app4
 IfExists FILE $app4
;-----------------------------------------------------------------------
; Edit your NEWSHELL specifications here, but leave "FROM $app3"
; **** Don't use blank spaces in the WINDOW specifications.
;                 \/                   \/                \/
;    Run 'NEWSHELL CON:0/370/624/91/REBOLS-rebel!/CLOSE/SIMPLE FROM $app4'
;-----------------------------------------------------------------------
 Endif

 GuiOpen PipeBridge.gc
 Run 'rx $app1 >pipe:bridgepipe'
 SetGad PipeBridge.gc 1 OFF
 Run 'echo "Pipe Bridge Control & Monitor GUI v1.2" >pipe:tbars'
 Run 'echo "By Timothy Rue " >pipe:tbars'

 unit = 0        ; our default clipboard unit

 SET HELP on

xOnClose
 Run 'rx $app2'
 GuiQuit PipeBridge.gc

TEXT 4 1 60 12 'Dir/Path->' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

TEXT 188 1 80 12 'AREXX PIPES->' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

TEXT 505 1 6 12 '>' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

TEXT 4 18 55 12 'SELECTION' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..
TEXT 4 27 55 12 'DIRECTION' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..


; The Radio gadget and it's Arguments :
; L  T  W  H  Variable Spacing(i.e. the distance between buttons)

XRADIO 39 43 18 9 radvar 6
 gadfont #mono 8 000        ; looks nicer lined up..
 RSTR FROM from         ; The fields to be displayed
 RSTR WORD word         ; with the radio buttons,
 RSTR SUBS subs         ; and the text they'll place into
 RSTR " TO " to         ; the "radvar" variable
 RSTR \\// \\//
; RSTR FREE free

;* XCYCLER 0 118 65 14 "" ""
;*  gadfont #mono 8 000        ; looks nicer lined up..
;*  CSTR APPEND 1
;*  CSTR INSERT 2
;*
;* ;Update radio.gc 1 $radvar   ; everytime a radio button is hit
;*                             ; we update the text gadget below.
;*

TEXT 4 138 60 12 'File Pat->' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

TEXT 380 138 60 12 'Selection->' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

LINE 0 152 617 152 2
LINE 0 153 617 153 3
LINE 0 154 617 154 3
LINE 0 155 617 155 1

; give it a gadid, since we'll be updating it
;gadid 1

TEXT 30 159 60 12 'FROM IQ File' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..
TEXT 173 159 60 12 'WORD pattern' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..
TEXT 298 159 60 12 'SUBS keys' 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..


XLISTVIEW 66 15 117 128 "" "lv.file" "" 10 DIR
 gadfont #mono 8 000        ; looks nicer lined up..

XTEXTIN 66 0 101 14 "" "dirpath" "Dir Path" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 168 0 16 14 "^"
 gadfont #mono 8 000        ; looks nicer lined up..



XBUTTON 267 0 34 14 "MAKE"
 GadId 1
 gadfont #mono 8 000        ; looks nicer lined up..
 SetGad PipeBridge.gc 1 OFF
 SetGad PipeBridge.gc 2 ON
 Run 'rx $app1 >pipe:bridgepipe'
 GadHelp "Startup the PipeBridge"

XTEXTIN 302 0 120 14 "" "apipename" "Arexx Pipe name" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 423 0 33 14 "LIST"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 457 0 45 14 "REMOVE"
 GadId 2
 gadfont #mono 8 000        ; looks nicer lined up..
 SetGad PipeBridge.gc 2 OFF
 SetGad PipeBridge.gc 1 ON
 Run 'rx $app2'
 GadHelp "Stop the PipeBridge"

XBUTTON 514 0 75 14 "REBOL Shell"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 590 0 75 14 "USER BRIDGE"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 666 0 16 14 "C"
 gadfont #mono 8 000        ; looks nicer lined up..
 LVCLEAR
 GadHelp "Clear the Listview window"

XLISTVIEW 184 15 498 121 "" "variable" "" 20 MULTI
 gadfont #mono 8 000        ; looks nicer lined up..
 gadid 3
 GadHelp "Listview> Arrow keys, w/Shift, Click Right/Left side of Listview"



XTEXTIN 66 137 100 14 "" "filepat" "#?.iq" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 167 137 124 14 "WORD/SUB/FILE keys?"
 gadfont #mono 8 000        ; looks nicer lined up..
 Run 'rx $app3 >pipe:tbars'
 GadHelp "List Available -> AREXX PORTS"

XBUTTON 292 137 83 14 "AREXX PORTS?"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 618 137 65 19 "\\//"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 448 137 29 14 "ALL"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 478 137 36 14 "NONE"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 515 137 52 14 "Reverse"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 568 137 49 14 "Delete"
 gadfont #mono 8 000        ; looks nicer lined up..



XBUTTON 253 157 29 14 "ALL"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 363 157 29 14 "ALL"
 gadfont #mono 8 000        ; looks nicer lined up..

XCYCLER 411 157 95 14 "" ""
 gadfont #mono 8 000        ; looks nicer lined up..
 CSTR "NO Warnings" 1
 CSTR Warnings 2

XCYCLER 507 157 175 14 "" ""
 gadfont #mono 8 000        ; looks nicer lined up..
 CSTR "APPEND TO CLIPVIEW below" 1
 CSTR "INSERT IN CLIPVIEW below" 2
 CSTR "TO AREXX PORT" 3
 CSTR "TO FILE" 4
 CSTR "APPEND TO FILE" 5
 CSTR "TO PIPE" 6



XBUTTON 1 172 22 15 "IQ"
 gadfont #mono 8 000        ; looks nicer lined up..

XTEXTIN 24 172 142 15 "" "iqfile" "FROM iq-file" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XTEXTIN 167 172 124 15 "" "iqword" "WORD Pattern Key" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XTEXTIN 292 172 191 15 "" "iqsubs" "SUBS Pattern(s) Keys" 100
 gadfont #mono 8 000        ; looks nicer lined up..

XTEXTIN 528 172 154 15 "" "iqto" "Send output TO" 100
 gadfont #mono 8 000        ; looks nicer lined up..


; NOTE: each Gul4Cli pipe takes up 10k of memory, and this may seem not
; worth having the pipe just for the arexxport listing, on systems with
; little memory. But I've got plans for making more use of this second
; pipe. TBARS ;)

xPIPE pipe:bridgepipe ON
 lvuse pipebridge.gc 3
 lvadd $$PIPE.TXT
 GadId 4

xPIPE pipe:tbars ON
 lvuse pipebridge.gc 3
 lvadd $$PIPE.TXT
 GadId 5


XLISTVIEW 1 188 681 193 "" "clipline" CLIPS:0 20 MULTI
 gadfont #mono 8 000        ; looks nicer lined up..
 ;XLISTVIEW 0 20 436 148 "" clipline CLIPS:0 10 NUM
 gadid 21

TEXT 4 383 60 12 "Selection->" 14 NOBOX
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 72 382 29 13 "ALL"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 102 382 34 13 "NONE"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 137 382 52 13 "Reverse"
 gadfont #mono 8 000        ; looks nicer lined up..

XBUTTON 190 382 47 13 "Delete"
 gadfont #mono 8 000        ; looks nicer lined up..

XCYCLER 238 382 175 13 "" ""
 gadfont #mono 8 000        ; looks nicer lined up..
 CSTR Dummy1 1
 CSTR Dummy2 2

XTEXTIN 414 382 154 13 "" "iqto" "Send output TO" 100
 gadfont #mono 8 000        ; looks nicer lined up..



; --------------------------------------------------------
;       Change the clipboard unit
; --------------------------------------------------------

XBUTTON 665 382 17 13 ">>"
 gadfont #mono 8 000        ; looks nicer lined up..
 ++unit
 gosub PipeBridge.gc changeunit

XBUTTON 607 382 18 13 "<<"
 gadfont #mono 8 000        ; looks nicer lined up..
 --unit
 gosub PipeBridge.gc changeunit

XTEXTIN 626 382 38 13 "" unit '0' 10
 gadfont #mono 8 000        ; looks nicer lined up..
 gadid 22
 gosub PipeBridge.gc changeunit

xRoutine ChangeUnit
 ; make sure the unit is 0-255
 if $unit > 255
    unit = 0
 elseif $unit < 0
    unit = 255
 endif
 ; load the given clip..
 lvuse PipeBridge.gc 21
 lvchange "CLIPS:$unit"
 update PipeBridge.gc 22 $unit

; --------------------------------------------------------
;       Load a file into the current clipboard unit
; --------------------------------------------------------

XBUTTON 569 382 37 13 "Load"
 gadfont #mono 8 000        ; looks nicer lined up..
 ReqFile  -1 -1 300 -30 'Choose file :' LOAD filename ''
 if $filename > ''
    lvuse PipeBridge.gc 21
    lvchange $filename
    ; now save it so as to write it to the clipboard
    lvsave 'CLIPS:$unit'
 endif

; --------------------------------------------------------
;       Save the current clipboard unit as a file
; --------------------------------------------------------

XBUTTON 569 396 37 13 "Save"
 gadfont #mono 8 000        ; looks nicer lined up..
 ReqFile  -1 -1 300 -30 'Save as file :' SAVE savename ''
 if $savename > ' '
    ifexists file $savename
       ezreq 'File $savename exists.\nOverwrite ?' Overwrite|CANCEL choice
       if $choice = 0
          stop
       endif
    endif
    lvsave $savename
 endif

; --------------------------------------------------------
;       Clear the current clipboard unit
; --------------------------------------------------------

XBUTTON 607 396 75 13 "Clear"
 gadfont #mono 8 000        ; looks nicer lined up..
 lvuse PipeBridge.gc 21
 lvclear
 ; update the clipboard
 lvsave 'CLIPS:$unit'


------------->8-------------------