gchar *gail_boolean_cell_property_list[] = {
"active",
"radio",
+ "sensitive",
NULL
};
cell->renderer = gtk_cell_renderer_toggle_new ();
g_object_ref_sink (cell->renderer);
boolean_cell->cell_value = FALSE;
+ boolean_cell->cell_sensitive = TRUE;
return atk_object;
}
GailBooleanCell *boolean_cell = GAIL_BOOLEAN_CELL (cell);
gboolean rv = FALSE;
gboolean new_boolean;
+ gboolean new_sensitive;
- g_object_get (G_OBJECT(cell->renderer), "active", &new_boolean, NULL);
+ g_object_get (G_OBJECT(cell->renderer), "active", &new_boolean,
+ "sensitive", &new_sensitive, NULL);
if (boolean_cell->cell_value != new_boolean)
{
gail_cell_remove_state (GAIL_CELL (cell), ATK_STATE_CHECKED, emit_change_signal);
}
+ if (boolean_cell->cell_sensitive != new_sensitive)
+ {
+ rv = TRUE;
+ boolean_cell->cell_sensitive = !(boolean_cell->cell_sensitive);
+
+ /* Update cell's state */
+
+ if (new_sensitive)
+ gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_SENSITIVE, emit_change_signal);
+ else
+ gail_cell_remove_state (GAIL_CELL (cell), ATK_STATE_SENSITIVE, emit_change_signal);
+ }
+
return rv;
}