File: filechooser.lua

package info (click to toggle)
lua-gtk 0.9%2B20100528-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,176 kB
  • ctags: 1,934
  • sloc: ansic: 9,571; sh: 373; makefile: 241
file content (42 lines) | stat: -rwxr-xr-x 847 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#! /usr/bin/lua
-- vim:sw=4:sts=4
-- Demonstrate a GtkFileChooserDialog, how to interpret the response and how to
-- retrieve multiple results.

require "gtk"

w = gtk.file_chooser_dialog_new("Open Files", nil,
    gtk.FILE_CHOOSER_ACTION_OPEN,
    gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
    gtk.STOCK_OPEN, gtk.RESPONSE_ACCEPT,
    nil)

w:set_select_multiple(true)

while true do
    rc = w:run()

    if rc == gtk.RESPONSE_CANCEL:tonumber() then
	print "cancel"
	break
    end

    if rc == gtk.RESPONSE_ACCEPT:tonumber() then
	print "open"
	list = w:get_filenames()
	list_head = list
	while list do
	    -- gtk.dump_struct(list) -- if you're interested.
	    print(list.data:cast("string"))
	    list = list.next
	end
	list_head:free()
	break
    end

    if rc == gtk.RESPONSE_DELETE_EVENT:tonumber() then
	print "closed"
	break
    end
end