📄 dialog.c
字号:
BOOL FAR PASCAL Select3D(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
int i;
char temp[80];
switch (message) {
case WM_INITDIALOG:
win_answers[0] = preview;
win_answers[1] = showbox;
win_answers[2] = SPHERE;
win_answers[3] = previewfactor;
win_answers[4] = glassestype;
win_answers[5] = FILLTYPE+1;
win_answers[6] = RAY;
win_answers[7] = BRIEF;
win_answers[8] = Targa_Out;
CheckDlgButton(hDlg, ID_PREVIEW, win_answers[0]);
CheckDlgButton(hDlg, ID_SHOWBOX, win_answers[1]);
CheckDlgButton(hDlg, ID_SPHERICAL, win_answers[2]);
CheckDlgButton(hDlg, ID_RAYB, win_answers[7]);
/*
CheckDlgButton(hDlg, ID_TARGA, win_answers[8]);
*/
sprintf(temp,"%d",win_answers[3]);
SetDlgItemText(hDlg, ID_PREVIEWFACTOR, temp);
CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
ID_STEREO1+win_answers[4]);
CheckRadioButton(hDlg, ID_FILL1, ID_FILL8,
ID_FILL1+win_answers[5]);
CheckRadioButton(hDlg, ID_RAY0, ID_RAY6,
ID_RAY0+win_answers[6]);
check_writefile(ray_name,".ray");
SetDlgItemText(hDlg, ID_RAYN, ray_name);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
if(win_answers[2] != SPHERE) {
SPHERE = win_answers[2];
set_3d_defaults();
}
preview = win_answers[0];
showbox = win_answers[1];
SPHERE = win_answers[2];
RAY = win_answers[6];
BRIEF = win_answers[7];
Targa_Out = win_answers[8];
GetDlgItemText(hDlg, ID_PREVIEWFACTOR, temp, 10);
GetDlgItemText(hDlg, ID_RAYN, temp, 30);
strcpy(ray_name, temp);
previewfactor = atoi(temp);
glassestype = win_answers[4];
FILLTYPE = win_answers[5]-1;
win_3dspherical = SPHERE;
if(previewfactor < 8)
previewfactor = 8;
if(previewfactor > 128)
previewfactor = 128;
if(glassestype < 0)
glassestype = 0;
if(glassestype > 3)
glassestype = 3;
whichimage = 0;
if(glassestype)
whichimage = 1;
if (Targa_Out && overlay3d)
Targa_Overlay = 1;
EndDialog(hDlg, 1);
break;
case ID_PREVIEW:
case ID_SHOWBOX:
case ID_SPHERICAL:
i = wParam - ID_PREVIEW;
win_answers[i] = 1 - win_answers[i];
CheckDlgButton(hDlg, ID_PREVIEW + i, win_answers[i]);
break;
case ID_FILL1:
case ID_FILL2:
case ID_FILL3:
case ID_FILL4:
case ID_FILL5:
case ID_FILL6:
case ID_FILL7:
case ID_FILL8:
i = wParam - ID_FILL1;
win_answers[5] = i;
CheckRadioButton(hDlg, ID_FILL1, ID_FILL8,
ID_FILL1+win_answers[5]);
break;
case ID_STEREO1:
case ID_STEREO2:
case ID_STEREO3:
case ID_STEREO4:
i = wParam - ID_STEREO1;
win_answers[4] = i;
CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
ID_STEREO1+win_answers[4]);
break;
case ID_RAY0:
case ID_RAY1:
case ID_RAY2:
case ID_RAY3:
case ID_RAY4:
case ID_RAY5:
case ID_RAY6:
i = wParam - ID_RAY0;
win_answers[6] = i;
CheckRadioButton(hDlg, ID_RAY0, ID_RAY6,
ID_RAY0+win_answers[6]);
break;
case ID_RAYB:
win_answers[7] = 1 - win_answers[7];
CheckDlgButton(hDlg, ID_RAYB, win_answers[7]);
break;
case ID_TARGA:
win_answers[8] = 1 - win_answers[8];
CheckDlgButton(hDlg, ID_TARGA, win_answers[8]);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
}
return (FALSE);
}
BOOL FAR PASCAL Select3DPlanar(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
int i;
char temp[80];
switch (message) {
case WM_INITDIALOG:
win_answers[0] = XROT;
win_answers[1] = YROT;
win_answers[2] = ZROT;
win_answers[3] = XSCALE;
win_answers[4] = YSCALE;
win_answers[5] = ROUGH;
win_answers[6] = WATERLINE;
win_answers[7] = ZVIEWER;
win_answers[8] = XSHIFT;
win_answers[9] = YSHIFT;
win_answers[10] = xtrans;
win_answers[11] = ytrans;
win_answers[12] = transparent[0];
win_answers[13] = transparent[1];
win_answers[14] = RANDOMIZE;
for (i = 0; i < 15; i++) {
sprintf(temp,"%d", win_answers[i]);
SetDlgItemText(hDlg, ID_ANS1+i,temp);
}
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
for (i = 0; i < 15; i++) {
GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
win_answers[i] = atof(temp);
}
XROT = win_answers[0];
YROT = win_answers[1];
ZROT = win_answers[2];
XSCALE = win_answers[3];
YSCALE = win_answers[4];
ROUGH = win_answers[5];
WATERLINE = win_answers[6];
ZVIEWER = win_answers[7];
XSHIFT = win_answers[8];
YSHIFT = win_answers[9];
xtrans = win_answers[10];
ytrans = win_answers[11];
transparent[0] = win_answers[12];
transparent[1] = win_answers[13];
RANDOMIZE = win_answers[14];
if (RANDOMIZE >= 7) RANDOMIZE = 7;
if (RANDOMIZE <= 0) RANDOMIZE = 0;
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
}
return (FALSE);
}
BOOL FAR PASCAL SelectIFS3D(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
int i, numanswers;
char temp[80];
numanswers = 5;
switch (message) {
case WM_INITDIALOG:
win_answers[0] = XROT;
win_answers[1] = YROT;
win_answers[2] = ZROT;
win_answers[3] = ZVIEWER;
win_answers[4] = XSHIFT;
win_answers[5] = YSHIFT;
win_answers[6] = glassestype;
for (i = 0; i <= numanswers; i++) {
sprintf(temp,"%d", win_answers[i]);
SetDlgItemText(hDlg, ID_ANS1+i,temp);
}
CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
ID_STEREO1+win_answers[6]);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case ID_STEREO1:
case ID_STEREO2:
case ID_STEREO3:
case ID_STEREO4:
i = wParam - ID_STEREO1;
win_answers[6] = i;
CheckRadioButton(hDlg, ID_STEREO1, ID_STEREO4,
ID_STEREO1+win_answers[6]);
break;
case IDOK:
for (i = 0; i <= numanswers; i++) {
GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
win_answers[i] = atof(temp);
}
XROT = win_answers[0];
YROT = win_answers[1];
ZROT = win_answers[2];
ZVIEWER = win_answers[3];
XSHIFT = win_answers[4];
YSHIFT = win_answers[5];
glassestype = win_answers[6];
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
}
return (FALSE);
}
char win_funnyglasses_map_name[41];
BOOL FAR PASCAL SelectFunnyGlasses(hDlg, message, wParam, lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
int i, numanswers;
char temp[80];
numanswers = 7;
switch (message) {
case WM_INITDIALOG:
/* defaults */
if(ZVIEWER == 0)
ZVIEWER = 150;
if(eyeseparation == 0) {
if(fractype==IFS3D || fractype==LLORENZ3D || fractype==FPLORENZ3D) {
eyeseparation = 2;
xadjust = -2;
}
else {
eyeseparation = 3;
xadjust = 0;
}
}
win_funnyglasses_map_name[0] = 0;
if(glassestype == 1)
strcpy(win_funnyglasses_map_name,"glasses1.map");
else if(glassestype == 2) {
if(FILLTYPE == -1)
strcpy(win_funnyglasses_map_name,"grid.map");
else
strcpy(win_funnyglasses_map_name,"glasses2.map");
}
win_answers[0] = eyeseparation;
win_answers[1] = xadjust;
win_answers[2] = red_crop_left;
win_answers[3] = red_crop_right;
win_answers[4] = blue_crop_left;
win_answers[5] = blue_crop_right;
win_answers[6] = red_bright;
win_answers[7] = blue_bright;
for (i = 0; i < numanswers+1;i++) {
sprintf(temp,"%d", win_answers[i]);
SetDlgItemText(hDlg, ID_ANS1+i,temp);
}
SetDlgItemText(hDlg, ID_ANS9,win_funnyglasses_map_name);
return (TRUE);
case WM_COMMAND:
switch (wParam) {
case IDOK:
for (i = 0; i < numanswers+1; i++) {
GetDlgItemText(hDlg, ID_ANS1+i, temp, 20);
win_answers[i] = atof(temp);
}
GetDlgItemText(hDlg, ID_ANS9, temp, 40);
strcpy(win_funnyglasses_map_name, temp);
eyeseparation = win_answers[0];
xadjust = win_answers[1];
red_crop_left = win_answers[2];
red_crop_right = win_answers[3];
blue_crop_left = win_answers[4];
blue_crop_right = win_answers[5];
red_bright = win_answers[6];
blue_bright = win_answers[7];
EndDialog(hDlg, 1);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
}
return (FALSE);
}
BOOL FAR PASCAL SelectLightSource(hDlg, message, wParam, lParam)
HWND hDlg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -