Some restructuring, beginning of wxDataViewDateCell.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -30,6 +30,10 @@
|
||||
// MyTextModel
|
||||
// -------------------------------------
|
||||
|
||||
WX_DECLARE_LIST(wxDateTime,wxArrayDate);
|
||||
#include <wx/listimpl.cpp>
|
||||
WX_DEFINE_LIST(wxArrayDate);
|
||||
|
||||
class MyTextModel: public wxDataViewListModel
|
||||
{
|
||||
public:
|
||||
@@ -44,16 +48,24 @@ public:
|
||||
{ m_colours.Add( wxT("red") ); m_colours.Add( wxT("green") ); }
|
||||
for (i = 0; i < 1000; i++)
|
||||
{ m_progress.Add( i/10 ); }
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
wxDateTime *date = new wxDateTime( wxDateTime::Now() );
|
||||
m_dates.Append( date );
|
||||
}
|
||||
}
|
||||
|
||||
virtual size_t GetNumberOfRows()
|
||||
{ return 1000; }
|
||||
virtual size_t GetNumberOfCols()
|
||||
{ return 6; }
|
||||
{ return 7; }
|
||||
|
||||
// as reported by wxVariant
|
||||
virtual wxString GetColType( size_t col )
|
||||
{
|
||||
if (col == 6)
|
||||
return wxT("datetime");
|
||||
|
||||
if (col == 5)
|
||||
return wxT("long");
|
||||
|
||||
@@ -65,6 +77,10 @@ public:
|
||||
|
||||
virtual wxVariant GetValue( size_t col, size_t row )
|
||||
{
|
||||
if (col == 6)
|
||||
{
|
||||
return (wxDateTime) *m_dates[row];
|
||||
} else
|
||||
if (col == 5)
|
||||
{
|
||||
return (long) m_progress[row];
|
||||
@@ -90,6 +106,10 @@ public:
|
||||
}
|
||||
virtual bool SetValue( wxVariant &value, size_t col, size_t row )
|
||||
{
|
||||
if (col == 6)
|
||||
{
|
||||
*m_dates[row] = value.GetDateTime();
|
||||
} else
|
||||
if (col == 3)
|
||||
{
|
||||
m_bools[row] = (int) value.GetBool();
|
||||
@@ -105,6 +125,7 @@ public:
|
||||
wxArrayInt m_bools;
|
||||
wxArrayString m_colours;
|
||||
wxArrayInt m_progress;
|
||||
wxArrayDate m_dates;
|
||||
};
|
||||
|
||||
// -------------------------------------
|
||||
@@ -125,7 +146,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
bool Render( wxRect rect, wxDC *dc, int state )
|
||||
{
|
||||
{
|
||||
dc->SetPen( *wxBLACK_PEN );
|
||||
if (m_colour == wxT("red"))
|
||||
dc->SetBrush( *wxRED_BRUSH );
|
||||
@@ -140,9 +161,9 @@ public:
|
||||
{
|
||||
return wxSize(20,8);
|
||||
}
|
||||
bool Activate( wxRect rect )
|
||||
bool Activate( wxRect rect,
|
||||
wxDataViewListModel *model, size_t col, size_t row )
|
||||
{
|
||||
wxPrintf( wxT("activate\n") );
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -249,6 +270,8 @@ MyFrame::MyFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h):
|
||||
|
||||
dataview_left->AppendProgressColumn( wxT("progress"), 5 );
|
||||
|
||||
dataview_left->AppendDateColumn( wxT("date"), 6 );
|
||||
|
||||
// Right wxDataViewCtrl using the same model
|
||||
dataview_right = new wxDataViewCtrl( this, -1 );
|
||||
dataview_right->AssociateModel( model );
|
||||
@@ -263,9 +286,9 @@ MyFrame::MyFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h):
|
||||
dataview_right->AppendColumn( column );
|
||||
|
||||
wxBoxSizer *sizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
sizer->Add( dataview_left, 1, wxGROW );
|
||||
sizer->Add( dataview_left, 3, wxGROW );
|
||||
sizer->Add(10,10);
|
||||
sizer->Add( dataview_right, 1, wxGROW );
|
||||
sizer->Add( dataview_right, 2, wxGROW );
|
||||
SetSizer( sizer );
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user