Method: CmdDirWidget#initialize
- Defined in:
- lib/unixcmd/dirview.rb
#initialize ⇒ CmdDirWidget
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::.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. = false } cols[0]. = false cols[1]. = 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 |