March 19,2005
GTK+ 下的 file drag&drop open
有許多程式可以將支援的檔案直接拖到程式裡就可以開啟檔案,
GTK+寫的當然也可以,不過有些需要特別注意的地方。
撰寫步驟如下:
GTK+寫的當然也可以,不過有些需要特別注意的地方。
撰寫步驟如下:
- 設定一個 GtkTargetEntry,其中 type 為 "text/uri-list",這個不管是 Win32 or Unix 都是一樣的,都可以吃到檔案列表。
- 對你要設定可拖放檔案的元件(通常為window) 設定成 drag_dest
- 設定該元件的 window_drag_data_received 事件回呼函式
| static GtkTargetEntry target_table[] = {{ "text/uri-list", 0, 0 }}; |
| gtk_drag_dest_set(window, GTK_DEST_DEFAULT_ALL, target_table, 1, GDK_ACTION_COPY); |
| gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", GTK_SIGNAL_FUNC(window_drag_data_received), NULL); |
| static void window_drag_data_received( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { g_print("Got: %s\n",data->data); } |
引用URL
http://cgi.blog.roodo.com/trackback/44150