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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '057851261926749b3b0c1174530f5e98ea2dd9c743ca228c1d8d5d03ef1af6b3'
|
4
|
+
data.tar.gz: affa03b0ac6a1547ddc4d92a3b0a7a031bc6fe93c843428d3f9be81cc2b5c846
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b5f1f3377fd54a5613023b58c02de7ec451bd50e53a3ac0ebbef1ac2d5fd792458f77a50a6295cf417839f7157853eb8db4ef45203ae1aabe7be5e9a438e973
|
7
|
+
data.tar.gz: 4400bd26bceb8eb6589aaa0571e74986084e0c9774f0a23072330f5d76e50ce81ebae1dee87000bc7069e4f925391beee29c95746017bb563b80b57551f9dcad
|
data/INSTALL.md
CHANGED
@@ -14,13 +14,11 @@ gem install wxruby3-shapes
|
|
14
14
|
```
|
15
15
|
|
16
16
|
This will install the wxruby3-shapes gem on any system supporting Ruby and wxRuby.
|
17
|
-
As wxRuby3/Shapes has a dependency on wxRuby3 the wxRuby3 gem will be
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
Due to the dependencies of the wxRuby3 gem itself it might be preferable to install that gem separately beforehand. See the
|
23
|
-
[INSTALL](https://github.com/mcorino/wxRuby3/blob/master/INSTALL.md) document of the wxRuby3 project for more details.
|
17
|
+
As wxRuby3/Shapes has a dependency on wxRuby3 the wxRuby3 gem will be installed as well if not yet installed.
|
18
|
+
Depending on your system this may install a prebuilt binary package (see the [wxRuby3](https://github.com/mcorino/wxRuby3)
|
19
|
+
project for more information about supported platforms) or require you to run a post-install step to build the wxRuby3
|
20
|
+
extension library binaries before you can use wxRuby3/Shapes (see the
|
21
|
+
[INSTALL](https://github.com/mcorino/wxRuby3/blob/master/INSTALL.md) document of the wxRuby3 project for more details).
|
24
22
|
|
25
23
|
## Building from source
|
26
24
|
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
# wxRuby3/Shapes - A wxRuby3 2D shapes and diagramming framework
|
9
9
|
|
10
|
-

|
11
11
|
|
12
12
|
## Introduction
|
13
13
|
|
@@ -21,7 +21,7 @@ The library consists of several classes encapsulating a so called 'Shape canvas'
|
|
21
21
|
GUI control used for management of diagrams) providing the following features:
|
22
22
|
|
23
23
|
- Create charts (diagrams) interactively in your wxRuby3 applications
|
24
|
-
- Serialize/deserialize charts to file or any io stream in multiple formats (currently supported formats are JSON and
|
24
|
+
- Serialize/deserialize charts to file or any io stream in multiple formats (currently supported formats are JSON, YAML and XML)
|
25
25
|
- Support for Clipboard operations (Cut/Paste) and Drag&Drop of diagram components (shapes)
|
26
26
|
- Support for Undo/Redo operations
|
27
27
|
- Support for alignment of diagram components.
|
@@ -29,9 +29,10 @@ GUI control used for management of diagrams) providing the following features:
|
|
29
29
|
- Support for diagram export to bitmap (any supported type)
|
30
30
|
- Support for Thumbnail view of diagram
|
31
31
|
- A standard collection of diagram components
|
32
|
-
- Shapes: basic rectangular, square, circle, ellipse, rounded rectangle, grid, flexible grid,
|
32
|
+
- Shapes: basic rectangular, square, circle, ellipse, rounded rectangle, grid, flexible grid, horizontal box,
|
33
|
+
vertical box, text, editable text, polygonal, diamond, bitmap
|
33
34
|
- Lines: straight, curved, orthogonal, rounded orthogonal
|
34
|
-
- Line arrows: solid, open, diamond, circle
|
35
|
+
- Line arrows: solid, open, diamond, circle, cup, prong, square, crossbar, etc.
|
35
36
|
- Highly customizable and extendable
|
36
37
|
|
37
38
|
The shape framework (and shape canvas) allows to define the relationship between various
|
@@ -43,6 +44,37 @@ of diagrams.
|
|
43
44
|
More over, the library source code is pure Ruby based on wxRuby3 GUI toolkit, so it will
|
44
45
|
run on any platform that supports Ruby and wxRuby3.
|
45
46
|
|
47
|
+

|
48
|
+
|
49
|
+
### To install
|
50
|
+
|
51
|
+
The wxRuby3/Shapes project provides gems on [RubyGems](https://rubygems.org) which can be installed with the
|
52
|
+
standard `gem install` command line this:
|
53
|
+
|
54
|
+
```shell
|
55
|
+
gem install wxruby3-shapes
|
56
|
+
```
|
57
|
+
|
58
|
+
See [INSTALL](INSTALL.md) for more details.
|
59
|
+
|
60
|
+
### To test
|
61
|
+
|
62
|
+
After installation run this:
|
63
|
+
|
64
|
+
```shell
|
65
|
+
wx-shapes test
|
66
|
+
```
|
67
|
+
|
68
|
+
### To run a demonstration application
|
69
|
+
|
70
|
+
After installation run this:
|
71
|
+
|
72
|
+
```shell
|
73
|
+
wx-shapes sampler
|
74
|
+
```
|
75
|
+
|
76
|
+
See the output of `wx-shapes --help` for more options.
|
77
|
+
|
46
78
|
## wxRuby3/Shapes licence
|
47
79
|
|
48
80
|
wxruby3/shapes is free and open-source. It is distributed under the liberal
|
@@ -102,13 +134,13 @@ This documentation (for the latest release) is also available online
|
|
102
134
|
with the following major implementation differences:
|
103
135
|
|
104
136
|
- wxRuby3/Shapes implements a totally different serialization scheme in which none of the XML serializer
|
105
|
-
code has been ported
|
106
|
-
provides a more adaptable implementation with (for now) two supported output formats; JSON and YAML.
|
137
|
+
code has been ported but instead relies on the [FIRM](https://github.com/mcorino/firm) gem for serialization support.
|
107
138
|
- Related to this the internal management of shape references has been changed as well as this was tightly
|
108
139
|
linked to the serialization implementation.
|
109
140
|
- The API has been Ruby-fied with respect to constant names, method names and argument passing and return
|
110
141
|
values.
|
111
142
|
- The ScaledDC class has been integrated with wxRuby3 and is not part of wxRuby3/Shapes.
|
143
|
+
- The implementation has been noticeably improved and extended compared to the wxShapeFramework implementation.
|
112
144
|
|
113
145
|
In addition many small tweaks, improvements and also bugfixes have been implemented as part of the port.
|
114
146
|
|
data/assets/logo.svg
ADDED
@@ -0,0 +1,339 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<svg
|
3
|
+
xmlns:ooo="http://xml.openoffice.org/svg/export"
|
4
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
5
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
6
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
7
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
9
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
10
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
11
|
+
version="1.2"
|
12
|
+
width="105.83334mm"
|
13
|
+
height="105.83334mm"
|
14
|
+
viewBox="0 0 10583.333 10583.333"
|
15
|
+
preserveAspectRatio="xMidYMid"
|
16
|
+
fill-rule="evenodd"
|
17
|
+
stroke-width="28.222"
|
18
|
+
stroke-linejoin="round"
|
19
|
+
xml:space="preserve"
|
20
|
+
id="svg107"
|
21
|
+
sodipodi:docname="logo.svg"
|
22
|
+
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"><metadata
|
23
|
+
id="metadata111"><rdf:RDF><cc:Work
|
24
|
+
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
25
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
26
|
+
pagecolor="#ffffff"
|
27
|
+
bordercolor="#666666"
|
28
|
+
borderopacity="1"
|
29
|
+
objecttolerance="10"
|
30
|
+
gridtolerance="10"
|
31
|
+
guidetolerance="10"
|
32
|
+
inkscape:pageopacity="0"
|
33
|
+
inkscape:pageshadow="2"
|
34
|
+
inkscape:window-width="3440"
|
35
|
+
inkscape:window-height="1368"
|
36
|
+
id="namedview109"
|
37
|
+
showgrid="false"
|
38
|
+
inkscape:zoom="1.2611806"
|
39
|
+
inkscape:cx="186.73746"
|
40
|
+
inkscape:cy="181.67313"
|
41
|
+
inkscape:window-x="0"
|
42
|
+
inkscape:window-y="0"
|
43
|
+
inkscape:window-maximized="1"
|
44
|
+
inkscape:current-layer="g105"
|
45
|
+
inkscape:document-rotation="0" />
|
46
|
+
<defs
|
47
|
+
class="ClipPathGroup"
|
48
|
+
id="defs8">
|
49
|
+
<clipPath
|
50
|
+
id="presentation_clip_path"
|
51
|
+
clipPathUnits="userSpaceOnUse">
|
52
|
+
<rect
|
53
|
+
x="0"
|
54
|
+
y="0"
|
55
|
+
width="15000"
|
56
|
+
height="15000"
|
57
|
+
id="rect2" />
|
58
|
+
</clipPath>
|
59
|
+
<clipPath
|
60
|
+
id="presentation_clip_path_shrink"
|
61
|
+
clipPathUnits="userSpaceOnUse">
|
62
|
+
<rect
|
63
|
+
x="15"
|
64
|
+
y="15"
|
65
|
+
width="14970"
|
66
|
+
height="14970"
|
67
|
+
id="rect5" />
|
68
|
+
</clipPath>
|
69
|
+
|
70
|
+
|
71
|
+
</defs>
|
72
|
+
<defs
|
73
|
+
class="TextShapeIndex"
|
74
|
+
id="defs12">
|
75
|
+
<g
|
76
|
+
ooo:slide="id1"
|
77
|
+
ooo:id-list="id3 id4 id5 id6 id7 id8"
|
78
|
+
id="g10" />
|
79
|
+
</defs>
|
80
|
+
<defs
|
81
|
+
class="EmbeddedBulletChars"
|
82
|
+
id="defs44">
|
83
|
+
<g
|
84
|
+
id="bullet-char-template-57356"
|
85
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
86
|
+
<path
|
87
|
+
d="M 580,1141 1163,571 580,0 -4,571 Z"
|
88
|
+
id="path14" />
|
89
|
+
</g>
|
90
|
+
<g
|
91
|
+
id="bullet-char-template-57354"
|
92
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
93
|
+
<path
|
94
|
+
d="M 8,1128 H 1137 V 0 H 8 Z"
|
95
|
+
id="path17" />
|
96
|
+
</g>
|
97
|
+
<g
|
98
|
+
id="bullet-char-template-10146"
|
99
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
100
|
+
<path
|
101
|
+
d="M 174,0 602,739 174,1481 1456,739 Z M 1358,739 309,1346 659,739 Z"
|
102
|
+
id="path20" />
|
103
|
+
</g>
|
104
|
+
<g
|
105
|
+
id="bullet-char-template-10132"
|
106
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
107
|
+
<path
|
108
|
+
d="M 2015,739 1276,0 H 717 l 543,543 H 174 v 393 h 1086 l -543,545 h 557 z"
|
109
|
+
id="path23" />
|
110
|
+
</g>
|
111
|
+
<g
|
112
|
+
id="bullet-char-template-10007"
|
113
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
114
|
+
<path
|
115
|
+
d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z"
|
116
|
+
id="path26" />
|
117
|
+
</g>
|
118
|
+
<g
|
119
|
+
id="bullet-char-template-10004"
|
120
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
121
|
+
<path
|
122
|
+
d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 V 965 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z"
|
123
|
+
id="path29" />
|
124
|
+
</g>
|
125
|
+
<g
|
126
|
+
id="bullet-char-template-9679"
|
127
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
128
|
+
<path
|
129
|
+
d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z"
|
130
|
+
id="path32" />
|
131
|
+
</g>
|
132
|
+
<g
|
133
|
+
id="bullet-char-template-8226"
|
134
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
135
|
+
<path
|
136
|
+
d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z"
|
137
|
+
id="path35" />
|
138
|
+
</g>
|
139
|
+
<g
|
140
|
+
id="bullet-char-template-8211"
|
141
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
142
|
+
<path
|
143
|
+
d="M -4,459 H 1135 V 606 H -4 Z"
|
144
|
+
id="path38" />
|
145
|
+
</g>
|
146
|
+
<g
|
147
|
+
id="bullet-char-template-61548"
|
148
|
+
transform="matrix(4.8828125e-4,0,0,-4.8828125e-4,0,0)">
|
149
|
+
<path
|
150
|
+
d="m 173,740 c 0,163 58,303 173,419 116,115 255,173 419,173 163,0 302,-58 418,-173 116,-116 174,-256 174,-419 0,-163 -58,-303 -174,-418 C 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"
|
151
|
+
id="path41" />
|
152
|
+
</g>
|
153
|
+
</defs>
|
154
|
+
<g
|
155
|
+
id="g49"
|
156
|
+
transform="matrix(1.1969142,0,0,1.1920121,-2057.6568,-2303.8129)">
|
157
|
+
<g
|
158
|
+
id="id2"
|
159
|
+
class="Master_Slide">
|
160
|
+
<g
|
161
|
+
id="bg-id2"
|
162
|
+
class="Background" />
|
163
|
+
<g
|
164
|
+
id="bo-id2"
|
165
|
+
class="BackgroundObjects" />
|
166
|
+
</g>
|
167
|
+
</g>
|
168
|
+
<g
|
169
|
+
class="SlideGroup"
|
170
|
+
id="g105"
|
171
|
+
transform="matrix(1.1969142,0,0,1.1920121,-2057.6568,-2303.8129)">
|
172
|
+
<g
|
173
|
+
id="container-id1"
|
174
|
+
transform="matrix(0.63636359,0,0,0.63636355,1523.6329,1517.9165)">
|
175
|
+
<g
|
176
|
+
id="id1"
|
177
|
+
class="Slide"
|
178
|
+
clip-path="url(#presentation_clip_path)">
|
179
|
+
<g
|
180
|
+
class="Page"
|
181
|
+
id="g99">
|
182
|
+
<g
|
183
|
+
class="com.sun.star.drawing.LineShape"
|
184
|
+
id="g58">
|
185
|
+
<g
|
186
|
+
id="id3">
|
187
|
+
<rect
|
188
|
+
class="BoundingBox"
|
189
|
+
stroke="none"
|
190
|
+
fill="none"
|
191
|
+
x="1979"
|
192
|
+
y="6330"
|
193
|
+
width="1013"
|
194
|
+
height="3098"
|
195
|
+
id="rect51" />
|
196
|
+
<path
|
197
|
+
fill="none"
|
198
|
+
stroke="#818181"
|
199
|
+
stroke-width="353"
|
200
|
+
stroke-linejoin="round"
|
201
|
+
d="M 2500,9250 2485,7391"
|
202
|
+
id="path53" />
|
203
|
+
<path
|
204
|
+
fill="#818181"
|
205
|
+
stroke="none"
|
206
|
+
d="m 2986,7375 -456,-1003 -22,-29 -30,-12 -33,12 -21,26 -440,1014 -5,13 v 8 l 5,21 13,21 17,13 21,3 901,-7 21,-4 21,-13 8,-21 4,-21 v -8 z"
|
207
|
+
id="path55" />
|
208
|
+
</g>
|
209
|
+
</g>
|
210
|
+
<g
|
211
|
+
class="com.sun.star.drawing.CustomShape"
|
212
|
+
id="g65">
|
213
|
+
<g
|
214
|
+
id="id4">
|
215
|
+
<rect
|
216
|
+
class="BoundingBox"
|
217
|
+
stroke="none"
|
218
|
+
fill="none"
|
219
|
+
x="1397"
|
220
|
+
y="1397"
|
221
|
+
width="4957"
|
222
|
+
height="4957"
|
223
|
+
id="rect60" />
|
224
|
+
<path
|
225
|
+
fill="none"
|
226
|
+
stroke="#ffd700"
|
227
|
+
stroke-width="706"
|
228
|
+
stroke-linejoin="round"
|
229
|
+
d="M 3875,6000 H 1750 V 1750 h 4250 v 4250 z"
|
230
|
+
id="path62" />
|
231
|
+
</g>
|
232
|
+
</g>
|
233
|
+
<g
|
234
|
+
class="com.sun.star.drawing.CustomShape"
|
235
|
+
id="g72">
|
236
|
+
<g
|
237
|
+
id="id5">
|
238
|
+
<rect
|
239
|
+
class="BoundingBox"
|
240
|
+
stroke="none"
|
241
|
+
fill="none"
|
242
|
+
x="7647"
|
243
|
+
y="4197"
|
244
|
+
width="5708"
|
245
|
+
height="5708"
|
246
|
+
id="rect67" />
|
247
|
+
<path
|
248
|
+
fill="none"
|
249
|
+
stroke="#b22222"
|
250
|
+
stroke-width="706"
|
251
|
+
stroke-linejoin="round"
|
252
|
+
d="m 13001,7051 c 0,438 -116,870 -335,1250 -219,380 -535,696 -915,915 -380,219 -812,335 -1250,335 -439,0 -871,-116 -1251,-335 -380,-219 -696,-535 -915,-915 -219,-380 -335,-812 -335,-1250 0,-439 116,-871 335,-1251 219,-380 535,-696 915,-915 380,-219 812,-335 1251,-335 438,0 870,116 1250,335 380,219 696,535 915,915 219,380 335,812 335,1250 z"
|
253
|
+
id="path69" />
|
254
|
+
</g>
|
255
|
+
</g>
|
256
|
+
<g
|
257
|
+
class="com.sun.star.drawing.CustomShape"
|
258
|
+
id="g79">
|
259
|
+
<g
|
260
|
+
id="id6">
|
261
|
+
<rect
|
262
|
+
class="BoundingBox"
|
263
|
+
stroke="none"
|
264
|
+
fill="none"
|
265
|
+
x="1197"
|
266
|
+
y="7397"
|
267
|
+
width="6208"
|
268
|
+
height="6208"
|
269
|
+
id="rect74" />
|
270
|
+
<path
|
271
|
+
fill="none"
|
272
|
+
stroke="#00008b"
|
273
|
+
stroke-width="706"
|
274
|
+
stroke-linejoin="round"
|
275
|
+
d="M 4300,7750 7051,10500 4300,13251 1550,10500 Z"
|
276
|
+
id="path76" />
|
277
|
+
</g>
|
278
|
+
</g>
|
279
|
+
<g
|
280
|
+
class="com.sun.star.drawing.PolyLineShape"
|
281
|
+
id="g88">
|
282
|
+
<g
|
283
|
+
id="id7">
|
284
|
+
<rect
|
285
|
+
class="BoundingBox"
|
286
|
+
stroke="none"
|
287
|
+
fill="none"
|
288
|
+
x="6173"
|
289
|
+
y="2373"
|
290
|
+
width="4584"
|
291
|
+
height="1869"
|
292
|
+
id="rect81" />
|
293
|
+
<path
|
294
|
+
fill="none"
|
295
|
+
stroke="#818181"
|
296
|
+
stroke-width="353"
|
297
|
+
stroke-linejoin="round"
|
298
|
+
d="m 6350,2550 h 3900 v 631"
|
299
|
+
id="path83" />
|
300
|
+
<path
|
301
|
+
fill="#818181"
|
302
|
+
stroke="none"
|
303
|
+
d="m 9748,3193 449,1006 22,30 29,12 33,-12 21,-26 449,-1010 5,-13 v -8 l -5,-21 -12,-21 -17,-13 -21,-4 h -902 l -21,4 -21,13 -9,21 -3,21 v 8 z"
|
304
|
+
id="path85" />
|
305
|
+
</g>
|
306
|
+
</g>
|
307
|
+
<g
|
308
|
+
class="com.sun.star.drawing.PolyLineShape"
|
309
|
+
id="g97">
|
310
|
+
<g
|
311
|
+
id="id8">
|
312
|
+
<rect
|
313
|
+
class="BoundingBox"
|
314
|
+
stroke="none"
|
315
|
+
fill="none"
|
316
|
+
x="5595"
|
317
|
+
y="9707"
|
318
|
+
width="5083"
|
319
|
+
height="3150"
|
320
|
+
id="rect90" />
|
321
|
+
<path
|
322
|
+
fill="none"
|
323
|
+
stroke="#818181"
|
324
|
+
stroke-width="353"
|
325
|
+
stroke-linejoin="round"
|
326
|
+
d="m 6655,12350 h 3845 V 9884"
|
327
|
+
id="path92" />
|
328
|
+
<path
|
329
|
+
fill="#818181"
|
330
|
+
stroke="none"
|
331
|
+
d="m 6643,11848 -1006,449 -30,22 -12,29 12,33 26,21 1010,449 13,5 h 8 l 21,-5 21,-12 13,-17 4,-21 v -902 l -4,-21 -13,-21 -21,-9 -21,-3 h -8 z"
|
332
|
+
id="path94" />
|
333
|
+
</g>
|
334
|
+
</g>
|
335
|
+
</g>
|
336
|
+
</g>
|
337
|
+
</g>
|
338
|
+
</g>
|
339
|
+
</svg>
|
data/assets/logo.xpm
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * logo_xpm[] = {
|
3
|
+
"32 32 25 1",
|
4
|
+
" c None",
|
5
|
+
". c #FFD700",
|
6
|
+
"+ c #000000",
|
7
|
+
"@ c #B22222",
|
8
|
+
"# c #060400",
|
9
|
+
"$ c #052092",
|
10
|
+
"% c #041C91",
|
11
|
+
"& c #051F92",
|
12
|
+
"* c #062594",
|
13
|
+
"= c #041E91",
|
14
|
+
"- c #000004",
|
15
|
+
"; c #052192",
|
16
|
+
"> c #051F8F",
|
17
|
+
", c #052293",
|
18
|
+
"' c #B22323",
|
19
|
+
") c #751616",
|
20
|
+
"! c #062393",
|
21
|
+
"~ c #02128F",
|
22
|
+
"{ c #041B91",
|
23
|
+
"] c #000021",
|
24
|
+
"^ c #00000D",
|
25
|
+
"/ c #052091",
|
26
|
+
"( c #000002",
|
27
|
+
"_ c #041D91",
|
28
|
+
": c #041D92",
|
29
|
+
" ",
|
30
|
+
" ............ ",
|
31
|
+
" ............ ",
|
32
|
+
" ............+++++++++ ",
|
33
|
+
" ............ + ",
|
34
|
+
" .... .... +++++ ",
|
35
|
+
" .... .... +++ ",
|
36
|
+
" .... .... + ",
|
37
|
+
" .... .... @@@@@ ",
|
38
|
+
" ............ @@@@@@@@ ",
|
39
|
+
" ............ @@@@@@@@@@@ ",
|
40
|
+
" ............ @@@ @@@ ",
|
41
|
+
" ............ @@@ @@@ ",
|
42
|
+
" # @@@ @@@ ",
|
43
|
+
" +++ @@@ @@@ ",
|
44
|
+
" +++++ @@@ @@@ ",
|
45
|
+
" + $% @@@ @@@ ",
|
46
|
+
" + &**= @@@@ @@@@ ",
|
47
|
+
" + &****$ @@@@@@@@@@@ ",
|
48
|
+
" -&******; @@@@@@@@@ ",
|
49
|
+
" >*** ***, '@@@@@@ ",
|
50
|
+
" &*** ***, ) ",
|
51
|
+
" &*** ***! + ",
|
52
|
+
" ~*** **; + ",
|
53
|
+
" {*** **; + ",
|
54
|
+
" %*** **$] + ",
|
55
|
+
" %*** **$^+ + ",
|
56
|
+
" %*****/(+++++++++++ ",
|
57
|
+
" _***$ ++ ",
|
58
|
+
" :*$ + ",
|
59
|
+
" * ",
|
60
|
+
" "};
|
data/assets/screenshot.png
CHANGED
Binary file
|
data/assets/social.png
ADDED
Binary file
|
data/bin/wx-shapes
CHANGED
data/lib/wx/shapes/arrow_base.rb
CHANGED
@@ -8,14 +8,7 @@ module Wx::SF
|
|
8
8
|
|
9
9
|
class ArrowBase
|
10
10
|
|
11
|
-
include
|
12
|
-
|
13
|
-
module DEFAULT
|
14
|
-
FILL = Wx::Brush.new(Wx::WHITE) if Wx::App.is_main_loop_running
|
15
|
-
Wx.add_delayed_constant(self, :FILL) { Wx::Brush.new(Wx::WHITE) }
|
16
|
-
BORDER = Wx::Pen.new(Wx::BLACK) if Wx::App.is_main_loop_running
|
17
|
-
Wx.add_delayed_constant(self, :BORDER) { Wx::Pen.new(Wx::BLACK) }
|
18
|
-
end
|
11
|
+
include FIRM::Serializable
|
19
12
|
|
20
13
|
# Constructor
|
21
14
|
# @param [Wx::SF::Shape] parent parent shape
|
@@ -31,7 +24,7 @@ module Wx::SF
|
|
31
24
|
alias :parent_shape= :set_parent_shape
|
32
25
|
|
33
26
|
# Get pointer to a parent shape.
|
34
|
-
# @return [Wx::SF::Shape] parent shape if exists, otherwise nil
|
27
|
+
# @return [Wx::SF::Shape, nil] parent shape if exists, otherwise nil
|
35
28
|
def get_parent_shape
|
36
29
|
@parent_shape
|
37
30
|
end
|
@@ -40,9 +33,9 @@ module Wx::SF
|
|
40
33
|
# Draw arrow shape at the end of a virtual line.
|
41
34
|
# @param [Wx::RealPoint] from Start of the virtual line
|
42
35
|
# @param [Wx::RealPoint] to End of the virtual line
|
43
|
-
|
36
|
+
# @return [Wx::Point] translated connection point for arrow
|
44
37
|
def draw(from, to, dc)
|
45
|
-
|
38
|
+
raise NotImplementedError, 'Overload missing'
|
46
39
|
end
|
47
40
|
|
48
41
|
protected
|
@@ -1,37 +1,48 @@
|
|
1
1
|
# Wx::SF::CircleArrow - circle arrow class
|
2
2
|
# Copyright (c) M.J.N. Corino, The Netherlands
|
3
3
|
|
4
|
-
require 'wx/shapes/arrows/
|
4
|
+
require 'wx/shapes/arrows/filled_arrow'
|
5
5
|
|
6
6
|
module Wx::SF
|
7
7
|
|
8
|
-
class
|
8
|
+
# Class extends the Wx::FilledArrow class and encapsulates
|
9
|
+
# circle arrow shapes.
|
10
|
+
class CircleArrow < FilledArrow
|
9
11
|
|
10
12
|
# Default circle radius.
|
11
|
-
RADIUS =
|
12
|
-
|
13
|
-
property :radius
|
13
|
+
RADIUS = 6
|
14
14
|
|
15
15
|
# Constructor
|
16
16
|
# @param [Wx::SF::Shape] parent parent shape
|
17
17
|
def initialize(parent=nil)
|
18
18
|
super
|
19
|
-
|
19
|
+
scale
|
20
|
+
end
|
21
|
+
|
22
|
+
# Get the circle radius
|
23
|
+
def get_radius
|
24
|
+
(RADIUS * @ratio).to_i
|
20
25
|
end
|
26
|
+
alias :radius :get_radius
|
21
27
|
|
22
|
-
|
23
|
-
|
28
|
+
def scale
|
29
|
+
@ratio = 1 + (pen_width / 2) * 0.5
|
30
|
+
end
|
31
|
+
protected :scale
|
24
32
|
|
25
33
|
# Draw arrow shape at the end of a virtual line.
|
26
34
|
# @param [Wx::RealPoint] from Start of the virtual line
|
27
35
|
# @param [Wx::RealPoint] to End of the virtual line
|
28
36
|
# @param [Wx::DC] dc Device context for drawing
|
29
37
|
def draw(from, to, dc)
|
30
|
-
|
31
|
-
|
32
|
-
|
38
|
+
r = radius
|
39
|
+
centre, cp = translate_arrow([Wx::RealPoint.new(r, 0), Wx::RealPoint.new(2*r, 0)], from, to)
|
40
|
+
dc.with_pen(pen) do |dc|
|
41
|
+
dc.with_brush(fill) do |dc|
|
42
|
+
dc.draw_circle(centre, r)
|
33
43
|
end
|
34
44
|
end
|
45
|
+
cp
|
35
46
|
end
|
36
47
|
|
37
48
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Wx::SF::CircleProngArrow - circle with prong arrow class
|
2
|
+
# Copyright (c) M.J.N. Corino, The Netherlands
|
3
|
+
|
4
|
+
require 'wx/shapes/arrows/circle_arrow'
|
5
|
+
|
6
|
+
module Wx::SF
|
7
|
+
|
8
|
+
# Class extends the Wx::CircleArrow class and encapsulates
|
9
|
+
# arrow shape consisting of single two lines bisecting before the end of the
|
10
|
+
# parent line shape with a preceding circle.
|
11
|
+
class CircleProngArrow < CircleArrow
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def arrow(ratio)
|
15
|
+
x = ratio*11; y = ratio*5
|
16
|
+
[Wx::RealPoint.new(x,0), Wx::RealPoint.new(0, y), Wx::RealPoint.new(0,-y), Wx::RealPoint.new(0, 0)]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def vertices
|
21
|
+
@vertices ||= CircleProngArrow.arrow(@ratio)
|
22
|
+
end
|
23
|
+
private :vertices
|
24
|
+
|
25
|
+
def scale
|
26
|
+
@vertices = nil
|
27
|
+
super
|
28
|
+
end
|
29
|
+
protected :scale
|
30
|
+
|
31
|
+
# Draw arrow shape at the end of a virtual line.
|
32
|
+
# @param [Wx::RealPoint] from Start of the virtual line
|
33
|
+
# @param [Wx::RealPoint] to End of the virtual line
|
34
|
+
# @param [Wx::DC] dc Device context for drawing
|
35
|
+
# @return [Wx::Point] translated connection point for arrow
|
36
|
+
def draw(from, to, dc)
|
37
|
+
cp, wing1, wing2, tip = translate_arrow(vertices, from, to)
|
38
|
+
dc.with_pen(pen) do |dc|
|
39
|
+
dc.draw_line(cp, wing1)
|
40
|
+
dc.draw_line(cp, wing2)
|
41
|
+
dc.draw_line(cp, tip)
|
42
|
+
end
|
43
|
+
super(from, cp, dc)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|