proboard/procfg/PROCFG.HPP

223 lines
8.0 KiB
C++

/* ------------------------------------------------------------
* Filename ............... ProCfg.Hpp
*
* General Purpose ........ main include file
* ------------------------------------------------------------
* First date ............. long time ago ;-)
*
* First in version ....... 0.00 alpha 1 ?
*
* Written by ............. P. Leybaert & A. Schellinck
* ------------------------------------------------------------
* Revisions:
* ----------
*
* Date | By | Purpose |
* ---------+----+--------------------------------------------+
* 08/05/99 | JR | Updated to v2.2 |
* | | |
* | | |
*/
/*--] Include files [------------------------------------------------------*/
#include <tslib.hpp>
#include <tswin.hpp>
#include <pb_lib.hpp>
/*--] Defines [------------------------------------------------------------*/
//----------------------------------
// Color of status bar at the bottom
//----------------------------------
#define BAR_COLOR 0x4E // Generic color
#define BAR_HIGH 0x4E // Status bar highlight color
#define BAR_NORM 0x4F // Status bar normal color
#define PROT_BATCH 1
#define PROT_ENABLED 2
#define PROT_BOTH 4
#define PROT_BIM 8
#define PROT_LOCAL 16
#define MAX_AKA 50
#define MAX_FILEAREA 10000
#define MAX_MSGAREA 10000
#define MAX_PVTFILE 100
#define MAX_LIMITS 50
#define MAX_PROTOCOL 20
#define MAX_EVENT 30
/*--] version control [----------------------------------------------------*/
#define VERSION "2.22"
/*--] Structure definitions [----------------------------------------------*/
struct filearea : _FileArea {};
struct Config : _Config {};
struct pbconfig : _ModemConfig {};
/*--] Structures [-------------------------------] aka [-------------------*/
struct aka
{
int zone;
int net;
int node;
int point;
};
/*--] Structures [-------------------------------] protocol [--------------*/
struct protocol
{
char name[50]; // Name of protocol
char key; // Hotkey for Protocol
char flags; // Protocol behavior
char logfile[60]; // Logfile from protocol
char ctlfile[60]; // Control file (redirection file)
char dlcom[126]; // Download command line
unsigned eff;
char ulcom[128]; // Upload command line
char dlstring[80]; // String to place in download control file
char ulstring[80]; // String to place in upload control file
char dlkeyword[40]; // Download keyword to search for in logfile
char ulkeyword[40]; // Upload keyword to search for in logfile
int wordnr; // File name word nr after keyword (1-..)
};
/*--] Structures [-------------------------------] limits [----------------*/
struct limits
{
unsigned level;
int timelimit;
int daily_klimit;
int pre_download;
char id[6];
unsigned free; // Free upload in Kb.
unsigned char factor; // Percentage upload required
unsigned max_download; // Max download for this level
int fallto; // Fall to level x when max. reached
int msgfactor; // # Kbytes granted per message written
byte extra[5];
};
/*--] Structures [-------------------------------] topentry [--------------*/
struct topentry
{
char name[36];
unsigned n;
};
/*--] Structures [-------------------------------] event [-----------------*/
struct event
{
int type; // Errorlevel or DOS command
int errorlevel; // Errorlevel to use (>5)
char command[80]; // DOS Command to execute
Time start; // Start time for event
int duration; // Duration (min)
byte empty;
byte days; // Bits 0-6 -> days of the week
byte node; // Node number to execute the event on
byte enabled; // Enabled?
};
/*--] Structures [-------------------------------] pvt_files [-------------*/
struct pvt_file
{
Date date;
char fname[13];
char username[36];
char from[36];
};
/*--] Structures [-------------------------------] User [------------------*/
struct User : _User
{
};
/*--] Prototypes [---------------------------------------------------------*/
int ask_save ( );
int ask_confirm ( char *title );
KEY aka_select ( int, Window&, int, int ,char, void* );
void aka_select_func ( int i,int x,int y );
void append_backspace ( char * );
void editPvtFile ( );
void editSysParam ( );
void editTemplate ( char *sysPath );
void editUser ( char *syspath, int, char *[] );
void edit_akas ( );
KEY edit_color ( int, Window&, int, int ,char, void* );
void edit_events ( );
void edit_fgroups ( );
void edit_mgroups ( );
void edit_language ( char * );
void edit_limits ( );
void edit_macros ( );
void edit_menu ( char * );
void edit_areas ( int fa );
void edit_pb ( );
void edit_protocol ( );
void edit_stats ( );
KEY edit_timeframe ( int, Window&, int, int ,char, void* );
KEY edit_nodes ( int, Window& ,int ,int ,char, void* );
void EditListColors ( );
KEY flag_select ( int, Window&, int, int ,char, void* );
KEY flagonoff_select ( int, Window&, int, int ,char, void* );
void menu_editor ( int, char *[] );
String select_language ( bool edit );
void show_flags ( );
void showAbout ( );
void ShowBusy(char *msg);
void HideBusy();
/*--] Global variables [---------------------------------------------------*/
extern protocol *p;
extern Config far cfg;
extern pbconfig far pbcfg;
extern limits *limit;
extern aka *akas;
extern event *events;
//extern pvt_file *pvtfiles;
extern int num_proto;
extern int num_msgareas;
extern int num_limits;
extern int num_aka;
extern int num_events;
//extern int num_pvtfiles;
extern KEY select_hotkeys[];
extern char *loglevels[];
extern char *months_short[];
extern char *days_short[];
extern char *yesnoask[];
extern char syspath[];
void KeyItem( Window &w,
int x,
int y,
ATTR iKeyColor,
char *pKey,
ATTR iDescColor,
char *pDesc );
/*---------------------------] END OF THE CODE [---------------------------*/