File: 030-gtksourceview.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 (45 lines) | stat: -rwxr-xr-x 1,101 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
#! /usr/bin/env lua
-- vim:sw=4:sts=4

require "gtk"

if not pcall(require, "gtksourceview") then
    print "GtkSourceView not available, skipping"
    os.exit(0)
end

w = gtk.window_new(gtk.WINDOW_TOPLEVEL)

vbox = gtk.vbox_new(false, 10)
w:add(vbox)

sc = gtk.scrolled_window_new(nil, nil)
sc:set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
vbox:pack_start(sc, true, true, 0)

-- create a GtkSourceView widget with Lua highlighting
manager = gtksourceview.language_manager_get_default()
lang = manager:get_language("lua")
assert(lang)
buf = gtksourceview.buffer_new_with_language(lang)
buf:set_highlight_syntax(true)
view = gtksourceview.view_new_with_buffer(buf)
sc:add(view)

-- add a quit button (required for scripting the test)
btn = gtk.button_new_with_label "Quit"
btn:connect('clicked', gtk.main_quit)
vbox:pack_start(btn, false, true, 0)

-- read this source file as an example
f = io.open(arg[0])
text = f:read "*a"
f:close()
buf:set_text(text, #text)

w:set_default_size(400, 400)
w:connect('delete-event', gtk.main_quit)
w:set_title("GtkSourceView Demo")
w:show_all()
gtk.main()