module Rabbit::Renderer::Display::DrawingAreaPrimitive
Attributes
filename[RW]
Public Class Methods
new(canvas)
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::Cursor.new
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 19 def initialize(canvas) super @filename = nil clear_compiled_slides init_drawing_area 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/display/drawing-area-primitive.rb, line 26 def attach_to(window, container=nil) init_gl(@area) super end
clear_slide()
click to toggle source
Calls superclass method
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 40 def clear_slide super clear_compiled_slide redraw end
detach()
click to toggle source
Calls superclass method
Rabbit::Renderer::Display::Base#detach
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 31 def detach finalize_gl super end
display?()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 105 def display? true end
index_mode_off()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 101 def index_mode_off restore_cursor(:index) end
index_mode_on()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 96 def index_mode_on keep_cursor(:index) update_cursor(nil, true) end
post_apply_theme()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 59 def post_apply_theme clear_compiled_slides queue_draw end
post_fullscreen()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 46 def post_fullscreen update_cursor(:blank, true) clear_compiled_slides end
post_iconify()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 56 def post_iconify end
post_move(old_index, index)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 64 def post_move(old_index, index) queue_draw end
post_move_in_slide(old_index, index)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 68 def post_move_in_slide(old_index, index) queue_draw end
post_parse()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 75 def post_parse clear_compiled_slides end
post_to_pixbuf(canceled)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 93 def post_to_pixbuf(canceled) end
post_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 82 def post_toggle_index_mode queue_draw end
post_unfullscreen()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 51 def post_unfullscreen update_cursor(nil, true) update_menu end
pre_parse()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 72 def pre_parse end
pre_to_pixbuf(slide_size)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 86 def pre_to_pixbuf(slide_size) end
pre_toggle_index_mode()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 79 def pre_toggle_index_mode end
to_pixbufing(i)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 89 def to_pixbufing(i) true end
widget()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 36 def widget @area end
Private Instance Methods
clear_compiled_slide(slide=nil)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 189 def clear_compiled_slide(slide=nil) @compiled_slides.delete(slide || @canvas.current_slide) end
clear_compiled_slides()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 193 def clear_compiled_slides @compiled_slides = {} end
compile_slide(slide)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 201 def compile_slide(slide) @compiled_slides[slide] = true slide.draw(@canvas, true) end
compiled_slide?(slide)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 197 def compiled_slide?(slide) @compiled_slides.has_key?(slide) end
configured_after(widget, event)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 179 def configured_after(widget, event) reload_theme if @drawable false end
depth()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 123 def depth @area.window.depth end
draw(widget, context)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 157 def draw(widget, context) draw_current_slide end
draw_current_slide()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 161 def draw_current_slide slide = @canvas.current_slide if slide begin compile_slide(slide) unless compiled_slide?(slide) slide.draw(@canvas, false) rescue @canvas.logger.warn($!) end end end
grab()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 206 def grab Gtk.grab_add(@area) Gdk.pointer_grab(@area.window, false, Gdk::EventMask::BUTTON_PRESS_MASK | Gdk::EventMask::BUTTON_RELEASE_MASK | Gdk::EventMask::SCROLL_MASK | Gdk::EventMask::POINTER_MOTION_MASK, nil, nil, Gdk::Event::CURRENT_TIME) end
init_dpi()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 110 def init_dpi @x_dpi = ScreenInfo.screen_x_resolution @y_dpi = ScreenInfo.screen_y_resolution end
init_drawing_area()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 115 def init_drawing_area @area = Gtk::DrawingArea.new @area.can_focus = true set_map set_draw set_configure_event_after end
mapped(widget)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 133 def mapped(widget) set_drawable(widget.window) prepare_renderer(@drawable) end
pointer()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 222 def pointer window, x, y, mask = @area.window.pointer [x, y, mask] end
reload_theme(&callback)
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 184 def reload_theme(&callback) callback ||= Utils.process_pending_events_proc @canvas.activate("ReloadTheme", &callback) end
set_configure_event_after()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 173 def set_configure_event_after @area.signal_connect_after("configure_event") do |widget, event| configured_after(widget, event) end end
set_draw()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 138 def set_draw stop_events = false if @area.class.signals.include?("draw") @area.signal_connect("draw") do |widget, context| init_context(context) draw(widget, context) finish_renderer stop_events end else @area.signal_connect("expose_event") do |widget, event| init_renderer(@drawable) draw(widget, @drawable.create_cairo_context) finish_renderer stop_events end end end
set_map()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 127 def set_map @area.signal_connect_after("map") do |widget| mapped(widget) end end
ungrab()
click to toggle source
# File lib/rabbit/renderer/display/drawing-area-primitive.rb, line 217 def ungrab Gtk.grab_remove(@area) Gdk.pointer_ungrab(Gdk::Event::CURRENT_TIME) end