/*
**
**    $VER: AminetFTPMailConfig 2.0 (17-09-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(RESULTS) */
/* TRACE(SCAN) */

/*------------*/
/* Interrupts */
/*------------*/

SIGNAL ON BREAK_C
SIGNAL ON HALT
SIGNAL ON IOERR
SIGNAL ON SYNTAX

/*------*/
/* vars */
/*------*/

pos = "rt_reqpos=reqpos_centerscr"

/*--------------*/
/* define lists */
/*--------------*/

size.0 = 6 
size.1 = "16k"
size.2 = "32k"
size.3 = "64k"
size.4 = "128k"
size.5 = "256k"
size.6 = "512k"

site.0 = 3
site.1 = 'Aminet Paderborn/Germany'
site.2 = 'US Aminet Mirror'
site.3 = '-- Other --'

/*------------*/
/* create app */
/*------------*/

apptags = 'TRCA_Name     AminetFTPMailConfig',
          'TRCA_LongName "AminetFTPMailConfig 2.0 © Yves Grabowsky"',
          'TRCA_Version  2.0',
          'TRCA_Release  3',
          'TRCA_Date     17.09.98'

app = TR_CreateApp(apptags)

/*---------------*/
/* define window */
/*---------------*/

win = WindowID('1'),
      WindowTitle('AminetFTPMailConfig'),
      ScreenTitle('AminetFTPMailConfig 2.0 (17-09-1998) © Yves Grabowsky'),
      WindowPosition('TRWP_Centerscreen'),
      HorizGroupA,
      Space,
      VertGroupA,
         Space,
         NamedSeparator('AminetFTPMail Config'),
         Space,
         NamedFrameBox('Essential:'),
         HorizGroupA,
            Space,
            VertGroupA,
               Space,
               HorizGroupA,
                  Space,
                  TextN('Aminet site:      '),
                  CycleGadget(site,'0','5'),
                  Space,
               Endgroup,
               Space,
               HorizGroupA,
                  Space,
                  TextN('FTP-Mail address: '),
                  Space,
                  'TROB_String "ftp-mail@uni-paderborn.de" TRAT_Disabled 1 TRAT_Flags TRST_NORETURNBROADCAST TRAT_ID "6"',
                  Space,
               Endgroup,
               Space,
            Endgroup,
            Space,
         Endgroup,
         Space,
         NamedFrameBox('Fonts:'),
         HorizGroupA,
            Space,
            VertGroupA,
               Space,
               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,
	         NamedFrameBox('Miscellanous:'),
	         HorizGroupA,
   	         Space,
      	      VertGroupA,
         	      Space,
            	   HorizGroupA,
               	   Space,
                  	TextN('Max. Mailsize:    '),
	                  Space,
   	               CycleGadget(size,'5','10'),
      	            Space,
         	      Endgroup,
            	   Space,
               	HorizGroupA,
                  	Space,
	                  TextN('Get .readme files:'),
   	               Space,
      	            CheckBoxC('7'),
         	         Space,
            	   Endgroup,
               	Space,
						HorizGroupA,
                  	Space,
	                  TextN('Multi mails:'),
   	               Space,
      	            CheckBox('15'),
         	         Space,
            	   Endgroup,
						Space,
						HorizGroupA,
                  	Space,
	                  TextN('Delete mail:'),
   	               Space,
      	            CheckBox('16'),
         	         Space,
            	   Endgroup,
						Space,
               Endgroup,
            	Space,
         	Endgroup,
				Space,
			  	VertGroupA,
         		Space,
		         Button('Save','8'),
      		   Space,
		         Button('Cancel','9'),
      		   Space,
    			Endgroup,
        		Space,
      	Endgroup,
      	Space,
      Endgroup,
		Space,
		Endgroup,
      Endproject

/*--------------*/
/* open project */
/*--------------*/

project = TR_OpenProject(app,win)

/*------------------*/
/* read old configs */
/*------------------*/

IF EXISTS('S:AminetFTPMail.config') then do
   CALL READFILE('S:AminetFTPMail.config',config)
	/* set email address */
	IF config.1 = 'ftp-mail@uni-paderborn.de' then do
      CALL TR_SetAttribute(project,'5','TRAT_Value','0')
      CALL TR_SetAttribute(project,'6','TROB_String',config.1)
      end
   ELSE do
      IF config.1 = 'ftpmail@pub1.bryant.vix.com' then do
         CALL TR_SetAttribute(project,'5','TRAT_Value','1')
         CALL TR_SetAttribute(project,'6','TROB_String',config.1)
         end
      ELSE do
         CALL TR_SetAttribute(project,'5','TRAT_Value','2')
         CALL TR_SetAttribute(project,'6','TROB_String',config.1)
         end
      end
	/* set mailsize */
   IF config.2 = '16k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',0)
		end
	IF config.2 = '32k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',1)
		end
	IF config.2 = '64k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',2)
		end
	IF config.2 = '128k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',3)
		end
	IF config.2 = '256k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',4)
		end
	IF config.2 = '512k' then do
   	CALL TR_SetAttribute(project,'10','TRAT_Value',5)
		end
	/* set readme */
   CALL TR_SetAttribute(project,'7','TRAT_Value',config.3)
	/* set fonts */
   IF config.4 ~= 'CONFIG.4' then do
      CALL TR_SetAttribute(project,'11','TROB_String',config.4)
      CALL TR_SetAttribute(project,'13','TROB_String',config.5)
      end
   ELSE do
      CALL TR_SetAttribute(project,'11','TROB_String','XHelvetica.font')
      CALL TR_SetAttribute(project,'13','TROB_String','11')
      end
	IF config.6 ~= "CONFIG.6" then do
		CALL TR_SetAttribute(project,'15','TRAT_Value',config.6)
		end
	IF config.7 ~= "CONFIG.7" then do
		CALL TR_SetAttribute(project,'16','TRAT_Value',config.6)
		end
   end

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
         IF event.trm_data = '0' then do
            CALL TR_SetAttribute(project,'6','TROB_String','ftp-mail@uni-paderborn.de')
            CALL TR_SetAttribute(project,'6','TRAT_Disabled','1')
            end
         IF event.trm_data = '1' then do
            CALL TR_SetAttribute(project,'6','TROB_String','ftpmail@pub1.bryant.vix.com')
            CALL TR_SetAttribute(project,'6','TRAT_Disabled','1')
            end
         IF event.trm_data = '2' then do
            CALL TR_SetAttribute(project,'6','TRAT_Disabled','0')
            end
         end
      IF event.trm_id = '9' then do
         signal quit
         end
      IF event.trm_id = '8' then do
         exit = 1
         end
      IF event.trm_id = "12" then do
         font = rtfontrequest('Select font...',,pos,'newfont')
         IF newfont.name ~= "NEWFONT.NAME" then do
            CALL TR_SetAttribute(project,'11','TROB_String',newfont.name)
            CALL TR_SetAttribute(project,'13','TROB_String',newfont.height)
            end
         end
      end
   end

/*-------------*/
/* get entries */
/*-------------*/

config.0 = 7
config.1 = TR_GetAttribute(project,'6','TROB_String')
num = TR_GetAttribute(project,'10','TRAT_Value')
num = num+1
config.2 = size.num
config.3 = TR_GetAttribute(project,'7','TRAT_Value')
config.4 = TR_GetAttribute(project,'11','TROB_String')
config.5 = TR_GetAttribute(project,'13','TROB_String')
config.6 = TR_GetAttribute(project,'15','TRAT_Value')
config.7 = TR_GetAttribute(project,'16','TRAT_Value')

/*---------------------------*/
/* close window & delete app */
/*---------------------------*/

CALL TR_CloseProject(project)
CALL TR_DeleteApp(app)

/*-----------------------------*/
/* write configs to configfile */
/*-----------------------------*/

CALL WRITEFILE('S:AminetFTPMail.config',config)
exit

quit:
/*------*/
/* 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)
