class Rabbit::Renderer::Screen
Attributes
Public Class Methods
Source
# File lib/rabbit/renderer/screen.rb, line 74 def initialize(canvas) super @filename = nil init_ui end
Calls superclass method
Rabbit::Renderer::Display::KeyHandler::new
Public Instance Methods
Source
# File lib/rabbit/renderer/screen.rb, line 80 def attach_to(window, container=nil) super if container container.add(@fixed) else @window.child = @fixed end @fixed.show attach_key(@window) end
Calls superclass method
Rabbit::Renderer::Display::Base#attach_to
Source
# File lib/rabbit/renderer/screen.rb, line 101 def clear_slide super @slide_widget.clear_compiled_slide redraw end
Calls superclass method
Source
# File lib/rabbit/renderer/screen.rb, line 91 def detach detach_key(@window) @fixed.hide super end
Calls superclass method
Rabbit::Renderer::Display::Base#detach
Source
# File lib/rabbit/renderer/screen.rb, line 167 def display? true end
TODO: screen?
Source
# File lib/rabbit/renderer/screen.rb, line 171 def draw_slide(slide, simulation, &block) set_size_ratio(slide.size_ratio || @default_size_ratio) if simulation @slide_widget.draw_slide(slide, simulation, &block) else @slide_widget.save_context do @slide_widget.translate_context(@size.logical_margin_left, @size.logical_margin_top) @slide_widget.draw_slide(slide, simulation, &block) end unless @size.have_logical_margin? return end margin_background = @slide_widget.make_color("black") if @size.have_logical_margin_x? @slide_widget.draw_rectangle(true, 0, 0, @size.logical_margin_left, @size.real_height, margin_background) @slide_widget.draw_rectangle(true, @size.real_width - @size.logical_margin_right, 0, @size.logical_margin_right, @size.real_height, margin_background) end if @size.have_logical_margin_y? @slide_widget.draw_rectangle(true, 0, 0, @size.real_width, @size.logical_margin_top, margin_background) @slide_widget.draw_rectangle(true, 0, @size.real_height - @size.logical_margin_bottom, @size.real_width, @size.logical_margin_bottom, margin_background) end end end
Source
# File lib/rabbit/renderer/screen.rb, line 162 def index_mode_off restore_cursor(:index) end
Source
# File lib/rabbit/renderer/screen.rb, line 157 def index_mode_on keep_cursor(:index) update_cursor(nil, true) end
Source
# File lib/rabbit/renderer/screen.rb, line 120 def post_apply_theme @slide_widget.clear_compiled_slides queue_draw end
Source
# File lib/rabbit/renderer/screen.rb, line 107 def post_fullscreen update_cursor(:blank, true) @slide_widget.clear_compiled_slides end
Source
# File lib/rabbit/renderer/screen.rb, line 125 def post_move(old_index, index) queue_draw end
Source
# File lib/rabbit/renderer/screen.rb, line 129 def post_move_in_slide(old_index, index) queue_draw end
Source
# File lib/rabbit/renderer/screen.rb, line 136 def post_parse @slide_widget.clear_compiled_slides end
Source
# File lib/rabbit/renderer/screen.rb, line 154 def post_to_pixbuf(canceled) end
Source
# File lib/rabbit/renderer/screen.rb, line 143 def post_toggle_index_mode queue_draw end
Source
# File lib/rabbit/renderer/screen.rb, line 112 def post_unfullscreen update_cursor(nil, true) update_menu end
Source
# File lib/rabbit/renderer/screen.rb, line 147 def pre_to_pixbuf(slide_size) end
Source
# File lib/rabbit/renderer/screen.rb, line 140 def pre_toggle_index_mode end
Private Instance Methods
Source
# File lib/rabbit/renderer/screen.rb, line 264 def grab @fixed.grab_add Gdk.pointer_grab(@fixed.window, false, Gdk::EventMask::BUTTON_PRESS_MASK | Gdk::EventMask::BUTTON_RELEASE_MASK | Gdk::EventMask::SCROLL_MASK | Gdk::EventMask::POINTER_MOTION_MASK, nil, nil, Gdk::CURRENT_TIME) end
Source
# File lib/rabbit/renderer/screen.rb, line 220 def init_ui @fixed = Gtk::Fixed.new @fixed.can_focus = true set_map set_size_allocate set_key_press_event(@fixed) @slide_widget = Widget::DrawingArea.new(@canvas) @slide_widget.raw.show @fixed.put(@slide_widget.raw, 0, 0) end
Source
# File lib/rabbit/renderer/screen.rb, line 243 def mapped(widget) allocation = widget.allocation set_default_size(allocation.width, allocation.height) end
Source
# File lib/rabbit/renderer/screen.rb, line 280 def pointer window, x, y, mask = @fixed.window.pointer [x, y, mask] end
Source
# File lib/rabbit/renderer/screen.rb, line 259 def reload_theme(&callback) callback ||= Utils.process_pending_events_proc @canvas.activate("ReloadTheme", &callback) end
Source
# File lib/rabbit/renderer/screen.rb, line 237 def set_map @fixed.signal_connect_after(:map) do |widget| mapped(widget) end end
Source
# File lib/rabbit/renderer/screen.rb, line 249 def set_size_allocate @fixed.signal_connect(:size_allocate) do |widget, allocation| w = allocation.width h = allocation.height @slide_widget.raw.allocation = allocation update_size(w, h) reload_theme end end
Source
# File lib/rabbit/renderer/screen.rb, line 275 def ungrab @fixed.grab_remove Gdk.pointer_ungrab(Gdk::CURRENT_TIME) end