Subversion Repositories filter_foundry

Rev

Rev 493 | Rev 496 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 493 Rev 495
Line 357... Line 357...
357
#endif
357
#endif
358
                dispose_preview();
358
                dispose_preview();
359
                return false; // end dialog
359
                return false; // end dialog
360
        case OPENITEM:
360
        case OPENITEM:
361
        {
361
        {
362
                TCHAR filters[3000];
362
                TCHAR* tmp1;
363
                TCHAR *tmp1, *tmp2;
363
                TCHAR* filters = (TCHAR*)malloc(4096);
364
                size_t len;
364
                if (filters == NULL) return false;
365
 
-
 
366
                memset(&filters[0], 0, sizeof(filters));
365
                memset(filters, 0, 4096);
367
                tmp1 = &filters[0];
366
                tmp1 = filters;
368
 
367
 
369
                FF_GetMsg(tmp1, MSG_ALL_SUPPORTED_FILES_ID);
368
                strcpy_advance_id(&tmp1, MSG_ALL_SUPPORTED_FILES_ID);
370
                tmp1 += xstrlen(tmp1);
-
 
371
                len = xstrlen(tmp2 = TEXT(" (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)"));
369
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)")); tmp1++;
372
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
373
                tmp1 += (len + 1);
-
 
374
                len = xstrlen(tmp2 = TEXT("*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx"));
370
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx")); tmp1++;
375
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
376
                tmp1 += (len + 1);
-
 
377
 
371
 
378
                FF_GetMsg(tmp1, MSG_OPEN_AFS_ID);
372
                strcpy_advance_id(&tmp1, MSG_OPEN_AFS_ID);
379
                tmp1 += xstrlen(tmp1);
-
 
380
                len = xstrlen(tmp2 = TEXT(" (*.afs)"));
373
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs)")); tmp1++;
381
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
382
                tmp1 += (len + 1);
-
 
383
                len = xstrlen(tmp2 = TEXT("*.afs"));
374
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs")); tmp1++;
384
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
385
                tmp1 += (len + 1);
-
 
386
 
375
 
387
                FF_GetMsg(tmp1, MSG_OPEN_TXT_ID);
376
                strcpy_advance_id(&tmp1, MSG_OPEN_TXT_ID);
388
                tmp1 += xstrlen(tmp1);
-
 
389
                len = xstrlen(tmp2 = TEXT(" (*.txt)"));
377
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.txt)")); tmp1++;
390
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
391
                tmp1 += (len + 1);
-
 
392
                len = xstrlen(tmp2 = TEXT("*.txt"));
378
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.txt")); tmp1++;
393
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
394
                tmp1 += (len + 1);
-
 
395
 
379
 
396
                FF_GetMsg(tmp1, MSG_OPEN_8BF_ID);
380
                strcpy_advance_id(&tmp1, MSG_OPEN_8BF_ID);
397
                tmp1 += xstrlen(tmp1);
-
 
398
                len = xstrlen(tmp2 = TEXT(" (*.8bf)"));
381
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.8bf)")); tmp1++;
399
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
400
                tmp1 += (len + 1);
-
 
401
                len = xstrlen(tmp2 = TEXT("*.8bf"));
382
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.8bf")); tmp1++;
402
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
403
                tmp1 += (len + 1);
-
 
404
 
383
 
405
                FF_GetMsg(tmp1, MSG_OPEN_PFF_ID);
384
                strcpy_advance_id(&tmp1, MSG_OPEN_PFF_ID);
406
                tmp1 += xstrlen(tmp1);
-
 
407
                len = xstrlen(tmp2 = TEXT(" (*.pff)"));
385
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.pff)")); tmp1++;
408
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
409
                tmp1 += (len + 1);
-
 
410
                len = xstrlen(tmp2 = TEXT("*.pff"));
386
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.pff")); tmp1++;
411
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
412
                tmp1 += (len + 1);
-
 
413
 
387
 
414
                FF_GetMsg(tmp1, MSG_OPEN_PRM_ID);
388
                strcpy_advance_id(&tmp1, MSG_OPEN_PRM_ID);
415
                tmp1 += xstrlen(tmp1);
-
 
416
                len = xstrlen(tmp2 = TEXT(" (*.prm)"));
389
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.prm)")); tmp1++;
417
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
418
                tmp1 += (len + 1);
-
 
419
                len = xstrlen(tmp2 = TEXT("*.prm"));
390
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.prm")); tmp1++;
420
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
421
                tmp1 += (len + 1);
-
 
422
 
391
 
423
                FF_GetMsg(tmp1, MSG_OPEN_RSRC_ID);
392
                strcpy_advance_id(&tmp1, MSG_OPEN_RSRC_ID);
424
                tmp1 += xstrlen(tmp1);
-
 
425
                len = xstrlen(tmp2 = TEXT(" (*.bin, *.rsrc)"));
393
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.bin, *.rsrc)")); tmp1++;
426
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
427
                tmp1 += (len + 1);
-
 
428
                len = xstrlen(tmp2 = TEXT("*.bin;*.rsrc"));
394
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.bin;*.rsrc")); tmp1++;
429
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
430
                tmp1 += (len + 1);
-
 
431
 
395
 
432
                FF_GetMsg(tmp1, MSG_OPEN_FFX_ID);
396
                strcpy_advance_id(&tmp1, MSG_OPEN_FFX_ID);
433
                tmp1 += xstrlen(tmp1);
-
 
434
                len = xstrlen(tmp2 = TEXT(" (*.ffx)"));
397
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.ffx)")); tmp1++;
435
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
436
                tmp1 += (len + 1);
-
 
437
                len = xstrlen(tmp2 = TEXT("*.ffx"));
398
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.ffx")); tmp1++;
438
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
439
                tmp1 += (len + 1);
-
 
440
 
399
 
441
                FF_GetMsg(tmp1, MSG_ALL_FILES_ID);
400
                strcpy_advance_id(&tmp1, MSG_ALL_FILES_ID);
442
                tmp1 += xstrlen(tmp1);
-
 
443
                len = xstrlen(tmp2 = TEXT(" (*.*)"));
401
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.*)")); tmp1++;
444
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
445
                tmp1 += (len + 1);
-
 
446
                len = xstrlen(tmp2 = TEXT("*.*"));
402
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.*")); tmp1++;
447
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
448
                tmp1 += (len + 1);
-
 
449
 
403
 
450
                if (!gdata->standalone && choosefiletypes(
404
                if (!gdata->standalone && choosefiletypes(
451
                #ifdef MAC_ENV
405
                #ifdef MAC_ENV
452
                (StringPtr)_strdup("\pChoose filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
406
                (StringPtr)_strdup("\pChoose filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
453
                        &sfr, &reply, types, 2,
407
                        &sfr, &reply, types, 2,
454
                        &filters[0]
408
                        filters
455
                #else
409
                #else
456
                        FF_GetMsg_Cpy(MSG_LOAD_FILTER_SETTINGS_TITLE_ID),
410
                        FF_GetMsg_Cpy(MSG_LOAD_FILTER_SETTINGS_TITLE_ID),
457
                        &sfr, &reply, types, 2,
411
                        &sfr, &reply, types, 2,
458
                        &filters[0], gdata->hWndMainDlg
412
                        filters, gdata->hWndMainDlg
459
                #endif
413
                #endif
460
                )) {
414
                )) {
461
                        // Backup everything, otherwise we might lose parameter data if the loading fails
415
                        // Backup everything, otherwise we might lose parameter data if the loading fails
462
                        bakState = saveInternalState();
416
                        bakState = saveInternalState();
463
 
417
 
Line 470... Line 424...
470
 
424
 
471
                                // Restore
425
                                // Restore
472
                                restoreInternalState(bakState);
426
                                restoreInternalState(bakState);
473
                        }
427
                        }
474
                }
428
                }
-
 
429
                free(filters);
475
                break;
430
                break;
476
        }
431
        }
477
        case SAVEITEM:
432
        case SAVEITEM:
478
        {
433
        {
479
                TCHAR filters[3000];
434
                TCHAR* tmp1;
480
                TCHAR* tmp1, * tmp2;
435
                TCHAR* filters = (TCHAR*)malloc(4096);
481
                size_t len;
436
                if (filters == NULL) return false;
482
 
-
 
483
                memset(&filters[0], 0, sizeof(filters));
437
                memset(filters, 0, 4096);
484
                tmp1 = &filters[0];
438
                tmp1 = filters;
485
 
439
 
486
                FF_GetMsg(tmp1, MSG_ALL_SUPPORTED_FILES_ID);
440
                strcpy_advance_id(&tmp1, MSG_ALL_SUPPORTED_FILES_ID);
487
                tmp1 += xstrlen(tmp1);
-
 
488
                len = xstrlen(tmp2 = TEXT(" (*.afs, *.pff, *.txt)"));
441
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs, *.pff, *.txt)")); tmp1++;
489
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
490
                tmp1 += (len + 1);
-
 
491
                len = xstrlen(tmp2 = TEXT("*.afs;*.pff;*.txt"));
442
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs;*.pff;*.txt")); tmp1++;
492
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
493
                tmp1 += (len + 1);
-
 
494
 
443
 
495
                FF_GetMsg(tmp1, MSG_SAVE_AFS_ID);
444
                strcpy_advance_id(&tmp1, MSG_SAVE_AFS_ID);
496
                tmp1 += xstrlen(tmp1);
-
 
497
                len = xstrlen(tmp2 = TEXT(" (*.afs)"));
445
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs)")); tmp1++;
498
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
499
                tmp1 += (len + 1);
-
 
500
                len = xstrlen(tmp2 = TEXT("*.afs"));
446
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs")); tmp1++;
501
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
502
                tmp1 += (len + 1);
-
 
503
 
447
 
504
                FF_GetMsg(tmp1, MSG_SAVE_PFF_ID);
448
                strcpy_advance_id(&tmp1, MSG_SAVE_PFF_ID);
505
                tmp1 += xstrlen(tmp1);
-
 
506
                len = xstrlen(tmp2 = TEXT(" (*.pff)"));
449
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.pff)")); tmp1++;
507
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
508
                tmp1 += (len + 1);
-
 
509
                len = xstrlen(tmp2 = TEXT("*.pff"));
450
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.pff")); tmp1++;
510
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
511
                tmp1 += (len + 1);
-
 
512
 
451
 
513
                FF_GetMsg(tmp1, MSG_SAVE_TXT_ID);
452
                strcpy_advance_id(&tmp1, MSG_SAVE_TXT_ID);
514
                tmp1 += xstrlen(tmp1);
-
 
515
                len = xstrlen(tmp2 = TEXT(" (*.txt)"));
453
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.txt)")); tmp1++;
516
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
517
                tmp1 += (len + 1);
-
 
518
                len = xstrlen(tmp2 = TEXT("*.txt"));
454
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.txt")); tmp1++;
519
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
520
                tmp1 += (len + 1);
-
 
521
 
455
 
522
                FF_GetMsg(tmp1, MSG_ALL_FILES_ID);
456
                strcpy_advance_id(&tmp1, MSG_ALL_FILES_ID);
523
                tmp1 += xstrlen(tmp1);
-
 
524
                len = xstrlen(tmp2 = TEXT(" (*.*)"));
457
                strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.*)")); tmp1++;
525
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
526
                tmp1 += (len + 1);
-
 
527
                len = xstrlen(tmp2 = TEXT("*.*"));
458
                strcpy_advance(&tmp1, (TCHAR*)TEXT("*.*")); tmp1++;
528
                memcpy(tmp1, tmp2, len * sizeof(TCHAR));
-
 
529
                tmp1 += (len + 1);
-
 
530
 
459
 
531
                if (!gdata->standalone && putfile(
460
                if (!gdata->standalone && putfile(
532
                #ifdef MAC_ENV
461
                #ifdef MAC_ENV
533
                (StringPtr)_strdup("\pSave filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
462
                (StringPtr)_strdup("\pSave filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
534
                        (StringPtr)_strdup("\0"),
463
                        (StringPtr)_strdup("\0"),
535
                        TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
464
                        TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
536
                        "afs",
465
                        "afs",
537
                        & filters[0], 1
466
                        filters, 1
538
                #else
467
                #else
539
                        FF_GetMsg_Cpy(MSG_SAVE_FILTER_SETTINGS_TITLE_ID),
468
                        FF_GetMsg_Cpy(MSG_SAVE_FILTER_SETTINGS_TITLE_ID),
540
                        TEXT("\0"),
469
                        TEXT("\0"),
541
                        TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
470
                        TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
542
                        TEXT("afs"),
471
                        TEXT("afs"),
543
                        & filters[0], 1, gdata->hWndMainDlg
472
                        filters, 1, gdata->hWndMainDlg
544
                #endif
473
                #endif
545
                )) {
474
                )) {
546
                        if (savefile_afs_pff_picotxt(&sfr)) {
475
                        if (savefile_afs_pff_picotxt(&sfr)) {
547
                                completesave(&reply);
476
                                completesave(&reply);
548
 
477
 
Line 574... Line 503...
574
                                        #endif
503
                                        #endif
575
                                }
504
                                }
576
 
505
 
577
                        }
506
                        }
578
                }
507
                }
-
 
508
                free(filters);
579
                break;
509
                break;
580
        }
510
        }
581
        case MAKEITEM:
511
        case MAKEITEM:
582
                if (gdata->standalone) return true; // should not happen since the button should be grayed out
512
                if (gdata->standalone) return true; // should not happen since the button should be grayed out
583
 
513