static void
egg_cell_renderer_keys_get_property  (GObject                  *object,
                                      guint                     param_id,
                                      GValue                   *value,
                                      GParamSpec               *pspec)
{
  EggCellRendererKeys *keys;

  g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (object));

  keys = EGG_CELL_RENDERER_KEYS (object);

  switch (param_id)
    {
    case PROP_ACCEL_KEY:
      g_value_set_uint (value, keys->accel_key);
      break;

    case PROP_ACCEL_MASK:
      g_value_set_flags (value, keys->accel_mask);
      break;

    case PROP_ACCEL_MODE:
      g_value_set_int (value, keys->accel_mode);
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
    }
}
Esempio n. 2
0
void
egg_cell_renderer_keys_set_accel_mode (EggCellRendererKeys     *keys,
				       EggCellRendererKeysMode  accel_mode)
{
  g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (keys));
  keys->accel_mode = accel_mode;
  g_object_notify (G_OBJECT (keys), "accel_mode");
}
Esempio n. 3
0
void
egg_cell_renderer_keys_get_accelerator (EggCellRendererKeys     *keys,
                                        guint                   *keyval,
                                        EggVirtualModifierType  *mask)
{
  g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (keys));

  if (keyval)
    *keyval = keys->accel_key;

  if (mask)
    *mask = keys->accel_mask;
}
Esempio n. 4
0
void
egg_cell_renderer_keys_set_accelerator (EggCellRendererKeys *keys,
                                        guint                keyval,
					guint		     keycode,
					EggVirtualModifierType  mask)
{
  char *text;
  gboolean changed;
  GtkCellRendererText *celltext;

  g_return_if_fail (EGG_IS_CELL_RENDERER_KEYS (keys));

  g_object_freeze_notify (G_OBJECT (keys));

  changed = FALSE;

  if (keyval != keys->accel_key)
    {
      keys->accel_key = keyval;
      g_object_notify (G_OBJECT (keys), "accel_key");
      changed = TRUE;
    }

  if (mask != keys->accel_mask)
    {
      keys->accel_mask = mask;

      g_object_notify (G_OBJECT (keys), "accel_mask");
      changed = TRUE;
    }

  if (keycode != keys->keycode)
    {
      keys->keycode = keycode;

      g_object_notify (G_OBJECT (keys), "keycode");
      changed = TRUE;
    }
  g_object_thaw_notify (G_OBJECT (keys));

  if (changed)
    {
      /* sync string to the key values */
      celltext = GTK_CELL_RENDERER_TEXT (keys);
      text = convert_keysym_state_to_string (keys->accel_key, keys->keycode, keys->accel_mask);
      g_object_set (keys, "text", text, NULL);
      g_free (text);
    }

}