This was SVN commit r144.
This commit is contained in:
Gee 2003-12-27 07:23:47 +00:00
parent 93caa8ce83
commit a08cbd2f74
2 changed files with 26 additions and 6 deletions

View File

@ -176,3 +176,13 @@ void CInternalCGUIAccessorBase::QueryResetting(IGUIObject *pObject)
{
GUI<>::RecurseObject(0, pObject, &IGUIObject::ResetStates);
}
void * CInternalCGUIAccessorBase::GetStructPointer(IGUIObject *pObject, const EGUISettingsStruct &SettingsStruct)
{
return pObject->GetStructPointer(SettingsStruct);
}
void CInternalCGUIAccessorBase::HandleMessage(IGUIObject *pObject, const SGUIMessage &message)
{
pObject->HandleMessage(message);
}

View File

@ -113,7 +113,8 @@ class IGUIObject;
* Base class to only the class GUI. This superclass is
* kind of a templateless extention of the class GUI.
* Used for other functions to friend with, because it
* it can't friend with GUI since it's templated.
* it can't friend with GUI since it's templated (at least
* not on all compilers we're using).
*/
class CInternalCGUIAccessorBase
{
@ -126,6 +127,10 @@ protected:
/// Wrapper for ResetStates
static void QueryResetting(IGUIObject *pObject);
static void * GetStructPointer(IGUIObject *pObject, const EGUISettingsStruct &SettingsStruct);
static void HandleMessage(IGUIObject *pObject, const SGUIMessage &message);
};
@ -164,7 +169,9 @@ public:
// Set value
Value =
*(T*)((size_t)pObject->GetStructPointer(pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
// *(T*)((size_t)pObject->GetStructPointer(pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
// pObject->GetSettingsInfo()[Setting].m_Offset);
*(T*)((size_t)GetStructPointer(pObject, pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
pObject->GetSettingsInfo()[Setting].m_Offset);
return PS_OK;
@ -189,7 +196,9 @@ public:
return PS_SETTING_FAIL;
// Set value
*(T*)((size_t)pObject->GetStructPointer(pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
//*(T*)((size_t)pObject->GetStructPointer(pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
// pObject->GetSettingsInfo()[Setting].m_Offset) = Value;
*(T*)((size_t)GetStructPointer(pObject, pObject->GetSettingsInfo()[Setting].m_SettingsStruct) +
pObject->GetSettingsInfo()[Setting].m_Offset) = Value;
@ -198,19 +207,20 @@ public:
//
// If setting was "size", we need to re-cache itself and all children
if (Setting == CStr(_T("size")))
if (Setting == CStr("size"))
{
RecurseObject(0, pObject, &IGUIObject::UpdateCachedSize);
}
else
if (Setting == CStr(_T("hidden")))
if (Setting == CStr("hidden"))
{
// Hiding an object requires us to reset it and all children
QueryResetting(pObject);
//RecurseObject(0, pObject, IGUIObject::ResetStates);
}
pObject->HandleMessage(SGUIMessage(GUIM_SETTINGS_UPDATED, Setting));
//pObject->HandleMessage(SGUIMessage(GUIM_SETTINGS_UPDATED, Setting));
HandleMessage(pObject, SGUIMessage(GUIM_SETTINGS_UPDATED, Setting));
return PS_OK;
}