// control ids
enum
{
- TextPage_Reset = 100,
+ TextPage_Reset = wxID_HIGHEST,
TextPage_Set,
TextPage_Add,
bool password;
bool readonly;
+ bool filename;
WrapStyle wrapStyle;
TextLines_Multi, // multiline
false, // not password
false, // not readonly
+ false, // not filename
WrapStyle_Word, // wrap on word boundaries
#ifdef __WXMSW__
TextKind_Plain // plain EDIT control
{
public:
// ctor(s) and dtor
- TextWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
+ TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
virtual ~TextWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_text; }
+ virtual void RecreateWidget() { CreateText(); }
+
+ // lazy creation of the content
+ virtual void CreateContent();
protected:
// create an info text contorl
// the checkboxes controlling text ctrl styles
wxCheckBox *m_chkPassword,
- *m_chkReadonly;
+ *m_chkReadonly,
+ *m_chkFilename;
// under MSW we test rich edit controls as well here
#ifdef __WXMSW__
// implementation
// ============================================================================
-IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"));
+#if defined(__WXX11__)
+ #define FAMILY_CTRLS NATIVE_CTRLS
+#elif defined(__WXUNIVERSAL__)
+ #define FAMILY_CTRLS UNIVERSAL_CTRLS
+#else
+ #define FAMILY_CTRLS NATIVE_CTRLS
+#endif
+
+IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"),
+ FAMILY_CTRLS | EDITABLE_CTRLS
+ );
// ----------------------------------------------------------------------------
// TextWidgetsPage creation
// ----------------------------------------------------------------------------
-TextWidgetsPage::TextWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist)
- : WidgetsPage(book)
+TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
+ : WidgetsPage(book, imaglist, text_xpm)
{
- imaglist->Add(wxBitmap(text_xpm));
-
// init everything
#ifdef __WXMSW__
m_radioKind =
m_radioTextLines = (wxRadioBox *)NULL;
m_chkPassword =
- m_chkReadonly = (wxCheckBox *)NULL;
+ m_chkReadonly =
+ m_chkFilename = (wxCheckBox *)NULL;
m_text =
m_textPosCur =
m_posLast =
m_selFrom =
m_selTo = -2; // not -1 which means "no selection"
+}
+void TextWidgetsPage::CreateContent()
+{
// left pane
static const wxString modes[] =
{
m_chkReadonly = CreateCheckBoxAndAddToSizer(
sizerLeft, _T("&Read-only mode")
);
+ m_chkFilename = CreateCheckBoxAndAddToSizer(
+ sizerLeft, _T("&Filename control")
+ );
+ m_chkFilename->Disable(); // not implemented yet
sizerLeft->AddSpacer(5);
static const wxString wrap[] =
sizerTop->Add(m_sizerText, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
SetSizer(sizerTop);
-
- sizerTop->Fit(this);
}
// ----------------------------------------------------------------------------
m_chkPassword->SetValue(DEFAULTS.password);
m_chkReadonly->SetValue(DEFAULTS.readonly);
+ m_chkFilename->SetValue(DEFAULTS.filename);
m_radioWrap->SetSelection(DEFAULTS.wrapStyle);
void TextWidgetsPage::CreateText()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
switch ( m_radioTextLines->GetSelection() )
{
default:
m_text = new WidgetsTextCtrl(this, TextPage_Textctrl, valueOld, flags);
+#if 0
+ if ( m_chkFilename->GetValue() )
+ ;
+#endif // TODO
+
// cast to int needed to silence gcc warning about different enums
m_sizerText->Add(m_text, 1, wxALL |
(flags & wxTE_MULTILINE ? (int)wxGROW
#ifdef __WXMSW__
(m_radioKind->GetSelection() != DEFAULTS.textKind) ||
#endif // __WXMSW__
- (m_chkReadonly->GetValue() != DEFAULTS.readonly) ||
(m_chkPassword->GetValue() != DEFAULTS.password) ||
+ (m_chkReadonly->GetValue() != DEFAULTS.readonly) ||
+ (m_chkFilename->GetValue() != DEFAULTS.filename) ||
(m_radioWrap->GetSelection() != DEFAULTS.wrapStyle) );
}