Example #1
0
static void plPrepareStripes(void)
{
	plStripePos=0;

	plSetStripePals(plStripePal1, plStripePal2);

	if (plStripeBig)
	{
		int i;

		memset((char*)plVidMem+32*1024, 128, 32*1024);
		memset((char*)plVidMem + 128 * 1024, 128, 512 * 1024 );
		gdrawstr(42, 1, "scale: ", 7, 0x09, 0);
		for (i=0; i<256; i++)
		{
			int j;
			for (j=0; j<16; j++)
				*(unsigned char*)(plVidMem+672*1024 +j*plScrLineBytes+64+i)=(i>>1)+128;
		}
		for (i=0; i<128; i++)
		{
			int j;
			for (j=0; j<16; j++)
				*(unsigned char*)(plVidMem+672*1024+j*plScrLineBytes+352+i)=(i>>1)+64;

		}
	} else {
Example #2
0
static void editorprint(control m)
{
    printer lpr;
    font f;
    textbox t = getdata(m);
    const char *contents = gettext(t);
    char msg[LF_FACESIZE + 128];
    char *linebuf = NULL;
    int cc, rr, fh, page, linep, i, j, istartline;
    int top, left;

    if (!(lpr = newprinter(0.0, 0.0, ""))) return;
    f = gnewfont(lpr, strcmp(fontname, "FixedFont") ? fontname : "Courier New",
		 fontsty, pointsize, 0.0, 1);
    top = devicepixelsy(lpr) / 5;
    left = devicepixelsx(lpr) / 5;
    fh = fontheight(f);
    rr = getheight(lpr) - top;
    cc = getwidth(lpr) - 2*left;

    linep = rr; /* line in printer page */
    page = 1;
    i = 0;
    while (i < strlen(contents)) {
	if ( linep + fh >= rr ) { /* new page */
	    if (page > 1) nextpage(lpr);
	    snprintf(msg, LF_FACESIZE + 128, "Page %d", page++);
	    gdrawstr(lpr, f, Black, pt(cc - gstrwidth(lpr, f, msg) - 1, top),
		     msg);
	    linep = top + 2*fh;
	}
	j = 0;
	istartline = i;
	while (contents[i] != '\n' && contents[i] != '\0') {
	    ++i; ++j;
	}
	linebuf = realloc(linebuf, (j+1)*sizeof(char));
	strncpy(linebuf, &contents[istartline], j);
	linebuf[j] = '\0';
	gdrawstr(lpr, f, Black, pt(left, linep), linebuf);
	linep += fh;
	++i;
    }
    free(linebuf);
    if (f != FixedFont) del(f);
    del(lpr);
}
Example #3
0
static void gDrawBox(void)
{
    unsigned int i;

    top = 3;
    height = plScrHeight-6;;
    left = 2;
    width = plScrWidth-4;

    gdrawstr(top-1, left-1, "\xda", 1, 0x04, 0x00);
    for (i=left; i<(left+width); i++)
        gdrawstr(top-1, i, "\xc4", 1, 0x04, 0x00);
    gdrawstr(top-1, left+width, "\xbf", 1, 0x04, 0x00);
    for (i=top; i<top+height; i++)
    {
        gdrawstr(i, left-1, "\xb3", 1, 0x04, 0x00);
        gdrawstr(i, left+width, "\xb3", 1, 0x04, 0x00);
    }
    gdrawstr(top+height, left-1, "\xc0", 1, 0x04, 0x00);
    for (i=left; i<(left+width); i++)
        gdrawstr(top+height, i, "\xc4", 1, 0x04, 0x00);
    gdrawstr(top+height, left+width, "\xd9", 1, 0x04, 0x00);
}
Example #4
0
void cpiKeyHelpDisplay(void)
{
    unsigned int i, j, offset=0;
    unsigned char cola, colb;
    if (!keymapping_n)
        return;
    while (1)
    {
        if ((plScrMode==100)||(plScrMode==101)||(plScrMode==13))
            gDrawBox();
        else
            DrawBox();
        for (j=0; j<(keymapping_n-offset); j++)
        {
            const char *s="unknown key";
            if (j>=height)
                break;
            for (i=0; i<(sizeof(KeyNames)/sizeof(struct cpiKeyHelpKeyName)); i++)
            {
                if (KeyNames[i].key==keymapping[j+offset].key)
                {
                    s=KeyNames[i].name;
                    break;
                }
            }
            if (validkey(KeyNames[i].key))
            {
                cola=0x0f;
                colb=0x0a;
            } else {
                cola=0x01;
                colb=0x01;
            }
            if ((plScrMode==100)||(plScrMode==101)||(plScrMode==13))
            {
                gdrawstr(j+top, left, s, 16, colb, 0x00);
                gdrawstr(j+top, left+16, keymapping[j+offset].name, width-16, cola, 0x00);
            } else {
                displaystr(j+top, left, colb, s, 16);
                displaystr(j+top, left+16, cola, keymapping[j+offset].name, width-16);
            }
        }
        if ((plScrMode==100)||(plScrMode==101)||(plScrMode==13))
            for (; j<height; j++)
                gdrawstr(j+top, left, "", width, 0x00, 0x00);

        while (!ekbhit())
            framelock();
        switch (egetch())
        {
        case KEY_PPAGE:
        case KEY_UP:
            if (offset)
                offset--;
            break;
        case ' ':
        case KEY_NPAGE:
        case KEY_DOWN:
            if ((keymapping_n-offset)>height)
                offset++;
            break;
        case KEY_ESC:
        case KEY_ALT_K:
            keymapping_n=0;
            cpiKeyHelpReset();
            return;
        }
    }
}