/*
**
**    $VER: AminetGetFTPConfig 2.0 (26-08-1998) © Yves Grabowsky
**
*/

/* add libs */
IF ~show('L','tritonrexx.library') then do
   IF ~addlib("tritonrexx.library",5,-30) then do
      SAY "Couldn't open tritonrexx.library!"
      exit(20)
      end
   end
IF ~show('L','rexxtricks.library') then do
   IF ~addlib('rexxtricks.library',1,-30) then do
      say "Couldn't open rexxtricks.library"
      exit(20)
      end
   end
IF ~show('L','rexxreqtools.library') then do
   IF ~addlib("rexxreqtools.library",0,-30) then do
      say "Couldn't open rexxreqtools.library"
      exit(20)
      end
   end

/* DEBUG routines */
/*TRACE(ALL)*/
/*TRACE(SCAN)*/

/* options */
OPTIONS RESULTS
OPTIONS FAILAT 20

/* Interrupts */
SIGNAL ON BREAK_C
SIGNAL ON HALT
SIGNAL ON IOERR
SIGNAL ON SYNTAX

/* pos var */
pos = "rt_reqpos=reqpos_centerscr"

/* define lists */
site.0 = 13
site.1 = "Aminet WuArchive/USA"
site.2 = "Aminet Livewire/Australia"
site.3 = "Aminet Luth/Scandinavia"
site.4 = "Aminet EuNet/Switzerland"
site.5 = "Aminet Paderborn/Germany"
site.6 = "Aminet Cnam/France"
site.7 = "Aminet Giga/Austria"
site.8 = "Aminet Sunsite/Denmark"
site.9 = "Aminet Acropolis/Greece"
site.10 = "Aminet Ua/Portugal"
site.11 = "Aminet Gui/Spain"
site.12 = "Aminet Doc/UK"
site.13 = "-- Other --"

server.0 = 13
server.1 = "wuarchive.wustl.edu"
server.2 = "ftp.livewire.com.au"
server.3 = "ftp.luth.se"
server.4 = "ftp.eunet.ch"
server.5 = "ftp.germany.aminet.org"
server.6 = "ftp.cnam.fr"
server.7 = "ftp.giga.or.at"
server.8 = "sunsite.auc.dk"
server.9 = "ftp.acropolis.gr"
server.10 = "ftp.portugal.aminet.org"
server.11 = "ftp.gui.uva.es"
server.12 = "ftp.uk.aminet.org"
server.13 = ""

/* a important var */
config.0 = 6

/* create app */
app = TR_CreateApp("TRCA_Name AminetGetFTPConfig")

/* define window */
win = WindowID('1'),
      WindowTitle('AminetGetFTPConfig'),
      ScreenTitle('AminetGetFTPConfig 2.0 (26-08-1998) © Yves Grabowsky'),
      WindowPosition('TRWP_Centerscreen'),
      VertGroupA,
         Space,
         NamedSeparator('AminetGetFTP Config'),
         Space,
			HorizGroupA,
				Space,
				NamedFrameBox('Essential:'),
				VertGroupA,
					Space,
         		HorizGroupA,
            		Space,
            		TextN('Aminetsite:   '),
		            Space,
   		         CycleGadget(site,'0','5'),
      		      Space,
         		Endgroup,
	         	Space,
	   	      HorizGroupA,
   	   	      Space,
      	   	   TextN('Serveraddress:'),
         	   	Space,
	         	   'TROB_String "wuarchive.wustl.edu" TRAT_Disabled 1 TRAT_Flags TRST_NORETURNBROADCAST TRAT_ID "6"',
   	         	Space,
	      	   Endgroup,
		         Space,
   		      HorizGroupA,
      		      Space,
         		   TextN('AmFTP:        '),
	            	Space,
	   	         StringGadget('Work:','7'),
   	   	      Space,
      	   	   GetFileButton('8'),
         	   	Space,
	         	Endgroup,
					Space,
         	Endgroup,
				Space,
			Endgroup,
			Space,
			HorizGroupA,
				Space,
				NamedFrameBox('Fonts:'),
				VertGroupA,
      	   	HorizGroupA,
         	   	Space,
	         	   TextN('Fontname:'),
   	         	Space,
	      	      StringGadget('XHelvetica.font','11'),
   	      	   Space,
	   	      Endgroup,
   	   	   Space,
      	   	HorizGroupA,
	         	   Space,
   	         	TextN('Fontsize:'),
	   	         Space,
	      	      StringGadget('11','13'),
   	      	   Space,
	      	   Endgroup,
	         	Space,
		         CenteredButton('Change fonts','12'),
   		      Space,
				Endgroup,
				Space,
			Endgroup,
			Space,
			HorizGroupA,
				Space,
				NamedFrameBox('Miscellaneous:'),
				VertGroupA,
      	   	HorizGroupA,
	      	      Space,
   	      	   TextN('Get .readme?'),
      	      	Space,
	         	   CheckBoxC('14'),
   	         	Space,
	   	      Endgroup,
   	   	   Space,
      	   	HorizGroupA,
	         	   Space,
   	         	TextN('Iconify AmFTP?'),
	   	         Space,
   	   	      CheckBoxC('15'),
      	   	   Space,
	         	Endgroup,
					Space,
				Endgroup,
	   	   Space,
			Endgroup,
			Space,
         HorizSeparator,
         Space,
         HorizGroup,
            Space,
            Button('Save','9'),
            Space,
            Button('Cancel','10'),
            Space,
         Endgroup,
         Space,
      Endgroup,
      Endproject

project = TR_OpenProject(app,win)

DO WHILE exit ~= 1
   CALL TR_Wait(app,'')
   DO WHILE TR_HandleMsg(app,event)
      If event.trm_class = "TRMS_CLOSEWINDOW" then do
         signal quit
         end
      If event.trm_id = '5' then do
         num = event.trm_data+1
         address = server.num
         CALL TR_SetAttribute(project,'6','TROB_String',address)
         IF num = 13 then do
            CALL TR_SetAttribute(project,'6','TRAT_Disabled','0')
            end
         ELSE do
            CALL TR_SetAttribute(project,'6','TRAT_Disabled','1')
            end
         end
      IF event.trm_id = "8" then do
         file = rtfilerequest(,,'Please select AmFTP executeable...',,pos)
         CALL TR_SetAttribute(project,'7','TROB_String',file)
         end
      IF event.trm_id = "9" then do
         exit = 1
         end
      IF event.trm_id = "10" then do
         signal quit
         end
      IF event.trm_id = "12" then do
         font = rtfontrequest('Select font...',,pos,'newfont')
         CALL TR_SetAttribute(project,'11','TROB_String',newfont.name)
         CALL TR_SetAttribute(project,'13','TROB_String',newfont.height)
         end
      end
   end

/* get entries */
config.1 = TR_GetAttribute(project,'6','TROB_String')
config.2 = TR_GetAttribute(project,'7','TROB_String')
config.3 = TR_GetAttribute(project,'11','TROB_String')
config.4 = TR_GetAttribute(project,'13','TROB_String')
config.5 = TR_GetAttribute(project,'14','TRAT_Value')
config.6 = TR_GetAttribute(project,'15','TRAT_Value')

/* close project */
call TR_CloseProject(project)
call TR_DeleteApp(app)

/* save configs */
CALL WRITEFILE('S:AminetGetFTP.config',config)
exit

quit:
call TR_CloseProject(project)
call TR_DeleteApp(app)
exit

/* Interrupts */

HALT:
SAY "Program terminated trough global HALT interrupt!"
exit(20)

BREAK_C:
exit(10)

IOERR:
SAY "I/O-Error in line:" SIGL
SAY "Errorcode:" RC
SAY "Error:" ERRORTEXT(RC)
SAY "Line says:" SOURCELINE(SIGL)
exit(20)

SYNTAX:
SAY "SYNTAX Error in line:" SIGL
SAY "Errorcode:" RC
SAY "Error:" ERRORTEXT(RC)
SAY "Line says:" SOURCELINE(SIGL)
exit(20)
