split wxControl::Ellipsize() in two functions for better readability of the code; add support for ellipsization flags which allow to disable special processing of TAB/mnemonics characters

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-02-08 12:56:14 +00:00
parent 1ea5ef0190
commit a78618b062
3 changed files with 237 additions and 148 deletions

View File

@@ -6,14 +6,42 @@
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
/**
Flags used by wxControl::Ellipsize function.
*/
enum wxEllipsizeFlags
{
/// With this flag when calculating the size of the passed string, mnemonics
/// characters (see wxControl::SetLabel) will be automatically reduced to a
/// single character.
/// This leads to correct calculations only if the string passed to Ellipsize()
/// will be used with wxControl::SetLabel. If you don't want ampersand to
/// be interpreted as mnemonics (e.g. because you use wxControl::SetLabelText)
/// then don't use this flag.
wxELLIPSIZE_PROCESS_MNEMONICS = 1,
/// This flag tells wxControl::Ellipsize to calculate the width of tab
/// characters @c '\\t' as 6 spaces.
wxELLIPSIZE_EXPAND_TAB = 2,
/// The default flags for wxControl::Ellipsize.
wxELLIPSIZE_DEFAULT_FLAGS = wxELLIPSIZE_PROCESS_MNEMONICS|wxELLIPSIZE_EXPAND_TAB
};
/**
The different ellipsization modes supported by the
wxControl::Ellipsize function.
*/
enum wxEllipsizeMode
{
/// Put the ellipsis at the start of the string, if the string needs ellipsization.
wxELLIPSIZE_START,
/// Put the ellipsis in the middle of the string, if the string needs ellipsization.
wxELLIPSIZE_MIDDLE,
/// Put the ellipsis at the end of the string, if the string needs ellipsization.
wxELLIPSIZE_END
};
@@ -53,9 +81,12 @@ public:
The ellipsization modes. See ::wxEllipsizeMode.
@param maxWidth
The maximum width of the returned string in pixels.
@param flags
One or more of the ::wxEllipsize
*/
static wxString Ellipsize(const wxString& label, const wxDC& dc,
wxEllipsizeMode mode, int maxWidth);
wxEllipsizeMode mode, int maxWidth,
int flags = wxELLIPSIZE_DEFAULT_FLAGS);
/**
Returns the control's text.