Example #1
0
static void
gtk_check_menu_item_accessible_notify_gtk (GObject    *obj,
                                           GParamSpec *pspec)
{
  GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
  AtkObject *atk_obj;
  gboolean sensitive;
  gboolean inconsistent;
  gboolean active;

  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (check_menu_item));
  sensitive = gtk_widget_get_sensitive (GTK_WIDGET (check_menu_item));
  inconsistent = gtk_check_menu_item_get_inconsistent (check_menu_item);
  active = gtk_check_menu_item_get_active (check_menu_item);

  if (strcmp (pspec->name, "inconsistent") == 0)
    {
      atk_object_notify_state_change (atk_obj, ATK_STATE_INDETERMINATE, inconsistent);
      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
    }
  else if (strcmp (pspec->name, "sensitive") == 0)
    {
      /* Need to override gailwidget behavior of notifying for ENABLED */
      atk_object_notify_state_change (atk_obj, ATK_STATE_SENSITIVE, sensitive);
      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
    }
  else if (strcmp (pspec->name, "active") == 0)
    {
      atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED, active);
    }
  else
    GTK_WIDGET_ACCESSIBLE_CLASS (gtk_check_menu_item_accessible_parent_class)->notify_gtk (obj, pspec);
}
JNIEXPORT jboolean JNICALL
Java_org_gnome_gtk_GtkCheckMenuItem_gtk_1check_1menu_1item_1get_1inconsistent
(
	JNIEnv* env,
	jclass cls,
	jlong _self
)
{
	gboolean result;
	jboolean _result;
	GtkCheckMenuItem* self;

	// convert parameter self
	self = (GtkCheckMenuItem*) _self;

	// call function
	result = gtk_check_menu_item_get_inconsistent(self);

	// cleanup parameter self

	// translate return value to JNI type
	_result = (jboolean) result;

	// and finally
	return _result;
}
Example #3
0
static AtkStateSet *
gtk_check_menu_item_accessible_ref_state_set (AtkObject *accessible)
{
  AtkStateSet *state_set;
  GtkCheckMenuItem *check_menu_item;
  GtkWidget *widget;

  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
  if (widget == NULL)
    return NULL;

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

  check_menu_item = GTK_CHECK_MENU_ITEM (widget);

  if (gtk_check_menu_item_get_active (check_menu_item))
    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);

  if (gtk_check_menu_item_get_inconsistent (check_menu_item))
    {
      atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
      atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
    }

  return state_set;
}
Example #4
0
void menu_mber_update(GtkTreeSelection *selection, const MenuItem *menu_item)
{
	GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM(menu_item->widget);

	if (gtk_check_menu_item_get_inconsistent(item))
	{
		gtk_check_menu_item_set_inconsistent(item, FALSE);
		menu_item_set_active(menu_item, !option_member_names);
	}

	menu_mode_update(selection, gtk_check_menu_item_get_active(item), FALSE);
}
static void
gail_check_sub_menu_item_real_notify_gtk (GObject           *obj,
                                          GParamSpec        *pspec)
{
  GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
  AtkObject *atk_obj;

  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (check_menu_item));

  if (strcmp (pspec->name, "inconsistent") == 0)
    atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED,
                       !gtk_check_menu_item_get_inconsistent (check_menu_item));
  else
    GAIL_WIDGET_CLASS (gail_check_sub_menu_item_parent_class)->notify_gtk (obj, pspec);
}
static AtkStateSet*
gail_check_sub_menu_item_ref_state_set (AtkObject *accessible)
{
  AtkStateSet *state_set;
  GtkCheckMenuItem *check_menu_item;
  GtkWidget *widget;

  state_set = ATK_OBJECT_CLASS (gail_check_sub_menu_item_parent_class)->ref_state_set (accessible);
  widget = GTK_ACCESSIBLE (accessible)->widget;
 
  if (widget == NULL)
    return state_set;

  check_menu_item = GTK_CHECK_MENU_ITEM (widget);

  if (gtk_check_menu_item_get_active (check_menu_item))
    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);

  if (gtk_check_menu_item_get_inconsistent (check_menu_item))
    atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
 
  return state_set;
}
Example #7
0
static void serializer_visit_menuitem (Serializer* self, GtkMenuItem* menuitem) {
    char* _tmp0_;
    gboolean _tmp2_ = FALSE;
    g_return_if_fail (self != NULL);
    g_return_if_fail (menuitem != NULL);
    if (GTK_IS_TEAROFF_MENU_ITEM (menuitem)) {
        return;
    }
    serializer_indent (self);
    g_string_append (self->priv->sb, "<item");
    g_string_append (self->priv->sb, _tmp0_ = g_markup_printf_escaped (" id=\"W%lu\"", (gulong) menuitem));
    _g_free0 (_tmp0_);
    if (self->priv->hybrid) {
        g_string_append (self->priv->sb, " client-side=\"1\"");
    }
    g_string_erase (self->priv->label_sb, (gssize) 0, (gssize) (-1));
    self->priv->last_item_empty = TRUE;
    self->priv->guessed_type = NULL;
    serializer_visit_container (self, (GtkContainer*) menuitem);
    if (self->priv->label_sb->len > 0) {
        char* _tmp1_;
        g_string_append (self->priv->sb, _tmp1_ = g_markup_printf_escaped (" label=\"%s\"", self->priv->label_sb->str));
        _g_free0 (_tmp1_);
        self->priv->last_item_empty = FALSE;
    }
    if (GTK_IS_SEPARATOR_MENU_ITEM (menuitem)) {
        _tmp2_ = TRUE;
    } else {
        _tmp2_ = gtk_bin_get_child ((GtkBin*) menuitem) == NULL;
    }
    if (_tmp2_) {
        self->priv->guessed_type = "s";
        self->priv->last_item_empty = FALSE;
    }
    if (GTK_IS_IMAGE_MENU_ITEM (menuitem)) {
        GtkMenuItem* _tmp3_;
        GtkWidget* _tmp4_;
        GtkImage* image;
        image = _g_object_ref0 ((_tmp4_ = gtk_image_menu_item_get_image ((_tmp3_ = menuitem, GTK_IS_IMAGE_MENU_ITEM (_tmp3_) ? ((GtkImageMenuItem*) _tmp3_) : NULL)), GTK_IS_IMAGE (_tmp4_) ? ((GtkImage*) _tmp4_) : NULL));
        if (image != NULL) {
            self->priv->guessed_type = "i";
            serializer_append_icon_attribute (self, image);
            self->priv->last_item_empty = FALSE;
        }
        _g_object_unref0 (image);
    }
    if (GTK_IS_CHECK_MENU_ITEM (menuitem)) {
        GtkMenuItem* _tmp5_;
        GtkCheckMenuItem* checkmenuitem;
        checkmenuitem = _g_object_ref0 ((_tmp5_ = menuitem, GTK_IS_CHECK_MENU_ITEM (_tmp5_) ? ((GtkCheckMenuItem*) _tmp5_) : NULL));
        if (gtk_check_menu_item_get_draw_as_radio (checkmenuitem)) {
            self->priv->guessed_type = "r";
        } else {
            self->priv->guessed_type = "c";
        }
        if (!gtk_check_menu_item_get_inconsistent (checkmenuitem)) {
            if (gtk_check_menu_item_get_active (checkmenuitem)) {
                g_string_append (self->priv->sb, " state=\"1\"");
            } else {
                g_string_append (self->priv->sb, " state=\"0\"");
            }
        }
        self->priv->last_item_empty = FALSE;
        _g_object_unref0 (checkmenuitem);
    }
    if (gtk_widget_get_visible ((GtkWidget*) menuitem) == FALSE) {
        g_string_append (self->priv->sb, " visible=\"0\"");
        self->priv->last_item_empty = FALSE;
    }
    if (gtk_widget_get_sensitive ((GtkWidget*) menuitem) == FALSE) {
        g_string_append (self->priv->sb, " sensitive=\"0\"");
    }
    if (self->priv->last_item_empty) {
        g_string_append (self->priv->sb, " visible=\"0\"");
    }
    if (self->priv->guessed_type != NULL) {
        g_string_append_printf (self->priv->sb, " type=\"%s\"", self->priv->guessed_type);
    }
    if (gtk_menu_item_get_submenu (menuitem) == NULL) {
        g_string_append (self->priv->sb, "/>");
        serializer_linebreak (self);
    } else {
        g_string_append_c (self->priv->sb, '>');
        serializer_linebreak (self);
        self->priv->level++;
        if (gtk_menu_item_get_submenu (menuitem) != NULL) {
            serializer_visit_menu (self, gtk_menu_item_get_submenu (menuitem));
        }
        self->priv->level--;
        serializer_indent (self);
        g_string_append (self->priv->sb, "</item>");
        serializer_linebreak (self);
    }
}