Class: Ektoplayer::Controllers::Browser

Inherits:
Controller
  • Object
show all
Defined in:
lib/ektoplayer/controllers/browser.rb

Instance Method Summary collapse

Constructor Details

#initialize(view, browser, view_operations, operations) ⇒ Browser

Returns a new instance of Browser.



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
46
47
48
49
50
51
52
# File 'lib/ektoplayer/controllers/browser.rb', line 8

def initialize(view, browser, view_operations, operations)
   super(view)
   view.attach(browser)

   register = view_operations.with_register('browser.')

   %w(up down page_up page_down top bottom
      search_up search_down search_next search_prev toggle_selection).
      each { |op| register.(op, &view.method(op)) }

   register.(:enter) do
      selection = view.get_selection

      operations.send(:'browser.enter', selection[0])

      if selection.size > 1
         selection[1..-1].each do |index|
            operations.send(:'browser.add_to_playlist', index)
         end
      end
   end

   register.(:add_to_playlist) do
      view.get_selection.each do |index|
         operations.send(:'browser.add_to_playlist', index)
      end
   end

   view.mouse.on(65536)   do view.up(5)   end
   view.mouse.on(2097152) do view.down(5) end

   [ICurses::BUTTON1_DOUBLE_CLICKED, ICurses::BUTTON3_CLICKED].each do |btn|
      view.mouse.on(btn) do |mevent|
         view.select_from_cursorpos(mevent.y)
         view_operations.send(:'browser.enter')
      end
   end

   [ICurses::BUTTON1_CLICKED, ICurses::BUTTON2_CLICKED].
      each do |button|
      view.mouse.on(button) do |mevent|
         view.select_from_cursorpos(mevent.y)
      end
   end
end