class Rabbit::Renderer::Screen
Attributes
filename[RW]
Public Class Methods
new(canvas)
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::KeyHandler::new
# File lib/rabbit/renderer/screen.rb, line 75 def initialize(canvas) super @filename = nil init_ui end
Public Instance Methods
attach_to(window, container=nil)
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::Base#attach_to
# File lib/rabbit/renderer/screen.rb, line 81 def attach_to(window, container=nil) super @window.add(@fixed) @fixed.show attach_key(@window) end
clear_slide()
click to toggle source
Calls superclass method
# File lib/rabbit/renderer/screen.rb, line 98 def clear_slide super @slide_widget.clear_compiled_slide redraw end
detach()
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::Base#detach
# File lib/rabbit/renderer/screen.rb, line 88 def detach detach_key(@window) @fixed.hide super end
display?()
click to toggle source
TODO: screen?
# File lib/rabbit/renderer/screen.rb, line 164 def display? true end
draw_slide(slide, simulation, &block)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 168 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
index_mode_off()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 159 def index_mode_off restore_cursor(:index) end
index_mode_on()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 154 def index_mode_on keep_cursor(:index) update_cursor(nil, true) end
post_apply_theme()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 117 def post_apply_theme @slide_widget.clear_compiled_slides queue_draw end
post_fullscreen()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 104 def post_fullscreen update_cursor(:blank, true) @slide_widget.clear_compiled_slides end
post_iconify()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 114 def post_iconify end
post_move(old_index, index)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 122 def post_move(old_index, index) queue_draw end
post_move_in_slide(old_index, index)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 126 def post_move_in_slide(old_index, index) queue_draw end
post_parse()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 133 def post_parse @slide_widget.clear_compiled_slides end
post_to_pixbuf(canceled)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 151 def post_to_pixbuf(canceled) end
post_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 140 def post_toggle_index_mode queue_draw end
post_unfullscreen()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 109 def post_unfullscreen update_cursor(nil, true) update_menu end
pre_parse()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 130 def pre_parse end
pre_to_pixbuf(slide_size)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 144 def pre_to_pixbuf(slide_size) end
pre_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 137 def pre_toggle_index_mode end
to_pixbufing(i)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 147 def to_pixbufing(i) true end
widget()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 94 def widget @fixed end
Private Instance Methods
depth()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 235 def depth @fixed.window.depth end
grab()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 266 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
init_dpi()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 217 def init_dpi @x_dpi = ScreenInfo.screen_x_resolution @y_dpi = ScreenInfo.screen_y_resolution end
init_ui()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 222 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
mapped(widget)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 245 def mapped(widget) allocation = widget.allocation set_default_size(allocation.width, allocation.height) end
pointer()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 282 def pointer window, x, y, mask = @fixed.window.pointer [x, y, mask] end
reload_theme(&callback)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 261 def reload_theme(&callback) callback ||= Utils.process_pending_events_proc @canvas.activate("ReloadTheme", &callback) end
set_map()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 239 def set_map @fixed.signal_connect_after(:map) do |widget| mapped(widget) end end
set_size_allocate()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 251 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
ungrab()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 277 def ungrab @fixed.grab_remove Gdk.pointer_ungrab(Gdk::CURRENT_TIME) end