X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/91d55088c9ee093e62b3282e2f64b32627f0f25d..7bade612f0f138a06f6a53d84220bb9d8ece7662:/src/common/ctrlcmn.cpp diff --git a/src/common/ctrlcmn.cpp b/src/common/ctrlcmn.cpp index b5e5ad8891..f6dbd6eb2d 100644 --- a/src/common/ctrlcmn.cpp +++ b/src/common/ctrlcmn.cpp @@ -35,6 +35,7 @@ #include "wx/statbmp.h" #include "wx/bitmap.h" #include "wx/utils.h" // for wxStripMenuCodes() + #include "wx/settings.h" #endif const char wxControlNameStr[] = "control"; @@ -173,7 +174,7 @@ int wxControlBase::FindAccelIndex(const wxString& label, wxString *labelOnly) // the character following MNEMONIC_PREFIX is the accelerator for this // control unless it is MNEMONIC_PREFIX too - this allows to insert // literal MNEMONIC_PREFIX chars into the label - static const wxChar MNEMONIC_PREFIX = _T('&'); + static const wxChar MNEMONIC_PREFIX = wxT('&'); if ( labelOnly ) { @@ -198,7 +199,7 @@ int wxControlBase::FindAccelIndex(const wxString& label, wxString *labelOnly) } else { - wxFAIL_MSG(_T("duplicate accel char in control label")); + wxFAIL_MSG(wxT("duplicate accel char in control label")); } } } @@ -217,6 +218,17 @@ wxBorder wxControlBase::GetDefaultBorder() const return wxBORDER_THEME; } +/* static */ wxVisualAttributes +wxControlBase::GetCompositeControlsDefaultAttributes(wxWindowVariant WXUNUSED(variant)) +{ + wxVisualAttributes attrs; + attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); + attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); + + return attrs; +} + // ---------------------------------------------------------------------------- // wxControlBase - ellipsization code // ---------------------------------------------------------------------------- @@ -262,83 +274,83 @@ wxString wxControlBase::DoEllipsizeSingleLine(const wxString& curLine, const wxD switch (mode) { - case wxELLIPSIZE_START: - initialChar = 0; - for (nChars=0; - nChars < len && charOffsets[nChars] < excessPixels; - nChars++) - ; - break; - - case wxELLIPSIZE_MIDDLE: - { - // the start & end of the removed span of chars - initialChar = len/2; - size_t endChar = len/2; + case wxELLIPSIZE_START: + initialChar = 0; + for ( nChars=0; + nChars < len && charOffsets[nChars] < excessPixels; + nChars++ ) + ; + break; - int removed = 0; - for ( ; removed < excessPixels; ) + case wxELLIPSIZE_MIDDLE: { - if (initialChar > 0) - { - // width of the initialChar-th character - int width = charOffsets[initialChar] - - charOffsets[initialChar-1]; - - // remove the initialChar-th character - removed += width; - initialChar--; - } + // the start & end of the removed span of chars + initialChar = len/2; + size_t endChar = len/2; - if (endChar < len - 1 && - removed < excessPixels) + int removed = 0; + for ( ; removed < excessPixels; ) { - // width of the (endChar+1)-th character - int width = charOffsets[endChar+1] - - charOffsets[endChar]; - - // remove the endChar-th character - removed += width; - endChar++; + if (initialChar > 0) + { + // width of the initialChar-th character + int width = charOffsets[initialChar] - + charOffsets[initialChar-1]; + + // remove the initialChar-th character + removed += width; + initialChar--; + } + + if (endChar < len - 1 && + removed < excessPixels) + { + // width of the (endChar+1)-th character + int width = charOffsets[endChar+1] - + charOffsets[endChar]; + + // remove the endChar-th character + removed += width; + endChar++; + } + + if (initialChar == 0 && endChar == len-1) + { + nChars = len+1; + break; + } } - if (initialChar == 0 && endChar == len-1) - { - nChars = len+1; - break; - } + initialChar++; + nChars = endChar - initialChar + 1; } + break; - initialChar++; - nChars = endChar - initialChar + 1; - } - break; - - case wxELLIPSIZE_END: - { - wxASSERT(len > 0); + case wxELLIPSIZE_END: + { + wxASSERT(len > 0); - int maxWidth = totalWidth - excessPixels; - for (initialChar=0; - initialChar < len && - charOffsets[initialChar] < maxWidth; - initialChar++) - ; + int maxWidth = totalWidth - excessPixels; + for ( initialChar = 0; + initialChar < len && charOffsets[initialChar] < maxWidth; + initialChar++ ) + ; - if (initialChar == 0) - { - nChars = len; - } - else - { - //initialChar--; // go back one character - nChars = len - initialChar; + if (initialChar == 0) + { + nChars = len; + } + else + { + //initialChar--; // go back one character + nChars = len - initialChar; + } } - } - break; + break; - default: - wxFAIL_MSG("invalid ellipsize mode"); + default: + wxFAIL_MSG("invalid ellipsize mode"); + return curLine; } wxString ret(curLine);