4
ls, x = gtk.list_store_newv(8, { glib.TYPE_INT, glib.TYPE_STRING,
5
glib.type_from_name("GtkWindowType"), glib.TYPE_BOOLEAN,
6
glib.TYPE_DOUBLE, glib.type_from_name("GtkWidgetFlags"),
7
glib.type_from_name("GtkWindow"), gnome.boxed_type })
8
assert(x == nil, "superfluous return value")
10
-- varargs, no type checking possible.
11
iter = gtk.new "TreeIter"
12
ls:insert_with_values(iter, 1,
15
2, gtk.WINDOW_TOPLEVEL,
17
4, gnome.box(5, "gdouble"),
19
6, gtk.window_new(gtk.WINDOW_TOPLEVEL),
20
7, gnome.box { a=1, b=2, c=3 },
23
---------------------------------------------------------------------------
24
-- test signed integer
26
val = ls:get_value(iter, 0)
29
ls:set_value(iter, 0, -20)
30
val = ls:get_value(iter, 0)
33
ls:set_value(iter, 0, "234")
34
val = ls:get_value(iter, 0)
37
ls:set_value(iter, 0, "-567890")
38
val = ls:get_value(iter, 0)
39
assert(val == -567890)
41
rc, msg = pcall(function() ls:set_value(iter, 0, "99abc") end)
44
rc, msg = pcall(function() ls:set_value(iter, 0, true) end)
48
---------------------------------------------------------------------------
51
val = ls:get_value(iter, 1)
52
assert(val == "hello")
54
ls:set_value(iter, 1, "there")
55
val = ls:get_value(iter, 1)
56
assert(val == "there")
58
ls:set_value(iter, 1, 25)
59
val = ls:get_value(iter, 1)
62
---------------------------------------------------------------------------
65
val = ls:get_value(iter, 2)
66
assert(val == gtk.WINDOW_TOPLEVEL)
67
ls:set_value(iter, 2, "GTK_WINDOW_TOPLEVEL")
68
ls:set_value(iter, 2, 0)
69
ls:set_value(iter, 2, gtk.WINDOW_TOPLEVEL)
71
rc, msg = pcall(function() ls:set_value(iter, 2, true) end)
75
rc, msg = pcall(function() ls:set_value(iter, 2, "HARHAR") end)
78
-- mismatch in enum type
79
rc, msg = pcall(function() ls:set_value(iter, 2, gtk.JUSTIFY_LEFT) end)
83
---------------------------------------------------------------------------
86
val = ls:get_value(iter, 3)
89
ls:set_value(iter, 3, false)
90
val = ls:get_value(iter, 3)
93
-- can set boolean from certain strings
94
ls:set_value(iter, 3, "true")
95
ls:set_value(iter, 3, "false")
96
ls:set_value(iter, 3, "0")
97
ls:set_value(iter, 3, "1")
98
val = ls:get_value(iter, 3)
101
-- can't set boolean from this string
102
rc, msg = pcall(function() ls:set_value(iter, 3, "foo") end)
105
-- can't set boolean from number
106
rc, msg = pcall(function() ls:set_value(iter, 3, 5) end)
111
---------------------------------------------------------------------------
114
val = ls:get_value(iter, 4)
116
ls:set_value(iter, 4, 6)
117
val = ls:get_value(iter, 4)
119
ls:set_value(iter, 4, "7.05")
120
val = ls:get_value(iter, 4)
122
rc, msg = pcall(function() ls:set_value(iter, 4, "7.05error") end)
124
rc, msg = pcall(function() ls:set_value(iter, 4, true) end)
129
---------------------------------------------------------------------------
132
val = ls:get_value(iter, 5)
133
assert(tostring(val) == "GtkWidgetFlags:can-default")
135
ls:set_value(iter, 5, "GTK_TOPLEVEL | GTK_NO_WINDOW")
136
val = ls:get_value(iter, 5)
137
assert(tostring(val) == "GtkWidgetFlags:toplevel|no-window")
139
ls:set_value(iter, 5, 16+32+64)
140
val = ls:get_value(iter, 5)
141
assert(tostring(val) == "GtkWidgetFlags:toplevel|no-window|realized")
143
ls:set_value(iter, 5, "128|256")
144
val = ls:get_value(iter, 5)
145
assert(tostring(val) == "GtkWidgetFlags:mapped|visible")
147
rc, msg = pcall(function() ls:set_value(iter, 5, "whatever") end)
150
rc, msg = pcall(function() ls:set_value(iter, 5, true) end)
153
rc, msg = pcall(function() ls:set_value(iter, 5, "GTK_STOCK_OK") end)
158
---------------------------------------------------------------------------
161
val = ls:get_value(iter, 6)
162
assert(string.match(tostring(val), "^GtkWindow"))
164
w = gtk.window_new(gtk.WINDOW_TOPLEVEL)
165
ls:set_value(iter, 6, w)
167
val = ls:get_value(iter, 6)
171
rc, msg = pcall(function() ls:set_value(iter, 6, nil) end)
174
-- can't set to other type of widget
175
rc, msg = pcall(function() ls:set_value(iter, 6, gtk.button_new()) end)
179
---------------------------------------------------------------------------
182
val = ls:get_value(iter, 7)
183
assert(type(val) == "table")