Skip to content

WxLogTextCtrl

wxLogMessage등의 로그 메시지를 Text Widget에 출력한다.

How to use

wxLogTextCtrl자체로 출력할 수 있는 기능은 없다. 따라서 생성자에 wxTextCtrl의 포인터를 넘겨줘야 한다. 이후 wxLog::SetActiveTarget() 정적 메서드를 사용하여 wxLogTextCtrl를 등록하면 된다.

Simple example

LogMessagePanel::LogMessagePanel(wxWindow * parent
        , wxWindowID id, wxPoint const & pos, wxSize const & size)
        : wxPanel(parent, id, pos, size)
{
    int const kHeight = 150;
    int const kProportion = 1;
    int const kBorder = 5;

    _log_text = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition,
                wxSize(-1, kHeight), wxTE_MULTILINE | wxTE_READONLY);
    _log_ctrl = new wxLogTextCtrl(_log_text);
    wxLog::SetActiveTarget(_log_ctrl);

    wxBoxSizer * vbox = new wxBoxSizer(wxVERTICAL);
    vbox->Add(_log_text, kProportion, wxEXPAND | wxTOP | wxBOTTOM, kBorder);
    SetSizer(vbox);
}