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 74 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 80 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 97 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 87 def detach detach_key(@window) @fixed.hide super end
display?()
click to toggle source
TODO: screen?
# File lib/rabbit/renderer/screen.rb, line 163 def display? true end
draw_slide(slide, simulation, &block)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 167 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 158 def index_mode_off restore_cursor(:index) end
index_mode_on()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 153 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 116 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 103 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 113 def post_iconify end
post_move(old_index, index)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 121 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 125 def post_move_in_slide(old_index, index) queue_draw end
post_parse()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 132 def post_parse @slide_widget.clear_compiled_slides end
post_to_pixbuf(canceled)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 150 def post_to_pixbuf(canceled) end
post_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 139 def post_toggle_index_mode queue_draw end
post_unfullscreen()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 108 def post_unfullscreen update_cursor(nil, true) update_menu end
pre_parse()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 129 def pre_parse end
pre_to_pixbuf(slide_size)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 143 def pre_to_pixbuf(slide_size) end
pre_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 136 def pre_toggle_index_mode end
to_pixbufing(i)
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 146 def to_pixbufing(i) true end
widget()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 93 def widget @fixed end
Private Instance Methods
depth()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 234 def depth @fixed.window.depth end
grab()
click to toggle source
# File lib/rabbit/renderer/screen.rb, line 265 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 216 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 221 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 244 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 281 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 260 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 238 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 250 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 276 def ungrab @fixed.grab_remove Gdk.pointer_ungrab(Gdk::CURRENT_TIME) end