Class: Wx::SF::CrossBarProngArrow

Inherits:
ProngArrow show all
Defined in:
lib/wx/shapes/arrows/cross_bar_prong_arrow.rb

Overview

Class extends the Wx::ProngArrow class and encapsulates arrow shape consisting of single two lines bisecting before the end of the parent line shape with a crossbar at the intersection point.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from OpenArrow

#initialize

Methods inherited from LineArrow

#get_pen, #get_pen_width, #initialize, #set_parent_shape, #set_pen

Methods inherited from ArrowBase

#get_parent_shape, #initialize, #set_parent_shape, #translate_arrow

Constructor Details

This class inherits a constructor from Wx::SF::OpenArrow

Class Method Details

.arrow(ratio) ⇒ Object



14
15
16
17
# File 'lib/wx/shapes/arrows/cross_bar_prong_arrow.rb', line 14

def arrow(ratio)
  x = ratio*6; y = ratio*6
  [Wx::RealPoint.new(0,y), Wx::RealPoint.new(0, -y), Wx::RealPoint.new(0, 0)]
end

Instance Method Details

#draw(from, to, dc) ⇒ Wx::Point

Draw arrow shape at the end of a virtual line.

Parameters:

  • from (Wx::RealPoint)

    Start of the virtual line

  • to (Wx::RealPoint)

    End of the virtual line

  • dc (Wx::DC)

    Device context for drawing

Returns:

  • (Wx::Point)

    translated connection point for arrow



36
37
38
39
40
41
42
43
44
45
# File 'lib/wx/shapes/arrows/cross_bar_prong_arrow.rb', line 36

def draw(from, to, dc)
  to = super
  dc.with_pen(pen) do |dc|
    bar_from, bar_to, bar_mid = translate_arrow(line, from, to)
    dc.draw_line(bar_from, bar_to)
    dc.draw_line(bar_mid, to.to_point)
    to = bar_mid
  end
  to
end

#scaleObject (protected)



25
26
27
28
# File 'lib/wx/shapes/arrows/cross_bar_prong_arrow.rb', line 25

def scale
  @line = nil
  super
end