When I put a wxTextCtrl to wxPanel or scrolled window, system show only 2 lines of text. Sometimes wxTextCtrl will be bigger then window. Wraping a text to x size (horisontaly), increase text verticaly to show all text without scroller.
I need similar chat or sms layout. No matter emoji, rouded corner, color etc.
#include <wx/wx.h>
class OknoG : public wxFrame
{
public:
OknoG() : wxFrame(NULL, wxID_ANY, "Testowanie")
{
SetClientSize(wxSize(300, 400));
wxString treść(wxT("Bardzo długi tekst. "
"Bardzo długi tekst z polskimi literami. "
"Bardzo długi tekst z polskimi literami np. mątwa, łąka."
"Żółta żaba żarła żur. To kolejny długi tekst z polskimi literami i nawet cyframi. "
"Bardzo długi tekst z polskimi literami ćż. "
"Bardzo długi tekst z polskimi literami i koniec. ") );
wxScrolledWindow *panel = new wxScrolledWindow(this, -1);
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
wxTextCtrl* m1 = new wxTextCtrl(panel, wxID_ANY, treść,
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY);
wxTextCtrl* m2 = new wxTextCtrl(panel, wxID_ANY, treść,
wxDefaultPosition, wxSize(-1, 300), wxTE_MULTILINE|wxTE_READONLY);
wxTextCtrl* m3 = new wxTextCtrl(panel, wxID_ANY, treść,
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY);
sizer->Add(m1, 0, wxALL|wxEXPAND, 8);
sizer->Add(m2, 0, wxALL|wxEXPAND, 8);
sizer->Add(m3, 0, wxALL|wxEXPAND, 10);
panel->SetSizer(sizer);
panel->FitInside();
panel->SetScrollRate(20, 15);
wxSize size = m3->GetBestVirtualSize();
m3->SetVirtualSize( size );
Centre();
}
};
class MyApp : public wxApp
{
public:
virtual bool OnInit();
};
bool MyApp::OnInit()
{
OknoG *okna = new OknoG();
okna->Show(true);
return true;
};
wxIMPLEMENT_APP(MyApp);
How show whole text similar a sms text in new cell phones. rectangles with text from top to bottom.
