home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Best Objectech Shareware Selections
/
UNTITLED.iso
/
boss
/
word
/
text
/
024
/
cfgmodes.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-04
|
14KB
|
584 lines
/*
* Author: Frank Davis
* Date: January 20, 1992
* Compiler: MSC 6.0a and QuickC 2.5
*
* This program is released into the public domain. You may distribute
* it freely, Frank Davis
*/
#include <bios.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "tdecfg.h"
#include "cfgmodes.h"
extern struct vcfg cfg; /* video stuff */
extern FILE *tde_exe; /* FILE pointer to tde.exe */
extern long mode_offset;
MODE_INFO in_modes; /* play around with modes in this struct */
int color;
/*
* Name: tdemodes
* Date: July 21, 1991
* Notes: Strategy is fairly straight forward - 1) initialize all the
* variables 2) show the user a color sample 3) make the changes
* permanent if desired.
*/
void tdemodes( void )
{
color = 7;
initialize_modes( );
show_init_mode( );
change_modes( );
}
/*
* Name: initialize_modes
* Date: July 21, 1991
* Notes: Set up the global mode variables.
*/
void initialize_modes( void )
{
int i, j;
fseek( tde_exe, mode_offset, SEEK_SET );
fread( (void *)&in_modes, sizeof( MODE_INFO ), 1, tde_exe );
mode[Ins].mode = in_modes.insert;
mode[Ind].mode = in_modes.indent;
mode[PTAB].mode = in_modes.ptab_size;
mode[LTAB].mode = in_modes.ltab_size;
mode[Smart].mode = in_modes.smart_tab;
mode[Write_Z].mode = in_modes.control_z;
mode[Crlf].mode = in_modes.crlf;
mode[Trim].mode = in_modes.trailing;
mode[Eol].mode = in_modes.show_eol;
mode[WW].mode = in_modes.word_wrap;
mode[Left].mode = in_modes.left_margin;
mode[Para].mode = in_modes.parg_margin;
mode[Right].mode = in_modes.right_margin;
mode[Size].mode = in_modes.cursor_size;
mode[Backup].mode = in_modes.do_backups;
mode[Ruler].mode = in_modes.ruler;
mode[Date].mode = in_modes.date_style;
mode[Time].mode = in_modes.time_style;
mode[Initcase].mode = in_modes.search_case;
}
/*
* Name: show_init_mode
* Date: July 21, 1991
* Notes: Draw the sample screen.
*/
void show_init_mode( void )
{
char *sample;
int line, i;
cls( );
xygoto( -1, -1 );
sample = mode_screen[0];
for (i=0,line=1; sample != NULL; line++, i++) {
sample = mode_screen[i];
s_output( (char far *)sample, line, 0, 7 );
}
for (i=0; i<19; i++)
(*mode[i].show_me)();
}
/*
* Name: show_insert_mode
* Date: January 20, 1992
*/
void show_insert_mode( void )
{
char *p[] = {
"Overwrite",
"Insert "
};
s_output( p[mode[Ins].mode], mode[Ins].line, mode[Ins].col, color );
}
/*
* Name: show_indent_mode
* Date: January 20, 1992
*/
void show_indent_mode( void )
{
char *p[] = {
"Indent off",
"Indent on "
};
s_output( p[mode[Ind].mode], mode[Ind].line, mode[Ind].col, color );
}
/*
* Name: show_ptabsize
* Date: January 20, 1992
*/
void show_ptabsize( void )
{
char temp[10];
s_output( " ", mode[PTAB].line, mode[PTAB].col, color );
s_output( itoa(mode[PTAB].mode,temp,10), mode[PTAB].line, mode[PTAB].col,color);
}
/*
* Name: show_ltabsize
* Date: January 20, 1992
*/
void show_ltabsize( void )
{
char temp[10];
s_output( " ", mode[LTAB].line, mode[LTAB].col, color );
s_output( itoa(mode[LTAB].mode,temp,10), mode[LTAB].line, mode[LTAB].col,color);
}
/*
* Name: show_controlz
* Date: January 20, 1992
*/
void show_controlz( void )
{
char *p[] = {
"No ^Z ",
"Write ^Z",
};
s_output( p[mode[Write_Z].mode], mode[Write_Z].line,mode[Write_Z].col,color);
}
/*
* Name: show_eol_out
* Date: January 20, 1992
*/
void show_eol_out( void )
{
char *p[] = {
"",
"CRLF",
"LF ",
};
s_output( p[mode[Crlf].mode], mode[Crlf].line, mode[Crlf].col, color );
}
/*
* Name: show_trail
* Date: January 20, 1992
*/
void show_trail( void )
{
char *p[] = {
"No Trim",
"Trim ",
};
s_output( p[mode[Trim].mode], mode[Trim].line, mode[Trim].col, color );
}
/*
* Name: show_eol_display
* Date: January 20, 1992
*/
void show_eol_display( void )
{
char *p[] = {
"Off",
"On ",
};
s_output( p[mode[Eol].mode], mode[Eol].line, mode[Eol].col, color );
}
/*
* Name: show_smart_mode
* Date: January 20, 1992
*/
void show_smart_mode( void )
{
char *p[] = {
"Off",
"On ",
};
s_output( p[mode[Smart].mode], mode[Smart].line, mode[Smart].col, color );
}
/*
* Name: show_ww
* Date: January 20, 1992
*/
void show_ww( void )
{
char *p[] = {
"Off ",
"Fixed margins ",
"Dynamic left margin",
};
s_output( p[mode[WW].mode], mode[WW].line, mode[WW].col, color );
}
/*
* Name: show_initcase
* Date: January 20, 1992
*/
void show_initcase( void )
{
char *p[] = {
" ",
"IGNORE",
"MATCH ",
};
s_output( p[mode[Initcase].mode], mode[Initcase].line, mode[Initcase].col,
color );
}
/*
* Name: show_left
* Date: January 20, 1992
*/
void show_left( void )
{
char temp[10];
s_output( " ", mode[Left].line, mode[Left].col, color );
s_output( itoa( mode[Left].mode+1, temp, 10 ), mode[Left].line, mode[Left].col,
color);
}
/*
* Name: show_para
* Date: January 20, 1992
*/
void show_para( void )
{
char temp[10];
s_output( " ", mode[Para].line, mode[Para].col, color );
s_output( itoa( mode[Para].mode+1, temp, 10 ), mode[Para].line, mode[Para].col,
color);
}
/*
* Name: show_right
* Date: January 20, 1992
*/
void show_right( void )
{
char temp[10];
s_output( " ", mode[Right].line, mode[Right].col, color );
s_output( itoa(mode[Right].mode+1,temp,10), mode[Right].line, mode[Right].col,
color);
}
/*
* Name: show_cursor_size
* Date: January 20, 1992
*/
void show_cursor_size( void )
{
char *p[] = {
"Small Insert Cursor",
"Big Insert Cursor ",
};
s_output( p[mode[Size].mode], mode[Size].line, mode[Size].col, color );
}
/*
* Name: show_backup_mode
* Date: January 20, 1992
*/
void show_backup_mode( void )
{
char *p[] = {
"No .bak files ",
"Create .bak files"
};
s_output( p[mode[Backup].mode], mode[Backup].line, mode[Backup].col, color );
}
/*
* Name: show_backup_mode
* Date: January 20, 1992
*/
void show_ruler_mode( void )
{
char *p[] = {
"No ruler ",
"Show ruler"
};
s_output( p[mode[Ruler].mode], mode[Ruler].line, mode[Ruler].col, color );
}
/*
* Name: show_date_style
* Date: June 5, 1992
*/
void show_date_style( void )
{
char *p[] = {
"MM_DD_YY ",
"DD_MM_YY ",
"YY_MM_DD ",
"MM_DD_YYYY",
"DD_MM_YYYY",
"YYYY_MM_DD",
};
s_output( p[mode[Date].mode], mode[Date].line, mode[Date].col, color );
}
/*
* Name: show_time_style
* Date: June 5, 1992
*/
void show_time_style( void )
{
char *p[] = {
"12_HOUR",
"24_HOUR"
};
s_output( p[mode[Time].mode], mode[Time].line, mode[Time].col, color );
}
/*
* Name: change_modes
* Date: July 21, 1991
* Notes: Real workhorse function of the utility. Get a key and then
* figure out what to do with it.
*/
void change_modes( void )
{
int c;
int m;
int new_field;
m = 0;
xygoto( mode[m].col, mode[m].line );
color = 112;
(*mode[m].show_me)();
for (c=0; c != F3 && c != F10 && c != ESC;) {
c = getkey( );
new_field = FALSE;
color = 112;
switch (c) {
case RTURN :
case DOWN :
color = 7;
(*mode[m].show_me)();
++m;
if (m > 18)
m = 0;
new_field = TRUE;
break;
case UP :
color = 7;
(*mode[m].show_me)();