File: iconview.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 (54 lines) | stat: -rwxr-xr-x 1,372 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
43
44
45
46
47
48
49
50
51
52
53
54
#! /usr/bin/env lua
-- vim:sw=4:sts=4

-- Demonstration of the icon view
-- by Wolfgang Oertl on 9.2.2007

require "gtk"

local MainWin = {}
MainWin.__index = MainWin

function MainWin.new()
    local self = {}
    setmetatable(self, MainWin)

    self.w = gtk.window_new(gtk.WINDOW_TOPLEVEL)
    self.w:connect('destroy', gtk.main_quit)
    self.w:set_default_size(200, 250)
    self.w:set_title("Icon View Demo")

    local sw = gtk.scrolled_window_new(nil, nil)
    sw:set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
    self.w:add(sw)

    self.icon_view = gtk.icon_view_new()
    sw:add(self.icon_view)

    -- create store
    self.store = gtk.list_store_new(3, glib.TYPE_INT, glib.TYPE_STRING,
	    gdk.pixbuf_get_type())
    self.icon_view:set_model(self.store)
    self.icon_view:set_text_column(1)
    self.icon_view:set_pixbuf_column(2)

    -- insert some items.  see .../gtk/gtkstock.h
    local iter = gtk.new "GtkTreeIter"
    local pix
    local names = { 'quit', 'open', 'redo', 'refresh', 'stop', 'save',
	'save-as', 'select-color', 'yes', 'no', 'zoom-fit' }

    for i, name in ipairs(names) do
	self.store:append(iter)
	pix = self.icon_view:render_icon('gtk-' .. name,
	    gtk.ICON_SIZE_DIALOG, "")
	self.store:set(iter, 0, i, 1, name, 2, pix, -1)
    end

    self.w:show_all()
    return self
end
   
-- main --
mw = MainWin.new()
gtk.main()