mirror of
https://github.com/jenshemprich/MacGLide.git
synced 2024-09-27 10:55:07 +00:00
Control panel support
This commit is contained in:
parent
4dae64c0fb
commit
82ac6a39f9
@ -45,10 +45,21 @@ GlideSettings::IOErr GlideSettingsFSp::makeSettingsFolderFileSpec(const char* pa
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find/Create settings folder
|
||||||
|
* @return fnfErr means the CLassic environment wasn't found
|
||||||
|
*/
|
||||||
GlideSettings::IOErr GlideSettingsFSp::init(const char* applicationname)
|
GlideSettings::IOErr GlideSettingsFSp::init(const char* applicationname)
|
||||||
{
|
{
|
||||||
|
// Select the domain
|
||||||
|
#ifdef OPENGLIDE_HOST_MAC // defined in system.h
|
||||||
|
short vRefNum = kOnSystemDisk;
|
||||||
|
#else // OPENGLIDE_HOST_MAC_OSX
|
||||||
|
// else is ok since this is Mac specific code anyway
|
||||||
|
short vRefNum = kClassicDomain;
|
||||||
|
#endif
|
||||||
// Make the settings folder
|
// Make the settings folder
|
||||||
GlideSettings::IOErr err = FindFolder(kOnSystemDisk, kPreferencesFolderType, kCreateFolder, &m_vRefNumPrefsFolder, &m_dirIDPrefsFolder);
|
GlideSettings::IOErr err = FindFolder(vRefNum, kPreferencesFolderType, kCreateFolder, &m_vRefNumPrefsFolder, &m_dirIDPrefsFolder);
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
FSSpec fsspec;
|
FSSpec fsspec;
|
||||||
@ -62,13 +73,17 @@ GlideSettings::IOErr GlideSettingsFSp::init(const char* applicationname)
|
|||||||
// Make references to various files
|
// Make references to various files
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], applicationname, &m_fsSettingsFile);
|
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], s_LogFileName, &m_fsLogFile);
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], s_DefaultSettingsFileName, &m_fsDefaultSettingsFile);
|
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], s_DefaultSettingsFileName, &m_fsDefaultSettingsFile);
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], s_LogFileName, &m_fsLogFile);
|
m_fsSettingsFile.vRefNum = 0;
|
||||||
|
if (applicationname)
|
||||||
|
{
|
||||||
|
err = makeSettingsFolderFileSpec(&s_SettingsFolderName[1], applicationname, &m_fsSettingsFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ protected:
|
|||||||
IOErr create();
|
IOErr create();
|
||||||
IOErr read_defaults();
|
IOErr read_defaults();
|
||||||
IOErr read();
|
IOErr read();
|
||||||
|
inline bool isApplicationSpecific() {return m_fsSettingsFile.vRefNum != 0;};
|
||||||
IOErr put_raw(const char* string);
|
IOErr put_raw(const char* string);
|
||||||
IOErr close();
|
IOErr close();
|
||||||
const unsigned char* PascalString(char* string);
|
const unsigned char* PascalString(char* string);
|
||||||
|
@ -292,12 +292,12 @@ GlideSettings::IOErr GlideSettings::load()
|
|||||||
err = create_defaults();
|
err = create_defaults();
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
err = save();
|
err = saveSettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
if (UseApplicationSpecificSettings)
|
if (isApplicationSpecific() && UseApplicationSpecificSettings)
|
||||||
{
|
{
|
||||||
err = read();
|
err = read();
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
@ -323,18 +323,17 @@ GlideSettings::IOErr GlideSettings::load()
|
|||||||
err = create();
|
err = create();
|
||||||
if (err == noErr)
|
if (err == noErr)
|
||||||
{
|
{
|
||||||
err = save();
|
err = saveSettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (!success) err = fnfErr;
|
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlideSettings::IOErr GlideSettings::save()
|
GlideSettings::IOErr GlideSettings::saveSettings()
|
||||||
{
|
{
|
||||||
#ifdef OGL_DEBUG
|
#ifdef OGL_DEBUG
|
||||||
GlideMsg("Saving...\n");
|
GlideMsg("Saving...\n");
|
||||||
@ -614,3 +613,22 @@ GlideSettings::IOErr GlideSettings::put(const char* setting, bool value)
|
|||||||
{
|
{
|
||||||
return put(setting, value ? "1" : "0");
|
return put(setting, value ? "1" : "0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GlideSettings::IOErr GlideSettings::save()
|
||||||
|
{
|
||||||
|
IOErr err = noErr;
|
||||||
|
if (isApplicationSpecific())
|
||||||
|
{
|
||||||
|
err = create();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
err = create_defaults();
|
||||||
|
}
|
||||||
|
if (err == noErr)
|
||||||
|
{
|
||||||
|
err = saveSettings();
|
||||||
|
}
|
||||||
|
close();
|
||||||
|
return noErr;
|
||||||
|
}
|
@ -143,7 +143,9 @@ protected:
|
|||||||
void defaults();
|
void defaults();
|
||||||
virtual IOErr read_defaults()=0;
|
virtual IOErr read_defaults()=0;
|
||||||
virtual IOErr read()=0;
|
virtual IOErr read()=0;
|
||||||
|
virtual bool isApplicationSpecific()=0;
|
||||||
IOErr read_settings();
|
IOErr read_settings();
|
||||||
|
IOErr saveSettings();
|
||||||
bool get(const char* setting, const char** value);
|
bool get(const char* setting, const char** value);
|
||||||
bool get(const char* setting, unsigned long* value);
|
bool get(const char* setting, unsigned long* value);
|
||||||
bool get(const char* setting, float* value);
|
bool get(const char* setting, float* value);
|
||||||
|
@ -26,6 +26,7 @@ protected:
|
|||||||
IOErr create();
|
IOErr create();
|
||||||
IOErr read_defaults();
|
IOErr read_defaults();
|
||||||
IOErr read();
|
IOErr read();
|
||||||
|
inline bool isApplicationSpecific();
|
||||||
IOErr put_raw(const char* string);
|
IOErr put_raw(const char* string);
|
||||||
IOErr close();
|
IOErr close();
|
||||||
};
|
};
|
||||||
|
@ -12,20 +12,21 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#if defined(__MWERKS__)
|
#if defined(macintosh)
|
||||||
#if defined(macintosh)
|
#if defined(__MWERKS__)
|
||||||
#define OPENGLIDE_HOST_MAC
|
#define OPENGLIDE_HOST_MAC
|
||||||
// Codewarrior specific
|
// Codewarrior specific
|
||||||
#define PP_Target_Carbon 0
|
#define PP_Target_Carbon 0
|
||||||
#define PP_Target_Classic (!PP_Target_Carbon)
|
#define PP_Target_Classic (!PP_Target_Carbon)
|
||||||
#define TARGET_API_MAC_CARBON PP_Target_Carbon
|
#define TARGET_API_MAC_CARBON PP_Target_Carbon
|
||||||
#define TARGET_API_MAC_OS8 PP_Target_Classic
|
#define TARGET_API_MAC_OS8 PP_Target_Classic
|
||||||
// # else if /* Carbon or MachO version */
|
#else
|
||||||
// # define OPENGLIDE_HOST_MAC
|
#define OPENGLIDE_HOST_MAC_OSX
|
||||||
// # endif /* !macintosh */
|
#endif /* __MWERKS__ */
|
||||||
#else /* !macintosh */
|
#else /* !macintosh */
|
||||||
#error "Unknown MetroWerks target platform"
|
#error "Unsupported target platform"
|
||||||
#endif /* !macintosh */
|
// But it shouldn't be too complicated to
|
||||||
|
// be ported back to Windows ot Linux
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Mac specific stuff
|
// Mac specific stuff
|
||||||
|
Loading…
Reference in New Issue
Block a user