#include "wx/datetime.h"
#include "wx/splitter.h"
#include "wx/aboutdlg.h"
+#include "wx/colordlg.h"
#include "wx/choicdlg.h"
#include "wx/numdlg.h"
#include "wx/spinctrl.h"
public: // event handlers
void OnStyleChange(wxCommandEvent& event);
+ void OnSetBackgroundColour(wxCommandEvent& event);
+ void OnSetForegroundColour(wxCommandEvent& event);
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
enum
{
ID_CLEARLOG = wxID_HIGHEST+1,
+ ID_BACKGROUND_COLOUR,
+ ID_FOREGROUND_COLOUR,
ID_STYLE_MENU,
// file menu
EVT_MENU( ID_ABOUT, MyFrame::OnAbout )
EVT_MENU( ID_CLEARLOG, MyFrame::OnClearLog )
+ EVT_MENU( ID_FOREGROUND_COLOUR, MyFrame::OnSetForegroundColour )
+ EVT_MENU( ID_BACKGROUND_COLOUR, MyFrame::OnSetBackgroundColour )
+
EVT_NOTEBOOK_PAGE_CHANGED( wxID_ANY, MyFrame::OnPageChanged )
EVT_BUTTON( ID_ADD_MOZART, MyFrame::OnAddMozart )
style_menu->AppendCheckItem(ID_VERT_RULES, "Display vertical rules");
wxMenu *file_menu = new wxMenu;
- file_menu->Append(ID_CLEARLOG, "Clear log");
+ file_menu->Append(ID_CLEARLOG, "&Clear log\tCtrl-L");
+ file_menu->Append(ID_FOREGROUND_COLOUR, "Set &foreground colour...\tCtrl-F");
+ file_menu->Append(ID_BACKGROUND_COLOUR, "Set &background colour...\tCtrl-B");
file_menu->Append(ID_STYLE_MENU, "&Style", style_menu);
file_menu->AppendSeparator();
file_menu->Append(ID_EXIT, "E&xit");
m_log->Clear();
}
+void MyFrame::OnSetForegroundColour(wxCommandEvent& WXUNUSED(event))
+{
+ wxDataViewCtrl * const dvc = m_ctrl[m_notebook->GetSelection()];
+ wxColour col = wxGetColourFromUser(this, dvc->GetForegroundColour());
+ if ( col.IsOk() )
+ {
+ dvc->SetForegroundColour(col);
+ Refresh();
+ }
+}
+
+void MyFrame::OnSetBackgroundColour(wxCommandEvent& WXUNUSED(event))
+{
+ wxDataViewCtrl * const dvc = m_ctrl[m_notebook->GetSelection()];
+ wxColour col = wxGetColourFromUser(this, dvc->GetBackgroundColour());
+ if ( col.IsOk() )
+ {
+ dvc->SetBackgroundColour(col);
+ Refresh();
+ }
+}
+
void MyFrame::OnPageChanged( wxBookCtrlEvent& WXUNUSED(event) )
{
unsigned int nPanel = m_notebook->GetSelection();
wxAutoBufferedPaintDC dc( this );
#ifdef __WXMSW__
+ dc.SetBrush(GetOwner()->GetBackgroundColour());
dc.SetPen( *wxTRANSPARENT_PEN );
- dc.SetBrush( wxBrush( GetBackgroundColour()) );
- dc.SetBrush( *wxWHITE_BRUSH );
- wxSize size( GetClientSize() );
- dc.DrawRectangle( 0,0,size.x,size.y );
+ dc.DrawRectangle(GetClientSize());
#endif
// prepare the DC