]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dataview.cpp
Support diabling items in GTK+, see #12686: Allow disabling of wxDVC items
[wxWidgets.git] / src / gtk / dataview.cpp
index f0e0d60b72fe58f9bfefe596e3d49d5b87f299a7..3bbb38b53b02d583cd602f0b3728c3e821df05b9 100644 (file)
@@ -1731,6 +1731,7 @@ wxDataViewRenderer::wxDataViewRenderer( const wxString &varianttype, wxDataViewC
     wxDataViewRendererBase( varianttype, mode, align )
 {
     m_renderer = NULL;
+    m_mode = mode;
 
     // we haven't changed them yet
     m_usingDefaultAttrs = true;
@@ -2945,6 +2946,19 @@ static void wxGtkTreeCellDataFunc( GtkTreeViewColumn *WXUNUSED(column),
     }
     // else: no custom attributes specified and we're already using the default
     //       ones -- nothing to do
+    
+    // deal with disabled items
+    bool enabled = wx_model->IsEnabled( item, cell->GetOwner()->GetModelColumn());
+    GValue gvalue = { 0, };
+    g_value_init( &gvalue, G_TYPE_BOOLEAN );
+    g_value_set_boolean( &gvalue, enabled );
+    g_object_set_property( G_OBJECT(renderer), "sensitive", &gvalue );
+    g_value_unset( &gvalue );
+
+    if (enabled)
+        cell->SetMode( cell->GtkGetMode() );
+    else
+        cell->SetMode( wxDATAVIEW_CELL_INERT );
 }
 
 } // extern "C"