static void do_popup_menu (GtkWidget *icon_list, GdkEventButton *event) { GtkIconView *icon_view = GTK_ICON_VIEW (icon_list); GtkWidget *menu; GtkWidget *menuitem; GtkTreePath *path = NULL; int button, event_time; ItemData *data; GList *list; if (event) path = gtk_icon_view_get_path_at_pos (icon_view, event->x, event->y); else { list = gtk_icon_view_get_selected_items (icon_view); if (list) { path = (GtkTreePath*)list->data; g_list_foreach (list->next, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } } if (!path) return; menu = gtk_menu_new (); data = g_new0 (ItemData, 1); data->icon_list = icon_view; data->path = path; g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data); menuitem = gtk_menu_item_new_with_label ("Activate"); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); g_signal_connect (menuitem, "activate", G_CALLBACK (item_cb), data); if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time (); } gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, button, event_time); }
static GtkTreePath * attachment_icon_view_get_path_at_pos (EAttachmentView *view, gint x, gint y) { GtkIconView *icon_view; icon_view = GTK_ICON_VIEW (view); return gtk_icon_view_get_path_at_pos (icon_view, x, y); }
JNIEXPORT jlong JNICALL Java_org_gnome_gtk_GtkIconView_gtk_1icon_1view_1get_1path_1at_1pos ( JNIEnv* env, jclass cls, jlong _self, jint _x, jint _y ) { GtkTreePath* result; jlong _result; GtkIconView* self; gint x; gint y; // convert parameter self self = (GtkIconView*) _self; // convert parameter x x = (gint) _x; // convert parameter y y = (gint) _y; // call function result = gtk_icon_view_get_path_at_pos(self, x, y); // cleanup parameter self // cleanup parameter x // cleanup parameter y // translate return value to JNI type _result = (jlong) result; // and finally return _result; }
static VALUE iview_get_path_at_pos(VALUE self, VALUE x, VALUE y) { return GTKTREEPATH2RVAL(gtk_icon_view_get_path_at_pos(_SELF(self), NUM2INT(x), NUM2INT(y))); }