86
86
static void enable_controls(HWND hwnd)
88
int drive_true_emulation, virtual_device_traps;
88
int drive_true_emulation, virtual_device_traps;
91
resources_get_value("DriveTrueEmulation", (void *)&drive_true_emulation);
92
resources_get_value("VirtualDevices", (void *)&virtual_device_traps);
93
haveIECDevice = IsDlgButtonChecked(hwnd, IDC_TOGGLE_USEIECDEVICE)==BST_CHECKED;
91
resources_get_value("DriveTrueEmulation", (void *)&drive_true_emulation);
92
resources_get_value("VirtualDevices", (void *)&virtual_device_traps);
93
haveIECDevice = IsDlgButtonChecked(hwnd, IDC_TOGGLE_USEIECDEVICE)
95
if( (drive_true_emulation || !virtual_device_traps) && !haveIECDevice )
97
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDISK), FALSE);
98
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDIR), FALSE);
99
EnableWindow(GetDlgItem(hwnd, IDC_SELECTNONE), FALSE);
100
CheckRadioButton(hwnd, IDC_SELECTDISK, IDC_SELECTDIR, IDC_SELECTNONE);
101
enable_controls_for_disk_device_type(hwnd, IDC_SELECTNONE);
105
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDISK), TRUE);
106
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDIR), TRUE);
107
EnableWindow(GetDlgItem(hwnd, IDC_SELECTNONE), TRUE);
96
if ((drive_true_emulation || !virtual_device_traps) && !haveIECDevice) {
97
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDISK), FALSE);
98
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDIR), FALSE);
99
EnableWindow(GetDlgItem(hwnd, IDC_SELECTNONE), FALSE);
101
EnableWindow(GetDlgItem(hwnd, IDC_SELECTREAL), FALSE);
104
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDISK), TRUE);
105
EnableWindow(GetDlgItem(hwnd, IDC_SELECTDIR), TRUE);
106
EnableWindow(GetDlgItem(hwnd, IDC_SELECTNONE), TRUE);
108
if (opencbmlib_is_available())
109
EnableWindow(GetDlgItem(hwnd, IDC_SELECTREAL), TRUE);
111
EnableWindow(GetDlgItem(hwnd, IDC_SELECTREAL), FALSE);
111
116
static void init_dialog(HWND hwnd, unsigned int num)
113
118
const char *disk_image, *dir;
119
TCHAR *st_disk_image, *st_dir;
116
122
if (num >= 8 && num <= 11) {
117
123
disk_image = file_system_get_disk_name(num);
124
st_disk_image = system_mbstowcs_alloc(disk_image);
118
125
SetDlgItemText(hwnd, IDC_DISKIMAGE,
119
disk_image != NULL ? disk_image : "");
126
st_disk_image != NULL ? st_disk_image : TEXT(""));
127
system_mbstowcs_free(st_disk_image);
121
129
resources_get_sprintf("FSDevice%dDir", (void *)&dir, num);
122
SetDlgItemText(hwnd, IDC_DIR, dir != NULL ? dir : "");
130
st_dir = system_mbstowcs_alloc(dir);
131
SetDlgItemText(hwnd, IDC_DIR, st_dir != NULL ? st_dir : TEXT(""));
132
system_mbstowcs_free(st_dir);
124
134
resources_get_sprintf("FSDevice%dConvertP00", (void *)&n, num);
125
135
CheckDlgButton(hwnd, IDC_TOGGLE_READP00,
138
148
CheckDlgButton(hwnd, IDC_TOGGLE_ATTACH_READONLY,
139
149
n ? BST_CHECKED : BST_UNCHECKED);
142
resources_get_sprintf("FileSystemDevice%d", (void *)&enabled, num);
145
else if( disk_image != NULL )
151
resources_get_sprintf("FileSystemDevice%d", (void *)&devtype, num);
153
case ATTACH_DEVICE_FS:
154
if (disk_image != NULL)
160
case ATTACH_DEVICE_REAL:
169
CheckRadioButton(hwnd, IDC_SELECTDISK, IDC_SELECTREAL, n);
150
171
CheckRadioButton(hwnd, IDC_SELECTDISK, IDC_SELECTDIR, n);
151
173
enable_controls_for_disk_device_type(hwnd, n);
153
if( iec_available_busses() & IEC_BUS_IEC )
175
if (iec_available_busses() & IEC_BUS_IEC) {
155
176
resources_get_sprintf("IECDevice%d", (void *)&n, num);
156
177
CheckDlgButton(hwnd, IDC_TOGGLE_USEIECDEVICE,
157
178
n ? BST_CHECKED : BST_UNCHECKED);
161
180
CheckDlgButton(hwnd, IDC_TOGGLE_USEIECDEVICE, BST_UNCHECKED);
162
181
ShowWindow(GetDlgItem(hwnd, IDC_TOGGLE_USEIECDEVICE), FALSE);
165
184
enable_controls(hwnd);
169
188
static BOOL store_dialog_results(HWND hwnd, unsigned int num)
192
int devtype = ATTACH_DEVICE_NONE;
173
if( IsDlgButtonChecked(hwnd, IDC_SELECTDISK) == BST_CHECKED )
175
GetDlgItemText(hwnd, IDC_DISKIMAGE, s, MAX_PATH);
176
if( file_system_attach_disk(num, s) < 0 )
178
ui_error("Cannot attach specified file");
194
if (IsDlgButtonChecked(hwnd, IDC_SELECTDISK) == BST_CHECKED) {
195
GetDlgItemText(hwnd, IDC_DISKIMAGE, st, MAX_PATH);
196
system_wcstombs(s, st, MAX_PATH);
197
if (file_system_attach_disk(num, s) < 0 ) {
198
ui_error("Cannot attach specified file");
202
if ((IsDlgButtonChecked(hwnd, IDC_SELECTDIR) == BST_CHECKED) &&
203
file_system_get_disk_name(num))
204
file_system_detach_disk(num);
182
else if( (IsDlgButtonChecked(hwnd, IDC_SELECTDIR) == BST_CHECKED) &&
183
file_system_get_disk_name(num) )
184
file_system_detach_disk(num);
186
if( iec_available_busses() & IEC_BUS_IEC )
187
resources_set_sprintf("IECDevice%d",
188
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_TOGGLE_USEIECDEVICE)==BST_CHECKED),
207
if (iec_available_busses() & IEC_BUS_IEC)
208
resources_set_sprintf("IECDevice%d",
209
(resource_value_t)(IsDlgButtonChecked(hwnd,
210
IDC_TOGGLE_USEIECDEVICE)==BST_CHECKED), num);
212
if (IsDlgButtonChecked(hwnd, IDC_SELECTDISK) == BST_CHECKED
213
|| IsDlgButtonChecked(hwnd, IDC_SELECTDIR) == BST_CHECKED)
214
devtype = ATTACH_DEVICE_FS;
216
if (IsDlgButtonChecked(hwnd, IDC_SELECTREAL) == BST_CHECKED)
217
devtype = ATTACH_DEVICE_REAL;
219
resources_set_sprintf("FileSystemDevice%d", (resource_value_t)devtype,
191
resources_set_sprintf("FileSystemDevice%d",
192
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_SELECTNONE) != BST_CHECKED),
194
resources_set_sprintf("FSDevice%dConvertP00",
195
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_TOGGLE_READP00)==BST_CHECKED),
197
resources_set_sprintf("FSDevice%dSaveP00",
198
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_TOGGLE_WRITEP00)==BST_CHECKED),
200
resources_set_sprintf("FSDevice%dHideCBMFiles",
201
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_TOGGLE_HIDENONP00)==BST_CHECKED),
203
resources_set_sprintf("AttachDevice%dReadonly",
204
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_TOGGLE_ATTACH_READONLY)==BST_CHECKED),
206
GetDlgItemText(hwnd, IDC_DIR, s, MAX_PATH);
207
resources_set_sprintf("FSDevice%dDir", (resource_value_t)s, num);
222
resources_set_sprintf("FSDevice%dConvertP00",
223
(resource_value_t)(IsDlgButtonChecked(hwnd,
224
IDC_TOGGLE_READP00) == BST_CHECKED), num);
225
resources_set_sprintf("FSDevice%dSaveP00",
226
(resource_value_t)(IsDlgButtonChecked(hwnd,
227
IDC_TOGGLE_WRITEP00) == BST_CHECKED), num);
228
resources_set_sprintf("FSDevice%dHideCBMFiles",
229
(resource_value_t)(IsDlgButtonChecked(hwnd,
230
IDC_TOGGLE_HIDENONP00) == BST_CHECKED), num);
231
resources_set_sprintf("AttachDevice%dReadonly",
232
(resource_value_t)(IsDlgButtonChecked(hwnd,
233
IDC_TOGGLE_ATTACH_READONLY) == BST_CHECKED), num);
235
GetDlgItemText(hwnd, IDC_DIR, st, MAX_PATH);
236
system_wcstombs(s, st, MAX_PATH);
237
resources_set_sprintf("FSDevice%dDir", (resource_value_t)s, num);
242
static void browse_diskimage(HWND hwnd)
246
st_name = uilib_select_file(hwnd, TEXT("Attach disk image"),
247
UILIB_FILTER_ALL | UILIB_FILTER_DISK
249
UILIB_SELECTOR_TYPE_FILE_LOAD,
250
UILIB_SELECTOR_STYLE_DISK);
252
if (st_name != NULL) {
253
SetDlgItemText(hwnd, IDC_DISKIMAGE, st_name);
258
static void autostart_diskimage(HWND hwnd)
262
st_name = uilib_select_file(hwnd, TEXT("Autostart disk image"),
263
UILIB_FILTER_ALL | UILIB_FILTER_DISK
265
UILIB_SELECTOR_TYPE_FILE_LOAD,
266
UILIB_SELECTOR_STYLE_DISK);
268
if (st_name != NULL) {
271
SetDlgItemText(hwnd, IDC_DISKIMAGE, st_name);
272
name = system_wcstombs_alloc(st_name);
273
if (autostart_autodetect(name, "*", 0, AUTOSTART_MODE_RUN) < 0)
274
ui_error("Cannot autostart specified file.");
275
system_wcstombs_free(name);
280
static void browse_dir(HWND hwnd)
288
bi.pszDisplayName = st;
289
bi.lpszTitle = TEXT("Select file system directory");
294
if ((idlist = SHBrowseForFolder(&bi)) != NULL) {
295
SHGetPathFromIDList(idlist, st);
298
If a root directory is selected, \ is appended
299
and has to be deleted.
301
if (st[_tcslen(st) - 1] == '\\')
302
st[_tcslen(st) - 1] = '\0';
303
SetDlgItemText(hwnd, IDC_DIR, st);
212
307
static BOOL CALLBACK dialog_proc(unsigned int num, HWND hwnd, UINT msg,
242
338
enable_controls(hwnd);
244
340
case IDC_BROWSEDISK:
248
s = ui_select_file(hwnd,"Attach disk image",
249
UI_LIB_FILTER_ALL | UI_LIB_FILTER_DISK | UI_LIB_FILTER_ZIP,
250
FILE_SELECTOR_DISK_STYLE,NULL);
253
SetDlgItemText(hwnd, IDC_DISKIMAGE, s);
341
browse_diskimage(hwnd);
258
343
case IDC_AUTOSTART:
262
s = ui_select_file(hwnd,"Autostart disk image",
263
UI_LIB_FILTER_ALL | UI_LIB_FILTER_DISK | UI_LIB_FILTER_ZIP,
264
FILE_SELECTOR_DISK_STYLE,NULL);
267
SetDlgItemText(hwnd, IDC_DISKIMAGE, s);
268
if (autostart_autodetect(s, "*", 0, AUTOSTART_MODE_RUN) < 0)
269
ui_error("Cannot autostart specified file.");
344
autostart_diskimage(hwnd);
274
346
case IDC_BROWSEDIR:
282
bi.pszDisplayName = s;
283
bi.lpszTitle = "Select file system directory";
288
if ((idlist = SHBrowseForFolder(&bi)) != NULL) {
289
SHGetPathFromIDList(idlist, s);
292
If a root directory is selected, \ is appended
293
and has to be deleted.
295
if (s[strlen(s) - 1] == '\\')
296
s[strlen(s) - 1] = '\0';
297
SetDlgItemText(hwnd, IDC_DIR, s);
373
423
static void enable_printer_controls(unsigned int num, HWND hwnd)
375
int res_value, is_enabled;
376
int drive_true_emulation, virtual_device_traps;
379
resources_get_value("DriveTrueEmulation", (void *)&drive_true_emulation);
380
resources_get_value("VirtualDevices", (void *)&virtual_device_traps);
381
haveIECDevice = IsDlgButtonChecked(hwnd, IDC_PRINTER_USEIECDEVICE)==BST_CHECKED;
383
if( num>0 && ((drive_true_emulation || !virtual_device_traps) && !haveIECDevice) )
385
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TYPE), FALSE);
386
SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TYPE),
390
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TYPE), TRUE);
425
int res_value, is_enabled;
426
int drive_true_emulation, virtual_device_traps;
429
resources_get_value("DriveTrueEmulation", (void *)&drive_true_emulation);
430
resources_get_value("VirtualDevices", (void *)&virtual_device_traps);
431
haveIECDevice = IsDlgButtonChecked(hwnd,
432
IDC_PRINTER_USEIECDEVICE) == BST_CHECKED;
434
if (num > 0 && ((drive_true_emulation || !virtual_device_traps)
435
&& !haveIECDevice)) {
436
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TYPE), FALSE);
437
SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TYPE),
440
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TYPE), TRUE);
392
res_value = SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TYPE),
395
is_enabled = res_value == PRINTER_DEVICE_FS;
397
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_FORMFEED), is_enabled);
398
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_DRIVER), is_enabled);
399
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT), is_enabled);
400
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TEXTOUT), is_enabled);
401
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME), is_enabled);
402
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME), is_enabled);
403
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME), is_enabled);
442
res_value = SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TYPE),
445
is_enabled = res_value == PRINTER_DEVICE_FS;
447
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_FORMFEED), is_enabled);
448
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_DRIVER), is_enabled);
449
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT), is_enabled);
450
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_TEXTOUT), is_enabled);
451
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME), is_enabled);
452
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME), is_enabled);
453
EnableWindow(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME), is_enabled);
406
456
static void init_printer_dialog(unsigned int num, HWND hwnd)
457
507
SendMessage(printer_hwnd, CB_SETCURSEL, (WPARAM)res_value, 0);
459
if( num>0 && (iec_available_busses() & IEC_BUS_IEC) )
509
if (num > 0 && (iec_available_busses() & IEC_BUS_IEC)) {
461
510
resources_get_sprintf("IECDevice%d", (void *)&res_value, num);
462
511
CheckDlgButton(hwnd, IDC_PRINTER_USEIECDEVICE,
463
512
res_value ? BST_CHECKED : BST_UNCHECKED);
467
514
ShowWindow(GetDlgItem(hwnd, IDC_PRINTER_USEIECDEVICE), FALSE);
468
515
CheckDlgButton(hwnd, IDC_PRINTER_USEIECDEVICE, BST_UNCHECKED);
518
for (i = 0; i < 3; i++) {
473
519
resources_get_sprintf("PrinterTextDevice%d", (void *)&res_string, i+1);
475
strncpy(printertextdevice[i], res_string, MAX_PATH);
521
strncpy(printertextdevice[i], res_string, MAX_PATH);
478
524
enable_printer_controls(num, hwnd);
481
527
static BOOL store_printer_dialog_results(HWND hwnd, unsigned int num)
483
char printer_name[30];
486
sprintf(printer_name, "PrinterUserport");
488
sprintf(printer_name, "Printer%d", num);
490
resources_set_value(printer_name,
491
(resource_value_t) SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TYPE),
492
CB_GETCURSEL, 0, 0));
494
resources_set_sprintf("%sDriver",
496
ui_printer_driver_ascii[SendMessage(GetDlgItem(hwnd, IDC_PRINTER_DRIVER),
497
CB_GETCURSEL, 0, 0)],
500
resources_set_sprintf("%sOutput",
502
ui_printer_output_ascii[SendMessage(GetDlgItem(hwnd, IDC_PRINTER_OUTPUT),
503
CB_GETCURSEL, 0, 0)],
506
resources_set_sprintf("%sTextDevice",
508
SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TEXTOUT), CB_GETCURSEL, 0, 0),
512
resources_set_value("PrinterTextDevice1", (void *)printertextdevice[0]);
513
resources_set_value("PrinterTextDevice2", (void *)printertextdevice[1]);
514
resources_set_value("PrinterTextDevice3", (void *)printertextdevice[2]);
516
if( num>0 && (iec_available_busses() & IEC_BUS_IEC) )
517
resources_set_sprintf("IECDevice%d",
518
(resource_value_t)(IsDlgButtonChecked(hwnd, IDC_PRINTER_USEIECDEVICE)==BST_CHECKED),
529
char printer_name[30];
532
sprintf(printer_name, "PrinterUserport");
534
sprintf(printer_name, "Printer%d", num);
536
resources_set_value(printer_name,
537
(resource_value_t)SendMessage(GetDlgItem(hwnd,
538
IDC_PRINTER_TYPE), CB_GETCURSEL, 0, 0));
540
resources_set_sprintf("%sDriver", (resource_value_t)
541
ui_printer_driver_ascii[SendMessage(GetDlgItem(hwnd,
542
IDC_PRINTER_DRIVER), CB_GETCURSEL, 0, 0)],
545
resources_set_sprintf("%sOutput", (resource_value_t)
546
ui_printer_output_ascii[SendMessage(GetDlgItem(hwnd,
547
IDC_PRINTER_OUTPUT), CB_GETCURSEL, 0, 0)],
550
resources_set_sprintf("%sTextDevice", (resource_value_t)
551
SendMessage(GetDlgItem(hwnd, IDC_PRINTER_TEXTOUT),
552
CB_GETCURSEL, 0, 0), printer_name);
554
resources_set_value("PrinterTextDevice1", (void *)printertextdevice[0]);
555
resources_set_value("PrinterTextDevice2", (void *)printertextdevice[1]);
556
resources_set_value("PrinterTextDevice3", (void *)printertextdevice[2]);
558
if (num > 0 && (iec_available_busses() & IEC_BUS_IEC))
559
resources_set_sprintf("IECDevice%d", (resource_value_t)
560
(IsDlgButtonChecked(hwnd,
561
IDC_PRINTER_USEIECDEVICE)==BST_CHECKED), num);
566
static void printer_set_active(HWND hwnd)
570
st = system_mbstowcs_alloc(printertextdevice[0]);
571
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME, st);
572
system_mbstowcs_free(st);
573
st = system_mbstowcs_alloc(printertextdevice[1]);
574
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME, st);
575
system_mbstowcs_free(st);
576
st = system_mbstowcs_alloc(printertextdevice[2]);
577
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME, st);
578
system_mbstowcs_free(st);
582
static void printer_kill_active(HWND hwnd)
586
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME, st, MAX_PATH);
587
system_wcstombs(printertextdevice[0], st, MAX_PATH);
588
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME, st, MAX_PATH);
589
system_wcstombs(printertextdevice[1], st, MAX_PATH);
590
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME, st, MAX_PATH);
591
system_wcstombs(printertextdevice[2], st, MAX_PATH);
525
594
static BOOL CALLBACK printer_dialog_proc(unsigned int num, HWND hwnd, UINT msg,
532
601
command = LOWORD(wparam);
533
602
switch (command) {
534
603
case IDC_PRINTER_TYPE:
535
case IDC_PRINTER_USEIECDEVICE:
604
case IDC_PRINTER_USEIECDEVICE:
536
605
enable_printer_controls(num, hwnd);
538
case IDC_PRINTER_FORMFEED:
542
case 4: printer_formfeed(0); break;
543
case 5: printer_formfeed(1); break;
544
case 0: printer_formfeed(2); break;
607
case IDC_PRINTER_FORMFEED:
553
NMHDR FAR *nmhdr = (NMHDR FAR *) (lparam);
555
switch( nmhdr->code )
558
SetWindowLong(hwnd, DWL_MSGRESULT,
559
store_printer_dialog_results(hwnd, num) ? PSNRET_NOERROR : PSNRET_INVALID);
564
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME, printertextdevice[0]);
565
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME, printertextdevice[1]);
566
SetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME, printertextdevice[2]);
572
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE1_NAME, printertextdevice[0], MAX_PATH);
573
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE2_NAME, printertextdevice[1], MAX_PATH);
574
GetDlgItemText(hwnd, IDC_PRINTER_OUTPUT_FILE3_NAME, printertextdevice[2], MAX_PATH);
624
NMHDR FAR *nmhdr = (NMHDR FAR *)(lparam);
626
switch (nmhdr->code) {
628
SetWindowLong(hwnd, DWL_MSGRESULT,
629
store_printer_dialog_results(hwnd, num)
630
? PSNRET_NOERROR : PSNRET_INVALID);
633
printer_set_active(hwnd);
636
printer_kill_active(hwnd);
582
642
EndDialog(hwnd, 0);
594
#define _CALLBACK_PRINTER(num) \
654
#define _CALLBACK_PRINTER(num) \
595
655
static BOOL CALLBACK callback_##num(HWND dialog, UINT msg, \
596
656
WPARAM wparam, LPARAM lparam) \
598
return printer_dialog_proc(num, dialog, msg, wparam, lparam); \
658
return printer_dialog_proc(num, dialog, msg, wparam, lparam); \
601
661
_CALLBACK_PRINTER(0)
602
662
_CALLBACK_PRINTER(4)
603
663
_CALLBACK_PRINTER(5)
605
666
/* -------------------------------------------------------------------------- */
606
667
/* Main Dialog */
607
668
/* -------------------------------------------------------------------------- */
609
void ui_peripheral_dialog(HWND hwnd)
670
static void uiperipheral_dialog(HWND hwnd)
611
672
PROPSHEETPAGE psp[7];
612
673
PROPSHEETHEADER psh;
613
674
int i, no_of_drives, no_of_printers;
615
for( i = 0; i < 3; i++ )
617
printertextdevice[i] = (char *) lib_malloc(MAX_PATH);
676
for (i = 0; i < 3; i++ ) {
677
printertextdevice[i] = (char *)lib_malloc(MAX_PATH);
618
678
strcpy(printertextdevice[i], "");
622
682
no_of_printers = 2;
624
if( have_printer_userport<0 )
625
have_printer_userport = (resources_touch("PrinterUserport"))<0 ? 0 : 1;
626
if( have_printer_userport ) no_of_printers++;
684
if (have_printer_userport < 0)
685
have_printer_userport = (resources_touch("PrinterUserport")) < 0
687
if (have_printer_userport)
628
690
for (i = 0; i < no_of_printers; i++) {
629
691
psp[i].dwSize = sizeof(PROPSHEETPAGE);
643
706
for (i = 0; i < no_of_drives; i++) {
644
psp[no_of_printers+i].dwSize = sizeof(PROPSHEETPAGE);
645
psp[no_of_printers+i].dwFlags = PSP_USETITLE /*| PSP_HASHELP*/ ;
646
psp[no_of_printers+i].hInstance = winmain_instance;
707
psp[no_of_printers + i].dwSize = sizeof(PROPSHEETPAGE);
708
psp[no_of_printers + i].dwFlags = PSP_USETITLE /*| PSP_HASHELP*/ ;
709
psp[no_of_printers + i].hInstance = winmain_instance;
647
710
#ifdef _ANONYMOUS_UNION
648
psp[no_of_printers+i].pszTemplate = MAKEINTRESOURCE(IDD_DISKDEVICE_DIALOG);
649
psp[no_of_printers+i].pszIcon = NULL;
711
psp[no_of_printers + i].pszTemplate
712
= MAKEINTRESOURCE(IDD_DISKDEVICE_DIALOG);
713
psp[no_of_printers + i].pszIcon = NULL;
651
psp[no_of_printers+i].DUMMYUNIONNAME.pszTemplate = MAKEINTRESOURCE(IDD_DISKDEVICE_DIALOG);
652
psp[no_of_printers+i].u2.pszIcon = NULL;
715
psp[no_of_printers + i].DUMMYUNIONNAME.pszTemplate
716
= MAKEINTRESOURCE(IDD_DISKDEVICE_DIALOG);
717
psp[no_of_printers + i].u2.pszIcon = NULL;
654
psp[no_of_printers+i].lParam = 0;
655
psp[no_of_printers+i].pfnCallback = NULL;
719
psp[no_of_printers + i].lParam = 0;
720
psp[no_of_printers + i].pfnCallback = NULL;
658
if( have_printer_userport )
723
if (have_printer_userport) {
660
724
psp[0].pfnDlgProc = callback_0;
661
psp[0].pszTitle = "Printer Userport";
725
psp[0].pszTitle = TEXT("Printer Userport");
666
psp[i+0].pfnDlgProc = callback_4;
667
psp[i+0].pszTitle = "Printer 4";
668
psp[i+1].pfnDlgProc = callback_5;
669
psp[i+1].pszTitle = "Printer 5";
670
psp[i+2].pfnDlgProc = callback_8;
671
psp[i+2].pszTitle = "Drive 8";
672
psp[i+3].pfnDlgProc = callback_9;
673
psp[i+3].pszTitle = "Drive 9";
674
psp[i+4].pfnDlgProc = callback_10;
675
psp[i+4].pszTitle = "Drive 10";
676
psp[i+5].pfnDlgProc = callback_11;
677
psp[i+5].pszTitle = "Drive 11";
730
psp[i + 0].pfnDlgProc = callback_4;
731
psp[i + 0].pszTitle = TEXT("Printer 4");
732
psp[i + 1].pfnDlgProc = callback_5;
733
psp[i + 1].pszTitle = TEXT("Printer 5");
734
psp[i + 2].pfnDlgProc = callback_8;
735
psp[i + 2].pszTitle = TEXT("Drive 8");
736
psp[i + 3].pfnDlgProc = callback_9;
737
psp[i + 3].pszTitle = TEXT("Drive 9");
738
psp[i + 4].pfnDlgProc = callback_10;
739
psp[i + 4].pszTitle = TEXT("Drive 10");
740
psp[i + 5].pfnDlgProc = callback_11;
741
psp[i + 5].pszTitle = TEXT("Drive 11");
679
743
psh.dwSize = sizeof(PROPSHEETHEADER);
680
744
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;
681
745
psh.hwndParent = hwnd;
682
746
psh.hInstance = winmain_instance;
683
psh.pszCaption = "Peripheral Settings";
747
psh.pszCaption = TEXT("Peripheral Settings");
684
748
psh.nPages = no_of_drives + no_of_printers;
685
749
#ifdef _ANONYMOUS_UNION
686
750
psh.pszIcon = NULL;
751
psh.nStartPage = i + 2;
690
754
psh.DUMMYUNIONNAME.pszIcon = NULL;
691
psh.u2.nStartPage = 0;
755
psh.u2.nStartPage = i + 2;
692
756
psh.u3.ppsp = psp;
694
758
psh.pfnCallback = NULL;
696
760
PropertySheet(&psh);
698
for( i = 0; i < 3; i++ )
699
lib_free(printertextdevice[i]);
762
for (i = 0; i < 3; i++)
763
lib_free(printertextdevice[i]);
766
void uiperipheral_command(HWND hwnd, WPARAM wparam)
769
case IDM_DEVICEMANAGER:
770
uiperipheral_dialog(hwnd);
772
case IDM_FORMFEED_PRINTERIEC4 | 0x00010000:
775
case IDM_FORMFEED_PRINTERIEC5 | 0x00010000: