]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/textctrl.cpp
optionally count repeating wxLog messages instead of logging all (patch 1520815)
[wxWidgets.git] / samples / widgets / textctrl.cpp
index c01eb60d76f7d735a9622815ce05aa1bf08a9dc9..c1e6afb816b134a7c883147651bc865273b4af04 100644 (file)
@@ -53,7 +53,7 @@
 // control ids
 enum
 {
 // control ids
 enum
 {
-    TextPage_Reset = 100,
+    TextPage_Reset = wxID_HIGHEST,
 
     TextPage_Set,
     TextPage_Add,
 
     TextPage_Set,
     TextPage_Add,
@@ -106,6 +106,7 @@ static const struct ControlValues
 
     bool password;
     bool readonly;
 
     bool password;
     bool readonly;
+    bool filename;
 
     WrapStyle wrapStyle;
 
 
     WrapStyle wrapStyle;
 
@@ -117,6 +118,7 @@ static const struct ControlValues
     TextLines_Multi,    // multiline
     false,              // not password
     false,              // not readonly
     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
     WrapStyle_Word,     // wrap on word boundaries
 #ifdef __WXMSW__
     TextKind_Plain      // plain EDIT control
@@ -138,6 +140,9 @@ public:
     virtual wxControl *GetWidget() const { return m_text; }
     virtual void RecreateWidget() { CreateText(); }
 
     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
     wxTextCtrl *CreateInfoText();
 protected:
     // create an info text contorl
     wxTextCtrl *CreateInfoText();
@@ -198,7 +203,8 @@ protected:
 
     // the checkboxes controlling text ctrl styles
     wxCheckBox *m_chkPassword,
 
     // 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__
 
     // under MSW we test rich edit controls as well here
 #ifdef __WXMSW__
@@ -329,9 +335,16 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
 // implementation
 // ============================================================================
 
+#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"),
 IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"),
-                       (int)wxPlatform(GENERIC_CTRLS).If(wxMSW,NATIVE_CTRLS)
-                       | EDITABLE_CTRLS
+                       FAMILY_CTRLS | EDITABLE_CTRLS
                        );
 
 // ----------------------------------------------------------------------------
                        );
 
 // ----------------------------------------------------------------------------
@@ -339,10 +352,8 @@ IMPLEMENT_WIDGETS_PAGE(TextWidgetsPage, _T("Text"),
 // ----------------------------------------------------------------------------
 
 TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
 // ----------------------------------------------------------------------------
 
 TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
-               : WidgetsPage(book)
+               : WidgetsPage(book, imaglist, text_xpm)
 {
 {
-    imaglist->Add(wxBitmap(text_xpm));
-
     // init everything
 #ifdef __WXMSW__
     m_radioKind =
     // init everything
 #ifdef __WXMSW__
     m_radioKind =
@@ -351,7 +362,8 @@ TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
     m_radioTextLines = (wxRadioBox *)NULL;
 
     m_chkPassword =
     m_radioTextLines = (wxRadioBox *)NULL;
 
     m_chkPassword =
-    m_chkReadonly = (wxCheckBox *)NULL;
+    m_chkReadonly =
+    m_chkFilename = (wxCheckBox *)NULL;
 
     m_text =
     m_textPosCur =
 
     m_text =
     m_textPosCur =
@@ -369,7 +381,10 @@ TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
     m_posLast =
     m_selFrom =
     m_selTo = -2; // not -1 which means "no selection"
     m_posLast =
     m_selFrom =
     m_selTo = -2; // not -1 which means "no selection"
+}
 
 
+void TextWidgetsPage::CreateContent()
+{
     // left pane
     static const wxString modes[] =
     {
     // left pane
     static const wxString modes[] =
     {
@@ -394,6 +409,10 @@ TextWidgetsPage::TextWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
     m_chkReadonly = CreateCheckBoxAndAddToSizer(
                         sizerLeft, _T("&Read-only mode")
                     );
     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[] =
     sizerLeft->AddSpacer(5);
 
     static const wxString wrap[] =
@@ -593,6 +612,7 @@ void TextWidgetsPage::Reset()
 
     m_chkPassword->SetValue(DEFAULTS.password);
     m_chkReadonly->SetValue(DEFAULTS.readonly);
 
     m_chkPassword->SetValue(DEFAULTS.password);
     m_chkReadonly->SetValue(DEFAULTS.readonly);
+    m_chkFilename->SetValue(DEFAULTS.filename);
 
     m_radioWrap->SetSelection(DEFAULTS.wrapStyle);
 
 
     m_radioWrap->SetSelection(DEFAULTS.wrapStyle);
 
@@ -680,6 +700,11 @@ void TextWidgetsPage::CreateText()
 
     m_text = new WidgetsTextCtrl(this, TextPage_Textctrl, valueOld, flags);
 
 
     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
     // cast to int needed to silence gcc warning about different enums
     m_sizerText->Add(m_text, 1, wxALL |
                      (flags & wxTE_MULTILINE ? (int)wxGROW
@@ -859,8 +884,9 @@ void TextWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
 #ifdef __WXMSW__
                   (m_radioKind->GetSelection() != DEFAULTS.textKind) ||
 #endif // __WXMSW__
 #ifdef __WXMSW__
                   (m_radioKind->GetSelection() != DEFAULTS.textKind) ||
 #endif // __WXMSW__
-                  (m_chkReadonly->GetValue() != DEFAULTS.readonly) ||
                   (m_chkPassword->GetValue() != DEFAULTS.password) ||
                   (m_chkPassword->GetValue() != DEFAULTS.password) ||
+                  (m_chkReadonly->GetValue() != DEFAULTS.readonly) ||
+                  (m_chkFilename->GetValue() != DEFAULTS.filename) ||
                   (m_radioWrap->GetSelection() != DEFAULTS.wrapStyle) );
 }
 
                   (m_radioWrap->GetSelection() != DEFAULTS.wrapStyle) );
 }