class Rabbit::SearchWindow
Attributes
Public Class Methods
Source
# File lib/rabbit/search-window.rb, line 9 def initialize(canvas) @canvas = canvas @searcher = Searcher.new(canvas) init_window end
Public Instance Methods
Source
# File lib/rabbit/search-window.rb, line 20 def destroy send_focus_change(false) @window.destroy end
Source
# File lib/rabbit/search-window.rb, line 33 def empty? /\A\s*\z/ =~ @entry.text end
Source
# File lib/rabbit/search-window.rb, line 25 def forward=(forward) @direction.active = forward end
Source
# File lib/rabbit/search-window.rb, line 37 def regexp @searcher.regexp(@entry.text) end
Source
# File lib/rabbit/search-window.rb, line 15 def show send_focus_change(true) @window.show end
Private Instance Methods
Source
# File lib/rabbit/search-window.rb, line 58 def init_box @box = Gtk::Box.new(:horizontal) @box.border_width = 3 @box.show @frame.add(@box) end
Source
# File lib/rabbit/search-window.rb, line 71 def init_direction @direction = Gtk::ToggleButton.new @arrow = Gtk::Arrow.new(:left, :none) @arrow.show @direction.add(@arrow) @direction.can_focus = false @direction.show @box.add(@direction) @direction.signal_connect("toggled") do |button| if forward? type = :right else type = :left end @arrow.set(type, :none) end @direction.active = true end
Source
# File lib/rabbit/search-window.rb, line 65 def init_entry @entry = Gtk::Entry.new @entry.show @box.add(@entry) end
Source
# File lib/rabbit/search-window.rb, line 51 def init_frame @frame = Gtk::Frame.new @frame.shadow_type = :etched_in @frame.show @window.add(@frame) end
Source
# File lib/rabbit/search-window.rb, line 42 def init_window @window = Gtk::Window.new(:popup) @window.modal = true init_frame init_box init_entry init_direction end
Source
# File lib/rabbit/search-window.rb, line 90 def send_focus_change(focus_in) @entry.has_focus = focus_in event = Gdk::EventFocus.new(:focus_change) event.window = @entry.window event.in = focus_in @entry.event(event) @entry.notify("has-focus") end