Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/settings.cpp

    r30 r11  
    2727    // FIXME nls*/
    2828
    29 bool saveum = FALSE;
    3029SWP swpDef = { 0,0,0, 98,66, 0,0,0,0 };
    3130SWP swpDefSSW = { 0,0,0, 10,10, 0,0,0,0 };
     
    3332USHORT ausDefSSW[7] = { 0 };
    3433
     34#if 0
    3535ImageFormatInfo Settings::ifi[BMF_INVALID] =
    3636{
    37     { TRUE, BMF_JPG,   "JPEG Interchange File Format (jpg)", "jpg", "JPG" },
    38     { TRUE, BMF_PNG,   "Portable Network Graphics (png)", "png", "PNG" },
    39     { TRUE, BMF_OS20,  "OS/2 Bitmap 2.0 (bmp)", "bmp", "Bitmap" },
    40     { TRUE, BMF_TIF,   "Microsoft/Aldus Tagged Image File Format (tif)", "tif", "TIFF" },
    41     { TRUE, BMF_TGA,   "Truevision Targa/Vista (tga)", "tga", "Targa" },
    42     { TRUE, BMF_PCX,   "ZSoft PC Paintbrush Image Format (pcx)", "pcx", "PCX" },
    43     { TRUE, BMF_GIF,   "Portable Anymap (pnm)", "pnm", "PNM" },
    44     { TRUE, BMF_PBM,   "Portable Pixel-map (ppm)", "ppm", "PPM" },
    45     { TRUE, BMF_JP2,   "Jpeg 2000 (provided by the Open Source OpenJPEG library) (jp2)", "jp2", "JP2" },
    46     { TRUE, BMF_DIB,   "Device Independent Bitmap (dib)", "dib", "DIB" }
     37    { TRUE,  BMF_12,   0L, "Bitmap 1.2 (Saved using Gotcha! internal routine)", "bmp", "Bitmap" },
     38    { TRUE,  BMF_16,   0L, "Bitmap 1.6 (Saved using Gotcha! internal routine)", "bmp", "Bitmap" },
     39    { TRUE,  BMF_20,   0L, "Bitmap 2.0 (Saved using Gotcha! internal routine)", "bmp", "Bitmap" },
     40    { FALSE, BMF_OS13, mmioFOURCC( 'O','S','1','3' ), "Bitmap 1.3 (Saved using OS/2 Multimedia)", "bmp", "Bitmap" },
     41    { FALSE, BMF_OS20, mmioFOURCC( 'O','S','2','0' ), "Bitmap 2.0 (Saved using OS/2 Multimedia)", "bmp", "Bitmap" },
     42    { FALSE, BMF_TIF,  mmioFOURCC( 'T','F','M','C' ), "TIFF compressed", "tif", "TIFF" },
     43    { FALSE, BMF_TIFU, mmioFOURCC( 'T','F','M','U' ), "TIFF uncompressed", "tif", "TIFF" },
     44    { FALSE, BMF_TGA,  mmioFOURCC( 'T','G','A','C' ), "TGA", "tga", "Targa" },
     45    { FALSE, BMF_PCX,  mmioFOURCC( 'P','C','X','C' ), "PCX", "pcx", "PCX" },
     46    { FALSE, BMF_GIF,  mmioFOURCC( 'G','I','F','C' ), "GIF", "gif", "GIF" },
     47    { FALSE, BMF_JPG,  mmioFOURCC( 'J','P','E','G' ), "Jpeg (Probably won't work, reason unknown)", "jpg", "JPG" },
     48    { FALSE, BMF_DIB,  mmioFOURCC( 'R','D','I','B' ), "DIB (Device Independent Bitmap)", "dib", "DIB" }
    4749};
    4850
     51#else
     52// pbm and gif don't save anything
     53ImageFormatInfo Settings::ifi[BMF_INVALID] =
     54{
     55    { TRUE, BMF_JPG,  0L, "JPEG Interchange File Format (jpg)", "jpg", "JPG" },
     56    { TRUE, BMF_PNG,  0L, "Portable Network Graphics (png)", "png", "PNG" },
     57    { TRUE, BMF_OS20, 0L, "OS/2 Bitmap 2.0 (bmp)", "bmp", "Bitmap" },
     58    { TRUE, BMF_TIF,  0L, "Microsoft/Aldus Tagged Image File Format (tif)", "tif", "TIFF" },
     59    { TRUE, BMF_TGA,  0L, "Truevision Targa/Vista (tga)", "tga", "Targa" },
     60    { TRUE, BMF_PCX,  0L, "ZSoft PC Paintbrush Image Format (pcx)", "pcx", "PCX" },
     61    { TRUE, BMF_GIF,  0L, "Portable Anymap (pnm)", "pnm", "PNM" },
     62    { TRUE, BMF_PBM,  0L, "Portable Pixel-map (ppm)", "ppm", "PPM" },
     63    { TRUE, BMF_JP2,  0L, "Jpeg 2000 (provided by the Open Source OpenJPEG library) (jp2)", "jp2", "JP2" },
     64    { TRUE, BMF_JBG,  0L, "JBIG Joint Bi-level Image experts Group (jbg)", "jbg", "JBG" },
     65    { TRUE, BMF_RAW,  0L, "Camera RAW Image Format (raw)", "raw", "RAW" },
     66    { TRUE, BMF_DIB,  0L, "Device Independent Bitmap (dib)", "dib", "DIB" }
     67};
     68#endif
    4969
    5070PTHTH_SE apse[] =
     
    81101    new THTH_SEB (SEI_USSSW, "Snapshot", "US", &ausDefSSW, sizeof (ausDefSSW)),
    82102
    83     new THTH_SES (SEI_LANGUAGE,     "Language", "Program", PSZ_DEFAULTLANGUAGEMOD),
     103    new THTH_SES (SEI_LANGUAGE,     "Language", "Program", PSZ_DEFAULTLANGUAGE),
    84104    new THTH_SES (SEI_LANGUAGEHELP, "Language", "Help", PSZ_DEFAULTLANGUAGEHELP),
    85105
     
    92112
    93113Settings :: Settings (VOID) :
    94 #ifdef _QUIET_
    95 //#if 1
    96     ththSettings(apse, "gotchaq.ini", L_PROFILEVERSION)
    97 #else
    98     ththSettings(apse, "gotcha.ini", L_PROFILEVERSION)
    99 #endif
     114ththSettings(apse, "gotcha.ini", L_PROFILEVERSION)
    100115{
    101116    if( ! QueryFlag( SEI_UPDATE178DONE ) ) {
     
    120135        ReloadResources (QueryString(SEI_LANGUAGE));
    121136    }
     137
     138    // See if we can use OS/2 Multimedia:
     139    mmio = new thth_MMIO();
     140    if( ! mmio->IsValid() ) {
     141        delete mmio;
     142        mmio = NULL;
     143        if( mmio->step > 0 )
     144            DisplayError( "MMIO-Error",
     145                          "Could not load Multimedia IO extension. (rc=%d, step=%d)", mmio->rc, mmio->step );
     146    } else {
     147        MMFORMATINFO  mmfi;
     148        ULONG lNumFormats = 30;
     149        LONG lReturned;
     150        PMMFORMATINFO pv = PMMFORMATINFO( malloc( sizeof( MMFORMATINFO ) * lNumFormats ) );
     151        memset( &mmfi, 0, sizeof( MMFORMATINFO ) );
     152        mmfi.ulMediaType = MMIO_MEDIATYPE_IMAGE;
     153
     154        if( pv ) {
     155            if( mmioGetFormats( &mmfi, lNumFormats, pv, &lReturned, 0, 0 )
     156                != MMIO_SUCCESS ) {
     157                DisplayError( "MMIO-Error",
     158                              "Could not get Multimedia-IO-Format information." );
     159            } else {
     160                /*            DisplayError( "MMIO-Error",
     161                 "'%d' formats returned", lReturned ); */
     162                for( int i = 0; i < lReturned; i++ ) {
     163                    for( int j = 0; j < BMF_INVALID; j++ ) {
     164                        if( ifi[j].fourcc == pv[i].fccIOProc )
     165                        {
     166                            ifi[j].available = TRUE;
     167                            break;
     168                        }
     169                    }
     170                }
     171            }
     172        } else {
     173            DisplayError( "MMIO-Error",
     174                          "Could not get Multimedia-IO-Format information (no memory)." );
     175        }
     176    }
    122177}
    123178
     
    146201// FIXME YUKKI! YUKKI!! YUKKI!!! But I'm too lazy to do it better now :-)
    147202HWND g_hwndSettingsDialog = NULL;
    148 HWND g_hwndPage0 = NULL;
    149203
    150204BOOL SETTINGS :: Dialog (BOOL fOnlyLanguage)
     
    218272                        MPFROMLONG (idPage[i]), MPFROMP (pszPageTab[i]));
    219273        }
    220 #ifndef _QUIET_
    221 //#if 0
     274
    222275        // open and assign dialogs to pages
    223276        hwndPage[0] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) Page1Procedure,
     
    229282        hwndPage[3] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) Page4Procedure,
    230283                                  GETMODULE, ID_DLG_SETTINGSPAGE4, this);
    231 #else
    232         hwndPage[0] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) WindowProcedure,
    233                                   GETMODULE, ID_DLG_SETTINGSPAGE0, this);
    234         hwndPage[1] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) Page1Procedure,
    235                                   GETMODULE, ID_DLG_SETTINGSPAGE1, this);
    236         hwndPage[2] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) Page2Procedure,
    237                                   GETMODULE, ID_DLG_SETTINGSPAGE2, this);
    238         hwndPage[3] = WinLoadDlg (hwndNB, hwndNB, (PFNWP) Page4Procedure,
    239                                   GETMODULE, ID_DLG_SETTINGSPAGE4, this);
    240         g_hwndPage0 = hwndPage[0];
    241        
    242 #endif
    243284    }
    244285#ifdef _DOLOGDEBUG_
     
    261302    LogDebug( "Dialog: checkpoint 6" );
    262303#endif
    263     WinSendDlgItemMsg (g_hwndPage0, WID_RB_FILE, BM_CLICK,
    264                        MPFROMSHORT (TRUE), 0);
    265     WinSendDlgItemMsg (g_hwndPage0, WID_CB_HIDEWINDOW, BM_SETCHECK,
    266                        MPFROMLONG (TRUE), MPFROMLONG (0));
     304
    267305    //WinSetFocus (WinWindowFromID (hwndDlg, WID_PB_OK), TRUE);
    268306    //WinSetFocus( hwndPage[0], TRUE );
     
    324362            LogDebug( "DialogProcedure: start WID_PB_OK" );
    325363#endif
    326             saveum = TRUE;
    327364            WinSendMsg (hwnd, WM_CLOSE, 0,0);
    328365#ifdef _DOLOGDEBUG_
     
    343380                                           BKM_QUERYPAGEWINDOWHWND,
    344381                                           MPFROMLONG (id), 0);
    345                 // Make mp1 1 for default use it to select setting on pages
    346382                    WinSendMsg (hwndPage, UM_SETTINGS2DIALOG, 0,0);
    347383                }
     
    497533            WinSendDlgItemMsg( hwnd, WID_LB_FILEFORMAT, LM_SELECTITEM,
    498534                               MPFROMSHORT(0), MPFROMSHORT(TRUE) );
    499 #ifdef _QUIET_
    500 //#if 1
    501         // set play sound button
    502         pset->AdjustButton (hwnd, WID_CB_DOSOUND,
    503                             pset->DoSound ());
    504 #endif
     535
    505536        // Select appropriate radiobutton for save style.
    506537        switch (pset->QueryFileSaveStyle ())
     
    544575            else
    545576                pset->SetFileSaveStyle (FSS_PROMPT);
    546 #ifdef _QUIET_
    547 //#if 1
    548             pset->DoSound(WinQueryButtonCheckstate
    549                           (hwnd, WID_CB_DOSOUND));
    550 #endif
    551577#ifdef _DOLOGDEBUG_
    552578            LogDebug( "Page1Procedure: checkpoint 1" );
     
    580606            AdjustSaveTypeButtons
    581607                (BOOL (pset->QueryFileSaveStyle () == FSS_FORCEFILE));
    582             pset->saveStyle = pset->QuerySaveStyle ();
    583             pset->pNumSaveDir = pset->QueryNumSaveDir ();
    584             pset->pForceSaveFile = pset->QueryForceSaveFile();
    585 
    586             if (saveum)
    587                 pset->Save ();
    588608#ifdef _DOLOGDEBUG_
    589609            LogDebug( "Page1Procedure: end UM_ADJUST" );
     
    610630}
    611631
    612 // ** Page2Procedure ****************************************************** /*FOLD00*/
     632// ** Page2Procedure ****************************************************** /*fold00*/
    613633
    614634MRESULT EXPENTRY
     
    645665        pset->AdjustButton (hwnd, WID_CB_SSWALWAYSONTOP,
    646666                            pset->SSWAlwaysOnTop ());
    647 #ifdef _QUIET_
    648 //#if 1
    649         pset->AdjustButton (hwnd, WID_CB_SERIALCAPTURE,
    650                             pset->SerialCapture ());
    651         pset->AdjustButton (hwnd, WID_CB_DELAYCOUNTDOWN,
    652                             pset->DelayCountdown ());
    653 
    654         // init delay time sb
    655         WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME, SPBM_SETLIMITS,
    656                            MPFROMLONG (65536), MPFROMLONG (1));
    657         WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME, SPBM_SETCURRENTVALUE,
    658                            MPFROMLONG (pset->QueryDelayTime ()), 0);
    659 
    660         // init serial time sb
    661         WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME, SPBM_SETLIMITS,
    662                            MPFROMLONG (65536), MPFROMLONG (1));
    663         WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME, SPBM_SETCURRENTVALUE,
    664                            MPFROMLONG (pset->QuerySerialTime ()), 0);
    665 #endif
     667
    666668        switch (pset->QuerySSWCaptureType ())
    667669        {
     
    700702            LogDebug( "Page2Procedure: start UM_ADJUST" );
    701703#endif
    702 #ifndef _QUIET_
    703 //#if 0
    704704        // query state of checkbuttons and set flags
    705705        pset->SSWHide(WinQueryButtonCheckstate(hwnd, WID_CB_SSWHIDE));
     
    713713            LogDebug( "Page2Procedure: checkpoint 2" );
    714714#endif
    715 #else
    716             // query state of checkbuttons and set flags
    717             pset->SerialCapture(WinQueryButtonCheckstate
    718                                 (hwnd, WID_CB_SERIALCAPTURE));
    719 #ifdef _DOLOGDEBUG_
    720             LogDebug( "Page3Procedure: checkpoint 1" );
    721 #endif
    722             pset->DelayCountdown(WinQueryButtonCheckstate
    723                                  (hwnd, WID_CB_DELAYCOUNTDOWN));
    724 #endif
     715
    725716        // get ssw capture type
    726717        if (WinSendMsg (WinWindowFromID (hwnd, WID_SSWSCREENREGION),
     
    735726        else
    736727            pset->SetSSWCaptureType (CAP_SCREEN);
    737 #ifdef _QUIET_
    738 //#if 1
    739         // delay time
    740         ULONG   ul;
    741         if (! BOOL (WinSendDlgItemMsg (hwnd, WID_SB_DELAYTIME,
    742                                        SPBM_QUERYVALUE,
    743                                        MPFROMP (&ul),
    744                                        MPFROM2SHORT (0, 0))))
    745             ul = 5L;
    746         pset->SetDelayTime (ul);
    747 #ifdef _DOLOGDEBUG_
    748         LogDebug( "Page3Procedure: checkpoint 3" );
    749 #endif
    750 
    751         // serial time
    752         if (! BOOL (WinSendDlgItemMsg (hwnd, WID_SB_SERIALTIME,
    753                                        SPBM_QUERYVALUE,
    754                                        MPFROMP (&ul),
    755                                        MPFROM2SHORT (0, 0))))
    756             ul = 10L;
    757         pset->SetSerialTime (ul);
    758         pset->bSerialCapture = pset->SerialCapture ();
    759 #endif
    760         if (saveum)
    761             pset->Save ();
    762728#ifdef _DOLOGDEBUG_
    763729        LogDebug( "Page2Procedure: end UM_ADJUST" );
     
    876842                ul = 10L;
    877843            pset->SetSerialTime (ul);
    878             pset->bSerialCapture = pset->SerialCapture ();
    879             pset->idleSetInIni = pset->QueryFlag(SEI_IDLEPRIORITY);
    880 
    881             if (saveum)
    882                 pset->Save ();
    883844#ifdef _DOLOGDEBUG_
    884845            LogDebug( "Page3Procedure: end UM_ADJUST" );
     
    10581019                               MPFROM2SHORT (ul, sizeof (ach)), MPFROMP (ach));
    10591020            pset->SetString (SEI_LANGUAGEHELP, ach);
    1060 
    1061             if (saveum)
    1062                 pset->Save ();
    10631021        }
    10641022        return MRESULT (FALSE);
     
    10681026}
    10691027
    1070 // ** AdjustSaveTypeButtons *********************************************** /*FOLD00*/
     1028// ** AdjustSaveTypeButtons *********************************************** /*fold00*/
    10711029
    10721030VOID AdjustSaveTypeButtons (BOOL f)
     
    11211079    APIRET  rc;
    11221080
    1123     if ((rc = DosLoadModule(PSZ(NULL), 0, psz, &g_hmod)))
     1081    if ((rc = DosLoadModule(PSZ(NULL), 0, "gotresen.dll", &g_hmod)))
    11241082    {
    11251083        DisplayError("ERROR", "Could not (re)load Gotcha! resource module "
     
    11311089
    11321090    ResourceString::Module(g_hmod);
    1133 #ifdef _QUIET_
    1134 //#if 1
    1135     pszPageTab[0] = RSTR (IDS_MAINWIN);
    1136     pszPageTab[1] = RSTR (IDS_PAGESAVE);
    1137     pszPageTab[2] = RSTR (IDS_PAGEMISC);
    1138     pszPageTab[3] = RSTR (IDS_PAGELANGUAGE);
    1139 #else
     1091
    11401092    pszPageTab[0] = RSTR (IDS_PAGESAVE);
    11411093    pszPageTab[1] = RSTR (IDS_PAGESNAPSHOT);
    11421094    pszPageTab[2] = RSTR (IDS_PAGEMISC);
    11431095    pszPageTab[3] = RSTR (IDS_PAGELANGUAGE);
    1144 #endif
     1096
    11451097    for( int i = 0; i < BMF_INVALID; i++ ) {
    11461098        ifi[ i ].label = RSTR ( IDS_BMF_JPG+i ); }
     
    11491101}
    11501102
    1151 // ** SelectLanguage ****************************************************** /*FOLD00*/
     1103// ** SelectLanguage ****************************************************** /*fold00*/
    11521104
    11531105VOID Settings :: SelectLanguage (VOID)
     
    11551107    // set this to some default, as we must open the settings dialog for
    11561108    // selecting a language
    1157 #ifdef _QUIET_
    1158 //#if 1
    1159     pszPageTab[0] = RSTR (IDS_MAINWIN);
    1160     pszPageTab[1] = RSTR (IDS_PAGESAVE);
    1161     pszPageTab[2] = RSTR (IDS_PAGEMISC);
    1162     pszPageTab[3] = RSTR (IDS_PAGELANGUAGE);
    1163 #else
    11641109    pszPageTab[0] = RSTR (IDS_PAGESAVE);
    11651110    pszPageTab[1] = RSTR (IDS_PAGESNAPSHOT);
    11661111    pszPageTab[2] = RSTR (IDS_PAGEMISC);
    11671112    pszPageTab[3] = RSTR (IDS_PAGELANGUAGE);
    1168 #endif
     1113
    11691114    // bring up the "select language" settings page
    11701115    Dialog (TRUE);
     
    11861131    hdir = HDIR_CREATE;
    11871132    c    = 1;
    1188 #ifdef _QUIET_
    1189     rc   = DosFindFirst ("goqre*.dll", &hdir, fl, &findbuf,
     1133    rc   = DosFindFirst ("*.dll", &hdir, fl, &findbuf,
    11901134                         sizeof (findbuf), &c, FIL_STANDARD);
    1191 #else
    1192     rc   = DosFindFirst ("gotre*.dll", &hdir, fl, &findbuf,
    1193                          sizeof (findbuf), &c, FIL_STANDARD);
    1194 #endif
    11951135    while (!rc)
    11961136    {
     
    12311171}
    12321172
    1233 #if 0
    12341173// ** GetFOURCC *********************************************************** /*FOLD00*/
    12351174
     
    12421181    return 0L;
    12431182}
    1244 #endif
     1183
    12451184// ** GetFileEAType ******************************************************* /*FOLD00*/
    12461185
Note: See TracChangeset for help on using the changeset viewer.