From: Robert Roebling Date: Wed, 30 May 2007 21:02:33 +0000 (+0000) Subject: Experimenting with cell attributes. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2a5e6d1b3a4c29de120ab31a3bd4a868f6e4d2bd Experimenting with cell attributes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/dataview/dataview.cpp b/samples/dataview/dataview.cpp index 7132c5d9ca..0d488672aa 100644 --- a/samples/dataview/dataview.cpp +++ b/samples/dataview/dataview.cpp @@ -134,6 +134,12 @@ public: } return true; } + + virtual void GetAttr( wxListItemAttr &attr, unsigned int col, unsigned int row ) + { + if (row == 4) + attr.SetBackgroundColour( *wxGREEN ); + } wxArrayString m_list; wxArrayInt m_bools; @@ -1005,7 +1011,7 @@ MySortingFrame::MySortingFrame(wxFrame *frame, wxChar *title, int x, int y, int dataview_left = new wxDataViewCtrl( main, ID_UNSORTED, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE ); - m_unsorted_model.reset(new MyUnsortedTextModel); + m_unsorted_model = new MyUnsortedTextModel; dataview_left->AssociateModel( m_unsorted_model.get() ); wxDataViewTextRenderer *text_renderer = @@ -1021,7 +1027,7 @@ MySortingFrame::MySortingFrame(wxFrame *frame, wxChar *title, int x, int y, int // Right wxDataViewCtrl using the sorting model dataview_right = new wxDataViewCtrl( main, ID_SORTED ); - m_sorted_model.reset(new wxDataViewSortedListModel( m_unsorted_model.get() )); + m_sorted_model = new wxDataViewSortedListModel( m_unsorted_model.get() ); dataview_right->AssociateModel( m_sorted_model.get() ); text_renderer = new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_EDITABLE ); diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index da6f6a7fa5..57231c26a0 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -1650,18 +1650,28 @@ static void wxGtkTreeCellDataFunc( GtkTreeViewColumn *column, cell->SetValue( value ); -/* - To set the background to this - - wxColour colour(30,100,255); - GdkColor *gcol = colour.GetColor(); + wxListItemAttr attr; + list_store->model->GetAttr( attr, cell->GetOwner()->GetModelColumn(), model_row ); + + if (attr.HasBackgroundColour()) + { + wxColour colour = attr.GetBackgroundColour(); + GdkColor *gcol = colour.GetColor(); - GValue gvalue = { 0, }; - g_value_init( &gvalue, GDK_TYPE_COLOR ); - g_value_set_boxed( &gvalue, gcol ); - g_object_set_property( G_OBJECT(renderer), "cell-background_gdk", &gvalue ); - g_value_unset( &gvalue ); -*/ + GValue gvalue = { 0, }; + g_value_init( &gvalue, GDK_TYPE_COLOR ); + g_value_set_boxed( &gvalue, gcol ); + g_object_set_property( G_OBJECT(renderer), "cell-background_gdk", &gvalue ); + g_value_unset( &gvalue ); + } + else + { + GValue gvalue = { 0, }; + g_value_init( &gvalue, G_TYPE_BOOLEAN ); + g_value_set_boolean( &gvalue, FALSE ); + g_object_set_property( G_OBJECT(renderer), "cell-background-set", &gvalue ); + g_value_unset( &gvalue ); + } } IMPLEMENT_CLASS(wxDataViewColumn, wxDataViewColumnBase)