#include "wx/statbox.h"
#include "wx/stattext.h"
#include "wx/textctrl.h"
+ #include "wx/msgdlg.h"
#endif
#include "wx/sizer.h"
+#include "wx/ioswrap.h"
#include "widgets.h"
// control ids
enum
{
- TextPage_Reset = 100,
+ TextPage_Reset = wxID_HIGHEST,
TextPage_Set,
TextPage_Add,
TextPage_Clear,
TextPage_Load,
+ TextPage_StreamRedirector,
+
TextPage_Password,
TextPage_WrapLines,
TextPage_Textctrl
{
public:
// ctor(s) and dtor
- TextWidgetsPage(wxBookCtrl *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
void OnButtonClear(wxCommandEvent& event);
void OnButtonLoad(wxCommandEvent& event);
+ void OnStreamRedirector(wxCommandEvent& event);
void OnButtonQuit(wxCommandEvent& event);
void OnText(wxCommandEvent& event);
EVT_BUTTON(TextPage_Reset, TextWidgetsPage::OnButtonReset)
+ EVT_BUTTON(TextPage_StreamRedirector, TextWidgetsPage::OnStreamRedirector)
+
EVT_BUTTON(TextPage_Clear, TextWidgetsPage::OnButtonClear)
EVT_BUTTON(TextPage_Set, TextWidgetsPage::OnButtonSet)
EVT_BUTTON(TextPage_Add, TextWidgetsPage::OnButtonAdd)
// 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(wxBookCtrl *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_posLast =
m_selFrom =
m_selTo = -2; // not -1 which means "no selection"
+}
+void TextWidgetsPage::CreateContent()
+{
// left pane
static const wxString modes[] =
{
btn = new wxButton(this, TextPage_Clear, _T("&Clear"));
sizerMiddleUp->Add(btn, 0, wxALL | wxGROW, 1);
+ btn = new wxButton(this, TextPage_StreamRedirector, _T("St&ream redirection"));
+ sizerMiddleUp->Add(btn, 0, wxALL | wxGROW, 1);
+
wxStaticBox *box4 = new wxStaticBox(this, wxID_ANY, _T("&Info:"));
wxSizer *sizerMiddleDown = new wxStaticBoxSizer(box4, wxVERTICAL);
wxTextCtrl *text = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
wxDefaultPosition,
- wxSize(s_maxWidth, -1),
+ wxSize(s_maxWidth, wxDefaultCoord),
wxTE_READONLY);
return text;
}
void TextWidgetsPage::CreateText()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
switch ( m_radioTextLines->GetSelection() )
{
default:
break;
case WrapStyle_Char:
- flags |= wxTE_LINEWRAP;
+ flags |= wxTE_CHARWRAP;
break;
case WrapStyle_Best:
CreateText();
}
+void TextWidgetsPage::OnStreamRedirector(wxCommandEvent& WXUNUSED(event))
+{
+#if wxHAS_TEXT_WINDOW_STREAM
+ wxStreamToTextRedirector redirect(m_text);
+ wxString str( _T("Outputed to cout, appears in wxTextCtrl!") );
+ wxSTD cout << str << wxSTD endl;
+#else
+ wxMessageBox(_T("This wxWidgets build does not support wxStreamToTextRedirector"));
+#endif
+}