wxruby3-shapes 0.9.0.pre.beta.3 → 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- 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"]}}}]}
|