summaryrefslogtreecommitdiff
path: root/packages/palmunits/src/preferences.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/palmunits/src/preferences.pp')
-rw-r--r--packages/palmunits/src/preferences.pp391
1 files changed, 391 insertions, 0 deletions
diff --git a/packages/palmunits/src/preferences.pp b/packages/palmunits/src/preferences.pp
new file mode 100644
index 0000000000..1a3f9d4d85
--- /dev/null
+++ b/packages/palmunits/src/preferences.pp
@@ -0,0 +1,391 @@
+(******************************************************************************
+ *
+ * Copyright (c) 1995-2000 Palm, Inc. or its subsidiaries.
+ * All rights reserved.
+ *
+ * File: Preferences.h
+ *
+ * Release: Palm OS SDK 4.0 (63220)
+ *
+ * Description:
+ * Header for the system preferences
+ *
+ * History:
+ * 02/31/95 rsf Created by Roger Flores
+ * 06/26/99 kwk Added LanguageType.
+ * 06/30/99 CS Added MeasurementSystemType, then added it to both
+ * CountryPreferencesType and SystemPreferencesType,
+ * and bumped the version to 7.
+ * CS Added prefMeasurementSystem to select this
+ * preference.
+ * CS Added filler fields to CountryPreferencesType
+ * structure, since this guy gets saved as a
+ * resource.
+ * 09/20/99 gap added additional cXXXX country values.
+ * 09/20/99 gap cPRC -> cRepChina.
+ * 10/4/99 jmp Add support for auto-off duration times in seconds
+ * instead of minutes (the new seconds-based auto-off
+ * duration time is preferred; the minutes-based auto-ff
+ * duration times are maintained for compatibility).
+ * 10/5/99 jmp Make the seconds auto-off duration field a UInt16
+ * instead of a UInt8; also define constants for the
+ * "pegged" auto-off duration values (when the value
+ * is pegged, we no longer automatically shut off).
+ * 12/23/99 jmp Fix <> vs. "" problem.
+ * 04/30/00 CS Use LmCountryType instead of CountryType. Also removed
+ * deprecated countryNameLength, currencyNameLength, and
+ * currencySymbolLength, replacing usage with new
+ * kMaxCountryNameLen, kMaxCurrencyNameLen, and
+ * kMaxCurrencySymbolLen.
+ * 05/16/00 CS LmCountryType/LmLanguageType are now back to
+ * CountryType/LanguageType.
+ * 08/01/00 CS Added prefLanguage & prefLocale to selector set, and
+ * locale to SystemPreferencesType.
+ * 08/01/00 kwk Added timeZoneCountry to SystemPreferencesType, and
+ * prefTimeZoneCountry to SystemPreferencesChoice.
+ * 08/08/00 CS Moved obsolete CountryPreferencesType to RezConvert.cp,
+ * since that's the only code that still needs access to
+ * this private, obsolete resource.
+ * 08/08/00 peter Added attentionFlags to SystemPreferencesType, and
+ * prefAttentionFlags to SystemPreferencesChoice.
+ * 11/07/00 grant Added button default assignment resource type.
+ *
+ *****************************************************************************)
+
+unit preferences;
+
+interface
+
+uses palmos, coretraps, datamgr, localemgr, datetime, localize, attentionmgr, systemmgr;
+
+(***********************************************************************
+ * Constants
+ ***********************************************************************)
+
+const
+ noPreferenceFound = -1;
+
+// Preference version constants
+ preferenceDataVer2 = 2; // Palm OS 2.0
+ preferenceDataVer3 = 3; // Palm OS 3.0
+ preferenceDataVer4 = 4; // Palm OS 3.1
+ preferenceDataVer5 = 5; // Palm OS 3.2a
+ preferenceDataVer6 = 6; // Palm OS 3.2b/3.3
+ preferenceDataVer8 = 8; // Palm OS 3.5
+ preferenceDataVer9 = 9; // Palm OS 4.0
+
+// Be SURE to update "preferenceDataVerLatest" when adding a new prefs version...
+ preferenceDataVerLatest = preferenceDataVer9;
+
+ defaultAutoOffDuration = 2; // minutes
+ defaultAutoOffDurationSecs = 2 * minutesInSeconds; // seconds
+
+ peggedAutoOffDuration = $FF; // minutes (UInt8)
+ peggedAutoOffDurationSecs = $FFFF; // seconds (UInt16)
+
+ defaultAutoLockType = 0; //!!!never; // Never auto lock device
+ defaultAutoLockTime = 0;
+ defaultAutoLockTimeFlag = 0;
+
+// Obsolete after V20
+{!!!
+ defaultSysSoundLevel = slOn;
+ defaultGameSoundLevel = slOn;
+ defaultAlarmSoundLevel = slOn;
+
+ defaultSysSoundVolume = sndMaxAmp;
+ defaultGameSoundVolume = sndMaxAmp;
+ defaultAlarmSoundVolume = sndMaxAmp;
+!!!}
+
+type
+ MeasurementSystemType = Enum;
+
+const
+ unitsEnglish = 0; // Feet, yards, miles, gallons, pounds, slugs, etc.
+ unitsMetric = Succ(unitsEnglish); // Meters, liters, grams, newtons, etc.
+
+// These sound levels must corrospond to positions in the popup lists
+// used by the preferences app. These are made obsolete after V20. The
+// loudness of the sound is now represented as a number from 0 to sndMaxAmp.
+
+type
+ SoundLevelTypeV20 = Enum;
+
+const
+ slOn = 0;
+ slOff = 1;
+
+// Device Automatic Locking options.
+type
+ SecurityAutoLockType = Enum;
+
+const
+ never = 0; // Auto-Lock disabled.
+ uponPowerOff = Succ(never); // Auto lock when the device powers off.
+ atPresetTime = Succ(uponPowerOff); // Auto lock at HH:MM every day.
+ afterPresetDelay = Succ(atPresetTime); // Auto lock after x minutes or hours.
+
+// The number format (thousands separator and decimal point). This defines
+// how numbers are formatted and not neccessarily currency numbers (i.e. Switzerland).
+type
+ AnimationLevelType = Enum;
+
+const
+ alOff = 0; // Never show an animation
+ alEventsOnly = Succ(alOff); // Show an animation for an event
+ alEventsAndRandom = Succ(alEventsOnly); // Also show random animation
+ alEventsAndMoreRandom = Succ(alEventsAndRandom); // Show random animations more frequently
+
+type
+ SystemPreferencesChoice = Enum;
+
+const
+ prefVersion = 0;
+ prefCountry = Succ(prefVersion);
+ prefDateFormat = Succ(prefCountry);
+ prefLongDateFormat = Succ(prefDateFormat);
+ prefWeekStartDay = Succ(prefLongDateFormat);
+ prefTimeFormat = Succ(prefWeekStartDay);
+ prefNumberFormat = Succ(prefTimeFormat);
+ prefAutoOffDuration = Succ(prefNumberFormat); // prefAutoOffDurationSecs is now preferred (prefAutoOffDuration is in minutes)
+ prefSysSoundLevelV20 = Succ(prefAutoOffDuration); // slOn or slOff - error beeps and other non-alarm/game sounds
+ prefGameSoundLevelV20 = Succ(prefSysSoundLevelV20); // slOn or slOff - game sound effects
+ prefAlarmSoundLevelV20 = Succ(prefGameSoundLevelV20); // slOn or slOff - alarm sound effects
+ prefHidePrivateRecordsV33 = Succ(prefAlarmSoundLevelV20);
+ prefDeviceLocked = Succ(prefHidePrivateRecordsV33);
+ prefLocalSyncRequiresPassword = Succ(prefDeviceLocked);
+ prefRemoteSyncRequiresPassword = Succ(prefLocalSyncRequiresPassword);
+ prefSysBatteryKind = Succ(prefRemoteSyncRequiresPassword);
+ prefAllowEasterEggs = Succ(prefSysBatteryKind);
+ prefMinutesWestOfGMT = Succ(prefAllowEasterEggs); // deprecated old unsigned minutes EAST of GMT
+ prefDaylightSavings = Succ(prefMinutesWestOfGMT); // deprecated old daylight saving time rule
+ prefRonamaticChar = Succ(prefDaylightSavings);
+ prefHard1CharAppCreator = Succ(prefRonamaticChar); // App creator for hard key #1
+ prefHard2CharAppCreator = Succ(prefHard1CharAppCreator); // App creator for hard key #2
+ prefHard3CharAppCreator = Succ(prefHard2CharAppCreator); // App creator for hard key #3
+ prefHard4CharAppCreator = Succ(prefHard3CharAppCreator); // App creator for hard key #4
+ prefCalcCharAppCreator = Succ(prefHard4CharAppCreator); // App creator for calculator soft key
+ prefHardCradleCharAppCreator = Succ(prefCalcCharAppCreator); // App creator for hard cradle key
+ prefLauncherAppCreator = Succ(prefHardCradleCharAppCreator); // App creator for launcher soft key
+ prefSysPrefFlags = Succ(prefLauncherAppCreator);
+ prefHardCradle2CharAppCreator = Succ(prefSysPrefFlags); // App creator for 2nd hard cradle key
+ prefAnimationLevel = Succ(prefHardCradle2CharAppCreator);
+
+ // Additions for PalmOS 3.0:
+ prefSysSoundVolume = Succ(prefAnimationLevel); // actual amplitude - error beeps and other non-alarm/game sounds
+ prefGameSoundVolume = Succ(prefSysSoundVolume); // actual amplitude - game sound effects
+ prefAlarmSoundVolume = Succ(prefGameSoundVolume); // actual amplitude - alarm sound effects
+ prefBeamReceive = Succ(prefAlarmSoundVolume); // not used - use ExgLibControl with ir(Get/Set)ScanningMode instead
+ prefCalibrateDigitizerAtReset = Succ(prefBeamReceive); // True makes the user calibrate at soft reset time
+ prefSystemKeyboardID = Succ(prefCalibrateDigitizerAtReset); // ID of the preferred keyboard resource
+ prefDefSerialPlugIn = Succ(prefSystemKeyboardID); // creator ID of the default serial plug-in
+
+ // Additions for PalmOS 3.1:
+ prefStayOnWhenPluggedIn = Succ(prefDefSerialPlugIn); // don't sleep after timeout when using line current
+ prefStayLitWhenPluggedIn = Succ(prefStayOnWhenPluggedIn); // keep backlight on when not sleeping on line current
+
+ // Additions for PalmOS 3.2:
+ prefAntennaCharAppCreator = Succ(prefStayLitWhenPluggedIn); // App creator for antenna key
+
+ // Additions for PalmOS 3.3:
+ prefMeasurementSystem = Succ(prefAntennaCharAppCreator); // English, Metric, etc.
+
+ // Additions for PalmOS 3.5:
+ prefShowPrivateRecords = Succ(prefMeasurementSystem); // returns privateRecordViewEnum
+ prefAutoOffDurationSecs = Succ(prefShowPrivateRecords); // auto-off duration in seconds
+
+ // Additions for PalmOS 4.0:
+ prefTimeZone = Succ(prefAutoOffDurationSecs); // GMT offset in minutes = Succ(); + for east of GMT = Succ(); - for west
+ prefDaylightSavingAdjustment = Succ(prefTimeZone); // current DST adjustment in minutes (typically 0 or 60)
+
+ prefAutoLockType = Succ(prefDaylightSavingAdjustment); // Never = Succ(); on poweroff = Succ(); after preset delay or at preset time.
+ prefAutoLockTime = Succ(prefAutoLockType); // Auto lock preset time or delay.
+ prefAutoLockTimeFlag = Succ(prefAutoLockTime); // For Minutes or Hours.
+
+ prefLanguage = Succ(prefAutoLockTimeFlag); // Language spoken in country selected via Setup app/Formats panel
+ prefLocale = Succ(prefLanguage); // Locale for country selected via Setup app/Formats panel
+
+ prefTimeZoneCountry = Succ(prefLocale); // Country used to specify time zone.
+
+ prefAttentionFlags = Succ(prefTimeZoneCountry); // User prefs for getting user's attention
+
+ prefDefaultAppCreator = Succ(prefAttentionFlags); // Default application launched on reset.
+
+type
+ SystemPreferencesTypeV10 = record
+ version: UInt16; // Version of preference info
+
+ // International preferences
+ country: CountryType; // Country the device is in
+ dateFormat: DateFormatType; // Format to display date in
+ longDateFormat: DateFormatType; // Format to display date in
+ weekStartDay: UInt8; // Sunday or Monday
+ timeFormat: TimeFormatType; // Format to display time in
+ numberFormat: NumberFormatType; // Format to display numbers in
+
+ // system preferences
+ autoOffDuration: UInt8; // Time period before shutting off (in minutes)
+ sysSoundLevel: SoundLevelTypeV20; // slOn or slOff - error beeps and other non-alarm sounds
+ alarmSoundLevel: SoundLevelTypeV20; // slOn or slOff - alarm only
+ hideSecretRecords: Boolean; // True to not display records with
+ // their secret bit attribute set
+ deviceLocked: Boolean; // Device locked until the system
+ // password is entered
+ reserved1: UInt8;
+ sysPrefFlags: UInt16; // Miscellaneous system pref flags
+ // copied into the global GSysPrefFlags
+ // at boot time.
+ sysBatteryKind: SysBatteryKind; // The type of batteries installed. This
+ // is copied into the globals GSysbatteryKind
+ // at boot time.
+ reserved2: UInt8;
+ end;
+
+// Any entries added to this structure must be initialized in
+// Prefereces.c:GetPreferenceResource
+
+// DOLATER CS - We should move SystemPreferencesType, SystemPreferencesTypeV10,
+// PrefGetPreferences, and PrefSetPreferences to a private header
+// file, since any code compiled against an old version of this
+// struct will trash memory when run on a version of the Palm OS
+// that makes the struct longer.
+
+ SystemPreferencesType = record
+ version: UInt16; // Version of preference info
+
+ // International preferences
+ country: CountryType; // Country the device is in (see PalmLocale.pas)
+ dateFormat: DateFormatType; // Format to display date in
+ longDateFormat: DateFormatType; // Format to display date in
+ weekStartDay: Int8; // Sunday or Monday
+ timeFormat: TimeFormatType; // Format to display time in
+ numberFormat: NumberFormatType; // Format to display numbers in
+
+ // system preferences
+ autoOffDuration: UInt8; // Time period in minutes before shutting off (use autoOffDurationSecs instead).
+ sysSoundLevelV20: SoundLevelTypeV20; // slOn or slOff - error beeps and other non-alarm/game sounds
+ gameSoundLevelV20: SoundLevelTypeV20; // slOn or slOff - game sound effects
+ alarmSoundLevelV20: SoundLevelTypeV20; // slOn or slOff - alarm sound effects
+ hideSecretRecords: Boolean; // True to not display records with
+ // their secret bit attribute set
+ deviceLocked: Boolean; // Device locked until the system
+ // password is entered
+ localSyncRequiresPassword: Boolean; // User must enter password on Pilot
+ remoteSyncRequiresPassword: Boolean; // User must enter password on Pilot
+ sysPrefFlags: UInt16; // Miscellaneous system pref flags
+ // copied into the global GSysPrefFlags
+ // at boot time. Constants are
+ // sysPrefFlagXXX defined in SystemPrv.h
+ sysBatteryKind: SysBatteryKind; // The type of batteries installed. This
+ // is copied into the globals GSysbatteryKind
+ // at boot time.
+ reserved1: UInt8;
+ minutesWestOfGMT: UInt32; // minutes west of Greenwich
+ daylightSavings: DaylightSavingsTypes; // Type of daylight savings correction
+ reserved2: UInt8;
+ ronamaticChar: UInt16; // character to generate from ronamatic stroke.
+ // Typically it popups the onscreen keyboard.
+ hard1CharAppCreator: UInt32; // creator of application to launch in response
+ // to the hard button #1. Used by SysHandleEvent.
+ hard2CharAppCreator: UInt32; // creator of application to launch in response
+ // to the hard button #2. Used by SysHandleEvent.
+ hard3CharAppCreator: UInt32; // creator of application to launch in response
+ // to the hard button #3. Used by SysHandleEvent.
+ hard4CharAppCreator: UInt32; // creator of application to launch in response
+ // to the hard button #4. Used by SysHandleEvent.
+ calcCharAppCreator: UInt32; // creator of application to launch in response
+ // to the Calculator icon. Used by SysHandleEvent.
+ hardCradleCharAppCreator: UInt32; // creator of application to launch in response
+ // to the Cradle button. Used by SysHandleEvent.
+ launcherCharAppCreator: UInt32; // creator of application to launch in response
+ // to the launcher button. Used by SysHandleEvent.
+ hardCradle2CharAppCreator: UInt32; // creator of application to launch in response
+ // to the 2nd Cradle button. Used by SysHandleEvent.
+ animationLevel: AnimationLevelType; // amount of animation to display
+
+ maskPrivateRecords: Boolean; // Only meaningful if hideSecretRecords is true.
+ //true to show a grey placeholder box for secret records.
+ //was reserved3 - added for 3.5
+
+ // Additions for PalmOS 3.0:
+ sysSoundVolume: UInt16; // system amplitude (0 - sndMaxAmp) - taps, beeps
+ gameSoundVolume: UInt16; // game amplitude (0 - sndMaxAmp) - explosions
+ alarmSoundVolume: UInt16; // alarm amplitude (0 - sndMaxAmp)
+ beamReceive: Boolean; // False turns off IR sniffing, sends still work.
+ calibrateDigitizerAtReset: Boolean; // True makes the user calibrate at soft reset time
+ systemKeyboardID: UInt16; // ID of the preferred keyboard resource
+ defSerialPlugIn: UInt32; // creator ID of the default serial plug-in
+
+ // Additions for PalmOS 3.1:
+ stayOnWhenPluggedIn: Boolean; // don't sleep after timeout when using line current
+ stayLitWhenPluggedIn: Boolean; // keep backlight on when not sleeping on line current
+
+ // Additions for PalmOS 3.2:
+ antennaCharAppCreator: UInt32; // creator of application to launch in response
+ // to the antenna key. Used by SysHandleEvent.
+
+ // Additions for PalmOS 3.5:
+ measurementSystem: MeasurementSystemType; // metric, english, etc.
+ reserved3: UInt8;
+ autoOffDurationSecs: UInt16; // Time period in seconds before shutting off.
+
+ // Additions for PalmOS 4.0:
+ timeZone: Int16; // minutes east of Greenwich
+ daylightSavingAdjustment: Int16; // current daylight saving correction in minutes
+ timeZoneCountry: CountryType; // country used to specify time zone.
+ autoLockType: SecurityAutoLockType; // Never, on power off, after preset delay or at preset time
+ autoLockTime: UInt32; // Auto lock preset time or delay.
+ autoLockTimeFlag: Boolean; // For Minutes or Hours.
+ language: LanguageType; // Language spoken in country selected via Setup app/Formats panel
+
+ attentionFlags: AttnFlagsType; // User prefs for getting user's attention
+
+ defaultAppCreator: UInt32; // Creator of the default "safe" app that is launched
+ // on a reset.
+ end;
+
+ SystemPreferencesPtr = ^SystemPreferencesType;
+
+// structure of the resource that holds hard/soft button defaults
+type
+ ButtonDefaultAppType = record
+ keyCode: UInt16; // virtual key code of the hard/soft button
+ creator: UInt32; // app creator code
+ end;
+
+type
+ ButtonDefaultListType = record
+ numButtons: UInt16; // number of default button assignments
+ button: array [0..0] of ButtonDefaultAppType; // array of button assignments
+ end;
+
+//-------------------------------------------------------------------
+// Preferences routines
+//-------------------------------------------------------------------
+
+function PrefOpenPreferenceDBV10: DmOpenRef; syscall sysTrapPrefOpenPreferenceDBV10;
+
+function PrefOpenPreferenceDB(saved: Boolean): DmOpenRef; syscall sysTrapPrefOpenPreferenceDB;
+
+procedure PrefGetPreferences(p: SystemPreferencesPtr); syscall sysTrapPrefGetPreferences;
+
+procedure PrefSetPreferences(p: SystemPreferencesPtr); syscall sysTrapPrefSetPreferences;
+
+function PrefGetPreference(choice: SystemPreferencesChoice): UInt32; syscall sysTrapPrefGetPreference;
+
+procedure PrefSetPreference(choice: SystemPreferencesChoice; value: UInt32); syscall sysTrapPrefSetPreference;
+
+function PrefGetAppPreferences(creator: UInt32; id: UInt16; prefs: Pointer;
+ var prefsSize: UInt16; saved: Boolean): Int16; syscall sysTrapPrefGetAppPreferences;
+
+function PrefGetAppPreferencesV10(type_: UInt32; version: Int16; prefs: Pointer; prefsSize: UInt16): Boolean; syscall sysTrapPrefGetAppPreferencesV10;
+
+procedure PrefSetAppPreferences(creator: UInt32; id: UInt16; version: Int16;
+ const prefs: Pointer; prefsSize: UInt16; saved: Boolean); syscall sysTrapPrefSetAppPreferences;
+
+procedure PrefSetAppPreferencesV10(creator: UInt32; version: Int16; prefs: Pointer; prefsSize: UInt16); syscall sysTrapPrefSetAppPreferencesV10;
+
+implementation
+
+end.