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 {
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); }
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); }
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; } } }