Class: Redcar::ClipboardViewer::ClipboardBar

Inherits:
Speedbar show all
Includes:
Observable
Defined in:
plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb

Constant Summary

Constant Summary

Constants included from Observable

Observable::ASPECTS

Constants inherited from Speedbar

Speedbar::ButtonItem, Speedbar::ComboItem, Speedbar::KeyItem, Speedbar::LabelItem, Speedbar::SliderItem, Speedbar::TextBoxItem, Speedbar::ToggleItem

Instance Attribute Summary

Attributes included from Model

#controller

Instance Method Summary (collapse)

Methods included from Observable

#add_listener, #notify_listeners, #remove_listener

Methods inherited from Speedbar

#__get_item, #__get_item_by_label, #__get_item_by_text_or_name, #__items, append_item, button, close_image_path, combo, define_item_finder, #inspect, items, key, label, slider, textbox, toggle

Methods included from ReentryHelpers

#ignore, #ignore_changes

Constructor Details

- (ClipboardBar) initialize

A new instance of ClipboardBar



6
7
8
9
10
11
# File 'plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb', line 6

def initialize
  @size = ClipboardViewer.storage['chars_to_display'].to_i
  @line_limit = ClipboardViewer.storage['lines_to_display'].to_i
  load_list
  @listener = Redcar.app.clipboard.add_listener(:added) {|t|load_list}
end

Instance Method Details

- (Object) close



13
14
15
# File 'plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb', line 13

def close
  Redcar.app.clipboard.remove_listener(@listener)
end

- (Object) display_values(list)



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb', line 46

def display_values(list)
  display = list.to_a.reverse.map do |l|
    value = ""
    r=0
    l.to_s.each_line do |line|
      value << line  if r <= @line_limit - 1
      value << "..." if r == @line_limit
      r+=1
      break if r > @line_limit - 1
    end
    value = value[0,value.length-1] if value =~ /\n$/
    if value.length > @size
      value[0,@size]+"..."
    else
      value
    end
  end
  display || []
end

- (Object) load_list



17
18
19
20
21
22
23
24
25
26
27
# File 'plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb', line 17

def load_list
  @list = Redcar.app.clipboard || []
  values = display_values(@list)
  if values.length > 0
    clip_list.items = values
    clip_list.value = values.first
  else
    clip_list.items = [" "*(@size+5)]
    clip_list.value = clip_list.items.first
  end
end