added wxTE_BESTWRAP style (which is the default now); renamed wxTE_LINEWRAP to wxTE_CHARWRAP as this corresponds better to what it does; added tests for wxTE_*WRAP to the widgets sample (replaces patch 1156507)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -68,7 +68,18 @@ enum
|
||||
enum TextLines
|
||||
{
|
||||
TextLines_Single,
|
||||
TextLines_Multi
|
||||
TextLines_Multi,
|
||||
TextLines_Max
|
||||
};
|
||||
|
||||
// wrap style radio box
|
||||
enum WrapStyle
|
||||
{
|
||||
WrapStyle_None,
|
||||
WrapStyle_Word,
|
||||
WrapStyle_Char,
|
||||
WrapStyle_Best,
|
||||
WrapStyle_Max
|
||||
};
|
||||
|
||||
#ifdef __WXMSW__
|
||||
@@ -78,7 +89,8 @@ enum TextKind
|
||||
{
|
||||
TextKind_Plain,
|
||||
TextKind_Rich,
|
||||
TextKind_Rich2
|
||||
TextKind_Rich2,
|
||||
TextKind_Max
|
||||
};
|
||||
|
||||
#endif // __WXMSW__
|
||||
@@ -87,9 +99,12 @@ enum TextKind
|
||||
static const struct ControlValues
|
||||
{
|
||||
TextLines textLines;
|
||||
|
||||
bool password;
|
||||
bool wraplines;
|
||||
bool readonly;
|
||||
|
||||
WrapStyle wrapStyle;
|
||||
|
||||
#ifdef __WXMSW__
|
||||
TextKind textKind;
|
||||
#endif // __WXMSW__
|
||||
@@ -97,8 +112,8 @@ static const struct ControlValues
|
||||
{
|
||||
TextLines_Multi, // multiline
|
||||
false, // not password
|
||||
true, // do wrap lines
|
||||
false, // not readonly
|
||||
WrapStyle_Word, // wrap on word boundaries
|
||||
#ifdef __WXMSW__
|
||||
TextKind_Plain // plain EDIT control
|
||||
#endif // __WXMSW__
|
||||
@@ -172,9 +187,11 @@ protected:
|
||||
// the radiobox to choose between single and multi line
|
||||
wxRadioBox *m_radioTextLines;
|
||||
|
||||
// and another one to choose the wrapping style
|
||||
wxRadioBox *m_radioWrap;
|
||||
|
||||
// the checkboxes controlling text ctrl styles
|
||||
wxCheckBox *m_chkPassword,
|
||||
*m_chkWrapLines,
|
||||
*m_chkReadonly;
|
||||
|
||||
// under MSW we test rich edit controls as well here
|
||||
@@ -319,10 +336,10 @@ TextWidgetsPage::TextWidgetsPage(wxBookCtrl *book, wxImageList *imaglist)
|
||||
#ifdef __WXMSW__
|
||||
m_radioKind =
|
||||
#endif // __WXMSW__
|
||||
m_radioWrap =
|
||||
m_radioTextLines = (wxRadioBox *)NULL;
|
||||
|
||||
m_chkPassword =
|
||||
m_chkWrapLines =
|
||||
m_chkReadonly = (wxCheckBox *)NULL;
|
||||
|
||||
m_text =
|
||||
@@ -358,17 +375,29 @@ TextWidgetsPage::TextWidgetsPage(wxBookCtrl *book, wxImageList *imaglist)
|
||||
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
|
||||
|
||||
sizerLeft->Add(m_radioTextLines, 0, wxGROW | wxALL, 5);
|
||||
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
|
||||
sizerLeft->AddSpacer(5);
|
||||
|
||||
m_chkPassword = CreateCheckBoxAndAddToSizer(
|
||||
sizerLeft, _T("&Password control"), TextPage_Password
|
||||
);
|
||||
m_chkWrapLines = CreateCheckBoxAndAddToSizer(
|
||||
sizerLeft, _T("Line &wrap"), TextPage_WrapLines
|
||||
);
|
||||
m_chkReadonly = CreateCheckBoxAndAddToSizer(
|
||||
sizerLeft, _T("&Read-only mode")
|
||||
);
|
||||
sizerLeft->AddSpacer(5);
|
||||
|
||||
static const wxString wrap[] =
|
||||
{
|
||||
_T("no wrap"),
|
||||
_T("word wrap"),
|
||||
_T("char wrap"),
|
||||
_T("best wrap"),
|
||||
};
|
||||
|
||||
m_radioWrap = new wxRadioBox(this, wxID_ANY, _T("&Wrap style:"),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
WXSIZEOF(wrap), wrap,
|
||||
1, wxRA_SPECIFY_COLS);
|
||||
sizerLeft->Add(m_radioWrap, 0, wxGROW | wxALL, 5);
|
||||
|
||||
#ifdef __WXMSW__
|
||||
static const wxString kinds[] =
|
||||
@@ -383,7 +412,7 @@ TextWidgetsPage::TextWidgetsPage(wxBookCtrl *book, wxImageList *imaglist)
|
||||
WXSIZEOF(kinds), kinds,
|
||||
1, wxRA_SPECIFY_COLS);
|
||||
|
||||
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
|
||||
sizerLeft->AddSpacer(5);
|
||||
sizerLeft->Add(m_radioKind, 0, wxGROW | wxALL, 5);
|
||||
#endif // __WXMSW__
|
||||
|
||||
@@ -547,9 +576,12 @@ wxSizer *TextWidgetsPage::CreateTextWithLabelSizer(const wxString& label,
|
||||
void TextWidgetsPage::Reset()
|
||||
{
|
||||
m_radioTextLines->SetSelection(DEFAULTS.textLines);
|
||||
|
||||
m_chkPassword->SetValue(DEFAULTS.password);
|
||||
m_chkWrapLines->SetValue(DEFAULTS.wraplines);
|
||||
m_chkReadonly->SetValue(DEFAULTS.readonly);
|
||||
|
||||
m_radioWrap->SetSelection(DEFAULTS.wrapStyle);
|
||||
|
||||
#ifdef __WXMSW__
|
||||
m_radioKind->SetSelection(DEFAULTS.textKind);
|
||||
#endif // __WXMSW__
|
||||
@@ -576,8 +608,29 @@ void TextWidgetsPage::CreateText()
|
||||
flags |= wxTE_PASSWORD;
|
||||
if ( m_chkReadonly->GetValue() )
|
||||
flags |= wxTE_READONLY;
|
||||
if ( !m_chkWrapLines->GetValue() )
|
||||
flags |= wxHSCROLL;
|
||||
|
||||
switch ( m_radioWrap->GetSelection() )
|
||||
{
|
||||
default:
|
||||
wxFAIL_MSG( _T("unexpected wrap style radio box selection") );
|
||||
|
||||
case WrapStyle_None:
|
||||
flags |= wxTE_DONTWRAP; // same as wxHSCROLL
|
||||
break;
|
||||
|
||||
case WrapStyle_Word:
|
||||
flags |= wxTE_WORDWRAP;
|
||||
break;
|
||||
|
||||
case WrapStyle_Char:
|
||||
flags |= wxTE_LINEWRAP;
|
||||
break;
|
||||
|
||||
case WrapStyle_Best:
|
||||
// this is default but use symbolic file name for consistency
|
||||
flags |= wxTE_BESTWRAP;
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef __WXMSW__
|
||||
switch ( m_radioKind->GetSelection() )
|
||||
@@ -794,7 +847,7 @@ void TextWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
|
||||
#endif // __WXMSW__
|
||||
(m_chkReadonly->GetValue() != DEFAULTS.readonly) ||
|
||||
(m_chkPassword->GetValue() != DEFAULTS.password) ||
|
||||
(m_chkWrapLines->GetValue() != DEFAULTS.wraplines) );
|
||||
(m_radioWrap->GetSelection() != DEFAULTS.wrapStyle) );
|
||||
}
|
||||
|
||||
void TextWidgetsPage::OnText(wxCommandEvent& WXUNUSED(event))
|
||||
|
Reference in New Issue
Block a user