]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't hard code white background colour in generic wxDataViewCtrl.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 26 Sep 2009 16:43:19 +0000 (16:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 26 Sep 2009 16:43:19 +0000 (16:43 +0000)
wxDataViewMainWindow::OnPaint() always used the white brush to erase the
control background which was wrong, change it to use the background colour of
the control.

Also add tests for setting wxDataViewCtrl foreground and background colours to
the dataview sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/dataview/dataview.cpp
src/generic/datavgen.cpp

index 692d94eb2de8e1e85478f5bd0ffd64151e440a0a..8ebc6a8044003bf2fb92aeccef550935868e903d 100644 (file)
@@ -28,6 +28,7 @@
 #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"
@@ -73,6 +74,8 @@ public:
 public:     // event handlers
 
     void OnStyleChange(wxCommandEvent& event);
+    void OnSetBackgroundColour(wxCommandEvent& event);
+    void OnSetForegroundColour(wxCommandEvent& event);
     void OnQuit(wxCommandEvent& event);
     void OnAbout(wxCommandEvent& event);
 
@@ -227,6 +230,8 @@ bool MyApp::OnInit()
 enum
 {
     ID_CLEARLOG = wxID_HIGHEST+1,
+    ID_BACKGROUND_COLOUR,
+    ID_FOREGROUND_COLOUR,
     ID_STYLE_MENU,
 
     // file menu
@@ -265,6 +270,9 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     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 )
@@ -330,7 +338,9 @@ MyFrame::MyFrame(wxFrame *frame, const wxString &title, int x, int y, int w, int
     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");
@@ -611,6 +621,28 @@ void MyFrame::OnClearLog( wxCommandEvent& WXUNUSED(event) )
     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();
index 9b6c2759cb73d6ccda55b834c30d907cf68719a9..462af9ddfcc51d507f20949954ce210dfd5e8581 100644 (file)
@@ -1656,11 +1656,9 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
     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