local wx = require("wx") local wxstc = require("wxstc") local frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, "wxStyledTextCtrl", wx.wxDefaultPosition, wx.wxSize(400, 300)) local styledTextCtrl = wxstc.wxStyledTextCtrl(frame, wx.wxID_ANY, wx.wxDefaultPosition, wx.wxSize(400, 200)) styledTextCtrl:SetWrapMode(wxstc.wxSTC_WRAP_WORD) local MainSizer = wx.wxBoxSizer(wx.wxVERTICAL) MainSizer:Add(styledTextCtrl,1,wx.wxEXPAND) local hSizer = wx.wxBoxSizer(wx.wxHORIZONTAL) MainSizer:Add(hSizer) PrintButton = wx.wxButton(frame, wx.wxID_ANY, "Add text chunk", wx.wxDefaultPosition, wx.wxDefaultSize, 0, wx.wxDefaultValidator) hSizer:Add(PrintButton) -- Button callback to add lot of text and make sure the caret is visible in the end PrintButton:Connect(wx.wxEVT_COMMAND_BUTTON_CLICKED,function(event) x = "" for i = 1,100 do x = x..string.rep("This sentence number is "..i,10).."\n" end styledTextCtrl:AppendText(x) styledTextCtrl:SetSelection(-1,-1) styledTextCtrl:GotoPos(#styledTextCtrl:GetText()) styledTextCtrl:EnsureCaretVisible() end) frame:SetSizer(MainSizer) MainSizer:SetSizeHints(frame) frame:SetSize(wx.wxSize(700,700)) frame:Layout() frame:Show(true) wx.wxGetApp():MainLoop()