1. minor rewrite of XRC's stock_id/stock_client handling, now guesses client id from context
2. fixed 'platform' property handling git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -87,7 +87,7 @@ wxObject *wxMenuXmlHandler::DoCreateResource()
|
|||||||
|
|
||||||
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
||||||
if (HasParam(wxT("bitmap")))
|
if (HasParam(wxT("bitmap")))
|
||||||
mitem->SetBitmap(GetBitmap(wxT("bitmap")));
|
mitem->SetBitmap(GetBitmap(wxT("bitmap"), wxART_MENU));
|
||||||
#endif
|
#endif
|
||||||
p_menu->Append(mitem);
|
p_menu->Append(mitem);
|
||||||
mitem->Enable(GetBool(wxT("enabled"), TRUE));
|
mitem->Enable(GetBool(wxT("enabled"), TRUE));
|
||||||
|
@@ -34,7 +34,7 @@ wxObject *wxStaticBitmapXmlHandler::DoCreateResource()
|
|||||||
|
|
||||||
bmp->Create(m_parentAsWindow,
|
bmp->Create(m_parentAsWindow,
|
||||||
GetID(),
|
GetID(),
|
||||||
GetBitmap(wxT("bitmap"), GetSize()),
|
GetBitmap(wxT("bitmap"), wxART_OTHER, GetSize()),
|
||||||
GetPosition(), GetSize(),
|
GetPosition(), GetSize(),
|
||||||
GetStyle(),
|
GetStyle(),
|
||||||
GetName());
|
GetName());
|
||||||
|
@@ -40,8 +40,8 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
|
wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
|
||||||
m_toolbar->AddTool(GetID(),
|
m_toolbar->AddTool(GetID(),
|
||||||
GetBitmap(wxT("bitmap")),
|
GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
|
||||||
GetBitmap(wxT("bitmap2")),
|
GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
|
||||||
GetBool(wxT("toggle")),
|
GetBool(wxT("toggle")),
|
||||||
GetPosition().x,
|
GetPosition().x,
|
||||||
GetPosition().y,
|
GetPosition().y,
|
||||||
|
@@ -269,8 +269,8 @@ static void ProcessPlatformProperty(wxXmlNode *node)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
node->RemoveChild(c);
|
|
||||||
wxXmlNode *c2 = c->GetNext();
|
wxXmlNode *c2 = c->GetNext();
|
||||||
|
node->RemoveChild(c);
|
||||||
delete c;
|
delete c;
|
||||||
c = c2;
|
c = c2;
|
||||||
}
|
}
|
||||||
@@ -719,67 +719,6 @@ int wxXmlResourceHandler::GetID()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxArtID wxXmlResourceHandler::GetStockID(const wxString& param)
|
|
||||||
{
|
|
||||||
wxXmlNode *stockIDNode = GetParamNode(param);
|
|
||||||
if (stockIDNode == NULL)
|
|
||||||
return wxEmptyString;
|
|
||||||
|
|
||||||
wxXmlNode *oldnode = m_node;
|
|
||||||
m_node = stockIDNode;
|
|
||||||
|
|
||||||
wxArtID sid = m_node->GetPropVal(wxT("stock_id"), wxT(""));
|
|
||||||
|
|
||||||
m_node = oldnode;
|
|
||||||
|
|
||||||
if (sid.IsEmpty()) return wxEmptyString;
|
|
||||||
#define stdID(id) else if (sid == wxT(#id)) return id
|
|
||||||
stdID(wxART_ADD_BOOKMARK); stdID(wxART_DEL_BOOKMARK);
|
|
||||||
stdID(wxART_HELP_SIDE_PANEL); stdID(wxART_HELP_SETTINGS);
|
|
||||||
stdID(wxART_HELP_BOOK); stdID(wxART_HELP_FOLDER);
|
|
||||||
stdID(wxART_HELP_PAGE); stdID(wxART_GO_BACK);
|
|
||||||
stdID(wxART_GO_FORWARD); stdID(wxART_GO_UP);
|
|
||||||
stdID(wxART_GO_DOWN); stdID(wxART_GO_TO_PARENT);
|
|
||||||
stdID(wxART_GO_HOME); stdID(wxART_FILE_OPEN);
|
|
||||||
stdID(wxART_PRINT); stdID(wxART_HELP); stdID(wxART_TIP);
|
|
||||||
stdID(wxART_REPORT_VIEW); stdID(wxART_LIST_VIEW);
|
|
||||||
stdID(wxART_NEW_DIR); stdID(wxART_FOLDER);
|
|
||||||
stdID(wxART_GO_DIR_UP); stdID(wxART_EXECUTABLE_FILE);
|
|
||||||
stdID(wxART_NORMAL_FILE); stdID(wxART_TICK_MARK);
|
|
||||||
stdID(wxART_CROSS_MARK); stdID(wxART_ERROR);
|
|
||||||
stdID(wxART_QUESTION); stdID(wxART_WARNING);
|
|
||||||
stdID(wxART_INFORMATION);
|
|
||||||
#undef stdID
|
|
||||||
else return sid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxArtClient wxXmlResourceHandler::GetStockClient(const wxString& param)
|
|
||||||
{
|
|
||||||
wxXmlNode *stockClientNode = GetParamNode(param);
|
|
||||||
if (stockClientNode == NULL)
|
|
||||||
return wxEmptyString;
|
|
||||||
|
|
||||||
wxXmlNode *oldnode = m_node;
|
|
||||||
m_node = stockClientNode;
|
|
||||||
|
|
||||||
wxArtClient sid = m_node->GetPropVal(wxT("stock_client"), wxT("wxART_OTHER"));
|
|
||||||
|
|
||||||
m_node = oldnode;
|
|
||||||
|
|
||||||
if (sid.IsEmpty()) return wxEmptyString;
|
|
||||||
#define stdID(id) else if (sid == wxT(#id)) return id
|
|
||||||
stdID(wxART_TOOLBAR); stdID(wxART_MENU);
|
|
||||||
stdID(wxART_FRAME_ICON); stdID(wxART_CMN_DIALOG);
|
|
||||||
stdID(wxART_HELP_BROWSER); stdID(wxART_MESSAGE_BOX);
|
|
||||||
stdID(wxART_OTHER);
|
|
||||||
#undef stdID
|
|
||||||
else return sid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxString wxXmlResourceHandler::GetName()
|
wxString wxXmlResourceHandler::GetName()
|
||||||
{
|
{
|
||||||
return m_node->GetPropVal(wxT("name"), wxT("-1"));
|
return m_node->GetPropVal(wxT("name"), wxT("-1"));
|
||||||
@@ -817,17 +756,28 @@ wxColour wxXmlResourceHandler::GetColour(const wxString& param)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param, wxSize size)
|
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||||
|
const wxArtClient& defaultArtClient,
|
||||||
|
wxSize size)
|
||||||
{
|
{
|
||||||
wxString stk = param;
|
/* If the bitmap is specified as stock item, query wxArtProvider for it: */
|
||||||
if (!GetStockID(stk).IsEmpty())
|
wxXmlNode *bmpNode = GetParamNode(param);
|
||||||
|
if ( bmpNode )
|
||||||
{
|
{
|
||||||
wxBitmap stockArt = wxArtProvider::GetBitmap(GetStockID(stk),
|
wxString sid = bmpNode->GetPropVal(wxT("stock_id"), wxEmptyString);
|
||||||
GetStockClient(stk), size);
|
if ( !sid.empty() )
|
||||||
if (stockArt != wxNullBitmap)
|
{
|
||||||
|
wxString scl = bmpNode->GetPropVal(wxT("stock_client"), defaultArtClient);
|
||||||
|
wxBitmap stockArt =
|
||||||
|
wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(sid),
|
||||||
|
wxART_MAKE_CLIENT_ID_FROM_STR(scl),
|
||||||
|
size);
|
||||||
|
if ( stockArt.Ok() )
|
||||||
return stockArt;
|
return stockArt;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ...or load the bitmap from file: */
|
||||||
wxString name = GetParamValue(param);
|
wxString name = GetParamValue(param);
|
||||||
if (name.IsEmpty()) return wxNullBitmap;
|
if (name.IsEmpty()) return wxNullBitmap;
|
||||||
#if wxUSE_FILESYSTEM
|
#if wxUSE_FILESYSTEM
|
||||||
@@ -855,11 +805,13 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param, wxSize size)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param, wxSize size)
|
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
|
||||||
|
const wxArtClient& defaultArtClient,
|
||||||
|
wxSize size)
|
||||||
{
|
{
|
||||||
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
||||||
wxIcon icon;
|
wxIcon icon;
|
||||||
icon.CopyFromBitmap(GetBitmap(param, size));
|
icon.CopyFromBitmap(GetBitmap(param, defaultArtClient, size));
|
||||||
#else
|
#else
|
||||||
wxIcon *iconpt;
|
wxIcon *iconpt;
|
||||||
wxBitmap bmppt = GetBitmap(param, size);
|
wxBitmap bmppt = GetBitmap(param, size);
|
||||||
|
@@ -87,7 +87,7 @@ wxObject *wxMenuXmlHandler::DoCreateResource()
|
|||||||
|
|
||||||
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
||||||
if (HasParam(wxT("bitmap")))
|
if (HasParam(wxT("bitmap")))
|
||||||
mitem->SetBitmap(GetBitmap(wxT("bitmap")));
|
mitem->SetBitmap(GetBitmap(wxT("bitmap"), wxART_MENU));
|
||||||
#endif
|
#endif
|
||||||
p_menu->Append(mitem);
|
p_menu->Append(mitem);
|
||||||
mitem->Enable(GetBool(wxT("enabled"), TRUE));
|
mitem->Enable(GetBool(wxT("enabled"), TRUE));
|
||||||
|
@@ -34,7 +34,7 @@ wxObject *wxStaticBitmapXmlHandler::DoCreateResource()
|
|||||||
|
|
||||||
bmp->Create(m_parentAsWindow,
|
bmp->Create(m_parentAsWindow,
|
||||||
GetID(),
|
GetID(),
|
||||||
GetBitmap(wxT("bitmap"), GetSize()),
|
GetBitmap(wxT("bitmap"), wxART_OTHER, GetSize()),
|
||||||
GetPosition(), GetSize(),
|
GetPosition(), GetSize(),
|
||||||
GetStyle(),
|
GetStyle(),
|
||||||
GetName());
|
GetName());
|
||||||
|
@@ -40,8 +40,8 @@ wxObject *wxToolBarXmlHandler::DoCreateResource()
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
|
wxCHECK_MSG(m_toolbar, NULL, wxT("Incorrect syntax of XRC resource: tool not within a toolbar!"));
|
||||||
m_toolbar->AddTool(GetID(),
|
m_toolbar->AddTool(GetID(),
|
||||||
GetBitmap(wxT("bitmap")),
|
GetBitmap(wxT("bitmap"), wxART_TOOLBAR),
|
||||||
GetBitmap(wxT("bitmap2")),
|
GetBitmap(wxT("bitmap2"), wxART_TOOLBAR),
|
||||||
GetBool(wxT("toggle")),
|
GetBool(wxT("toggle")),
|
||||||
GetPosition().x,
|
GetPosition().x,
|
||||||
GetPosition().y,
|
GetPosition().y,
|
||||||
|
@@ -269,8 +269,8 @@ static void ProcessPlatformProperty(wxXmlNode *node)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
node->RemoveChild(c);
|
|
||||||
wxXmlNode *c2 = c->GetNext();
|
wxXmlNode *c2 = c->GetNext();
|
||||||
|
node->RemoveChild(c);
|
||||||
delete c;
|
delete c;
|
||||||
c = c2;
|
c = c2;
|
||||||
}
|
}
|
||||||
@@ -719,67 +719,6 @@ int wxXmlResourceHandler::GetID()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxArtID wxXmlResourceHandler::GetStockID(const wxString& param)
|
|
||||||
{
|
|
||||||
wxXmlNode *stockIDNode = GetParamNode(param);
|
|
||||||
if (stockIDNode == NULL)
|
|
||||||
return wxEmptyString;
|
|
||||||
|
|
||||||
wxXmlNode *oldnode = m_node;
|
|
||||||
m_node = stockIDNode;
|
|
||||||
|
|
||||||
wxArtID sid = m_node->GetPropVal(wxT("stock_id"), wxT(""));
|
|
||||||
|
|
||||||
m_node = oldnode;
|
|
||||||
|
|
||||||
if (sid.IsEmpty()) return wxEmptyString;
|
|
||||||
#define stdID(id) else if (sid == wxT(#id)) return id
|
|
||||||
stdID(wxART_ADD_BOOKMARK); stdID(wxART_DEL_BOOKMARK);
|
|
||||||
stdID(wxART_HELP_SIDE_PANEL); stdID(wxART_HELP_SETTINGS);
|
|
||||||
stdID(wxART_HELP_BOOK); stdID(wxART_HELP_FOLDER);
|
|
||||||
stdID(wxART_HELP_PAGE); stdID(wxART_GO_BACK);
|
|
||||||
stdID(wxART_GO_FORWARD); stdID(wxART_GO_UP);
|
|
||||||
stdID(wxART_GO_DOWN); stdID(wxART_GO_TO_PARENT);
|
|
||||||
stdID(wxART_GO_HOME); stdID(wxART_FILE_OPEN);
|
|
||||||
stdID(wxART_PRINT); stdID(wxART_HELP); stdID(wxART_TIP);
|
|
||||||
stdID(wxART_REPORT_VIEW); stdID(wxART_LIST_VIEW);
|
|
||||||
stdID(wxART_NEW_DIR); stdID(wxART_FOLDER);
|
|
||||||
stdID(wxART_GO_DIR_UP); stdID(wxART_EXECUTABLE_FILE);
|
|
||||||
stdID(wxART_NORMAL_FILE); stdID(wxART_TICK_MARK);
|
|
||||||
stdID(wxART_CROSS_MARK); stdID(wxART_ERROR);
|
|
||||||
stdID(wxART_QUESTION); stdID(wxART_WARNING);
|
|
||||||
stdID(wxART_INFORMATION);
|
|
||||||
#undef stdID
|
|
||||||
else return sid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxArtClient wxXmlResourceHandler::GetStockClient(const wxString& param)
|
|
||||||
{
|
|
||||||
wxXmlNode *stockClientNode = GetParamNode(param);
|
|
||||||
if (stockClientNode == NULL)
|
|
||||||
return wxEmptyString;
|
|
||||||
|
|
||||||
wxXmlNode *oldnode = m_node;
|
|
||||||
m_node = stockClientNode;
|
|
||||||
|
|
||||||
wxArtClient sid = m_node->GetPropVal(wxT("stock_client"), wxT("wxART_OTHER"));
|
|
||||||
|
|
||||||
m_node = oldnode;
|
|
||||||
|
|
||||||
if (sid.IsEmpty()) return wxEmptyString;
|
|
||||||
#define stdID(id) else if (sid == wxT(#id)) return id
|
|
||||||
stdID(wxART_TOOLBAR); stdID(wxART_MENU);
|
|
||||||
stdID(wxART_FRAME_ICON); stdID(wxART_CMN_DIALOG);
|
|
||||||
stdID(wxART_HELP_BROWSER); stdID(wxART_MESSAGE_BOX);
|
|
||||||
stdID(wxART_OTHER);
|
|
||||||
#undef stdID
|
|
||||||
else return sid;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxString wxXmlResourceHandler::GetName()
|
wxString wxXmlResourceHandler::GetName()
|
||||||
{
|
{
|
||||||
return m_node->GetPropVal(wxT("name"), wxT("-1"));
|
return m_node->GetPropVal(wxT("name"), wxT("-1"));
|
||||||
@@ -817,17 +756,28 @@ wxColour wxXmlResourceHandler::GetColour(const wxString& param)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param, wxSize size)
|
wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param,
|
||||||
|
const wxArtClient& defaultArtClient,
|
||||||
|
wxSize size)
|
||||||
{
|
{
|
||||||
wxString stk = param;
|
/* If the bitmap is specified as stock item, query wxArtProvider for it: */
|
||||||
if (!GetStockID(stk).IsEmpty())
|
wxXmlNode *bmpNode = GetParamNode(param);
|
||||||
|
if ( bmpNode )
|
||||||
{
|
{
|
||||||
wxBitmap stockArt = wxArtProvider::GetBitmap(GetStockID(stk),
|
wxString sid = bmpNode->GetPropVal(wxT("stock_id"), wxEmptyString);
|
||||||
GetStockClient(stk), size);
|
if ( !sid.empty() )
|
||||||
if (stockArt != wxNullBitmap)
|
{
|
||||||
|
wxString scl = bmpNode->GetPropVal(wxT("stock_client"), defaultArtClient);
|
||||||
|
wxBitmap stockArt =
|
||||||
|
wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(sid),
|
||||||
|
wxART_MAKE_CLIENT_ID_FROM_STR(scl),
|
||||||
|
size);
|
||||||
|
if ( stockArt.Ok() )
|
||||||
return stockArt;
|
return stockArt;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ...or load the bitmap from file: */
|
||||||
wxString name = GetParamValue(param);
|
wxString name = GetParamValue(param);
|
||||||
if (name.IsEmpty()) return wxNullBitmap;
|
if (name.IsEmpty()) return wxNullBitmap;
|
||||||
#if wxUSE_FILESYSTEM
|
#if wxUSE_FILESYSTEM
|
||||||
@@ -855,11 +805,13 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param, wxSize size)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param, wxSize size)
|
wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
|
||||||
|
const wxArtClient& defaultArtClient,
|
||||||
|
wxSize size)
|
||||||
{
|
{
|
||||||
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__)
|
||||||
wxIcon icon;
|
wxIcon icon;
|
||||||
icon.CopyFromBitmap(GetBitmap(param, size));
|
icon.CopyFromBitmap(GetBitmap(param, defaultArtClient, size));
|
||||||
#else
|
#else
|
||||||
wxIcon *iconpt;
|
wxIcon *iconpt;
|
||||||
wxBitmap bmppt = GetBitmap(param, size);
|
wxBitmap bmppt = GetBitmap(param, size);
|
||||||
|
Reference in New Issue
Block a user