Method: CmdDirWidget#initialize

Defined in:
lib/unixcmd/dirview.rb

#initializeCmdDirWidget

Returns a new instance of CmdDirWidget.



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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/unixcmd/dirview.rb', line 13

def initialize
    super

    model = Gtk::ListStore.new String, String, String, String, String, String, Gdk::Pixbuf, Integer 
    @view = Gtk::TreeView.new model
    
    Gtk::VScrollbar.new @view.vadjustment

    @view.signal_connect('row-activated') { |view, path, column| open(path) }

    scrollwnd = Gtk::ScrolledWindow.new
    scrollwnd.set_policy Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC

    scrollwnd.add @view

    add_child Gtk::Builder.new, scrollwnd

    checker = Gtk::CellRendererToggle.new
    checker.signal_connect('toggled') { |s, path| iter = @view.model.get_iter(path); iter[7] = ~iter[7]; }

    @view.signal_connect('key-press-event') { |s, event| key_pressed(event) }

    cols = [ Gtk::TreeViewColumn.new('', checker, :active => 7 ),
             Gtk::TreeViewColumn.new('Name'),
             Gtk::TreeViewColumn.new('Ext',  Gtk::CellRendererText.new, :text => 2),
             Gtk::TreeViewColumn.new('Size', Gtk::CellRendererText.new, :text => 3),
             Gtk::TreeViewColumn.new('Date', Gtk::CellRendererText.new, :text => 4),
             Gtk::TreeViewColumn.new('Attr', Gtk::CellRendererText.new, :text => 5) ]

    renderer = Gtk::CellRendererPixbuf.new
    cols[1].pack_start renderer, false
    cols[1].add_attribute renderer, 'pixbuf', 6

    renderer = Gtk::CellRendererText.new
    cols[1].pack_start renderer, false
    cols[1].add_attribute renderer, 'text', 1

    (1..cols.count).each do |i|
        cols[i-1].sort_column_id = i
    end

    cols.drop(2).each { |col| col.expand = false }
    cols[0].expand = false 
    cols[1].expand = true

    cols.each { |col| @view.append_column col }

    @view.selection.mode = Gtk::SELECTION_MULTIPLE

    model.set_sort_column_id 2

    self.focus_chain = [ @view ]

    grab_focus

    chdir Pathname.new '~'
end