Ejemplo n.º 1
0
static void
gtk_boolean_cell_accessible_update_cache (GtkCellAccessible *cell,
                                          gboolean            emit_signal)
{
  GtkBooleanCellAccessible *boolean_cell = GTK_BOOLEAN_CELL_ACCESSIBLE (cell);
  gboolean active;
  gboolean sensitive;
  GtkCellRenderer *renderer;

  g_object_get (cell, "renderer", &renderer, NULL);
  g_object_get (renderer,
                "active", &active,
                "sensitive", &sensitive,
                NULL);
  g_object_unref (renderer);

  if (boolean_cell->priv->cell_value != active)
    {
      boolean_cell->priv->cell_value = !boolean_cell->priv->cell_value;

      if (emit_signal)
        atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_CHECKED, active);
    }

  if (boolean_cell->priv->cell_sensitive != sensitive)
    {
      boolean_cell->priv->cell_sensitive = !boolean_cell->priv->cell_sensitive;

      if (emit_signal)
        atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_SENSITIVE, sensitive);
    }
}
Ejemplo n.º 2
0
static void
gtk_boolean_cell_accessible_update_cache (GtkCellAccessible *cell)
{
  GtkBooleanCellAccessible *boolean_cell = GTK_BOOLEAN_CELL_ACCESSIBLE (cell);
  gboolean active;
  gboolean sensitive;

  g_object_get (G_OBJECT (GTK_RENDERER_CELL_ACCESSIBLE (cell)->renderer),
                "active", &active,
                "sensitive", &sensitive,
                NULL);

  if (boolean_cell->cell_value != active)
    {
      boolean_cell->cell_value = !boolean_cell->cell_value;

      atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_CHECKED, active);
    }

  if (boolean_cell->cell_sensitive != sensitive)
    {
      boolean_cell->cell_sensitive = !boolean_cell->cell_sensitive;

      atk_object_notify_state_change (ATK_OBJECT (cell), ATK_STATE_CHECKED, sensitive);
    }
}
Ejemplo n.º 3
0
static AtkStateSet *
gtk_boolean_cell_accessible_ref_state_set (AtkObject *accessible)
{
  GtkBooleanCellAccessible *cell = GTK_BOOLEAN_CELL_ACCESSIBLE (accessible);
  AtkStateSet *state_set;

  state_set = ATK_OBJECT_CLASS (gtk_boolean_cell_accessible_parent_class)->ref_state_set (accessible);

  if (cell->priv->cell_value)
    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);

  if (cell->priv->cell_sensitive)
    atk_state_set_add_state (state_set, ATK_STATE_SENSITIVE);
  else
    atk_state_set_remove_state (state_set, ATK_STATE_SENSITIVE);

  return state_set;
}