class Rabbit::Renderer::Screen

Attributes

filename[RW]

Public Class Methods

new(canvas) click to toggle source
# 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
# 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