#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");
mainSizer->Add( m_notebook, 1, wxGROW );
mainSizer->Add( m_log, 0, wxGROW );
-
+
SetSizerAndFit(mainSizer);
}
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;
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();
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");
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 )
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 )