- {
-
- if (wx_model->IsContainer( item ))
- {
- if (wx_model->HasContainerColumns( item ) || (cell->GetOwner()->GetModelColumn() == 0))
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, G_TYPE_BOOLEAN );
- g_value_set_boolean( &gvalue, TRUE );
- g_object_set_property( G_OBJECT(renderer), "visible", &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), "visible", &gvalue );
- g_value_unset( &gvalue );
-
- return;
- }
- }
- else
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, G_TYPE_BOOLEAN );
- g_value_set_boolean( &gvalue, TRUE );
- g_object_set_property( G_OBJECT(renderer), "visible", &gvalue );
- g_value_unset( &gvalue );
- }
-
- }
-
- wxVariant value;
- wx_model->GetValue( value, item, cell->GetOwner()->GetModelColumn() );
-
- if (value.GetType() != cell->GetVariantType())
- wxLogError( wxT("Wrong type, required: %s but: %s"),
- value.GetType().c_str(),
- cell->GetVariantType().c_str() );
-
- cell->SetValue( value );
-
- if (cell->GtkHasAttributes())
- {
- wxDataViewItemAttr attr;
- bool colour_set = false;
- bool style_set = false;
- bool weight_set = false;
-
- if (wx_model->GetAttr( item, cell->GetOwner()->GetModelColumn(), attr ))
- {
- // this must be a GtkCellRendererText
- wxColour colour = attr.GetColour();
- if (colour.IsOk())
- {
- const GdkColor * const 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), "foreground_gdk", &gvalue );
- g_value_unset( &gvalue );
-
- colour_set = true;
- }
-
- if (attr.GetItalic())
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, PANGO_TYPE_STYLE );
- g_value_set_enum( &gvalue, PANGO_STYLE_ITALIC );
- g_object_set_property( G_OBJECT(renderer), "style", &gvalue );
- g_value_unset( &gvalue );
-
- style_set = true;
- }
-
- if (attr.GetBold())
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, PANGO_TYPE_WEIGHT );
- g_value_set_enum( &gvalue, PANGO_WEIGHT_BOLD );
- g_object_set_property( G_OBJECT(renderer), "weight", &gvalue );
- g_value_unset( &gvalue );
-
- weight_set = true;
- }
- }
-
- if (!style_set)
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, G_TYPE_BOOLEAN );
- g_value_set_boolean( &gvalue, FALSE );
- g_object_set_property( G_OBJECT(renderer), "style-set", &gvalue );
- g_value_unset( &gvalue );
- }
-
- if (!weight_set)
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, G_TYPE_BOOLEAN );
- g_value_set_boolean( &gvalue, FALSE );
- g_object_set_property( G_OBJECT(renderer), "weight-set", &gvalue );
- g_value_unset( &gvalue );
- }
-
- if (!colour_set)
- {
- GValue gvalue = { 0, };
- g_value_init( &gvalue, G_TYPE_BOOLEAN );
- g_value_set_boolean( &gvalue, FALSE );
- g_object_set_property( G_OBJECT(renderer), "foreground-set", &gvalue );
- g_value_unset( &gvalue );
- }
- }
-
-#if 0
- if (attr.HasBackgroundColour())
- {
- wxColour colour = attr.GetBackgroundColour();
- const GdkColor * const gcol = colour.GetColor();