class Glimmer::Gtk::WidgetProxy::DrawingAreaProxy

Proxy for Gtk drawing area objects

Follows the Proxy Design Pattern

Attributes

shapes[R]

Public Class Methods

new(keyword, parent, args, &block) click to toggle source
Calls superclass method Glimmer::Gtk::WidgetProxy::new
# File lib/glimmer/gtk/widget_proxy/drawing_area_proxy.rb, line 73
def initialize(keyword, parent, args, &block)
  @shapes = []
  super
end

Public Instance Methods

paint(*args) click to toggle source
# File lib/glimmer/gtk/widget_proxy/drawing_area_proxy.rb, line 103
def paint(*args)
  @paint = args
end
post_add_content() click to toggle source
# File lib/glimmer/gtk/widget_proxy/drawing_area_proxy.rb, line 78
def post_add_content
  super
  @gtk.signal_connect(:draw) do |drawing_area_widget, cairo_context|
    if @paint
      previous_matrix = cairo_context.matrix
      apply_transforms(cairo_context, target: :drawing_area)
      Shape.set_source_dynamically(cairo_context, @paint)
      cairo_context.paint
      cairo_context.set_matrix(previous_matrix)
    end
    
    shapes.each do |shape|
      shape.draw(drawing_area_widget, cairo_context)
    end
  end
end
post_initialize_child(child) click to toggle source
# File lib/glimmer/gtk/widget_proxy/drawing_area_proxy.rb, line 95
def post_initialize_child(child)
  if child.is_a?(Glimmer::Gtk::Shape)
    shapes << child
  else
    super
  end
end