|
|
1.1 root 1: /*
2: Previous - dlgDimension.c
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
6:
7: */
8:
9: const char DlgGraphics_fileid[] = "Previous dlgGraphics.c : " __DATE__ " " __TIME__;
10:
11: #include "main.h"
12: #include "configuration.h"
13: #include "dialog.h"
14: #include "sdlgui.h"
15: #include "file.h"
16:
17:
18: #define GDLG_BOARD0 5
19: #define GDLG_BOARD1 7
20: #define GDLG_BOARD2 9
21: #define GDLG_MONOCHROME 12
22: #define GDLG_COLOR 13
23: #define GDLG_ALL 14
24: #define GDLG_DISPLAY 17
25: #define GDLG_EXIT 19
26:
27: static SGOBJ graphicsdlg[] =
28: {
29: { SGBOX, 0, 0, 0, 0, 56,24, NULL },
30: { SGTEXT, 0, 0, 20, 1, 16, 1, "Graphics options" },
31:
32: { SGBOX, 0, 0, 2, 3, 32, 9, NULL },
33: { SGTEXT, 0, 0, 3, 4, 21, 1, "NeXTdimension boards:" },
34: { SGTEXT, 0, 0, 4, 6, 16, 1, "Board at slot 2:" },
35: { SGBUTTON, 0, 0, 22, 6, 10, 1, "Add" },
36: { SGTEXT, 0, 0, 4, 8, 16, 1, "Board at slot 4:" },
37: { SGBUTTON, 0, 0, 22, 8, 10, 1, "Add" },
38: { SGTEXT, 0, 0, 4, 10, 16, 1, "Board at slot 6:" },
39: { SGBUTTON, 0, 0, 22,10, 10, 1, "Add" },
40:
41: { SGBOX, 0, 0, 35, 3, 19, 9, NULL },
42: { SGTEXT, 0, 0, 36, 4, 13, 1, "Show display:" },
43: { SGRADIOBUT, 0, 0, 37, 6, 12, 1, "Monochrome" },
44: { SGRADIOBUT, 0, 0, 37, 8, 7, 1, "Color" },
45: { SGRADIOBUT, 0, 0, 37,10, 5, 1, "All" },
46:
47: { SGBOX, 0, 0, 2, 13, 52, 3, NULL },
48: { SGTEXT, 0, 0, 3, 14, 13, 1, "Main display:" },
49: { SGCHECKBOX, 0, 0, 18,14, 26, 1, "Console on NeXTdimension" },
50:
51: { SGTEXT, 0, 0, 2, 18, 52, 1, "Note: NeXTdimension does not work with NeXTstations." },
52:
53: { SGBUTTON, SG_DEFAULT, 0, 17,21, 21,1, "Back to main menu" },
54:
55: { -1, 0, 0, 0,0, 0,0, NULL }
56: };
57:
58:
59: #define SDLG_SLOT0 2
60: #define SDLG_SLOT1 3
61: #define SDLG_SLOT2 4
62: #define SDLG_SELECT 5
63:
64: static SGOBJ slotdlg[] =
65: {
66: { SGBOX, 0, 0, 0, 0, 20,12, NULL },
67: { SGTEXT, 0, 0, 4, 1, 12, 1, "Select slot:" },
68:
69: { SGRADIOBUT, 0, 0, 6, 3, 8, 1, "Slot 2" },
70: { SGRADIOBUT, 0, 0, 6, 5, 8, 1, "Slot 4" },
71: { SGRADIOBUT, 0, 0, 6, 7, 8, 1, "Slot 6" },
72:
73: { SGBUTTON, SG_DEFAULT, 0, 5,10, 10,1, "Select" },
74:
75: { -1, 0, 0, 0,0, 0,0, NULL }
76: };
77:
78:
79:
80: /*-----------------------------------------------------------------------*/
81: /**
82: * Show and process the "Slot select" dialog.
83: */
84: void Dialog_SlotSelect(int *slot)
85: {
86: int but;
87:
88: SDLGui_CenterDlg(slotdlg);
89:
90: /* Set up dialog from actual values: */
91: slotdlg[SDLG_SLOT0].state &= ~SG_SELECTED;
92: slotdlg[SDLG_SLOT1].state &= ~SG_SELECTED;
93: slotdlg[SDLG_SLOT2].state &= ~SG_SELECTED;
94:
95: switch (*slot) {
96: case 0:
97: slotdlg[SDLG_SLOT0].state |= SG_SELECTED;
98: break;
99: case 1:
100: slotdlg[SDLG_SLOT1].state |= SG_SELECTED;
101: break;
102: case 2:
103: slotdlg[SDLG_SLOT2].state |= SG_SELECTED;
104: break;
105:
106: default:
107: break;
108: }
109:
110: /* Draw and process the dialog: */
111:
112: do {
113: but = SDLGui_DoDialog(slotdlg, NULL);
114: }
115: while (but != SDLG_SELECT && but != SDLGUI_QUIT
116: && but != SDLGUI_ERROR && !bQuitProgram);
117:
118: if (slotdlg[SDLG_SLOT2].state&SG_SELECTED) {
119: *slot = 2;
120: } else if (slotdlg[SDLG_SLOT1].state&SG_SELECTED) {
121: *slot = 1;
122: } else {
123: *slot = 0;
124: }
125: }
126:
127:
128: /*-----------------------------------------------------------------------*/
129: /**
130: * Show and process the "Graphics" dialog.
131: */
132: void Dialog_GraphicsDlg(void)
133: {
134: int but;
135: char colordisplay[16];
136: char maindisplay[64];
137:
138: SDLGui_CenterDlg(graphicsdlg);
139:
140: /* Set up dialog from actual values: */
141:
142: if (ConfigureParams.Dimension.board[0].bEnabled) {
143: graphicsdlg[GDLG_BOARD0].txt = "Remove";
144: } else {
145: graphicsdlg[GDLG_BOARD0].txt = "Add";
146: }
147:
148: if (ConfigureParams.Dimension.board[1].bEnabled) {
149: graphicsdlg[GDLG_BOARD1].txt = "Remove";
150: } else {
151: graphicsdlg[GDLG_BOARD1].txt = "Add";
152: }
153:
154: if (ConfigureParams.Dimension.board[2].bEnabled) {
155: graphicsdlg[GDLG_BOARD2].txt = "Remove";
156: } else {
157: graphicsdlg[GDLG_BOARD2].txt = "Add";
158: }
159:
160: if (ConfigureParams.Dimension.bMainDisplay) {
161: graphicsdlg[GDLG_DISPLAY].state |= SG_SELECTED;
162: } else {
163: graphicsdlg[GDLG_DISPLAY].state &= ~SG_SELECTED;
164: }
165:
166: graphicsdlg[GDLG_COLOR].state &= ~SG_SELECTED;
167: graphicsdlg[GDLG_MONOCHROME].state &= ~SG_SELECTED;
168: graphicsdlg[GDLG_ALL].state &= ~SG_SELECTED;
169:
170: switch (ConfigureParams.Screen.nMonitorType) {
171: case MONITOR_TYPE_DUAL:
172: graphicsdlg[GDLG_ALL].state |= SG_SELECTED;
173: break;
174: case MONITOR_TYPE_CPU:
175: graphicsdlg[GDLG_MONOCHROME].state |= SG_SELECTED;
176: break;
177: case MONITOR_TYPE_DIMENSION:
178: graphicsdlg[GDLG_COLOR].state |= SG_SELECTED;
179: break;
180:
181: default:
182: break;
183: }
184:
185: /* Draw and process the dialog: */
186:
187: do {
188:
189: if (ConfigureParams.Dimension.bMainDisplay) {
190: sprintf(maindisplay, "Console on NeXTdimension (Slot %i)", ConfigureParams.Dimension.nMainDisplay*2+2);
191: graphicsdlg[GDLG_DISPLAY].txt = maindisplay;
192: } else {
193: graphicsdlg[GDLG_DISPLAY].txt = "Console on NeXTdimension";
194: }
195:
196: if (ConfigureParams.Screen.nMonitorType == MONITOR_TYPE_DIMENSION) {
197: sprintf(colordisplay, "Color (Slot %i)", ConfigureParams.Screen.nMonitorNum*2+2);
198: graphicsdlg[GDLG_COLOR].txt = colordisplay;
199: } else {
200: graphicsdlg[GDLG_COLOR].txt = "Color";
201: }
202:
203:
204: but = SDLGui_DoDialog(graphicsdlg, NULL);
205:
206: switch (but) {
207: case GDLG_BOARD0:
208: if (Dialog_DimensionDlg(0)) {
209: graphicsdlg[GDLG_BOARD0].txt = "Remove";
210: } else {
211: graphicsdlg[GDLG_BOARD0].txt = "Add";
212: }
213: break;
214:
215: case GDLG_BOARD1:
216: if (Dialog_DimensionDlg(1)) {
217: graphicsdlg[GDLG_BOARD1].txt = "Remove";
218: } else {
219: graphicsdlg[GDLG_BOARD1].txt = "Add";
220: }
221: break;
222:
223: case GDLG_BOARD2:
224: if (Dialog_DimensionDlg(2)) {
225: graphicsdlg[GDLG_BOARD2].txt = "Remove";
226: } else {
227: graphicsdlg[GDLG_BOARD2].txt = "Add";
228: }
229: break;
230:
231: case GDLG_ALL:
232: ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DUAL;
233: break;
234:
235: case GDLG_MONOCHROME:
236: ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_CPU;
237: break;
238:
239: case GDLG_COLOR:
240: ConfigureParams.Screen.nMonitorType = MONITOR_TYPE_DIMENSION;
241: Dialog_SlotSelect(&ConfigureParams.Screen.nMonitorNum);
242: break;
243:
244: case GDLG_DISPLAY:
245: if (ConfigureParams.Dimension.bMainDisplay) {
246: ConfigureParams.Dimension.bMainDisplay = false;
247: } else {
248: ConfigureParams.Dimension.bMainDisplay = true;
249: Dialog_SlotSelect(&ConfigureParams.Dimension.nMainDisplay);
250: }
251: break;
252:
253: default:
254: break;
255: }
256: }
257: while (but != GDLG_EXIT && but != SDLGUI_QUIT
258: && but != SDLGUI_ERROR && !bQuitProgram);
259: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.