home *** CD-ROM | disk | FTP | other *** search
- #include "PICS_PreferencesPanes.h"
- #include "PICSViewer.h"
-
- enum {
- // Opening file (show progress) pane
- kOpenFilePane_AlwaysShowProgressRadio = kPrefsDlog_LastItem,
- kOpenFilePane_NeverShowProgressRadio,
- kOpenFilePane_ConditionalShowProgressRadio,
-
- kOpenFilePane_FileSizeInput,
-
- kOpenFilePane_LineSeparator,
- kOpenFilePane_Box
- };
-
- // ---------------------------------------------------------------------------
-
- void PrefsDialogSetupOpenFilePane(DialogPtr prefsDlog) {
- short fileSize = 150;
-
- if ((**sPrefsData->prefs).showOpenProgress == kAlwaysShowOpenProgress) {
- // Always show progress
- SelectRadioBtn(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio,
- kOpenFilePane_AlwaysShowProgressRadio,
- kOpenFilePane_ConditionalShowProgressRadio);
- }
- else if ((**sPrefsData->prefs).showOpenProgress == kNeverShowOpenProgress) {
- // Never show progress
- SelectRadioBtn(prefsDlog, kOpenFilePane_NeverShowProgressRadio,
- kOpenFilePane_AlwaysShowProgressRadio,
- kOpenFilePane_ConditionalShowProgressRadio);
- }
- else {
- // Show progress if file is over "n" KBytes in size
- SelectRadioBtn(prefsDlog, kOpenFilePane_ConditionalShowProgressRadio,
- kOpenFilePane_AlwaysShowProgressRadio,
- kOpenFilePane_ConditionalShowProgressRadio);
-
- fileSize = (**sPrefsData->prefs).showOpenProgress;
- }
-
- Str15 fileSizeStr;
- NumToString(fileSize, fileSizeStr);
- SetDItemText(prefsDlog, kOpenFilePane_FileSizeInput, fileSizeStr);
- } // END PrefsDialogSetupOpenFilePane
-
- // ---------------------------------------------------------------------------
-
- Boolean PrefsDialogGetOpenFilePaneSettings(DialogPtr prefsDlog) {
- if (GetDlogCtlValue(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio)) {
- (**sPrefsData->prefs).showOpenProgress = kAlwaysShowOpenProgress;
- }
- else if (GetDlogCtlValue(prefsDlog, kOpenFilePane_NeverShowProgressRadio)){
- (**sPrefsData->prefs).showOpenProgress = kNeverShowOpenProgress;
- }
- else {
- long fileSize;
- if (CheckValidNumeral(prefsDlog, kOpenFilePane_FileSizeInput, &fileSize)) {
- if (fileSize < 1) {
- SysBeep(10);
- SelectDialogItemText(prefsDlog, kOpenFilePane_FileSizeInput, 0, 32767);
- return(false);
- }
- else {
- (**sPrefsData->prefs).showOpenProgress = fileSize;
- }
- }
- else
- return(false);
- }
-
- return(true);
- } // END PrefsDialogGetOpenFilePaneSettings
-
- // ---------------------------------------------------------------------------
-
- void PrefsDialogOpenFilePaneHit(DialogPtr prefsDlog, short itemHit) {
- switch(itemHit) {
- case kOpenFilePane_AlwaysShowProgressRadio:
- case kOpenFilePane_NeverShowProgressRadio:
- case kOpenFilePane_ConditionalShowProgressRadio:
- SelectRadioBtn(prefsDlog, itemHit,
- kOpenFilePane_AlwaysShowProgressRadio,
- kOpenFilePane_ConditionalShowProgressRadio);
- break;
- }
- } // END PrefsDialogOpenFilePaneHit
-
- // ---------------------------------------------------------------------------
-
- void PrefsDialogOpenFilePaneUpdate(DialogPtr prefsDlog, EventRecord *theEvt, Boolean frontMost) {
- Rect lineRect;
-
- GetDItemRect(prefsDlog, kOpenFilePane_Box, &lineRect);
- GrayDrawShadowBox(&lineRect, NULL);
-
- GetDItemRect(prefsDlog, kOpenFilePane_LineSeparator, &lineRect);
- GrayDrawShadowLine(&lineRect, NULL);
- } // END PrefsDialogOpenFilePaneUpdate
-
- // ---------------------------------------------------------------------------
-
- void PrefsDialogOpenFilePaneActivate(DialogPtr prefsDlog, Boolean activate) {
- short hiliteMode = activate ? 0 : 255;
-
- for (short i = kOpenFilePane_AlwaysShowProgressRadio;
- i <= kOpenFilePane_ConditionalShowProgressRadio; i++) {
- HiliteControl((ControlHandle)GetDItemHdl(prefsDlog, i), hiliteMode);
- }
- } // END PrefsDialogOpenFilePaneActivate