X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/19d0f58d39047447a6908520498720c8bff35a1b..3a5bcc4db0851bf8cd3063917511b0b17c7f9679:/src/xrc/xmlres.cpp?ds=sidebyside diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp index a50a9e70d9..bbe8ce47c5 100644 --- a/src/xrc/xmlres.cpp +++ b/src/xrc/xmlres.cpp @@ -410,7 +410,11 @@ bool wxXmlResource::UpdateResources() } ProcessPlatformProperty(m_data[i].Doc->GetRoot()); +#if wxUSE_FILESYSTEM m_data[i].Time = file->GetModificationTime(); +#else + m_data[i].Time = wxDateTime(wxFileModificationTime(m_data[i].File)); +#endif } # if wxUSE_FILESYSTEM @@ -715,6 +719,7 @@ void wxXmlResourceHandler::AddWindowStyles() XRC_ADD_STYLE(wxTRANSPARENT_WINDOW); XRC_ADD_STYLE(wxWANTS_CHARS); XRC_ADD_STYLE(wxNO_FULL_REPAINT_ON_RESIZE); + XRC_ADD_STYLE(wxWS_EX_BLOCK_EVENTS); } @@ -751,7 +756,8 @@ int wxXmlResourceHandler::GetStyle(const wxString& param, int defaults) wxString wxXmlResourceHandler::GetText(const wxString& param, bool translate) { - wxString str1(GetParamValue(param)); + wxXmlNode *parNode = GetParamNode(param); + wxString str1(GetNodeContent(parNode)); wxString str2; const wxChar *dt; wxChar amp_char; @@ -787,11 +793,31 @@ wxString wxXmlResourceHandler::GetText(const wxString& param, bool translate) else str2 << *dt; } - if (translate && m_resource->GetFlags() & wxXRC_USE_LOCALE) - return wxGetTranslation(str2); + if (m_resource->GetFlags() & wxXRC_USE_LOCALE) + { + if (translate && parNode && + parNode->GetPropVal(wxT("translate"), wxEmptyString) != wxT("0")) + { + return wxGetTranslation(str2); + } + else + { +#if wxUSE_UNICODE + return str2; +#else + // The string is internally stored as UTF-8, we have to convert + // it into system's default encoding so that it can be displayed: + return wxString(str2.mb_str(wxConvUTF8), wxConvLocal); +#endif + } + } else + { + // If wxXRC_USE_LOCALE is not set, then the string is already in + // system's default encoding in ANSI build, so we don't have to + // do anything special here. return str2; - + } }