📄 dialog.c
字号:
potparam[2] = atof(temp);
pot16bit = win_temp2;
GetDlgItemText(hDlg, ID_DISTEST, temp, 10);
usr_distest = atoi(temp);
GetDlgItemText(hDlg, ID_DISTESTWID, temp, 10);
distestwidth = atoi(temp);
for (i = 0; i < 3; i++) {
GetDlgItemText(hDlg, ID_INVERTRAD+i, temp, 20);
if (temp[0] == 'a' || temp[0] == 'A')
inversion[i] = AUTOINVERT;
else
inversion[i] = atof(temp);
}
invert = (inversion[0] == 0.0) ? 0 : 3;
GetDlgItemText(hDlg, ID_COLORMIN, temp, 10);
rotate_lo = atoi(temp);
GetDlgItemText(hDlg, ID_COLORMAX, temp, 10);
rotate_hi = atoi(temp);
if (rotate_lo < 0 || rotate_hi > 255 || rotate_lo > rotate_hi) {
rotate_lo = 0;
rotate_hi = 255;
}
time_to_restart = 0;
if (
win_oldprompts[0] != win_temp1 ||
win_oldprompts[1] != potparam[0] ||
win_oldprompts[2] != potparam[1] ||
win_oldprompts[3] != potparam[2] ||
win_oldprompts[4] != win_temp2 ||
win_oldprompts[5] != usr_distest ||
win_oldprompts[6] != distestwidth ||
win_oldprompts[7] != inversion[0] ||
win_oldprompts[8] != inversion[1] ||
win_oldprompts[9] != inversion[2]
) time_to_restart = 1;
EndDialog(hDlg, time_to_restart);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
case ID_FINITE:
if (win_temp1 == 0)
win_temp1 = 1;
else
win_temp1 = 0;
CheckDlgButton(hDlg, ID_FINITE, win_temp1);
break;
case ID_POTENT16:
if (win_temp2 == 0)
win_temp2 = 1;
else
win_temp2 = 0;
CheckDlgButton(hDlg, ID_POTENT16, win_temp2);
break;
}
}
return (FALSE);
}
BOOL FAR PASCAL SelectSavePar(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
char temp[80];
int i, j, k;
extern int colorstate; /* comments in cmdfiles */
extern char CommandFile[];
extern char CommandName[];
extern char far CommandComment1[];
extern char far CommandComment2[];
extern char colorfile[];
extern int colorstate;
extern int usr_distest; /* distance estimator option */
extern int potflag; /* continuous potential flag */
extern double potparam[3]; /* three potential parameters*/
switch (message) {
case WM_INITDIALOG:
win_temp1 = 1;
if (colorstate == 1)
win_temp1 = 1;
if (colorstate == 2)
win_temp1 = 2;
win_temp2 = colors - 1;
if (maxiter < win_temp2) win_temp2 = maxiter;
if (inside > 0 && inside > win_temp2) win_temp2 = inside;
if (outside > 0 && outside > win_temp2) win_temp2 = outside;
if (usr_distest < 0 && 0-usr_distest > win_temp2) win_temp2 = 0-usr_distest;
if (decomp > win_temp2) win_temp2 = decomp - 1;
if (potflag && potparam[0] >= win_temp2) win_temp2 = potparam[0];
if (++win_temp2 > 256) win_temp2 = 256;
SetDlgItemText(hDlg, ID_PFILE, CommandFile);
SetDlgItemText(hDlg, ID_PENTRY, CommandName);
if (CommandName[0] == 0)
SetDlgItemText(hDlg, ID_PENTRY, "test");
SetDlgItemText(hDlg, ID_PCOM1, CommandComment1);
SetDlgItemText(hDlg, ID_PCOM2, CommandComment2);
CheckDlgButton(hDlg, ID_PCOL1+win_temp1, 1);
sprintf(temp,"%i",win_temp2);
SetDlgItemText(hDlg, ID_PCNUM, temp);
if (colorstate == 2)
SetDlgItemText(hDlg, ID_PCFILE, colorfile);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
/* retrieve and validate the results */
GetDlgItemText(hDlg, ID_PFILE, CommandFile, 50);
GetDlgItemText(hDlg, ID_PENTRY, CommandName, 50);
GetDlgItemText(hDlg, ID_PCOM1, CommandComment1, 57);
GetDlgItemText(hDlg, ID_PCOM2, CommandComment2, 57);
GetDlgItemText(hDlg, ID_PCFILE, colorfile, 50);
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
case ID_PCOL1:
case ID_PCOL2:
case ID_PCOL3:
win_temp1 = wParam - ID_PCOL1;
CheckRadioButton(hDlg, ID_PCOL1, ID_PCOL3, wParam);
}
}
return (FALSE);
}
int win_cycledir = -1, win_cyclerand = 0, win_cyclefreq = 0, win_cycledelay = 0;
int win_tempcycle, win_tempcycledir, win_tempcyclerand, win_tempcyclefreq;
BOOL FAR PASCAL SelectCycle(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
switch (message) {
case WM_INITDIALOG:
win_tempcycle = time_to_cycle;
win_tempcycledir = win_cycledir;
win_tempcyclerand = win_cyclerand;
win_tempcyclefreq = win_cyclefreq;
if (win_tempcycle == 0)
CheckDlgButton(hDlg, ID_CYCLEOFF, 1);
else
CheckDlgButton(hDlg, ID_CYCLEON, 1);
if (win_tempcycledir == -1)
CheckDlgButton(hDlg, ID_CYCLEOUT, 1);
else
CheckDlgButton(hDlg, ID_CYCLEIN, 1);
if (win_tempcyclerand == 0)
CheckDlgButton(hDlg, ID_CYCLESTAT, 1);
else
CheckDlgButton(hDlg, ID_CYCLECHG, 1);
if (win_tempcyclefreq == 0)
CheckDlgButton(hDlg, ID_CYCLELOW, 1);
else if (win_tempcyclefreq == 1)
CheckDlgButton(hDlg, ID_CYCLEMED, 1);
else
CheckDlgButton(hDlg, ID_CYCLEHIGH, 1);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
/* retrieve and validate the results */
time_to_cycle = win_tempcycle;
win_cycledir = win_tempcycledir;
win_cyclerand = win_tempcyclerand;
win_cyclefreq = win_tempcyclefreq;
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
case ID_CYCLEOFF:
win_tempcycle = 0;
CheckRadioButton(hDlg, ID_CYCLEOFF, ID_CYCLEON, ID_CYCLEOFF);
break;
case ID_CYCLEON:
win_tempcycle = 1;
CheckRadioButton(hDlg, ID_CYCLEOFF, ID_CYCLEON, ID_CYCLEON);
break;
case ID_CYCLEOUT:
win_tempcycledir = -1;
CheckRadioButton(hDlg, ID_CYCLEOUT, ID_CYCLEIN, ID_CYCLEOUT);
break;
case ID_CYCLEIN:
win_tempcycledir = 1;
CheckRadioButton(hDlg, ID_CYCLEOUT, ID_CYCLEIN, ID_CYCLEIN);
break;
case ID_CYCLESTAT:
win_tempcyclerand = 0;
CheckRadioButton(hDlg, ID_CYCLESTAT, ID_CYCLECHG, ID_CYCLESTAT);
break;
case ID_CYCLECHG:
win_tempcyclerand = 1;
CheckRadioButton(hDlg, ID_CYCLESTAT, ID_CYCLECHG, ID_CYCLECHG);
break;
case ID_CYCLELOW:
win_tempcyclefreq = 0;
CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLELOW);
break;
case ID_CYCLEMED:
win_tempcyclefreq = 1;
CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLEMED);
break;
case ID_CYCLEHIGH:
win_tempcyclefreq = 2;
CheckRadioButton(hDlg, ID_CYCLELOW, ID_CYCLEHIGH, ID_CYCLEHIGH);
break;
}
}
return (FALSE);
}
FARPROC lpSelectFullScreen;
extern HANDLE hInst;
int win_fullscreen_count;
char * far win_fullscreen_prompts[20];
char *win_fullscreen_heading;
static struct fullscreenvalues win_fullscreen_values[20];
int xxx_fullscreen_prompt( /* full-screen prompting routine */
char *hdg, /* heading, lines separated by \n */
int numprompts, /* there are this many prompts (max) */
char * far *prompts, /* array of prompting pointers */
struct fullscreenvalues values[], /* array of values */
int options, /* future use bits in case we need them */
int fkeymask /* bit n on if Fn to cause return */
)
{
int i;
int Return;
win_fullscreen_count = numprompts;
win_fullscreen_heading = hdg;
win_fullscreen_count = numprompts;
for (i = 0; i < win_fullscreen_count; i++) {
win_fullscreen_prompts[i] = prompts[i];
win_fullscreen_values[i] = values[i];
}
lpSelectFullScreen = MakeProcInstance(SelectFullScreen, hInst);
Return = DialogBox(hInst, "SelectFullScreen", hwnd, lpSelectFullScreen);
FreeProcInstance(lpSelectFullScreen);
if (Return) {
for (i = 0; i < win_fullscreen_count; i++) {
values[i] = win_fullscreen_values[i];
}
return(0);
}
return(-1);
}
BOOL FAR PASCAL SelectFullScreen(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
int i;
char temp[80];
switch (message) {
case WM_INITDIALOG:
SetDlgItemText(hDlg, ID_PROMPT00,win_fullscreen_heading);
for (i = 0; i < win_fullscreen_count; i++) {
SetDlgItemText(hDlg, ID_PROMPT01+i,win_fullscreen_prompts[i]);
if (win_fullscreen_values[i].type == 'd' ||
win_fullscreen_values[i].type == 'f')
sprintf(temp,"%10.5f",win_fullscreen_values[i].uval.dval);
else if(win_fullscreen_values[i].type == 'i')
sprintf(temp,"%d",win_fullscreen_values[i].uval.ival);
else if(win_fullscreen_values[i].type == 's')
{
strncpy(temp,win_fullscreen_values[i].uval.sval,16);
temp[15] = 0;
}
else if(win_fullscreen_values[i].type == 'l')
strcpy(temp,win_fullscreen_values[i].uval.ch.list[win_fullscreen_values[i].uval.ch.val]);
else
strcpy(temp,win_fullscreen_values[i].uval.sval);
SetDlgItemText(hDlg, ID_ANSWER01+i,temp);
}
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
for (i = 0; i < win_fullscreen_count; i++) {
GetDlgItemText(hDlg, ID_ANSWER01+i , temp, 20);
if (win_fullscreen_values[i].type == 'd' ||
win_fullscreen_values[i].type == 'f')
win_fullscreen_values[i].uval.dval = atof(temp);
else if(win_fullscreen_values[i].type == 'i')
win_fullscreen_values[i].uval.ival = atoi(temp);
else if(win_fullscreen_values[i].type == 's')
strncpy(win_fullscreen_values[i].uval.sval,temp,16);
else if(win_fullscreen_values[i].type == 'l')
strcpy(win_fullscreen_values[i].uval.ch.list[win_fullscreen_values[i].uval.ch.val],temp);
else
strcpy(win_fullscreen_values[i].uval.sval,temp);
}
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
}
return (FALSE);
}
extern int init3d[];
extern int win_3dspherical;
extern char preview, showbox;
extern int previewfactor, glassestype, whichimage;
extern int xtrans, ytrans, transparent[2], RANDOMIZE;
extern int red_crop_left, red_crop_right;
extern int blue_crop_left, blue_crop_right;
extern int red_bright, blue_bright;
extern int RAY;
extern int BRIEF;
extern int Ambient;
extern char ray_name[];
extern int Targa_Overlay;
extern int Targa_Out;
extern int overlay3d; /* 3D overlay flag: 0 = OFF */
extern int xadjust;
extern int eyeseparation;
static int far win_answers[20];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -