/*
 * RESOURCE.C
 *
 * resource-module of jet_conf.prg;
 * initializes everything in context with resources of jet_conf.prg;
 *
 */

/*--- includes              ---*/

#include "import.h"
#include <MGLOBAL.H>
#include <MYDIAL.H>
#include "jet_conf.h"
#include "misc.h"

#include "export.h"
#include "resource.h"

/*--- defines               ---*/

#define		RSC_NAME	"JET_CONF.RSC"
#define		OUR_VERSION	"067"

/*--- types                 ---*/

/*--- variables             ---*/

/*--- prototypes            ---*/

LOCAL VOID	init_edfelder( VOID );

/*--- functions             ---*/

/**-----------------------------------------------------------------------------
 ** Funktionsname:	GLOBAL WORD rsc_init( WORD nkc_version )
 **		->	nichts
 **		<-	-1, falls Fehler aufgetreten ist, sonst 0.
 **
 ** Die Funktion ldt die Resource-Datei und initialisiert die Resourcen.
 **/
GLOBAL WORD rsc_init( WORD nkc_version )
{
	WORD ok, loop;
	BYTE help[4];

	/* Resource-Datei laden: */
	ok = rsrc_load( RSC_NAME );
	if( !ok )
		return( -1 );

	/* Speicheradresse des Menbaums holen: */
	rsrc_gaddr( R_TREE, MENUTREE, &menutree );

	/* Menbaum initialisieren: */
	dial_fix( menutree, FALSE );

	/* Die weiteren Dialoge in Schleife anpassen: */
	for( loop=1; loop<MAXTREE; loop ++ )
	{
		rsrc_gaddr( R_TREE, loop, &TREE_ADDR[loop] );
		dial_fix( TREE_ADDR[loop], TRUE );
	}

	/* Das Compiledatum, die Programm- und die NKCC-Version eintragen: */
	set_ptext( info_box, VERSDATE, __DATE__ );
	set_ptext( info_box, VERSION, OUR_VERSION );

	do_bcd( nkc_version, help );
	set_ptext( info_box, NKCCVERS, help );

	/* Editfelder "nullen" */
	init_edfelder( );
	
	return( 0 );
}

/**-----------------------------------------------------------------------------
 ** Funktionsname:	GLOBAL VOID rsc_exit( VOID )
 **		->	nichts
 **		<-	nichts
 **
 ** Die Funktion meldet das Programm bei Betriebssystem ab.
 **/
GLOBAL VOID rsc_exit( VOID )
{
	rsrc_free( );
}

/**-----------------------------------------------------------------------------
 ** Funktionsname:	LOCAL VOID init_edfelder( VOID )
 **		->	nichts
 **		<-	nichts
 **
 ** Die Funktion schreibt in die Editfelder '\0'.
 **/
LOCAL VOID init_edfelder( VOID )
{
	BYTE *b_ptr;
	WORD i;
	WORD syst_idx[] = { SYST_SOP, SYST_VAC, MIN_DISK, MAX_BUFF, STDDAYS, STDMIN, STDMAX, PRN_LINE, -1 },
		 doma_idx[] = { DNAME1, DABBR1, DOFFN1,
		 				DNAME2, DABBR2, DOFFN2,
		 				DNAME3, DABBR3, DOFFN3,
		 				DNAME4, DABBR4, DOFFN4,
		 				DNAME5, DABBR5, DOFFN5,
		 				DNAME6, DABBR6, DOFFN6,
		 				DNAME7, DABBR7, DOFFN7,
		 				DNAME8, DABBR8, DOFFN8, -1 },
		 addr_idx[] = { ADDR1, DOM1, FAKE1,
		 				ADDR2, DOM2, FAKE2,
		 				ADDR3, DOM3, FAKE3,
		 				ADDR4, DOM4, FAKE4,
		 				ADDR5, DOM5, FAKE5,
		 				ADDR6, DOM6, FAKE6,
		 				ADDR7, DOM7, FAKE7,
		 				ADDR8, DOM8, FAKE8,
		 				ADDR9, DOM9, FAKE9,
		 				ADDR10, DOM10, FAKE10,
		 				ADDR11, DOM11, FAKE11,
		 				ADDR12, DOM12, FAKE12, -1 },
		 path_idx[] = {	NETMAILP, MAILBOXP, ARCHIVEP,
		 				BADMSGSP, DUPMSGSP, INBOUNDP,
		 				KINBONDP, PINBONDP, HOLD,
		 				NODELSTP, SYSLOGP, MAXLOGS,
		 				ABOUTFP, -1 },
		 arch_idx[] = {	ARC_PACK, ARCP_CMD, ARC_EXTRACT, ARCE_CMD,
		 				LZH_PACK, LZHP_CMD, LZH_EXTRACT, LZHE_CMD,
		 				LHA_PACK, LHAP_CMD, LHA_EXTRACT, LHAE_CMD,
		 				ZIP_PACK, ZIPP_CMD, ZIP_EXTRACT, ZIPE_CMD,
		 				ZOO_PACK, ZOOP_CMD, ZOO_EXTRACT, ZOOE_CMD,
		 				ARJ_PACK, ARJP_CMD, ARJ_EXTRACT, ARJE_CMD, -1 };
		 
	i=0;
	while( syst_idx[i] != -1 )
	{
		b_ptr = syst_box[syst_idx[i]].ob_spec.tedinfo->te_ptext;
		*b_ptr = '\0';
		++i;
	}
	i=0;
	while( doma_idx[i] != -1 )
	{
		b_ptr = doma_box[doma_idx[i]].ob_spec.tedinfo->te_ptext;
		*b_ptr = '\0';
		++i;
	}
	i=0;
	while( addr_idx[i] != -1 )
	{
		b_ptr = addr_box[addr_idx[i]].ob_spec.tedinfo->te_ptext;
		*b_ptr = '\0';
		++i;
	}
	i=0;
	while( path_idx[i] != -1 )
	{
		b_ptr = path_box[path_idx[i]].ob_spec.tedinfo->te_ptext;
		*b_ptr = '\0';
		++i;
	}
	i=0;
	while( arch_idx[i] != -1 )
	{
		b_ptr = arch_box[arch_idx[i]].ob_spec.tedinfo->te_ptext;
		*b_ptr = '\0';
		++i;
	}

}

