wxruby3-shapes 0.9.0.pre.beta.3 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/INSTALL.md +5 -7
- data/README.md +38 -6
- data/assets/logo.svg +339 -0
- data/assets/logo.xpm +60 -0
- data/assets/screenshot.png +0 -0
- data/assets/social.png +0 -0
- data/bin/wx-shapes +1 -1
- data/lib/wx/shapes/arrow_base.rb +4 -11
- data/lib/wx/shapes/arrows/circle_arrow.rb +22 -11
- data/lib/wx/shapes/arrows/circle_prong_arrow.rb +48 -0
- data/lib/wx/shapes/arrows/cross_bar_arrow.rb +57 -0
- data/lib/wx/shapes/arrows/cross_bar_circle_arrow.rb +56 -0
- data/lib/wx/shapes/arrows/cross_bar_prong_arrow.rb +49 -0
- data/lib/wx/shapes/arrows/crossed_circle.rb +46 -0
- data/lib/wx/shapes/arrows/cup_arrow.rb +65 -0
- data/lib/wx/shapes/arrows/diamond_arrow.rb +8 -13
- data/lib/wx/shapes/arrows/double_cross_bar_arrow.rb +27 -0
- data/lib/wx/shapes/arrows/filled_arrow.rb +60 -0
- data/lib/wx/shapes/arrows/line_arrow.rb +67 -0
- data/lib/wx/shapes/arrows/open_arrow.rb +22 -23
- data/lib/wx/shapes/arrows/prong_arrow.rb +42 -0
- data/lib/wx/shapes/arrows/solid_arrow.rb +21 -35
- data/lib/wx/shapes/arrows/square_arrow.rb +37 -0
- data/lib/wx/shapes/auto_layout.rb +2 -2
- data/lib/wx/shapes/base.rb +1 -1
- data/lib/wx/shapes/canvas_history.rb +20 -0
- data/lib/wx/shapes/connection_point.rb +10 -6
- data/lib/wx/shapes/diagram.rb +98 -78
- data/lib/wx/shapes/events.rb +8 -8
- data/lib/wx/shapes/printout.rb +3 -16
- data/lib/wx/shapes/serializable.rb +2 -436
- data/lib/wx/shapes/serialize/wx.rb +30 -18
- data/lib/wx/shapes/shape.rb +211 -168
- data/lib/wx/shapes/shape_canvas.rb +728 -267
- data/lib/wx/shapes/shape_data_object.rb +99 -18
- data/lib/wx/shapes/shape_handle.rb +18 -11
- data/lib/wx/shapes/shape_list.rb +34 -67
- data/lib/wx/shapes/shapes/bitmap_shape.rb +23 -24
- data/lib/wx/shapes/shapes/box_shape.rb +389 -0
- data/lib/wx/shapes/shapes/circle_shape.rb +19 -22
- data/lib/wx/shapes/shapes/control_shape.rb +77 -41
- data/lib/wx/shapes/shapes/curve_shape.rb +38 -31
- data/lib/wx/shapes/shapes/diamond_shape.rb +7 -17
- data/lib/wx/shapes/shapes/edit_text_shape.rb +6 -9
- data/lib/wx/shapes/shapes/ellipse_shape.rb +12 -15
- data/lib/wx/shapes/shapes/flex_grid_shape.rb +58 -33
- data/lib/wx/shapes/shapes/grid_shape.rb +259 -161
- data/lib/wx/shapes/shapes/line_shape.rb +155 -161
- data/lib/wx/shapes/shapes/manager_shape.rb +77 -0
- data/lib/wx/shapes/shapes/multi_sel_rect.rb +8 -8
- data/lib/wx/shapes/shapes/ortho_shape.rb +31 -36
- data/lib/wx/shapes/shapes/polygon_shape.rb +23 -29
- data/lib/wx/shapes/shapes/rect_shape.rb +95 -53
- data/lib/wx/shapes/shapes/round_ortho_shape.rb +6 -8
- data/lib/wx/shapes/shapes/round_rect_shape.rb +20 -24
- data/lib/wx/shapes/shapes/square_shape.rb +14 -17
- data/lib/wx/shapes/shapes/text_shape.rb +95 -53
- data/lib/wx/shapes/version.rb +1 -1
- data/lib/wx/shapes/wx.rb +16 -7
- data/lib/wx/wx-shapes/cmd/test.rb +1 -1
- data/samples/demo/arrows.json +1 -0
- data/samples/demo/arrows.yaml +793 -0
- data/samples/demo/art/HBox.xpm +22 -0
- data/samples/demo/art/VBox.xpm +22 -0
- data/samples/demo/art/logo.xpm +60 -0
- data/samples/demo/class.json +1 -0
- data/samples/demo/class.yaml +5631 -0
- data/samples/demo/demo.rb +301 -91
- data/samples/demo/dialogs.rb +1405 -0
- data/samples/demo/erd.json +1 -0
- data/samples/demo/erd.yaml +4072 -0
- data/samples/demo/frame_canvas.rb +409 -33
- data/samples/sample1/art/logo.xpm +60 -0
- data/samples/sample1/sample.rb +11 -11
- data/samples/sample2/art/logo.xpm +60 -0
- data/samples/sample2/sample.rb +2 -2
- data/samples/sample2/sample_shape.rb +15 -15
- data/samples/sample3/art/logo.xpm +60 -0
- data/samples/sample3/sample.rb +3 -3
- data/samples/sample4/art/logo.xpm +60 -0
- data/samples/sample4/sample.rb +2 -2
- data/tests/lib/wxapp_runner.rb +4 -0
- data/tests/serializer_tests.rb +8 -441
- data/tests/test_grid_shapes.rb +2 -2
- data/tests/test_serialize_xml.rb +17 -0
- data/tests/test_serialize_yaml.rb +2 -2
- metadata +78 -28
- data/lib/wx/shapes/serialize/core.rb +0 -40
- data/lib/wx/shapes/serialize/id.rb +0 -82
- data/lib/wx/shapes/serializer/json.rb +0 -258
- data/lib/wx/shapes/serializer/yaml.rb +0 -125
- data/samples/demo/art/sample.xpm +0 -251
- data/samples/sample1/art/sample.xpm +0 -251
- data/samples/sample2/art/sample.xpm +0 -251
- data/samples/sample3/art/sample.xpm +0 -251
- data/samples/sample4/art/sample.xpm +0 -251
@@ -6,26 +6,22 @@ module Wx::SF
|
|
6
6
|
# Class encapsulating rounded rectangle. It extends the basic rectangular shape.
|
7
7
|
class RoundRectShape < RectShape
|
8
8
|
|
9
|
-
|
9
|
+
# Default values
|
10
|
+
module DEFAULT
|
11
|
+
# Default corner radius
|
12
|
+
RADIUS = 20
|
13
|
+
end
|
10
14
|
|
11
15
|
property :radius
|
12
16
|
|
13
|
-
#
|
14
|
-
#
|
15
|
-
# @
|
16
|
-
#
|
17
|
-
#
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def initialize(*args)
|
22
|
-
if args.empty?
|
23
|
-
super
|
24
|
-
@radius = RADIUS
|
25
|
-
else
|
26
|
-
pos, size, @radius, diagram = args
|
27
|
-
super(pos, size, diagram)
|
28
|
-
end
|
17
|
+
# Constructor.
|
18
|
+
# @param [Wx::RealPoint,Wx::Point] pos Initial position
|
19
|
+
# @param [Wx::RealPoint,Wx::Size,Wx::Point] size Initial size
|
20
|
+
# @param [Float] radius Corner radius
|
21
|
+
# @param [Wx::SF::Diagram] diagram parent diagram
|
22
|
+
def initialize(pos = Shape::DEFAULT::POSITION, size = RectShape::DEFAULT::SIZE, radius: DEFAULT::RADIUS, diagram: nil)
|
23
|
+
super(pos, size, diagram: diagram)
|
24
|
+
@radius = radius
|
29
25
|
end
|
30
26
|
|
31
27
|
# Access (get/set) radius.
|
@@ -73,8 +69,8 @@ module Wx::SF
|
|
73
69
|
super
|
74
70
|
return
|
75
71
|
end
|
76
|
-
dc.with_pen(
|
77
|
-
dc.with_brush(
|
72
|
+
dc.with_pen(border) do
|
73
|
+
dc.with_brush(fill) do
|
78
74
|
dc.draw_rounded_rectangle(get_absolute_position.to_point, @rect_size.to_size, @radius)
|
79
75
|
end
|
80
76
|
end
|
@@ -88,8 +84,8 @@ module Wx::SF
|
|
88
84
|
super
|
89
85
|
return
|
90
86
|
end
|
91
|
-
dc.with_pen(Wx::Pen.new(
|
92
|
-
dc.with_brush(
|
87
|
+
dc.with_pen(Wx::Pen.new(hover_colour, 1)) do
|
88
|
+
dc.with_brush(fill) do
|
93
89
|
dc.draw_rounded_rectangle(get_absolute_position.to_point, @rect_size.to_size, @radius)
|
94
90
|
end
|
95
91
|
end
|
@@ -104,8 +100,8 @@ module Wx::SF
|
|
104
100
|
super
|
105
101
|
return
|
106
102
|
end
|
107
|
-
dc.with_pen(Wx::Pen.new(
|
108
|
-
dc.with_brush(
|
103
|
+
dc.with_pen(Wx::Pen.new(hover_colour, 2)) do
|
104
|
+
dc.with_brush(fill) do
|
109
105
|
dc.draw_rounded_rectangle(get_absolute_position.to_point, @rect_size.to_size, @radius)
|
110
106
|
end
|
111
107
|
end
|
@@ -118,7 +114,7 @@ module Wx::SF
|
|
118
114
|
super
|
119
115
|
return
|
120
116
|
end
|
121
|
-
if
|
117
|
+
if fill.style != Wx::BrushStyle::BRUSHSTYLE_TRANSPARENT
|
122
118
|
dc.with_pen(Wx::TRANSPARENT_PEN) do
|
123
119
|
dc.with_brush(get_parent_canvas.get_shadow_fill) do
|
124
120
|
dc.draw_rounded_rectangle((get_absolute_position + get_parent_canvas.get_shadow_offset).to_point,
|
@@ -7,22 +7,19 @@ module Wx::SF
|
|
7
7
|
|
8
8
|
class SquareShape < RectShape
|
9
9
|
|
10
|
+
# Default values
|
11
|
+
module DEFAULT
|
12
|
+
# Default square size
|
13
|
+
SIZE = 100.0
|
14
|
+
end
|
10
15
|
|
11
|
-
|
12
|
-
#
|
13
|
-
# @
|
14
|
-
#
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
def initialize(*args)
|
19
|
-
if args.empty?
|
20
|
-
super
|
21
|
-
set_rect_size(100,100)
|
22
|
-
else
|
23
|
-
pos, sz, diagram = args
|
24
|
-
super(pos, Wx::RealPoint.new(sz, sz), diagram)
|
25
|
-
end
|
16
|
+
|
17
|
+
# Constructor.
|
18
|
+
# @param [Wx::RealPoint,Wx::Point] pos Initial position
|
19
|
+
# @param [Float] size Initial size
|
20
|
+
# @param [Wx::SF::Diagram] diagram parent diagram
|
21
|
+
def initialize(pos = Shape::DEFAULT::POSITION, size = DEFAULT::SIZE, diagram: nil)
|
22
|
+
super(pos, Wx::RealPoint.new(size, size), diagram: diagram)
|
26
23
|
end
|
27
24
|
|
28
25
|
# Get shape's center. Default implementation does nothing. The function can be overridden if necessary.
|
@@ -56,7 +53,7 @@ module Wx::SF
|
|
56
53
|
# @param [Shape::Handle] handle Reference to dragged handle
|
57
54
|
# @see #on_handle
|
58
55
|
def do_on_handle(handle)
|
59
|
-
|
56
|
+
prev_x, prev_y = @rect_size
|
60
57
|
|
61
58
|
# perform standard operations
|
62
59
|
case handle.type
|
@@ -75,7 +72,7 @@ module Wx::SF
|
|
75
72
|
end
|
76
73
|
|
77
74
|
# calculate common size and some auxiliary values
|
78
|
-
if (
|
75
|
+
if (prev_x < @rect_size.x) || (prev_y < @rect_size.y)
|
79
76
|
if @rect_size.x >= @rect_size.y
|
80
77
|
maxsize = @rect_size.x
|
81
78
|
else
|
@@ -9,50 +9,61 @@ module Wx::SF
|
|
9
9
|
|
10
10
|
# default values
|
11
11
|
module DEFAULT
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
class << self
|
13
|
+
# Default value of TextShape @font data member.
|
14
|
+
def font; begin; @font = Wx::SWISS_FONT.dup; @font.point_size = 12; end unless @font; @font; end
|
15
|
+
# Default value of TextShape @text_color data member.
|
16
|
+
def text_color; @txtclr ||= Wx::BLACK.dup; end
|
17
|
+
# Standard value of TextShape @fill data member
|
18
|
+
def text_fill; @text_fill ||= Wx::TRANSPARENT_BRUSH.dup; end
|
19
|
+
# Standard value of TextShape @border data member
|
20
|
+
def text_border; @text_border ||= Wx::TRANSPARENT_PEN.dup; end
|
21
|
+
end
|
22
|
+
TEXT = 'Text'
|
18
23
|
end
|
19
24
|
|
20
|
-
property :
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
super
|
33
|
-
else
|
34
|
-
pos, txt, diagram = args
|
35
|
-
super(pos, Wx::RealPoint.new, diagram)
|
36
|
-
end
|
37
|
-
@font = DEFAULT::FONT
|
38
|
-
@font.set_point_size(12)
|
25
|
+
property :text
|
26
|
+
property({ text_colour: :serialize_text_colour,
|
27
|
+
font: :serialize_text_font }, optional: true)
|
28
|
+
|
29
|
+
# Constructor.
|
30
|
+
# @param [Wx::RealPoint,Wx::Point] pos Initial position
|
31
|
+
# @param [String] txt Text content
|
32
|
+
# @param [Wx::SF::Diagram] diagram parent diagram
|
33
|
+
def initialize(pos = Shape::DEFAULT::POSITION, txt = DEFAULT::TEXT, diagram: nil)
|
34
|
+
super(pos, Wx::RealPoint.new, diagram: diagram)
|
35
|
+
@font = nil
|
36
|
+
@scaled_font = nil
|
39
37
|
|
40
38
|
@line_height = 12
|
41
39
|
|
42
|
-
@text_color =
|
43
|
-
@text = txt
|
40
|
+
@text_color = nil
|
41
|
+
@text = txt
|
44
42
|
|
45
|
-
@fill = Wx::TRANSPARENT_BRUSH
|
46
|
-
@border = Wx::TRANSPARENT_PEN
|
47
43
|
@rect_size = Wx::RealPoint.new
|
48
44
|
|
49
45
|
update_rect_size
|
50
46
|
end
|
51
47
|
|
52
48
|
# Set text font.
|
53
|
-
# @
|
54
|
-
|
55
|
-
|
49
|
+
# @overload set_text_font(font)
|
50
|
+
# @param [Wx::Font] font
|
51
|
+
# @overload set_text_font(font_info)
|
52
|
+
# @param [Wx::FontInfo] font_info
|
53
|
+
# @overload set_text_font(pointSize, family, style, weight, underline=false, faceName=(''), encoding=Wx::FontEncoding::FONTENCODING_DEFAULT)
|
54
|
+
# @param pointSize [Integer] Size in points. See {Wx::Font#initialize}.
|
55
|
+
# @param family [Wx::FontFamily] The font family. See {Wx::Font#initialize}.
|
56
|
+
# @param style [Wx::FontStyle] One of {Wx::FontStyle::FONTSTYLE_NORMAL}, {Wx::FontStyle::FONTSTYLE_SLANT} and {Wx::FontStyle::FONTSTYLE_ITALIC}. See {Wx::Font#initialize}.
|
57
|
+
# @param weight [Wx::FontWeight] Font weight. One of the {Wx::FontWeight} enumeration values. See {Wx::Font#initialize}.
|
58
|
+
# @param underline [Boolean] The value can be true or false. See {Wx::Font#initialize}.
|
59
|
+
# @param faceName [String] An optional string specifying the face name to be used. See {Wx::Font#initialize}.
|
60
|
+
# @param encoding [Wx::FontEncoding] An encoding which may be one of the enumeration values of {Wx::FontEncoding}. See {Wx::Font#initialize}.
|
61
|
+
def set_font(*args)
|
62
|
+
@font = if args.size == 1 && Wx::Font === args.first
|
63
|
+
args.first
|
64
|
+
else
|
65
|
+
Wx::Font.new(*args)
|
66
|
+
end
|
56
67
|
update_rect_size
|
57
68
|
end
|
58
69
|
alias :font= :set_font
|
@@ -60,7 +71,7 @@ module Wx::SF
|
|
60
71
|
# Get text font.
|
61
72
|
# @return [Wx::Font] Font
|
62
73
|
def get_font
|
63
|
-
@font
|
74
|
+
@font || (@diagram&.shape_canvas ? @diagram.shape_canvas.text_font : DEFAULT.font)
|
64
75
|
end
|
65
76
|
alias :font :get_font
|
66
77
|
|
@@ -79,23 +90,36 @@ module Wx::SF
|
|
79
90
|
end
|
80
91
|
alias :text :get_text
|
81
92
|
|
93
|
+
# Get current fill style.
|
94
|
+
# @return [Wx::Brush] Current brush
|
95
|
+
def get_fill
|
96
|
+
@fill || (@diagram&.shape_canvas ? @diagram.shape_canvas.text_fill : DEFAULT.text_fill)
|
97
|
+
end
|
98
|
+
alias :fill :get_fill
|
99
|
+
|
100
|
+
# Get current border style.
|
101
|
+
# @return [Wx::Pen] Current pen
|
102
|
+
def get_border
|
103
|
+
@border || (@diagram&.shape_canvas ? @diagram.shape_canvas.text_border : DEFAULT.text_border)
|
104
|
+
end
|
105
|
+
alias :border :get_border
|
82
106
|
|
83
107
|
# Set text color.
|
84
|
-
# @param [Wx::Colour] col Text color
|
108
|
+
# @param [Wx::Colour,String,Symbol] col Text color
|
85
109
|
def set_text_colour(col)
|
86
|
-
@text_color = col
|
110
|
+
@text_color = Wx::Colour === col ? col : Wx::Colour.new(col)
|
87
111
|
end
|
88
112
|
alias :text_colour= :set_text_colour
|
89
113
|
|
90
114
|
# Get text color.
|
91
115
|
# @return [Wx::Colour] Current text color
|
92
116
|
def get_text_colour
|
93
|
-
@text_color
|
117
|
+
@text_color || (@diagram&.shape_canvas ? @diagram.shape_canvas.text_colour : DEFAULT.text_color)
|
94
118
|
end
|
95
119
|
alias :text_colour :get_text_colour
|
96
120
|
|
97
121
|
# Update shape (align all child shapes and resize it to fit them)
|
98
|
-
def update
|
122
|
+
def update(recurse = true)
|
99
123
|
update_rect_size
|
100
124
|
super
|
101
125
|
end
|
@@ -106,13 +130,14 @@ module Wx::SF
|
|
106
130
|
w = -1
|
107
131
|
h = -1
|
108
132
|
if get_parent_canvas
|
133
|
+
cur_font = @scaled_font || font
|
109
134
|
if ShapeCanvas.gc_enabled?
|
110
135
|
Wx::GraphicsContext.draw_on(get_parent_canvas) do |gc|
|
111
136
|
# calculate text extent
|
112
137
|
hd = -1
|
113
138
|
e = 0
|
114
139
|
|
115
|
-
gc.set_font(
|
140
|
+
gc.set_font(cur_font, Wx::BLACK)
|
116
141
|
|
117
142
|
# we must use split string to inspect all lines of possible multiline text
|
118
143
|
h = 0
|
@@ -127,7 +152,7 @@ module Wx::SF
|
|
127
152
|
end
|
128
153
|
else
|
129
154
|
get_parent_canvas.paint do |dc|
|
130
|
-
dc.set_font(
|
155
|
+
dc.set_font(cur_font)
|
131
156
|
w, h, @line_height = dc.get_multi_line_text_extent(@text)
|
132
157
|
dc.set_font(Wx::NULL_FONT)
|
133
158
|
end
|
@@ -160,8 +185,6 @@ module Wx::SF
|
|
160
185
|
# @param [Float] x Horizontal scale factor
|
161
186
|
# @param [Float] y Vertical scale factor
|
162
187
|
def scale_rectangle(x, y)
|
163
|
-
s = 1.0
|
164
|
-
|
165
188
|
if x == 1.0
|
166
189
|
s = y
|
167
190
|
elsif y == 1.0
|
@@ -172,10 +195,17 @@ module Wx::SF
|
|
172
195
|
s = y
|
173
196
|
end
|
174
197
|
|
175
|
-
|
198
|
+
cur_font = @scaled_font || font
|
199
|
+
|
200
|
+
size = cur_font.get_point_size * s
|
176
201
|
size = 5 if size < 5
|
177
202
|
|
178
|
-
|
203
|
+
if size == font.point_size
|
204
|
+
@scaled_font = nil
|
205
|
+
else
|
206
|
+
@scaled_font ||= font.dup
|
207
|
+
@scaled_font.set_point_size(size.to_i) unless size == @scaled_font.get_point_size
|
208
|
+
end
|
179
209
|
update_rect_size
|
180
210
|
end
|
181
211
|
|
@@ -235,7 +265,7 @@ module Wx::SF
|
|
235
265
|
|
236
266
|
# Draw the shape in the highlighted mode (another shape is dragged over this
|
237
267
|
# shape and this shape will accept the dragged one if it will be dropped on it).
|
238
|
-
# The function can be overridden if
|
268
|
+
# The function can be overridden if necessary.
|
239
269
|
# @param [Wx::DC] dc Reference to device context where the shape will be drawn to
|
240
270
|
def draw_highlighted(dc)
|
241
271
|
super
|
@@ -277,7 +307,7 @@ module Wx::SF
|
|
277
307
|
end
|
278
308
|
|
279
309
|
# Event handler called during dragging of the right shape handle.
|
280
|
-
# The function can be overridden if
|
310
|
+
# The function can be overridden if necessary.
|
281
311
|
# @param [Shape::Handle] handle Reference to dragged shape handle
|
282
312
|
def on_right_handle(handle)
|
283
313
|
# HINT: overload it for custom actions...
|
@@ -286,7 +316,7 @@ module Wx::SF
|
|
286
316
|
end
|
287
317
|
|
288
318
|
# Event handler called during dragging of the bottom shape handle.
|
289
|
-
# The function can be overridden if
|
319
|
+
# The function can be overridden if necessary.
|
290
320
|
# @param [Shape::Handle] handle Reference to dragged shape handle
|
291
321
|
def on_bottom_handle(handle)
|
292
322
|
# HINT: overload it for custom actions...
|
@@ -297,10 +327,10 @@ module Wx::SF
|
|
297
327
|
# Draw text shape.
|
298
328
|
# @param [Wx::DC] dc Device context where the text shape will be drawn to
|
299
329
|
def draw_text_content(dc)
|
300
|
-
dc.with_brush(
|
301
|
-
dc.set_background_mode(Wx::BrushStyle::BRUSHSTYLE_TRANSPARENT)
|
302
|
-
dc.set_text_foreground(
|
303
|
-
dc.with_font(@font) do
|
330
|
+
dc.with_brush(fill) do
|
331
|
+
dc.set_background_mode(Wx::BrushStyle::BRUSHSTYLE_TRANSPARENT.to_i)
|
332
|
+
dc.set_text_foreground(text_colour)
|
333
|
+
dc.with_font(@scaled_font || font) do
|
304
334
|
pos = get_absolute_position
|
305
335
|
# draw all text lines
|
306
336
|
@text.split("\n").each_with_index do |line, i|
|
@@ -310,15 +340,27 @@ module Wx::SF
|
|
310
340
|
end
|
311
341
|
end
|
312
342
|
|
343
|
+
# (de-)serialize text colour; allows for nil values
|
344
|
+
def serialize_text_colour(*val)
|
345
|
+
@text_color = val.first unless val.empty?
|
346
|
+
@text_color
|
347
|
+
end
|
348
|
+
|
349
|
+
# (de-)serialize text colour; allows for nil values
|
350
|
+
def serialize_text_font(*val)
|
351
|
+
@font = val.first unless val.empty?
|
352
|
+
@font
|
353
|
+
end
|
354
|
+
|
313
355
|
# Deserialize attributes and recalculate rectangle size afterwards.
|
314
|
-
# @param [Hash] data
|
315
356
|
# @return [self]
|
316
|
-
def
|
317
|
-
super
|
357
|
+
def deserialize_finalize
|
318
358
|
update_rect_size
|
319
359
|
self
|
320
360
|
end
|
321
361
|
|
362
|
+
define_deserialize_finalizer :deserialize_finalize
|
363
|
+
|
322
364
|
end
|
323
365
|
|
324
366
|
end
|
data/lib/wx/shapes/version.rb
CHANGED
data/lib/wx/shapes/wx.rb
CHANGED
@@ -3,17 +3,15 @@
|
|
3
3
|
|
4
4
|
module Wx
|
5
5
|
|
6
|
-
class
|
6
|
+
class RealPoint
|
7
7
|
|
8
8
|
# Returns distance from this point to given point.
|
9
|
-
# @param [Wx::RealPoint,Wx::Point,Array(Integer,Integer)] pt2
|
9
|
+
# @param [Wx::RealPoint,Wx::Point,Array(Integer,Integer),Array(Float,Float)] pt2
|
10
10
|
# @return [Float] distance to given point
|
11
11
|
def distance_to(pt2)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
to_x = pt2.x; to_y = pt2.y
|
16
|
-
end
|
12
|
+
to_x, to_y = pt2
|
13
|
+
to_x = to_x.to_f
|
14
|
+
to_y = to_y.to_f
|
17
15
|
Math.sqrt((to_x - self.x)*(to_x - self.x) + (to_y - self.y)*(to_y - self.y))
|
18
16
|
end
|
19
17
|
alias :distance :distance_to
|
@@ -26,4 +24,15 @@ module Wx
|
|
26
24
|
|
27
25
|
end
|
28
26
|
|
27
|
+
class Size
|
28
|
+
|
29
|
+
# Returns this size as a Wx::RealPoint.
|
30
|
+
# @return [Wx::RealPoint]
|
31
|
+
def to_real_point
|
32
|
+
Wx::RealPoint.new(self.width.to_f, self.height.to_f)
|
33
|
+
end
|
34
|
+
alias :to_real :to_real_point
|
35
|
+
|
36
|
+
end
|
37
|
+
|
29
38
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"rbklass":"Array","data":[{"rbklass":"Wx::SF::ShapeCanvas::Version","data":{"version_info":{"rbklass":"Wx::SF::ShapeCanvas::Version::VersionInfo","v":[0,9,0]}}},{"rbklass":"Wx::SF::ShapeCanvas::Settings","data":{"scale":1.0,"min_scale":0.1,"max_scale":2.0,"background_color":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[240,240,240,255]}}},"common_hover_color":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[120,120,255,255]}},"&id":3597080},"common_border_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","data":{"value":100},"&id":3526760}},"&id":3600900},"common_fill_brush":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","data":{"value":100},"&id":3526840}},"&id":3600960},"common_line_pen":{"rbklass":"Wx::Pen","*id":3600900},"common_arrow_fill":{"rbklass":"Wx::Brush","*id":3600960},"common_text_color":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"common_text_fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"style":{"rbklass":"Wx::BrushStyle","data":{"value":106},"&id":8740}}},"common_text_border":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","data":{"value":106},"&id":7640}}},"common_text_font":{"rbklass":"Wx::Font","data":{"font_info":"Sans 12"}},"common_control_fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":8740}}},"common_control_border":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":7640}}},"common_control_mod_fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","data":{"value":111}}}},"common_control_mod_border":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,255,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"grid_line_mult":10,"grid_color":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[200,200,200,255]}}},"grid_style":{"rbklass":"Wx::PenStyle","data":{"value":103}},"gradient_from":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[240,240,240,255]}}},"gradient_to":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[200,200,255,255]}}},"style":{"rbklass":"Wx::SF::ShapeCanvas::STYLE","data":{"value":3071}},"shadow_offset":{"rbklass":"Wx::RealPoint","data":{"x":4.0,"y":4.0}},"shadow_fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[150,150,150,128]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"print_h_align":{"rbklass":"Wx::SF::ShapeCanvas::HALIGN","data":{"value":2}},"print_v_align":{"rbklass":"Wx::SF::ShapeCanvas::VALIGN","data":{"value":2}},"print_mode":{"rbklass":"Wx::SF::ShapeCanvas::PRINTMODE","data":{"value":2}},"grid_size":10}},{"rbklass":"Wx::SF::Diagram","data":{"shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[{"rbklass":"Wx::SF::SquareShape","data":{"rect_size":{"rbklass":"Wx::RealPoint","data":{"x":100.0,"y":100.0}},"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"border":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","data":{"value":319}},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":110.0,"y":230.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","data":{"value":0},"&id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","data":{"value":0},"&id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}},"&id":3596520},{"rbklass":"Wx::SF::EllipseShape","data":{"rect_size":{"rbklass":"Wx::RealPoint","data":{"x":100.0,"y":50.0}},"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"border":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","data":{"value":319}},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":830.0,"y":250.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}},"&id":3596540},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::ProngArrow","data":{"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::CrossBarArrow","data":{"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","data":{"value":319},"&id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::DiamondArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::DoubleCrossBarArrow","data":{"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":310.0,"y":380.0}},{"rbklass":"Wx::RealPoint","data":{"x":770.0,"y":380.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","*id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::SquareArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::CrossBarCircleArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":260.0,"y":460.0}},{"rbklass":"Wx::RealPoint","data":{"x":780.0,"y":460.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","*id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::CrossBarProngArrow","data":{"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::CircleProngArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":230.0,"y":550.0}},{"rbklass":"Wx::RealPoint","data":{"x":810.0,"y":540.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","*id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::CupArrow","data":{"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::OpenArrow","data":{"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":300.0,"y":150.0}},{"rbklass":"Wx::RealPoint","data":{"x":770.0,"y":150.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","*id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::CircleArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"trg_arrow":{"rbklass":"Wx::SF::SolidArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":280.0,"y":90.0}},{"rbklass":"Wx::RealPoint","data":{"x":790.0,"y":90.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","*id":3597680},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","*id":3597020},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","*id":3597040},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}},{"rbklass":"Wx::SF::LineShape","data":{"src_shape":{"rbklass":"Wx::SF::SquareShape","*id":3596520},"trg_shape":{"rbklass":"Wx::SF::EllipseShape","*id":3596540},"src_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"trg_point":{"rbklass":"Wx::RealPoint","data":{"x":0.0,"y":0.0}},"stand_alone":false,"src_arrow":{"rbklass":"Wx::SF::CrossedCircleArrow","data":{"fill":{"rbklass":"Wx::Brush","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[255,255,255,255]}}},"style":{"rbklass":"Wx::BrushStyle","*id":3526840}}},"pen":null}},"trg_arrow":null,"src_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"trg_offset":{"rbklass":"Wx::RealPoint","data":{"x":-1.0,"y":-1.0}},"dock_point":18446744073709551616,"control_points":{"rbklass":"Array","data":[{"rbklass":"Wx::RealPoint","data":{"x":220.0,"y":60.0}},{"rbklass":"Wx::RealPoint","data":{"x":830.0,"y":60.0}}]},"line_pen":{"rbklass":"Wx::Pen","data":{"colour":{"rbklass":"Wx::Colour","data":{"colour":{"rbklass":"Array","data":[0,0,0,255]}}},"width":1,"style":{"rbklass":"Wx::PenStyle","*id":3526760}}},"active":true,"visibility":true,"style":{"rbklass":"Wx::SF::Shape::STYLE","data":{"value":319}},"accepted_children":{"rbklass":"Set","a":["Wx::SF::TextShape","Wx::SF::EditTextShape"]},"accepted_connections":{"rbklass":"Set","a":["NilClass"]},"accepted_src_neighbours":{"rbklass":"Set","a":["NilClass"]},"accepted_trg_neighbours":{"rbklass":"Set","a":["NilClass"]},"relative_position":{"rbklass":"Wx::RealPoint","data":{"x":540.0,"y":290.0}},"h_align":{"rbklass":"Wx::SF::Shape::HALIGN","data":{"value":0}},"v_align":{"rbklass":"Wx::SF::Shape::VALIGN","data":{"value":0}},"h_border":0.0,"v_border":0.0,"custom_dock_point":-3,"connection_points":{"rbklass":"Array","data":[]},"user_data":null,"hover_colour":{"rbklass":"Wx::Colour","*id":3597080},"child_shapes":{"rbklass":"Wx::SF::ShapeList","data":{"list":{"rbklass":"Set","a":[]}}}}}]}}},"accepted_shapes":{"rbklass":"Set","a":["NilClass"]},"accepted_top_shapes":{"rbklass":"Set","a":["NilClass"]}}}]}
|