module Rabbit::Renderer::Display::Base
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::HookHandler::new
# File lib/rabbit/renderer/display/base.rb, line 11 def initialize(*args, &block) @drawable = nil @size = nil @size_dirty = true @default_size_ratio = nil @size_ratio = nil super end
Public Instance Methods
attach_to(window, container=nil)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 47 def attach_to(window, container=nil) @window = window @container = container || @window set_configure_event end
create_pango_context()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 81 def create_pango_context context = widget.create_pango_context set_font_resolution(context) context end
create_pango_layout(text)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 87 def create_pango_layout(text) layout = widget.create_pango_layout(text) set_font_resolution(layout.context) layout end
detach()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 54 def detach if !@window.destroyed? and @configure_signal_id @window.signal_handler_disconnect(@configure_signal_id) @configure_signal_id = nil end @window = nil @container = nil end
draw_slide(slide, simulation)
click to toggle source
Calls superclass method
# File lib/rabbit/renderer/display/base.rb, line 97 def draw_slide(slide, simulation) set_size_ratio(slide.size_ratio || @default_size_ratio) if simulation super else save_context do translate_context(@size.logical_margin_left, @size.logical_margin_top) super end unless @size.have_logical_margin? return end margin_background = make_color("black") if @size.have_logical_margin_x? draw_rectangle(true, 0, 0, @size.logical_margin_left, @size.real_height, margin_background) 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? draw_rectangle(true, 0, 0, @size.real_width, @size.logical_margin_top, margin_background) draw_rectangle(true, 0, @size.real_height - @size.logical_margin_bottom, @size.real_width, @size.logical_margin_bottom, margin_background) end end end
height()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 29 def height refresh_size if @size @size.logical_height else nil end end
make_layout(text)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 74 def make_layout(text) attrs, text = Pango.parse_markup(text) layout = create_pango_layout(text) layout.set_attributes(attrs) layout end
redraw()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 43 def redraw widget.queue_draw end
size()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 38 def size refresh_size @size end
toggle_blackout()
click to toggle source
Calls superclass method
Rabbit::Renderer::Base#toggle_blackout
# File lib/rabbit/renderer/display/base.rb, line 69 def toggle_blackout super update_menu end
toggle_whiteout()
click to toggle source
Calls superclass method
Rabbit::Renderer::Base#toggle_whiteout
# File lib/rabbit/renderer/display/base.rb, line 64 def toggle_whiteout super update_menu end
update_title()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 93 def update_title @canvas.update_title(@canvas.slide_title) end
width()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 20 def width refresh_size if @size @size.logical_width else nil end end
Private Instance Methods
configured(x, y, w, h)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 185 def configured(x, y, w, h) @size_dirty = true end
queue_draw()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 189 def queue_draw widget.queue_draw end
refresh_size()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 168 def refresh_size return unless @size_dirty @size = Size.new(@drawable.width, @drawable.height, @size.ratio) @size_dirty = false end
set_configure_event()
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 177 def set_configure_event id = @window.signal_connect("configure_event") do |widget, event| configured(event.x, event.y, event.width, event.height) false end @configure_signal_id = id end
set_drawable(drawable)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 146 def set_drawable(drawable) @drawable = drawable w = @drawable.width h = @drawable.height @default_size_ratio = w.to_f / h.to_f @size_ratio = @default_size_ratio set_size(w, h) end
set_size(w, h)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 155 def set_size(w, h) @size = Size.new(w, h, @size_ratio) end
set_size_ratio(ratio)
click to toggle source
# File lib/rabbit/renderer/display/base.rb, line 159 def set_size_ratio(ratio) return if @size.ratio == ratio w = @size.real_width h = @size.real_height @size_ratio = ratio @size = Size.new(w, h, @size_ratio) end