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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/kang/view.rb', line 17
def initialize(controller,data)
reg_text=data.regex_string
match_text=data.match_string
@controller = controller
@data = data
@window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
@window.set_title "Kang"
@window.border_width = 10
@window.set_size_request(600, 400)
@window.signal_connect('delete_event') { Gtk.main_quit }
wintop = Gtk::ScrolledWindow.new
wintop.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS)
winbottom = Gtk::ScrolledWindow.new
winbottom.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS)
winright = Gtk::ScrolledWindow.new
winright.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
@statusbar = Gtk::Statusbar.new
@statusbar.push(0,"")
@regview = Gtk::TextView.new
@regview.buffer.text = reg_text
@matchview = Gtk::TextView.new
@matchview.buffer.text = match_text
@tags = Tags.new(@matchview)
wintop.add(@regview)
wintop.set_size_request(400,100)
winbottom.add(@matchview)
winbottom.set_size_request(400,200)
@list_store = Gtk::ListStore.new(String, String)
treeview = Gtk::TreeView.new(@list_store)
renderer = Gtk::CellRendererText.new
column0 = Gtk::TreeViewColumn.new("#",renderer, {:text => 0})
column1 = Gtk::TreeViewColumn.new("Match",renderer, {:text => 1})
column1.set_cell_data_func(renderer) do |tvc,cell,model,iter|
cell.background_gdk = @tags[iter.path.to_str.to_i].background_gdk
end
treeview.append_column(column0)
treeview.append_column(column1)
treeview.selection.mode = Gtk::SELECTION_NONE
treeview.set_size_request(200,-1)
winright.add(treeview)
vpaned = Gtk::VPaned.new
vpaned.add1(wintop)
vpaned.add2(winbottom)
vpaned.set_size_request(400,400)
hpaned = Gtk::HPaned.new
hpaned.pack1(vpaned,true,false)
hpaned.pack2(winright,true,false)
hpaned.set_size_request(100,-1)
vbox = Gtk::VBox.new(false,0)
vbox.pack_start(hpaned,true,true,0)
@multiline = Gtk::CheckButton.new("multiline")
vbox.pack_start(@multiline,false,false,0)
@spinbutton = Gtk::SpinButton.new(1, 1, 1)
@spinbutton.sensitive=false
vbox.pack_start(@spinbutton,false,false,0)
vbox.pack_start(@statusbar,false,false,0)
@window.add(vbox)
@regview.signal_connect("key-release-event") {|view,event| @controller.key_up_reg(view,event,view.buffer.text)}
@matchview.signal_connect("key-release-event") {|view,event| @controller.key_up_match(view,event,view.buffer.text)}
@multiline.signal_connect("clicked") {|view,event| @controller.multiline_click(view,event)}
@spinbutton.signal_connect("value-changed") {|button| @controller.spin_change(button.value.to_i)}
end
|