X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/461932ae60c4827a398d7a7d412174199a2ec0f4..1d529ef7eed851db9d007821decb9639e4e7fc16:/contrib/src/xrc/xmlres.cpp?ds=sidebyside diff --git a/contrib/src/xrc/xmlres.cpp b/contrib/src/xrc/xmlres.cpp index 7587547408..9da7526c05 100644 --- a/contrib/src/xrc/xmlres.cpp +++ b/contrib/src/xrc/xmlres.cpp @@ -324,6 +324,7 @@ bool wxXmlResource::UpdateResources() bool modif; # if wxUSE_FILESYSTEM wxFSFile *file = NULL; + wxUnusedVar(file); wxFileSystem fsys; # endif @@ -353,6 +354,7 @@ bool wxXmlResource::UpdateResources() rt = false; } wxDELETE(file); + wxUnusedVar(file); # else modif = wxDateTime(wxFileModificationTime(m_data[i].File)) > m_data[i].Time; # endif @@ -413,6 +415,7 @@ bool wxXmlResource::UpdateResources() # if wxUSE_FILESYSTEM wxDELETE(file); + wxUnusedVar(file); # else wxDELETE(stream); # endif @@ -712,6 +715,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); } @@ -748,7 +752,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; @@ -784,11 +789,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; - + } } @@ -1180,14 +1205,12 @@ static int XRCID_Lookup(const wxChar *str_id, int value_if_not_found = -2) index %= XRCID_TABLE_SIZE; XRCID_record *oldrec = NULL; - int matchcnt = 0; for (XRCID_record *rec = XRCID_Records[index]; rec; rec = rec->next) { if (wxStrcmp(rec->key, str_id) == 0) { return rec->id; } - matchcnt++; oldrec = rec; }