Fixed crash when menu XML descriptor parse failed

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@2707 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 2d283d3cf32059331d8f22b1b88171f81b2b7a4b
Former-commit-id: 0f66c9c2ed544e946f0de666239b1c95ed9ca823
This commit is contained in:
pouillot 2010-08-28 14:42:55 +00:00
parent b7345f1f99
commit c7b85d4d47

View file

@ -1007,8 +1007,8 @@ bool GfuiMenuScreen::CloseXMLDescriptor()
bool GfuiMenuScreen::CreateStaticControls() bool GfuiMenuScreen::CreateStaticControls()
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return false;
return m_priv->menuHdle && m_priv->xmlDescParmHdle return m_priv->menuHdle && m_priv->xmlDescParmHdle
&& ::CreateStaticControls(m_priv->xmlDescParmHdle, m_priv->menuHdle); && ::CreateStaticControls(m_priv->xmlDescParmHdle, m_priv->menuHdle);
@ -1016,8 +1016,8 @@ bool GfuiMenuScreen::CreateStaticControls()
int GfuiMenuScreen::CreateButtonControl(const char *pszName, void *userData, tfuiCallback onPush) int GfuiMenuScreen::CreateButtonControl(const char *pszName, void *userData, tfuiCallback onPush)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1039,8 +1039,8 @@ int GfuiMenuScreen::CreateButtonControlEx(const char *pszName, void *userDataOnP
void *userDataOnFocus, tfuiCallback onFocus, void *userDataOnFocus, tfuiCallback onFocus,
tfuiCallback onFocusLost) tfuiCallback onFocusLost)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1059,8 +1059,8 @@ int GfuiMenuScreen::CreateButtonControlEx(const char *pszName, void *userDataOnP
int GfuiMenuScreen::CreateStaticImageControl(const char *pszName) int GfuiMenuScreen::CreateStaticImageControl(const char *pszName)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1078,8 +1078,8 @@ int GfuiMenuScreen::CreateStaticImageControl(const char *pszName)
int GfuiMenuScreen::CreateLabelControl(const char *pszName) int GfuiMenuScreen::CreateLabelControl(const char *pszName)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1099,8 +1099,8 @@ int GfuiMenuScreen::CreateEditControl(const char *pszName,
void *userDataOnFocus, tfuiCallback onFocus, void *userDataOnFocus, tfuiCallback onFocus,
tfuiCallback onFocusLost) tfuiCallback onFocusLost)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1120,8 +1120,8 @@ int GfuiMenuScreen::CreateEditControl(const char *pszName,
int GfuiMenuScreen::CreateScrollListControl(const char *pszName, int GfuiMenuScreen::CreateScrollListControl(const char *pszName,
void *userData, tfuiCallback onSelect) void *userData, tfuiCallback onSelect)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1141,8 +1141,8 @@ int GfuiMenuScreen::CreateScrollListControl(const char *pszName,
int GfuiMenuScreen::CreateComboboxControl(const char *pszName, int GfuiMenuScreen::CreateComboboxControl(const char *pszName,
void *userData, tfuiComboboxCallback onChange) void *userData, tfuiComboboxCallback onChange)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1162,8 +1162,8 @@ int GfuiMenuScreen::CreateComboboxControl(const char *pszName,
int GfuiMenuScreen::CreateCheckboxControl(const char *pszName, int GfuiMenuScreen::CreateCheckboxControl(const char *pszName,
void *userData, tfuiCheckboxCallback onChange) void *userData, tfuiCheckboxCallback onChange)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1182,8 +1182,8 @@ int GfuiMenuScreen::CreateCheckboxControl(const char *pszName,
int GfuiMenuScreen::CreateProgressbarControl(const char *pszName) int GfuiMenuScreen::CreateProgressbarControl(const char *pszName)
{ {
if (!m_priv->xmlDescParmHdle) if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
OpenXMLDescriptor(); return -1;
if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end()) if (m_priv->mapControlIds.find(pszName) == m_priv->mapControlIds.end())
{ {
@ -1201,12 +1201,18 @@ int GfuiMenuScreen::CreateProgressbarControl(const char *pszName)
void GfuiMenuScreen::AddDefaultShortcuts() void GfuiMenuScreen::AddDefaultShortcuts()
{ {
if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
return;
GfuiMenuDefaultKeysAdd(m_priv->menuHdle); GfuiMenuDefaultKeysAdd(m_priv->menuHdle);
} }
void GfuiMenuScreen::AddShortcut(int key, const char *descr, void *userData, void GfuiMenuScreen::AddShortcut(int key, const char *descr, void *userData,
tfuiCallback onKeyPressed, tfuiCallback onKeyReleased) tfuiCallback onKeyPressed, tfuiCallback onKeyReleased)
{ {
if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
return;
GfuiAddKey(m_priv->menuHdle, key, descr, userData, onKeyPressed, onKeyReleased); GfuiAddKey(m_priv->menuHdle, key, descr, userData, onKeyPressed, onKeyReleased);
} }
@ -1220,5 +1226,8 @@ int GfuiMenuScreen::GetDynamicControlId(const char *pszName) const
void GfuiMenuScreen::RunMenu() void GfuiMenuScreen::RunMenu()
{ {
if (!m_priv->xmlDescParmHdle && !OpenXMLDescriptor())
return;
GfuiScreenActivate(m_priv->menuHdle); GfuiScreenActivate(m_priv->menuHdle);
} }