mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
parent
7ab2155aef
commit
4759da2634
@ -32,6 +32,7 @@ static gboolean gail_boolean_cell_update_cache (GailRendererCell *ce
|
||||
gchar *gail_boolean_cell_property_list[] = {
|
||||
"active",
|
||||
"radio",
|
||||
"sensitive",
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -73,6 +74,7 @@ gail_boolean_cell_new (void)
|
||||
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;
|
||||
}
|
||||
|
||||
@ -83,8 +85,10 @@ gail_boolean_cell_update_cache (GailRendererCell *cell,
|
||||
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)
|
||||
{
|
||||
@ -99,5 +103,18 @@ gail_boolean_cell_update_cache (GailRendererCell *cell,
|
||||
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;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ struct _GailBooleanCell
|
||||
{
|
||||
GailRendererCell parent;
|
||||
gboolean cell_value;
|
||||
gboolean cell_sensitive;
|
||||
};
|
||||
|
||||
GType gail_boolean_cell_get_type (void);
|
||||
|
Loading…
Reference in New Issue
Block a user