home *** CD-ROM | disk | FTP | other *** search
- #import <appkit/Application.h>
- #import <appkit/appkit.h>
- #import <sys/file.h>
- #import <stdio.h>
- #import <stdlib.h>
- #import <string.h>
- #import "ToyWinPCD.h"
- #import "PrefControl.h"
- #import "strfunc.h"
-
- #define pcdCOMMAND "hpcdtoppm"
-
- static int prefBase = 0;
- static int prefBright = 0;
-
- @implementation ToyWinPCD
-
- + (void)setBase:(int)base bright:(int)bright
- {
- prefBase = base;
- prefBright = bright;
- }
-
- - (commonInfo *)drawToyWin:(const char *)fileName type:(int)type
- map:(unsigned char **)map err:(int *)err
- {
- int x;
- char buf[256];
- static const char *const brightTab[] = { ":+", "", ":-" };
- static const char *const baseTab[] = {
- "B-16", "B-4", "B", "B+4", "B+16", "B+64" };
-
- for (x = 0; execList[x]; x++) ;
- execList[x] = (char *)fileName;
- sprintf(buf, "%s(%s%s)", fileName, baseTab[prefBase], brightTab[prefBright]);
- return [super drawToyWin:buf type:type map:map err:err];
- }
-
- - setting
- {
- int n;
- char **list;
- static char buf[128];
- static char *brightTab[] = { "-c+", "-c0", "-c-" };
- static char *baseTab[] = {
- "-1", "-2", "-3", "-4", "-5", "-6" };
-
- list = (char **)malloc(sizeof(char *) * 6);
- n = dircopy(buf, NXArgv[0], YES);
- list[0] = buf;
- strcpy(&buf[n], pcdCOMMAND);
- list[1] = &buf[n];
- list[2] = brightTab[prefBright];
- list[3] = baseTab[prefBase];
- list[4] = NULL; /* filename */
- list[5] = NULL;
- [self setExecList: list ext: "pcd"];
- return self;
- }
-
- @end
-