freebsd-dev/usr.sbin/pcvt/fed/fed.c

169 lines
4.2 KiB
C
Raw Normal View History

/*
* Copyright (c) 1992, 1993, 1994 by Hellmuth Michaelis
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Hellmuth Michaelis.
1995-05-30 03:57:47 +00:00
* 4. The name of the developer may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
1995-05-30 03:57:47 +00:00
* fed.c, 3.00, last edit-date: [Sun Jan 2 20:08:45 1994]
*/
/*---------------------------------------------------------------------------
*
* fed.c font editor main file
* -------------------------------------
*
* written by Hellmuth Michaelis, hm@hcshh.hcs.de
*
* -hm first public release
* -hm activating font save
*
*---------------------------------------------------------------------------*/
#define FED
#include "fed.h"
void main(int argc, char *argv[])
{
int i;
int row, col;
int ret;
1995-05-30 03:57:47 +00:00
if(argc != 2)
{
fprintf(stderr,"EGA/VGA Fonteditor, Rel 1.00\n");
fprintf(stderr,"usage: %s <fontfilename>\n",argv[0]);
exit(1);
}
readfont(argv[1]); /* read fontfile into memory */
initscr();
cbreak();
noecho();
nonl();
keypad(stdscr,TRUE);
idlok(stdscr, TRUE);
move(0,0);
standout();
addstr(" Interactive EGA/VGA Fonteditor - (c) 1993, 1994 Hellmuth Michaelis ");
standend();
/* character horizontal ruler */
move(WINROW-1, CHCOL + ((WIDTH16 - ch_width)/2) + 1);
if(ch_width == WIDTH16)
addstr("1234567890123456");
else
1995-05-30 03:57:47 +00:00
addstr("12345678");
/* charcater vertical ruler */
1995-05-30 03:57:47 +00:00
for(i=1; i < ch_height+1; i++)
mvprintw((WINROW+i), (CHCOL + ((WIDTH16 - ch_width)/2) - 2), "%2d", i);
/* select horizontal ruler */
move(WINROW-1,SETCOL+2);
addstr("0 1 2 3 4 5 6 7 8 9 A B C D E F ");
/* select vertical ruler */
for(i=0; i<10; i++)
mvaddch((WINROW+i+1),(SETCOL-1),(i+'0'));
for(i=0; i<6; i++)
mvaddch((WINROW+10+i+1),(SETCOL-1),(i+'A'));
/* label available commands window */
move(WINROW-1,CMDCOL+1);
addstr("Commands");
refresh();
/* command window */
cmd_win = newwin(((WSIZE)+(2*WBORDER)),(CMDSIZE+(2*WBORDER)),
WINROW,CMDCOL);
1995-05-30 03:57:47 +00:00
keypad(cmd_win,TRUE);
idlok(cmd_win, TRUE);
box(cmd_win,'|','-');
sel_mode();
1995-05-30 03:57:47 +00:00
/* character font window */
ch_win = newwin((ch_height+(2*WBORDER)),(ch_width+(2*WBORDER)),
WINROW, CHCOL+((WIDTH16 - ch_width)/2));
keypad(ch_win,TRUE);
idlok(ch_win, TRUE);
1995-05-30 03:57:47 +00:00
box(ch_win,'|','-');
wrefresh(ch_win);
/* character select window */
set_win = newwin((WSIZE+(2*WBORDER)),((WSIZE*2)+(2*WBORDER)),
WINROW,SETCOL); /* whole character set */
1995-05-30 03:57:47 +00:00
keypad(set_win,TRUE);
idlok(set_win, TRUE);
box(set_win,'|','-');
row = 0;
col = 0;
for(i=0; i<256; i++)
{
mvwprintw(set_win,row+1,col+1,"%02.2X",i);
if(++row > 15)
{
row = 0;
col += 2;
}
}
wmove(set_win,1,1);
wrefresh(set_win);
1995-05-30 03:57:47 +00:00
/* start */
clr_cmd();
1995-05-30 03:57:47 +00:00
curchar = 0;
if((ret = selectc()) == 1)
{
writefont();
}
endwin();
}
/*---------------------------------- E O F ----------------------------------*/