Exemple #1
0
static VALUE
rg_get_icon_area(VALUE self, VALUE icon_pos)
{
    GdkRectangle icon_area;

    gtk_entry_get_icon_area(_SELF(self),
                            RVAL2GTKENTRYICONPOSITION(icon_pos),
                            &icon_area);

    return GOBJ2RVAL(&icon_area);
}
Exemple #2
0
static void
entry_icon_press_cb (GtkEntry             *entry,
                     GtkEntryIconPosition  icon_pos,
                     GdkEvent             *event,
                     gpointer              user_data)
{
    GtkWidget *popover = user_data;
    cairo_rectangle_int_t rect;

    gtk_entry_get_icon_area (entry, icon_pos, &rect);
    gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect);
    gtk_widget_show (popover);

    g_object_set_data (G_OBJECT (entry), "popover-icon-pos",
                       GUINT_TO_POINTER (icon_pos));
}
Exemple #3
0
static void
entry_size_allocate_cb (GtkEntry      *entry,
                        GtkAllocation *allocation,
                        gpointer       user_data)
{
    GtkEntryIconPosition popover_pos;
    GtkPopover *popover = user_data;
    cairo_rectangle_int_t rect;

    if (gtk_widget_is_visible (GTK_WIDGET (popover)))
    {
        popover_pos =
            GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry),
                              "popover-icon-pos"));
        gtk_entry_get_icon_area (entry, popover_pos, &rect);
        gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect);
    }
}
Exemple #4
0
static GtkWidget*
get_popup (EogZoomEntry *zoom_entry)
{
	GdkRectangle rect;

	if (zoom_entry->priv->popup)
		return zoom_entry->priv->popup;

	zoom_entry->priv->popup = gtk_popover_new_from_model (GTK_WIDGET (zoom_entry),
	                                                       G_MENU_MODEL (zoom_entry->priv->menu));
	g_signal_connect (zoom_entry->priv->popup, "closed",
	                  G_CALLBACK (popup_menu_closed),
	                  zoom_entry);
	gtk_entry_get_icon_area (GTK_ENTRY (zoom_entry->priv->value_entry),
	                         GTK_ENTRY_ICON_SECONDARY, &rect);
	gtk_popover_set_relative_to (GTK_POPOVER (zoom_entry->priv->popup),
	                             zoom_entry->priv->value_entry);
	gtk_popover_set_pointing_to (GTK_POPOVER (zoom_entry->priv->popup), &rect);
	gtk_popover_set_position (GTK_POPOVER (zoom_entry->priv->popup), GTK_POS_BOTTOM);
	gtk_widget_set_size_request (zoom_entry->priv->popup, 150, -1);

	return zoom_entry->priv->popup;
}