]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dataview/dataview.cpp
Use an even more informative error message in wxFSW unit test.
[wxWidgets.git] / samples / dataview / dataview.cpp
index cf7f30e41c6aaa503e3dc419902e48b06dd81e20..7e65b9b9a665aa495b204ca7ddd9dff533598f02 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");
@@ -435,7 +445,7 @@ MyFrame::MyFrame(wxFrame *frame, const wxString &title, int x, int y, int w, int
 
     mainSizer->Add( m_notebook, 1, wxGROW );
     mainSizer->Add( m_log, 0, wxGROW );
-    
+
     SetSizerAndFit(mainSizer);
 }
 
@@ -535,15 +545,10 @@ void MyFrame::BuildDataViewCtrl(wxPanel* parent, unsigned int nPanel, unsigned l
             m_ctrl[1]->AssociateModel( m_list_model.get() );
 
             // the various columns
-#if 1
-            m_ctrl[1]->AppendTextColumn("editable string", 0, wxDATAVIEW_CELL_EDITABLE, 120);
-            m_ctrl[1]->AppendIconTextColumn(wxIcon(wx_small_xpm), 1, wxDATAVIEW_CELL_INERT )->SetTitle( "icon");
-#else
             m_ctrl[1]->AppendTextColumn("editable string", 0, wxDATAVIEW_CELL_EDITABLE);
-            m_ctrl[1]->AppendIconTextColumn("icon", 1, wxDATAVIEW_CELL_INERT);
-#endif
+            m_ctrl[1]->AppendIconTextColumn("icon", 1, wxDATAVIEW_CELL_EDITABLE);
             m_ctrl[1]->AppendColumn(
-                new wxDataViewColumn("attributes", new wxDataViewTextRendererAttr, 2 ));
+                new wxDataViewColumn("attributes", new wxDataViewTextRenderer, 2 ));
         }
         break;
 
@@ -611,6 +616,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();
@@ -692,7 +719,7 @@ void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) )
     wxAboutDialogInfo info;
     info.SetName(_("DataView sample"));
     info.SetDescription(_("This sample demonstrates wxDataViewCtrl"));
-    info.SetCopyright(_T("(C) 2007-2009 Robert Roebling"));
+    info.SetCopyright(wxT("(C) 2007-2009 Robert Roebling"));
     info.AddDeveloper("Robert Roebling");
     info.AddDeveloper("Francesco Montorsi");
 
@@ -819,7 +846,9 @@ void MyFrame::OnActivated( wxDataViewEvent &event )
     wxLogMessage( "wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, Item: %s", title );
 
     if (m_ctrl[0]->IsExpanded( event.GetItem() ))
+    {
         wxLogMessage( "Item: %s is expanded", title );
+    }
 }
 
 void MyFrame::OnSelectionChanged( wxDataViewEvent &event )
@@ -850,12 +879,15 @@ void MyFrame::OnStartEditing( wxDataViewEvent &event )
     if (artist == "Ludwig van Beethoven")
     {
         event.Veto();
-        
+
         if (!m_log)
            return;
-           
-        wxLogMessage( "wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING vetoed, Item: %s", artist );
+
+        wxLogMessage( "wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING vetoed. Artist: %s", artist );
     }
+    else
+        wxLogMessage( "wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING not vetoed. Artist: %s", artist );
+
 }
 
 void MyFrame::OnEditingStarted( wxDataViewEvent &event )