wxUSE_LOG fixes and sizer adjustements related to positioning with/without LOG output.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -220,7 +220,9 @@ public:
|
|||||||
void OnDragMoveAllow(wxCommandEvent& event);
|
void OnDragMoveAllow(wxCommandEvent& event);
|
||||||
void OnNewFrame(wxCommandEvent& event);
|
void OnNewFrame(wxCommandEvent& event);
|
||||||
void OnHelp (wxCommandEvent& event);
|
void OnHelp (wxCommandEvent& event);
|
||||||
|
#if wxUSE_LOG
|
||||||
void OnLogClear(wxCommandEvent& event);
|
void OnLogClear(wxCommandEvent& event);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
void OnCopy(wxCommandEvent& event);
|
void OnCopy(wxCommandEvent& event);
|
||||||
void OnPaste(wxCommandEvent& event);
|
void OnPaste(wxCommandEvent& event);
|
||||||
@@ -248,10 +250,13 @@ private:
|
|||||||
// GUI controls
|
// GUI controls
|
||||||
wxListBox *m_ctrlFile,
|
wxListBox *m_ctrlFile,
|
||||||
*m_ctrlText;
|
*m_ctrlText;
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
wxTextCtrl *m_ctrlLog;
|
wxTextCtrl *m_ctrlLog;
|
||||||
|
|
||||||
wxLog *m_pLog,
|
wxLog *m_pLog,
|
||||||
*m_pLogPrev;
|
*m_pLogPrev;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// move the text by default (or copy)?
|
// move the text by default (or copy)?
|
||||||
bool m_moveByDefault;
|
bool m_moveByDefault;
|
||||||
@@ -821,7 +826,9 @@ BEGIN_EVENT_TABLE(DnDFrame, wxFrame)
|
|||||||
EVT_MENU(Menu_DragMoveAllow,DnDFrame::OnDragMoveAllow)
|
EVT_MENU(Menu_DragMoveAllow,DnDFrame::OnDragMoveAllow)
|
||||||
EVT_MENU(Menu_NewFrame, DnDFrame::OnNewFrame)
|
EVT_MENU(Menu_NewFrame, DnDFrame::OnNewFrame)
|
||||||
EVT_MENU(Menu_Help, DnDFrame::OnHelp)
|
EVT_MENU(Menu_Help, DnDFrame::OnHelp)
|
||||||
|
#if wxUSE_LOG
|
||||||
EVT_MENU(Menu_Clear, DnDFrame::OnLogClear)
|
EVT_MENU(Menu_Clear, DnDFrame::OnLogClear)
|
||||||
|
#endif // wxUSE_LOG
|
||||||
EVT_MENU(Menu_Copy, DnDFrame::OnCopy)
|
EVT_MENU(Menu_Copy, DnDFrame::OnCopy)
|
||||||
EVT_MENU(Menu_Paste, DnDFrame::OnPaste)
|
EVT_MENU(Menu_Paste, DnDFrame::OnPaste)
|
||||||
EVT_MENU(Menu_CopyBitmap, DnDFrame::OnCopyBitmap)
|
EVT_MENU(Menu_CopyBitmap, DnDFrame::OnCopyBitmap)
|
||||||
@@ -887,11 +894,13 @@ bool DnDApp::OnInit()
|
|||||||
{
|
{
|
||||||
#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD
|
#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD
|
||||||
// switch on trace messages
|
// switch on trace messages
|
||||||
|
#if wxUSE_LOG
|
||||||
#if defined(__WXGTK__)
|
#if defined(__WXGTK__)
|
||||||
wxLog::AddTraceMask(_T("clipboard"));
|
wxLog::AddTraceMask(_T("clipboard"));
|
||||||
#elif defined(__WXMSW__)
|
#elif defined(__WXMSW__)
|
||||||
wxLog::AddTraceMask(wxTRACE_OleCalls);
|
wxLog::AddTraceMask(wxTRACE_OleCalls);
|
||||||
#endif
|
#endif
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
#if wxUSE_LIBPNG
|
#if wxUSE_LIBPNG
|
||||||
wxImage::AddHandler( new wxPNGHandler );
|
wxImage::AddHandler( new wxPNGHandler );
|
||||||
@@ -942,8 +951,10 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h)
|
|||||||
file_menu->AppendSeparator();
|
file_menu->AppendSeparator();
|
||||||
file_menu->Append(Menu_Quit, _T("E&xit\tCtrl-Q"));
|
file_menu->Append(Menu_Quit, _T("E&xit\tCtrl-Q"));
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
wxMenu *log_menu = new wxMenu;
|
wxMenu *log_menu = new wxMenu;
|
||||||
log_menu->Append(Menu_Clear, _T("Clear\tCtrl-L"));
|
log_menu->Append(Menu_Clear, _T("Clear\tCtrl-L"));
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
wxMenu *help_menu = new wxMenu;
|
wxMenu *help_menu = new wxMenu;
|
||||||
help_menu->Append(Menu_Help, _T("&Help..."));
|
help_menu->Append(Menu_Help, _T("&Help..."));
|
||||||
@@ -965,7 +976,9 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h)
|
|||||||
|
|
||||||
wxMenuBar *menu_bar = new wxMenuBar;
|
wxMenuBar *menu_bar = new wxMenuBar;
|
||||||
menu_bar->Append(file_menu, _T("&File"));
|
menu_bar->Append(file_menu, _T("&File"));
|
||||||
|
#if wxUSE_LOG
|
||||||
menu_bar->Append(log_menu, _T("&Log"));
|
menu_bar->Append(log_menu, _T("&Log"));
|
||||||
|
#endif // wxUSE_LOG
|
||||||
menu_bar->Append(clip_menu, _T("&Clipboard"));
|
menu_bar->Append(clip_menu, _T("&Clipboard"));
|
||||||
menu_bar->Append(help_menu, _T("&Help"));
|
menu_bar->Append(help_menu, _T("&Help"));
|
||||||
|
|
||||||
@@ -979,6 +992,7 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h)
|
|||||||
m_ctrlText = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 1, &strText,
|
m_ctrlText = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 1, &strText,
|
||||||
wxLB_HSCROLL | wxLB_ALWAYS_SB );
|
wxLB_HSCROLL | wxLB_ALWAYS_SB );
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
m_ctrlLog = new wxTextCtrl(this, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize,
|
m_ctrlLog = new wxTextCtrl(this, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize,
|
||||||
wxTE_MULTILINE | wxTE_READONLY |
|
wxTE_MULTILINE | wxTE_READONLY |
|
||||||
wxSUNKEN_BORDER );
|
wxSUNKEN_BORDER );
|
||||||
@@ -986,12 +1000,15 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h)
|
|||||||
// redirect log messages to the text window
|
// redirect log messages to the text window
|
||||||
m_pLog = new wxLogTextCtrl(m_ctrlLog);
|
m_pLog = new wxLogTextCtrl(m_ctrlLog);
|
||||||
m_pLogPrev = wxLog::SetActiveTarget(m_pLog);
|
m_pLogPrev = wxLog::SetActiveTarget(m_pLog);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
#if wxUSE_DRAG_AND_DROP
|
#if wxUSE_DRAG_AND_DROP
|
||||||
// associate drop targets with the controls
|
// associate drop targets with the controls
|
||||||
m_ctrlFile->SetDropTarget(new DnDFile(m_ctrlFile));
|
m_ctrlFile->SetDropTarget(new DnDFile(m_ctrlFile));
|
||||||
m_ctrlText->SetDropTarget(new DnDText(m_ctrlText));
|
m_ctrlText->SetDropTarget(new DnDText(m_ctrlText));
|
||||||
|
#if wxUSE_LOG
|
||||||
m_ctrlLog->SetDropTarget(new URLDropTarget);
|
m_ctrlLog->SetDropTarget(new URLDropTarget);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
#endif // wxUSE_DRAG_AND_DROP
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
wxBoxSizer *m_sizer_top = new wxBoxSizer( wxHORIZONTAL );
|
wxBoxSizer *m_sizer_top = new wxBoxSizer( wxHORIZONTAL );
|
||||||
@@ -1000,7 +1017,10 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h)
|
|||||||
|
|
||||||
wxBoxSizer *m_sizer = new wxBoxSizer( wxVERTICAL );
|
wxBoxSizer *m_sizer = new wxBoxSizer( wxVERTICAL );
|
||||||
m_sizer->Add(m_sizer_top, 1, wxEXPAND );
|
m_sizer->Add(m_sizer_top, 1, wxEXPAND );
|
||||||
m_sizer->Add(m_ctrlLog, 1, wxEXPAND | wxBOTTOM, 50);
|
#if wxUSE_LOG
|
||||||
|
m_sizer->Add(m_ctrlLog, 1, wxEXPAND);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
m_sizer->Add(0,50);
|
||||||
|
|
||||||
SetSizer( m_sizer );
|
SetSizer( m_sizer );
|
||||||
m_sizer->SetSizeHints( this );
|
m_sizer->SetSizeHints( this );
|
||||||
@@ -1136,12 +1156,14 @@ void DnDFrame::OnHelp(wxCommandEvent& /* event */)
|
|||||||
dialog.ShowModal();
|
dialog.ShowModal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
void DnDFrame::OnLogClear(wxCommandEvent& /* event */ )
|
void DnDFrame::OnLogClear(wxCommandEvent& /* event */ )
|
||||||
{
|
{
|
||||||
m_ctrlLog->Clear();
|
m_ctrlLog->Clear();
|
||||||
m_ctrlText->Clear();
|
m_ctrlText->Clear();
|
||||||
m_ctrlFile->Clear();
|
m_ctrlFile->Clear();
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) )
|
void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
@@ -1201,10 +1223,12 @@ void DnDFrame::OnRightDown(wxMouseEvent &event )
|
|||||||
|
|
||||||
DnDFrame::~DnDFrame()
|
DnDFrame::~DnDFrame()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
if ( m_pLog != NULL ) {
|
if ( m_pLog != NULL ) {
|
||||||
if ( wxLog::SetActiveTarget(m_pLogPrev) == m_pLog )
|
if ( wxLog::SetActiveTarget(m_pLogPrev) == m_pLog )
|
||||||
delete m_pLog;
|
delete m_pLog;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -1639,8 +1663,7 @@ void DnDShapeDialog::OnColour(wxCommandEvent& WXUNUSED(event))
|
|||||||
DnDShapeFrame *DnDShapeFrame::ms_lastDropTarget = NULL;
|
DnDShapeFrame *DnDShapeFrame::ms_lastDropTarget = NULL;
|
||||||
|
|
||||||
DnDShapeFrame::DnDShapeFrame(wxFrame *parent)
|
DnDShapeFrame::DnDShapeFrame(wxFrame *parent)
|
||||||
: wxFrame(parent, wxID_ANY, _T("Shape Frame"),
|
: wxFrame(parent, wxID_ANY, _T("Shape Frame"))
|
||||||
wxDefaultPosition, wxSize(250, 150))
|
|
||||||
{
|
{
|
||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
CreateStatusBar();
|
CreateStatusBar();
|
||||||
|
@@ -30,6 +30,10 @@
|
|||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !wxUSE_LOG
|
||||||
|
# error You must set wxUSE_LOG to 1 in setup.h
|
||||||
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// private classes
|
// private classes
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -74,7 +74,9 @@ enum
|
|||||||
LboxTest_AddSeveral,
|
LboxTest_AddSeveral,
|
||||||
LboxTest_AddMany,
|
LboxTest_AddMany,
|
||||||
LboxTest_Clear,
|
LboxTest_Clear,
|
||||||
|
#if wxUSE_LOG
|
||||||
LboxTest_ClearLog,
|
LboxTest_ClearLog,
|
||||||
|
#endif // wxUSE_LOG
|
||||||
LboxTest_Change,
|
LboxTest_Change,
|
||||||
LboxTest_ChangeText,
|
LboxTest_ChangeText,
|
||||||
LboxTest_Delete,
|
LboxTest_Delete,
|
||||||
@@ -117,7 +119,9 @@ protected:
|
|||||||
void OnButtonDelete(wxCommandEvent& event);
|
void OnButtonDelete(wxCommandEvent& event);
|
||||||
void OnButtonDeleteSel(wxCommandEvent& event);
|
void OnButtonDeleteSel(wxCommandEvent& event);
|
||||||
void OnButtonClear(wxCommandEvent& event);
|
void OnButtonClear(wxCommandEvent& event);
|
||||||
|
#if wxUSE_LOG
|
||||||
void OnButtonClearLog(wxCommandEvent& event);
|
void OnButtonClearLog(wxCommandEvent& event);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
void OnButtonAdd(wxCommandEvent& event);
|
void OnButtonAdd(wxCommandEvent& event);
|
||||||
void OnButtonAddSeveral(wxCommandEvent& event);
|
void OnButtonAddSeveral(wxCommandEvent& event);
|
||||||
void OnButtonAddMany(wxCommandEvent& event);
|
void OnButtonAddMany(wxCommandEvent& event);
|
||||||
@@ -176,8 +180,10 @@ protected:
|
|||||||
wxListBox *m_lbox;
|
wxListBox *m_lbox;
|
||||||
wxSizer *m_sizerLbox;
|
wxSizer *m_sizerLbox;
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// the listbox for logging messages
|
// the listbox for logging messages
|
||||||
wxListBox *m_lboxLog;
|
wxListBox *m_lboxLog;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// the text entries for "Add/change string" and "Delete" buttons
|
// the text entries for "Add/change string" and "Delete" buttons
|
||||||
wxTextCtrl *m_textAdd,
|
wxTextCtrl *m_textAdd,
|
||||||
@@ -185,13 +191,16 @@ protected:
|
|||||||
*m_textDelete;
|
*m_textDelete;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#if wxUSE_LOG
|
||||||
// the log target we use to redirect messages to the listbox
|
// the log target we use to redirect messages to the listbox
|
||||||
wxLog *m_logTarget;
|
wxLog *m_logTarget;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// any class wishing to process wxWidgets events must use this macro
|
// any class wishing to process wxWidgets events must use this macro
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// A log target which just redirects the messages to a listbox
|
// A log target which just redirects the messages to a listbox
|
||||||
class LboxLogger : public wxLog
|
class LboxLogger : public wxLog
|
||||||
{
|
{
|
||||||
@@ -251,6 +260,7 @@ private:
|
|||||||
// the old log target
|
// the old log target
|
||||||
wxLog *m_logOld;
|
wxLog *m_logOld;
|
||||||
};
|
};
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// misc macros
|
// misc macros
|
||||||
@@ -269,7 +279,9 @@ BEGIN_EVENT_TABLE(LboxTestFrame, wxFrame)
|
|||||||
EVT_BUTTON(LboxTest_Delete, LboxTestFrame::OnButtonDelete)
|
EVT_BUTTON(LboxTest_Delete, LboxTestFrame::OnButtonDelete)
|
||||||
EVT_BUTTON(LboxTest_DeleteSel, LboxTestFrame::OnButtonDeleteSel)
|
EVT_BUTTON(LboxTest_DeleteSel, LboxTestFrame::OnButtonDeleteSel)
|
||||||
EVT_BUTTON(LboxTest_Clear, LboxTestFrame::OnButtonClear)
|
EVT_BUTTON(LboxTest_Clear, LboxTestFrame::OnButtonClear)
|
||||||
|
#if wxUSE_LOG
|
||||||
EVT_BUTTON(LboxTest_ClearLog, LboxTestFrame::OnButtonClearLog)
|
EVT_BUTTON(LboxTest_ClearLog, LboxTestFrame::OnButtonClearLog)
|
||||||
|
#endif // wxUSE_LOG
|
||||||
EVT_BUTTON(LboxTest_Add, LboxTestFrame::OnButtonAdd)
|
EVT_BUTTON(LboxTest_Add, LboxTestFrame::OnButtonAdd)
|
||||||
EVT_BUTTON(LboxTest_AddSeveral, LboxTestFrame::OnButtonAddSeveral)
|
EVT_BUTTON(LboxTest_AddSeveral, LboxTestFrame::OnButtonAddSeveral)
|
||||||
EVT_BUTTON(LboxTest_AddMany, LboxTestFrame::OnButtonAddMany)
|
EVT_BUTTON(LboxTest_AddMany, LboxTestFrame::OnButtonAddMany)
|
||||||
@@ -308,8 +320,10 @@ bool LboxTestApp::OnInit()
|
|||||||
wxFrame *frame = new LboxTestFrame(_T("wxListBox sample"));
|
wxFrame *frame = new LboxTestFrame(_T("wxListBox sample"));
|
||||||
frame->Show();
|
frame->Show();
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
//wxLog::AddTraceMask(_T("listbox"));
|
//wxLog::AddTraceMask(_T("listbox"));
|
||||||
wxLog::AddTraceMask(_T("scrollbar"));
|
wxLog::AddTraceMask(_T("scrollbar"));
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -329,11 +343,15 @@ LboxTestFrame::LboxTestFrame(const wxString& title)
|
|||||||
m_chkHScroll =
|
m_chkHScroll =
|
||||||
m_chkSort = (wxCheckBox *)NULL;
|
m_chkSort = (wxCheckBox *)NULL;
|
||||||
|
|
||||||
m_lbox =
|
m_lbox = (wxListBox *)NULL;
|
||||||
|
#if wxUSE_LOG
|
||||||
m_lboxLog = (wxListBox *)NULL;
|
m_lboxLog = (wxListBox *)NULL;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
m_sizerLbox = (wxSizer *)NULL;
|
m_sizerLbox = (wxSizer *)NULL;
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
m_logTarget = (wxLog *)NULL;
|
m_logTarget = (wxLog *)NULL;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
wxPanel *panel = new wxPanel(this, wxID_ANY);
|
wxPanel *panel = new wxPanel(this, wxID_ANY);
|
||||||
|
|
||||||
@@ -433,6 +451,7 @@ LboxTestFrame::LboxTestFrame(const wxString& title)
|
|||||||
sizerUp->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
|
sizerUp->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
|
||||||
|
|
||||||
// the lower one only has the log listbox and a button to clear it
|
// the lower one only has the log listbox and a button to clear it
|
||||||
|
#if wxUSE_LOG
|
||||||
wxSizer *sizerDown = new wxStaticBoxSizer
|
wxSizer *sizerDown = new wxStaticBoxSizer
|
||||||
(
|
(
|
||||||
new wxStaticBox(panel, wxID_ANY, _T("&Log window")),
|
new wxStaticBox(panel, wxID_ANY, _T("&Log window")),
|
||||||
@@ -440,10 +459,15 @@ LboxTestFrame::LboxTestFrame(const wxString& title)
|
|||||||
);
|
);
|
||||||
m_lboxLog = new wxListBox(panel, wxID_ANY);
|
m_lboxLog = new wxListBox(panel, wxID_ANY);
|
||||||
sizerDown->Add(m_lboxLog, 1, wxGROW | wxALL, 5);
|
sizerDown->Add(m_lboxLog, 1, wxGROW | wxALL, 5);
|
||||||
|
#else
|
||||||
|
wxSizer *sizerDown = new wxBoxSizer(wxVERTICAL);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
#if wxUSE_LOG
|
||||||
btn = new wxButton(panel, LboxTest_ClearLog, _T("Clear &log"));
|
btn = new wxButton(panel, LboxTest_ClearLog, _T("Clear &log"));
|
||||||
sizerBtns->Add(btn);
|
sizerBtns->Add(btn);
|
||||||
sizerBtns->Add(10, 0); // spacer
|
sizerBtns->Add(10, 0); // spacer
|
||||||
|
#endif // wxUSE_LOG
|
||||||
btn = new wxButton(panel, LboxTest_Quit, _T("E&xit"));
|
btn = new wxButton(panel, LboxTest_Quit, _T("E&xit"));
|
||||||
sizerBtns->Add(btn);
|
sizerBtns->Add(btn);
|
||||||
sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5);
|
sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5);
|
||||||
@@ -462,15 +486,19 @@ LboxTestFrame::LboxTestFrame(const wxString& title)
|
|||||||
sizerTop->Fit(this);
|
sizerTop->Fit(this);
|
||||||
sizerTop->SetSizeHints(this);
|
sizerTop->SetSizeHints(this);
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// now that everything is created we can redirect the log messages to the
|
// now that everything is created we can redirect the log messages to the
|
||||||
// listbox
|
// listbox
|
||||||
m_logTarget = new LboxLogger(m_lboxLog, wxLog::GetActiveTarget());
|
m_logTarget = new LboxLogger(m_lboxLog, wxLog::GetActiveTarget());
|
||||||
wxLog::SetActiveTarget(m_logTarget);
|
wxLog::SetActiveTarget(m_logTarget);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
LboxTestFrame::~LboxTestFrame()
|
LboxTestFrame::~LboxTestFrame()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
delete m_logTarget;
|
delete m_logTarget;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -597,10 +625,12 @@ void LboxTestFrame::OnButtonClear(wxCommandEvent& WXUNUSED(event))
|
|||||||
m_lbox->Clear();
|
m_lbox->Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
void LboxTestFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
|
void LboxTestFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_lboxLog->Clear();
|
m_lboxLog->Clear();
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
void LboxTestFrame::OnButtonAdd(wxCommandEvent& WXUNUSED(event))
|
void LboxTestFrame::OnButtonAdd(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
@@ -115,7 +115,9 @@ public:
|
|||||||
void OnFullScreen( wxCommandEvent &event );
|
void OnFullScreen( wxCommandEvent &event );
|
||||||
|
|
||||||
wxScrolledWindow *m_scrolled;
|
wxScrolledWindow *m_scrolled;
|
||||||
|
#if wxUSE_LOG
|
||||||
wxTextCtrl *m_log;
|
wxTextCtrl *m_log;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(MyFrame)
|
DECLARE_DYNAMIC_CLASS(MyFrame)
|
||||||
@@ -400,13 +402,17 @@ MyFrame::MyFrame()
|
|||||||
m_scrolled = new MyScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxSize(100,100) );
|
m_scrolled = new MyScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxSize(100,100) );
|
||||||
m_scrolled->SetScrollbars( 10, 10, 50, 50 );
|
m_scrolled->SetScrollbars( 10, 10, 50, 50 );
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
m_log = new wxTextCtrl( this, wxID_ANY, _T("This is the log window.\n"), wxPoint(0,0), wxSize(100,100), wxTE_MULTILINE );
|
m_log = new wxTextCtrl( this, wxID_ANY, _T("This is the log window.\n"), wxPoint(0,0), wxSize(100,100), wxTE_MULTILINE );
|
||||||
wxLog *old_log = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) );
|
wxLog *old_log = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) );
|
||||||
delete old_log;
|
delete old_log;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
|
wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
|
||||||
topsizer->Add( m_scrolled, 1, wxEXPAND );
|
topsizer->Add( m_scrolled, 1, wxEXPAND );
|
||||||
|
#if wxUSE_LOG
|
||||||
topsizer->Add( m_log, 0, wxEXPAND );
|
topsizer->Add( m_log, 0, wxEXPAND );
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
SetAutoLayout( true );
|
SetAutoLayout( true );
|
||||||
SetSizer( topsizer );
|
SetSizer( topsizer );
|
||||||
|
@@ -97,7 +97,12 @@ class MyPanel: public wxPanel
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MyPanel(wxFrame *frame, int x, int y, int w, int h);
|
MyPanel(wxFrame *frame, int x, int y, int w, int h);
|
||||||
virtual ~MyPanel() { delete wxLog::SetActiveTarget(m_logOld); }
|
virtual ~MyPanel()
|
||||||
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
|
delete wxLog::SetActiveTarget(m_logOld);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_CLIPBOARD
|
#if wxUSE_CLIPBOARD
|
||||||
void DoPasteFromClipboard();
|
void DoPasteFromClipboard();
|
||||||
@@ -124,9 +129,10 @@ public:
|
|||||||
|
|
||||||
MyTextCtrl *m_textrich;
|
MyTextCtrl *m_textrich;
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
wxTextCtrl *m_log;
|
wxTextCtrl *m_log;
|
||||||
|
|
||||||
wxLog *m_logOld;
|
wxLog *m_logOld;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// get the currently focused text control or return the default one is no
|
// get the currently focused text control or return the default one is no
|
||||||
@@ -195,7 +201,9 @@ public:
|
|||||||
wxLogMessage(_T("Already at the top"));
|
wxLogMessage(_T("Already at the top"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
void OnLogClear(wxCommandEvent& event);
|
void OnLogClear(wxCommandEvent& event);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
void OnFileSave(wxCommandEvent& event);
|
void OnFileSave(wxCommandEvent& event);
|
||||||
void OnFileLoad(wxCommandEvent& event);
|
void OnFileLoad(wxCommandEvent& event);
|
||||||
void OnRichTextTest(wxCommandEvent& event);
|
void OnRichTextTest(wxCommandEvent& event);
|
||||||
@@ -405,6 +413,7 @@ bool MyApp::OnInit()
|
|||||||
menuText->Append(TEXT_PAGE_DOWN, _T("Scroll text one page up"));
|
menuText->Append(TEXT_PAGE_DOWN, _T("Scroll text one page up"));
|
||||||
menu_bar->Append(menuText, _T("Te&xt"));
|
menu_bar->Append(menuText, _T("Te&xt"));
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
wxMenu *menuLog = new wxMenu;
|
wxMenu *menuLog = new wxMenu;
|
||||||
menuLog->AppendCheckItem(TEXT_LOG_KEY, _T("Log &key events"));
|
menuLog->AppendCheckItem(TEXT_LOG_KEY, _T("Log &key events"));
|
||||||
menuLog->AppendCheckItem(TEXT_LOG_CHAR, _T("Log &char events"));
|
menuLog->AppendCheckItem(TEXT_LOG_CHAR, _T("Log &char events"));
|
||||||
@@ -423,7 +432,9 @@ bool MyApp::OnInit()
|
|||||||
MyTextCtrl::ms_logKey =
|
MyTextCtrl::ms_logKey =
|
||||||
MyTextCtrl::ms_logChar =
|
MyTextCtrl::ms_logChar =
|
||||||
MyTextCtrl::ms_logText = true;
|
MyTextCtrl::ms_logText = true;
|
||||||
|
|
||||||
menu_bar->Append(menuLog, _T("&Log"));
|
menu_bar->Append(menuLog, _T("&Log"));
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
frame->SetMenuBar(menu_bar);
|
frame->SetMenuBar(menu_bar);
|
||||||
|
|
||||||
@@ -840,16 +851,18 @@ END_EVENT_TABLE()
|
|||||||
MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
|
MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
|
||||||
: wxPanel( frame, wxID_ANY, wxPoint(x, y), wxSize(w, h) )
|
: wxPanel( frame, wxID_ANY, wxPoint(x, y), wxSize(w, h) )
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
m_log = new wxTextCtrl( this, wxID_ANY, _T("This is the log window.\n"),
|
m_log = new wxTextCtrl( this, wxID_ANY, _T("This is the log window.\n"),
|
||||||
wxPoint(5,260), wxSize(630,100),
|
wxPoint(5,260), wxSize(630,100),
|
||||||
wxTE_MULTILINE | wxTE_READONLY /* | wxTE_RICH */);
|
wxTE_MULTILINE | wxTE_READONLY /* | wxTE_RICH */);
|
||||||
|
|
||||||
m_logOld = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) );
|
m_logOld = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) );
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// single line text controls
|
// single line text controls
|
||||||
|
|
||||||
m_text = new MyTextCtrl( this, wxID_ANY, _T("Single line."),
|
m_text = new MyTextCtrl( this, wxID_ANY, _T("Single line."),
|
||||||
wxPoint(10,10), wxSize(140,wxDefaultCoord),
|
wxDefaultPosition, wxDefaultSize,
|
||||||
wxTE_PROCESS_ENTER);
|
wxTE_PROCESS_ENTER);
|
||||||
m_text->SetForegroundColour(*wxBLUE);
|
m_text->SetForegroundColour(*wxBLUE);
|
||||||
m_text->SetBackgroundColour(*wxLIGHT_GREY);
|
m_text->SetBackgroundColour(*wxLIGHT_GREY);
|
||||||
@@ -949,13 +962,47 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
|
|||||||
m_textrich->SetDefaultStyle(wxTextAttr(*wxBLUE, *wxWHITE));
|
m_textrich->SetDefaultStyle(wxTextAttr(*wxBLUE, *wxWHITE));
|
||||||
m_textrich->AppendText(_T("And this should be in blue and the text you ")
|
m_textrich->AppendText(_T("And this should be in blue and the text you ")
|
||||||
_T("type should be in blue as well"));
|
_T("type should be in blue as well"));
|
||||||
|
|
||||||
|
wxBoxSizer *column1 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
column1->Add( m_text, 0, wxALL, 10 );
|
||||||
|
column1->Add( m_password, 0, wxALL, 10 );
|
||||||
|
column1->Add( m_readonly, 0, wxALL, 10 );
|
||||||
|
column1->Add( m_limited, 0, wxALL, 10 );
|
||||||
|
column1->Add( m_horizontal, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
|
||||||
|
wxBoxSizer *column2 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
column2->Add( m_multitext, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
column2->Add( m_tab, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
column2->Add( m_enter, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
|
||||||
|
wxBoxSizer *column3 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
column3->Add( m_textrich, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
|
||||||
|
wxBoxSizer *row1 = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
row1->Add( column1, 0, wxALL | wxEXPAND, 10 );
|
||||||
|
row1->Add( column2, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
row1->Add( column3, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
|
||||||
|
wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
topSizer->Add( row1, 2, wxALL | wxEXPAND, 10 );
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
|
wxBoxSizer *row2 = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
row2->Add( m_log, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
topSizer->Add( row2, 1, wxALL | wxEXPAND, 10 );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SetAutoLayout( true );
|
||||||
|
SetSizer(topSizer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyPanel::OnSize( wxSizeEvent &event )
|
void MyPanel::OnSize( wxSizeEvent &event )
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
wxSize client_area( GetClientSize() );
|
wxSize client_area( GetClientSize() );
|
||||||
if (m_log)
|
if (m_log)
|
||||||
m_log->SetSize( 0, 260, client_area.x, client_area.y - 260 );
|
m_log->SetSize( 0, 260, client_area.x, client_area.y - 260 );
|
||||||
|
#endif // wxUSE_LOG
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -977,38 +1024,52 @@ void MyPanel::DoPasteFromClipboard()
|
|||||||
|
|
||||||
if (!wxTheClipboard->Open())
|
if (!wxTheClipboard->Open())
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Error opening the clipboard.\n");
|
*m_log << _T("Error opening the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Successfully opened the clipboard.\n");
|
*m_log << _T("Successfully opened the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextDataObject data;
|
wxTextDataObject data;
|
||||||
|
|
||||||
if (wxTheClipboard->IsSupported( data.GetFormat() ))
|
if (wxTheClipboard->IsSupported( data.GetFormat() ))
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Clipboard supports requested format.\n");
|
*m_log << _T("Clipboard supports requested format.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
if (wxTheClipboard->GetData( data ))
|
if (wxTheClipboard->GetData( data ))
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Successfully retrieved data from the clipboard.\n");
|
*m_log << _T("Successfully retrieved data from the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
*m_multitext << data.GetText() << _T("\n");
|
*m_multitext << data.GetText() << _T("\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Error getting data from the clipboard.\n");
|
*m_log << _T("Error getting data from the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Clipboard doesn't support requested format.\n");
|
*m_log << _T("Clipboard doesn't support requested format.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTheClipboard->Close();
|
wxTheClipboard->Close();
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Closed the clipboard.\n");
|
*m_log << _T("Closed the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyPanel::DoCopyToClipboard()
|
void MyPanel::DoCopyToClipboard()
|
||||||
@@ -1022,36 +1083,48 @@ void MyPanel::DoCopyToClipboard()
|
|||||||
|
|
||||||
if (text.IsEmpty())
|
if (text.IsEmpty())
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("No text to copy.\n");
|
*m_log << _T("No text to copy.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!wxTheClipboard->Open())
|
if (!wxTheClipboard->Open())
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Error opening the clipboard.\n");
|
*m_log << _T("Error opening the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Successfully opened the clipboard.\n");
|
*m_log << _T("Successfully opened the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextDataObject *data = new wxTextDataObject( text );
|
wxTextDataObject *data = new wxTextDataObject( text );
|
||||||
|
|
||||||
if (!wxTheClipboard->SetData( data ))
|
if (!wxTheClipboard->SetData( data ))
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Error while copying to the clipboard.\n");
|
*m_log << _T("Error while copying to the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Successfully copied data to the clipboard.\n");
|
*m_log << _T("Successfully copied data to the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTheClipboard->Close();
|
wxTheClipboard->Close();
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
*m_log << _T("Closed the clipboard.\n");
|
*m_log << _T("Closed the clipboard.\n");
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_CLIPBOARD
|
#endif // wxUSE_CLIPBOARD
|
||||||
@@ -1099,7 +1172,9 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(TEXT_LOG_MOUSE,MyFrame::OnLogMouse)
|
EVT_MENU(TEXT_LOG_MOUSE,MyFrame::OnLogMouse)
|
||||||
EVT_MENU(TEXT_LOG_TEXT, MyFrame::OnLogText)
|
EVT_MENU(TEXT_LOG_TEXT, MyFrame::OnLogText)
|
||||||
EVT_MENU(TEXT_LOG_FOCUS,MyFrame::OnLogFocus)
|
EVT_MENU(TEXT_LOG_FOCUS,MyFrame::OnLogFocus)
|
||||||
|
#if wxUSE_LOG
|
||||||
EVT_MENU(TEXT_CLEAR, MyFrame::OnLogClear)
|
EVT_MENU(TEXT_CLEAR, MyFrame::OnLogClear)
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
EVT_MENU(TEXT_TOOLTIPS_SETDELAY, MyFrame::OnSetTooltipDelay)
|
EVT_MENU(TEXT_TOOLTIPS_SETDELAY, MyFrame::OnSetTooltipDelay)
|
||||||
@@ -1200,10 +1275,12 @@ void MyFrame::OnToggleTooltips(wxCommandEvent& WXUNUSED(event))
|
|||||||
}
|
}
|
||||||
#endif // tooltips
|
#endif // tooltips
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
void MyFrame::OnLogClear(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnLogClear(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_panel->m_log->Clear();
|
m_panel->m_log->Clear();
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
void MyFrame::OnSetEditable(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnSetEditable(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
@@ -165,7 +165,10 @@ bool MyApp::OnInit()
|
|||||||
// My frame constructor
|
// My frame constructor
|
||||||
MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
|
MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
|
||||||
: wxFrame((wxFrame *)NULL, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)),
|
: wxFrame((wxFrame *)NULL, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)),
|
||||||
m_treeCtrl(NULL), m_textCtrl(NULL)
|
m_treeCtrl(NULL)
|
||||||
|
#if wxUSE_LOG
|
||||||
|
, m_textCtrl(NULL)
|
||||||
|
#endif // wxUSE_LOG
|
||||||
{
|
{
|
||||||
// This reduces flicker effects - even better would be to define
|
// This reduces flicker effects - even better would be to define
|
||||||
// OnEraseBackground to do nothing. When the tree control's scrollbars are
|
// OnEraseBackground to do nothing. When the tree control's scrollbars are
|
||||||
@@ -255,10 +258,12 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
|
|||||||
SetMenuBar(menu_bar);
|
SetMenuBar(menu_bar);
|
||||||
#endif // wxUSE_MENUS
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// create the controls
|
// create the controls
|
||||||
m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxT(""),
|
m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxT(""),
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
wxTE_MULTILINE | wxSUNKEN_BORDER);
|
wxTE_MULTILINE | wxSUNKEN_BORDER);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
CreateTreeWithDefStyle();
|
CreateTreeWithDefStyle();
|
||||||
|
|
||||||
@@ -269,6 +274,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
|
|||||||
CreateStatusBar(2);
|
CreateStatusBar(2);
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
#ifdef __WXMOTIF__
|
#ifdef __WXMOTIF__
|
||||||
// For some reason, we get a memcpy crash in wxLogStream::DoLogStream
|
// For some reason, we get a memcpy crash in wxLogStream::DoLogStream
|
||||||
// on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc?
|
// on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc?
|
||||||
@@ -278,11 +284,14 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
|
|||||||
wxLogTextCtrl *logWindow = new wxLogTextCtrl(m_textCtrl);
|
wxLogTextCtrl *logWindow = new wxLogTextCtrl(m_textCtrl);
|
||||||
delete wxLog::SetActiveTarget(logWindow);
|
delete wxLog::SetActiveTarget(logWindow);
|
||||||
#endif
|
#endif
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
MyFrame::~MyFrame()
|
MyFrame::~MyFrame()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
delete wxLog::SetActiveTarget(NULL);
|
delete wxLog::SetActiveTarget(NULL);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyFrame::CreateTreeWithDefStyle()
|
void MyFrame::CreateTreeWithDefStyle()
|
||||||
@@ -354,7 +363,11 @@ void MyFrame::OnIdle(wxIdleEvent& event)
|
|||||||
|
|
||||||
void MyFrame::OnSize(wxSizeEvent& event)
|
void MyFrame::OnSize(wxSizeEvent& event)
|
||||||
{
|
{
|
||||||
if ( m_treeCtrl && m_textCtrl )
|
if ( m_treeCtrl
|
||||||
|
#if wxUSE_LOG
|
||||||
|
&& m_textCtrl
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
)
|
||||||
{
|
{
|
||||||
Resize();
|
Resize();
|
||||||
}
|
}
|
||||||
@@ -365,8 +378,13 @@ void MyFrame::OnSize(wxSizeEvent& event)
|
|||||||
void MyFrame::Resize()
|
void MyFrame::Resize()
|
||||||
{
|
{
|
||||||
wxSize size = GetClientSize();
|
wxSize size = GetClientSize();
|
||||||
m_treeCtrl->SetSize(0, 0, size.x, 2*size.y/3);
|
m_treeCtrl->SetSize(0, 0, size.x, size.y
|
||||||
|
#if !wxUSE_LOG
|
||||||
|
);
|
||||||
|
#else
|
||||||
|
*2/3);
|
||||||
m_textCtrl->SetSize(0, 2*size.y/3, size.x, size.y/3);
|
m_textCtrl->SetSize(0, 2*size.y/3, size.x, size.y/3);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
||||||
|
@@ -227,7 +227,9 @@ private:
|
|||||||
void CreateTree(long style);
|
void CreateTree(long style);
|
||||||
|
|
||||||
MyTreeCtrl *m_treeCtrl;
|
MyTreeCtrl *m_treeCtrl;
|
||||||
|
#if wxUSE_LOG
|
||||||
wxTextCtrl *m_textCtrl;
|
wxTextCtrl *m_textCtrl;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
void DoSetBold(bool bold = true);
|
void DoSetBold(bool bold = true);
|
||||||
|
|
||||||
|
@@ -80,7 +80,9 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
// event handlers
|
// event handlers
|
||||||
|
#if wxUSE_LOG
|
||||||
void OnButtonClearLog(wxCommandEvent& event);
|
void OnButtonClearLog(wxCommandEvent& event);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
void OnButtonQuit(wxCommandEvent& event);
|
void OnButtonQuit(wxCommandEvent& event);
|
||||||
|
|
||||||
// initialize the notebook: add all pages to it
|
// initialize the notebook: add all pages to it
|
||||||
@@ -90,11 +92,13 @@ private:
|
|||||||
// the panel containing everything
|
// the panel containing everything
|
||||||
wxPanel *m_panel;
|
wxPanel *m_panel;
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// the listbox for logging messages
|
// the listbox for logging messages
|
||||||
wxListBox *m_lboxLog;
|
wxListBox *m_lboxLog;
|
||||||
|
|
||||||
// the log target we use to redirect messages to the listbox
|
// the log target we use to redirect messages to the listbox
|
||||||
wxLog *m_logTarget;
|
wxLog *m_logTarget;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// the notebook containing the test pages
|
// the notebook containing the test pages
|
||||||
wxNotebook *m_notebook;
|
wxNotebook *m_notebook;
|
||||||
@@ -106,6 +110,7 @@ private:
|
|||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
// A log target which just redirects the messages to a listbox
|
// A log target which just redirects the messages to a listbox
|
||||||
class LboxLogger : public wxLog
|
class LboxLogger : public wxLog
|
||||||
{
|
{
|
||||||
@@ -162,6 +167,7 @@ private:
|
|||||||
// the old log target
|
// the old log target
|
||||||
wxLog *m_logOld;
|
wxLog *m_logOld;
|
||||||
};
|
};
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// array of pages
|
// array of pages
|
||||||
WX_DEFINE_ARRAY_PTR(WidgetsPage *, ArrayWidgetsPage);
|
WX_DEFINE_ARRAY_PTR(WidgetsPage *, ArrayWidgetsPage);
|
||||||
@@ -177,7 +183,9 @@ IMPLEMENT_APP(WidgetsApp)
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
|
BEGIN_EVENT_TABLE(WidgetsFrame, wxFrame)
|
||||||
|
#if wxUSE_LOG
|
||||||
EVT_BUTTON(Widgets_ClearLog, WidgetsFrame::OnButtonClearLog)
|
EVT_BUTTON(Widgets_ClearLog, WidgetsFrame::OnButtonClearLog)
|
||||||
|
#endif // wxUSE_LOG
|
||||||
EVT_BUTTON(Widgets_Quit, WidgetsFrame::OnButtonQuit)
|
EVT_BUTTON(Widgets_Quit, WidgetsFrame::OnButtonQuit)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
@@ -236,8 +244,10 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
|
|||||||
wxTAB_TRAVERSAL)
|
wxTAB_TRAVERSAL)
|
||||||
{
|
{
|
||||||
// init everything
|
// init everything
|
||||||
|
#if wxUSE_LOG
|
||||||
m_lboxLog = (wxListBox *)NULL;
|
m_lboxLog = (wxListBox *)NULL;
|
||||||
m_logTarget = (wxLog *)NULL;
|
m_logTarget = (wxLog *)NULL;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
m_notebook = (wxNotebook *)NULL;
|
m_notebook = (wxNotebook *)NULL;
|
||||||
m_imaglist = (wxImageList *)NULL;
|
m_imaglist = (wxImageList *)NULL;
|
||||||
|
|
||||||
@@ -255,6 +265,7 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
|
|||||||
InitNotebook();
|
InitNotebook();
|
||||||
|
|
||||||
// the lower one only has the log listbox and a button to clear it
|
// the lower one only has the log listbox and a button to clear it
|
||||||
|
#if wxUSE_LOG
|
||||||
wxSizer *sizerDown = new wxStaticBoxSizer(
|
wxSizer *sizerDown = new wxStaticBoxSizer(
|
||||||
new wxStaticBox( m_panel, wxID_ANY, _T("&Log window") ),
|
new wxStaticBox( m_panel, wxID_ANY, _T("&Log window") ),
|
||||||
wxVERTICAL);
|
wxVERTICAL);
|
||||||
@@ -262,11 +273,17 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
|
|||||||
m_lboxLog = new wxListBox(m_panel, wxID_ANY);
|
m_lboxLog = new wxListBox(m_panel, wxID_ANY);
|
||||||
sizerDown->Add(m_lboxLog, 1, wxGROW | wxALL, 5);
|
sizerDown->Add(m_lboxLog, 1, wxGROW | wxALL, 5);
|
||||||
sizerDown->SetMinSize(100, 150);
|
sizerDown->SetMinSize(100, 150);
|
||||||
|
#else
|
||||||
|
wxSizer *sizerDown = new wxBoxSizer(wxVERTICAL);
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer *sizerBtns = new wxBoxSizer(wxHORIZONTAL);
|
||||||
wxButton *btn = new wxButton(m_panel, Widgets_ClearLog, _T("Clear &log"));
|
wxButton *btn;
|
||||||
|
#if wxUSE_LOG
|
||||||
|
btn = new wxButton(m_panel, Widgets_ClearLog, _T("Clear &log"));
|
||||||
sizerBtns->Add(btn);
|
sizerBtns->Add(btn);
|
||||||
sizerBtns->Add(10, 0); // spacer
|
sizerBtns->Add(10, 0); // spacer
|
||||||
|
#endif // wxUSE_LOG
|
||||||
btn = new wxButton(m_panel, Widgets_Quit, _T("E&xit"));
|
btn = new wxButton(m_panel, Widgets_Quit, _T("E&xit"));
|
||||||
sizerBtns->Add(btn);
|
sizerBtns->Add(btn);
|
||||||
sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5);
|
sizerDown->Add(sizerBtns, 0, wxALL | wxALIGN_RIGHT, 5);
|
||||||
@@ -281,13 +298,13 @@ WidgetsFrame::WidgetsFrame(const wxString& title)
|
|||||||
sizerTop->Fit(this);
|
sizerTop->Fit(this);
|
||||||
sizerTop->SetSizeHints(this);
|
sizerTop->SetSizeHints(this);
|
||||||
|
|
||||||
|
#if wxUSE_LOG && !defined(__WXCOCOA__)
|
||||||
// wxCocoa's listbox is too flakey to use for logging right now
|
// wxCocoa's listbox is too flakey to use for logging right now
|
||||||
#if !defined(__WXCOCOA__)
|
|
||||||
// now that everything is created we can redirect the log messages to the
|
// now that everything is created we can redirect the log messages to the
|
||||||
// listbox
|
// listbox
|
||||||
m_logTarget = new LboxLogger(m_lboxLog, wxLog::GetActiveTarget());
|
m_logTarget = new LboxLogger(m_lboxLog, wxLog::GetActiveTarget());
|
||||||
wxLog::SetActiveTarget(m_logTarget);
|
wxLog::SetActiveTarget(m_logTarget);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void WidgetsFrame::InitNotebook()
|
void WidgetsFrame::InitNotebook()
|
||||||
@@ -327,7 +344,9 @@ void WidgetsFrame::InitNotebook()
|
|||||||
|
|
||||||
WidgetsFrame::~WidgetsFrame()
|
WidgetsFrame::~WidgetsFrame()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_LOG
|
||||||
delete m_logTarget;
|
delete m_logTarget;
|
||||||
|
#endif // wxUSE_LOG
|
||||||
delete m_imaglist;
|
delete m_imaglist;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -340,10 +359,12 @@ void WidgetsFrame::OnButtonQuit(wxCommandEvent& WXUNUSED(event))
|
|||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
|
void WidgetsFrame::OnButtonClearLog(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_lboxLog->Clear();
|
m_lboxLog->Clear();
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// WidgetsPageInfo
|
// WidgetsPageInfo
|
||||||
|
Reference in New Issue
Block a user