module Rabbit::Renderer::Display::Base
Public Class Methods
Source
# File lib/rabbit/renderer/display/base.rb, line 25 def initialize(*args, &block) @surface = nil @size = nil @size_dirty = true super end
Calls superclass method
Rabbit::Renderer::Display::HookHandler::new
Public Instance Methods
Source
# File lib/rabbit/renderer/display/base.rb, line 67 def attach_to(window, container=nil) @window = window @container = container || @window end
Source
# File lib/rabbit/renderer/display/base.rb, line 94 def create_pango_context context = widget.create_pango_context set_font_resolution(context) context end
Source
# File lib/rabbit/renderer/display/base.rb, line 100 def create_pango_layout(text) layout = widget.create_pango_layout(text) set_font_resolution(layout.context) layout end
Source
# File lib/rabbit/renderer/display/base.rb, line 72 def detach @window = nil @container = nil end
Source
# File lib/rabbit/renderer/display/base.rb, line 110 def draw_slide(slide, simulation) set_size_ratio(slide.size_ratio) if simulation super else save_context do scale_context(*@size.logical_scale) translate_context(@size.logical_margin_left, @size.logical_margin_top) super end unless @size.have_logical_margin? return end margin_background = make_color("black") save_context do scale_context(*@size.logical_scale) if @size.have_logical_margin_x? draw_rectangle(true, 0, 0, @size.logical_margin_left, @size.logical_height, margin_background) draw_rectangle(true, @size.logical_margin_left + @size.logical_width, 0, @size.logical_margin_right, @size.logical_height, margin_background) end if @size.have_logical_margin_y? draw_rectangle(true, 0, 0, @size.logical_width, @size.logical_margin_top, margin_background) draw_rectangle(true, 0, @size.logical_margin_top + @size.logical_height, @size.logical_width, @size.logical_margin_bottom, margin_background) end end end end
Calls superclass method
Source
# File lib/rabbit/renderer/display/base.rb, line 41 def height refresh_size if @size @size.logical_height else nil end end
Source
# File lib/rabbit/renderer/display/base.rb, line 87 def make_layout(text) attrs, text = Pango.parse_markup(text) layout = create_pango_layout(text) layout.set_attributes(attrs) layout end
Source
# File lib/rabbit/renderer/display/base.rb, line 63 def redraw widget.queue_draw end
Source
# File lib/rabbit/renderer/display/base.rb, line 82 def toggle_blackout super update_menu end
Calls superclass method
Source
# File lib/rabbit/renderer/display/base.rb, line 77 def toggle_whiteout super update_menu end
Calls superclass method
Source
# File lib/rabbit/renderer/display/base.rb, line 55 def update_size(w, h) return if @real_width == w and @real_height == h @real_width = w @real_height = h @size_dirty = true end
Source
# File lib/rabbit/renderer/display/base.rb, line 106 def update_title @canvas.update_title(@canvas.slide_title) end
Source
# File lib/rabbit/renderer/display/base.rb, line 32 def width refresh_size if @size @size.logical_width else nil end end
Private Instance Methods
Source
# File lib/rabbit/renderer/display/base.rb, line 198 def queue_draw widget.queue_draw end
Source
# File lib/rabbit/renderer/display/base.rb, line 192 def refresh_size return unless @size_dirty set_size(@real_width, @real_height, @size.ratio) @size_dirty = false end
Source
# File lib/rabbit/renderer/display/base.rb, line 168 def set_default_size(w, h) @real_width = w @real_height = h ratio = @base_width.to_f / @base_height.to_f set_size(w, h, ratio) end
Source
# File lib/rabbit/renderer/display/base.rb, line 175 def set_size(w, h, ratio) @size = Size.new(@base_width, @base_height, w, h, ratio) end
Source
# File lib/rabbit/renderer/display/base.rb, line 183 def set_size_ratio(ratio) ratio ||= @base_width.to_f / @base_height.to_f return if @size.ratio == ratio w = @size.real_width h = @size.real_height set_size(w, h, ratio) end
Source
# File lib/rabbit/renderer/display/base.rb, line 163 def set_surface(surface) @surface = surface set_default_size(@surface.width, @surface.height) end