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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +5 -7
  3. data/README.md +38 -6
  4. data/assets/logo.svg +339 -0
  5. data/assets/logo.xpm +60 -0
  6. data/assets/screenshot.png +0 -0
  7. data/assets/social.png +0 -0
  8. data/bin/wx-shapes +1 -1
  9. data/lib/wx/shapes/arrow_base.rb +4 -11
  10. data/lib/wx/shapes/arrows/circle_arrow.rb +22 -11
  11. data/lib/wx/shapes/arrows/circle_prong_arrow.rb +48 -0
  12. data/lib/wx/shapes/arrows/cross_bar_arrow.rb +57 -0
  13. data/lib/wx/shapes/arrows/cross_bar_circle_arrow.rb +56 -0
  14. data/lib/wx/shapes/arrows/cross_bar_prong_arrow.rb +49 -0
  15. data/lib/wx/shapes/arrows/crossed_circle.rb +46 -0
  16. data/lib/wx/shapes/arrows/cup_arrow.rb +65 -0
  17. data/lib/wx/shapes/arrows/diamond_arrow.rb +8 -13
  18. data/lib/wx/shapes/arrows/double_cross_bar_arrow.rb +27 -0
  19. data/lib/wx/shapes/arrows/filled_arrow.rb +60 -0
  20. data/lib/wx/shapes/arrows/line_arrow.rb +67 -0
  21. data/lib/wx/shapes/arrows/open_arrow.rb +22 -23
  22. data/lib/wx/shapes/arrows/prong_arrow.rb +42 -0
  23. data/lib/wx/shapes/arrows/solid_arrow.rb +21 -35
  24. data/lib/wx/shapes/arrows/square_arrow.rb +37 -0
  25. data/lib/wx/shapes/auto_layout.rb +2 -2
  26. data/lib/wx/shapes/base.rb +1 -1
  27. data/lib/wx/shapes/canvas_history.rb +20 -0
  28. data/lib/wx/shapes/connection_point.rb +10 -6
  29. data/lib/wx/shapes/diagram.rb +98 -78
  30. data/lib/wx/shapes/events.rb +8 -8
  31. data/lib/wx/shapes/printout.rb +3 -16
  32. data/lib/wx/shapes/serializable.rb +2 -436
  33. data/lib/wx/shapes/serialize/wx.rb +30 -18
  34. data/lib/wx/shapes/shape.rb +211 -168
  35. data/lib/wx/shapes/shape_canvas.rb +728 -267
  36. data/lib/wx/shapes/shape_data_object.rb +99 -18
  37. data/lib/wx/shapes/shape_handle.rb +18 -11
  38. data/lib/wx/shapes/shape_list.rb +34 -67
  39. data/lib/wx/shapes/shapes/bitmap_shape.rb +23 -24
  40. data/lib/wx/shapes/shapes/box_shape.rb +389 -0
  41. data/lib/wx/shapes/shapes/circle_shape.rb +19 -22
  42. data/lib/wx/shapes/shapes/control_shape.rb +77 -41
  43. data/lib/wx/shapes/shapes/curve_shape.rb +38 -31
  44. data/lib/wx/shapes/shapes/diamond_shape.rb +7 -17
  45. data/lib/wx/shapes/shapes/edit_text_shape.rb +6 -9
  46. data/lib/wx/shapes/shapes/ellipse_shape.rb +12 -15
  47. data/lib/wx/shapes/shapes/flex_grid_shape.rb +58 -33
  48. data/lib/wx/shapes/shapes/grid_shape.rb +259 -161
  49. data/lib/wx/shapes/shapes/line_shape.rb +155 -161
  50. data/lib/wx/shapes/shapes/manager_shape.rb +77 -0
  51. data/lib/wx/shapes/shapes/multi_sel_rect.rb +8 -8
  52. data/lib/wx/shapes/shapes/ortho_shape.rb +31 -36
  53. data/lib/wx/shapes/shapes/polygon_shape.rb +23 -29
  54. data/lib/wx/shapes/shapes/rect_shape.rb +95 -53
  55. data/lib/wx/shapes/shapes/round_ortho_shape.rb +6 -8
  56. data/lib/wx/shapes/shapes/round_rect_shape.rb +20 -24
  57. data/lib/wx/shapes/shapes/square_shape.rb +14 -17
  58. data/lib/wx/shapes/shapes/text_shape.rb +95 -53
  59. data/lib/wx/shapes/version.rb +1 -1
  60. data/lib/wx/shapes/wx.rb +16 -7
  61. data/lib/wx/wx-shapes/cmd/test.rb +1 -1
  62. data/samples/demo/arrows.json +1 -0
  63. data/samples/demo/arrows.yaml +793 -0
  64. data/samples/demo/art/HBox.xpm +22 -0
  65. data/samples/demo/art/VBox.xpm +22 -0
  66. data/samples/demo/art/logo.xpm +60 -0
  67. data/samples/demo/class.json +1 -0
  68. data/samples/demo/class.yaml +5631 -0
  69. data/samples/demo/demo.rb +301 -91
  70. data/samples/demo/dialogs.rb +1405 -0
  71. data/samples/demo/erd.json +1 -0
  72. data/samples/demo/erd.yaml +4072 -0
  73. data/samples/demo/frame_canvas.rb +409 -33
  74. data/samples/sample1/art/logo.xpm +60 -0
  75. data/samples/sample1/sample.rb +11 -11
  76. data/samples/sample2/art/logo.xpm +60 -0
  77. data/samples/sample2/sample.rb +2 -2
  78. data/samples/sample2/sample_shape.rb +15 -15
  79. data/samples/sample3/art/logo.xpm +60 -0
  80. data/samples/sample3/sample.rb +3 -3
  81. data/samples/sample4/art/logo.xpm +60 -0
  82. data/samples/sample4/sample.rb +2 -2
  83. data/tests/lib/wxapp_runner.rb +4 -0
  84. data/tests/serializer_tests.rb +8 -441
  85. data/tests/test_grid_shapes.rb +2 -2
  86. data/tests/test_serialize_xml.rb +17 -0
  87. data/tests/test_serialize_yaml.rb +2 -2
  88. metadata +78 -28
  89. data/lib/wx/shapes/serialize/core.rb +0 -40
  90. data/lib/wx/shapes/serialize/id.rb +0 -82
  91. data/lib/wx/shapes/serializer/json.rb +0 -258
  92. data/lib/wx/shapes/serializer/yaml.rb +0 -125
  93. data/samples/demo/art/sample.xpm +0 -251
  94. data/samples/sample1/art/sample.xpm +0 -251
  95. data/samples/sample2/art/sample.xpm +0 -251
  96. data/samples/sample3/art/sample.xpm +0 -251
  97. data/samples/sample4/art/sample.xpm +0 -251
@@ -36,7 +36,7 @@ class SFSample2Frame < Wx::Frame
36
36
  def initialize(title)
37
37
  super(nil, Wx::StandardID::ID_ANY, title, size: [800,600])
38
38
 
39
- self.icon = Wx::Icon(:sample)
39
+ self.icon = Wx::Icon(:logo)
40
40
 
41
41
  evt_close :on_close
42
42
 
@@ -129,5 +129,5 @@ class SFSample2Frame < Wx::Frame
129
129
  end
130
130
 
131
131
  Wx::App.run do
132
- SFSample2Frame.new('wxShapeFramework Sample 1').show
132
+ SFSample2Frame.new('wxShapeFramework Sample 2').show
133
133
  end
@@ -11,96 +11,96 @@ class SampleShape < Wx::SF::RectShape
11
11
 
12
12
  # override required wxSF virtual functions
13
13
  def on_left_click(pos)
14
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_left_click', Shape ID: #{get_id}, Position: #{pos}\n")
14
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_left_click', Shape ID: #{self.object_id}, Position: #{pos}\n")
15
15
 
16
16
  # call original handler if required
17
17
  super
18
18
  end
19
19
  def on_right_click(pos)
20
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_right_click', Shape ID: #{get_id}, Position: #{pos}\n")
20
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_right_click', Shape ID: #{self.object_id}, Position: #{pos}\n")
21
21
 
22
22
  # call original handler if required
23
23
  super
24
24
  end
25
25
  def on_left_double_click(pos)
26
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_left_double_click', Shape ID: #{get_id}, Position: #{pos}\n")
26
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_left_double_click', Shape ID: #{self.object_id}, Position: #{pos}\n")
27
27
 
28
28
  # call original handler if required
29
29
  super
30
30
  end
31
31
  def on_right_double_click(pos)
32
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_right_double_click', Shape ID: #{get_id}, Position: #{pos}\n")
32
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_right_double_click', Shape ID: #{self.object_id}, Position: #{pos}\n")
33
33
 
34
34
  # call original handler if required
35
35
  super
36
36
  end
37
37
 
38
38
  def on_begin_drag(pos)
39
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_begin_drag', Shape ID: #{get_id}, Position: #{pos}\n")
39
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_begin_drag', Shape ID: #{self.object_id}, Position: #{pos}\n")
40
40
 
41
41
  # call original handler if required
42
42
  super
43
43
  end
44
44
  def on_dragging(pos)
45
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_dragging', Shape ID: #{get_id}, Position: #{pos}\n")
45
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_dragging', Shape ID: #{self.object_id}, Position: #{pos}\n")
46
46
 
47
47
  # call original handler if required
48
48
  super
49
49
  end
50
50
  def on_end_drag(pos)
51
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_end_drag', Shape ID: #{get_id}, Position: #{pos}\n")
51
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_end_drag', Shape ID: #{self.object_id}, Position: #{pos}\n")
52
52
 
53
53
  # call original handler if required
54
54
  super
55
55
  end
56
56
 
57
57
  def on_begin_handle(handle)
58
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_begin_handle()', Shape ID: #{get_id}, Handle type: #{handle.type}\n")
58
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_begin_handle()', Shape ID: #{self.object_id}, Handle type: #{handle.type}\n")
59
59
 
60
60
  # call original handler if required
61
61
  super
62
62
  end
63
63
  def on_handle(handle)
64
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_handle()', Shape ID: #{get_id}, Handle type: #{handle.type}\n")
64
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_handle()', Shape ID: #{self.object_id}, Handle type: #{handle.type}\n")
65
65
 
66
66
  # call original handler if required
67
67
  super
68
68
  end
69
69
  def on_end_handle(handle)
70
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_end_handle()', Shape ID: #{get_id}, Handle type: #{handle.type}\n")
70
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::HandleEvent, "Called handler: 'on_end_handle()', Shape ID: #{self.object_id}, Handle type: #{handle.type}\n")
71
71
 
72
72
  # call original handler if required
73
73
  super
74
74
  end
75
75
 
76
76
  def on_mouse_enter(pos)
77
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_enter', Shape ID: #{get_id}, Position: #{pos}\n")
77
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_enter', Shape ID: #{self.object_id}, Position: #{pos}\n")
78
78
 
79
79
  # call original handler if required
80
80
  super
81
81
  end
82
82
  def on_mouse_over(pos)
83
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_over', Shape ID: #{get_id}, Position: #{pos}\n")
83
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_over', Shape ID: #{self.object_id}, Position: #{pos}\n")
84
84
 
85
85
  # call original handler if required
86
86
  super
87
87
  end
88
88
  def on_mouse_leave(pos)
89
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_leave', Shape ID: #{get_id}, Position: #{pos}\n")
89
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::MouseEvent, "Called handler: 'on_mouse_leave', Shape ID: #{self.object_id}, Position: #{pos}\n")
90
90
 
91
91
  # call original handler if required
92
92
  super
93
93
  end
94
94
 
95
95
  def on_key(key)
96
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::KeyEvent, "Called handler: 'on_key()', Shape ID: #{get_id}, Key code: #{key}\n")
96
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::KeyEvent, "Called handler: 'on_key()', Shape ID: #{self.object_id}, Key code: #{key}\n")
97
97
 
98
98
  # call original handler if required
99
99
  super
100
100
  end
101
101
 
102
102
  def on_child_dropped(pos, child)
103
- SFSample2Frame.log(SFSample2Frame::LOGTYPE::ChildDropEvent, "Called handler: 'on_child_dropped()', Parent shape ID: #{get_id}, Child shape ID: #{child.get_id}\n")
103
+ SFSample2Frame.log(SFSample2Frame::LOGTYPE::ChildDropEvent, "Called handler: 'on_child_dropped()', Parent shape ID: #{self.object_id}, Child shape ID: #{child.object_id}\n")
104
104
 
105
105
  # call original handler if required
106
106
  super
@@ -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
+ " "};
@@ -112,7 +112,7 @@ class SFSample3Frame < Wx::Frame
112
112
  def initialize(title)
113
113
  super(nil, Wx::StandardID::ID_ANY, title, size: [800,600])
114
114
 
115
- self.icon = Wx::Icon(:sample)
115
+ self.icon = Wx::Icon(:logo)
116
116
 
117
117
  if Wx.has_feature?(:USE_MENUS)
118
118
  # create a menu bar
@@ -244,7 +244,7 @@ class SFSample3Frame < Wx::Frame
244
244
  # update the text shape and its parent(s)
245
245
  text.update
246
246
  # display some info...
247
- Wx.log_message("New text of the star with ID #{text.get_parent_shape.id.to_i} is : '#{event.text}'")
247
+ Wx.log_message("New text of the star with ID #{text.get_parent_shape.object_id} is : '#{event.text}'")
248
248
  end
249
249
  end
250
250
 
@@ -252,7 +252,7 @@ class SFSample3Frame < Wx::Frame
252
252
  Wx::FileDialog(self, 'Load diagram from file...', Dir.getwd, '', "JSON Files (*.json)|*.json", Wx::FD_OPEN) do |dlg|
253
253
  if dlg.show_modal == Wx::ID_OK
254
254
  File.open(dlg.get_path, 'r') do |f|
255
- @canvas.set_diagram(Wx::SF::Serializable.deserialize(f))
255
+ @canvas.set_diagram(FIRM::Serializable.deserialize(f))
256
256
  @canvas.clear_canvas_history
257
257
  @canvas.save_canvas_state
258
258
  end
@@ -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
+ " "};
@@ -41,7 +41,7 @@ class SFSample4Frame < Wx::Frame
41
41
  def initialize(title)
42
42
  super(nil, Wx::StandardID::ID_ANY, title, size: [800,600])
43
43
 
44
- self.icon = Wx::Icon(:sample)
44
+ self.icon = Wx::Icon(:logo)
45
45
 
46
46
  if Wx.has_feature?(:USE_MENUS)
47
47
  # create a menu bar
@@ -166,7 +166,7 @@ class SFSample4Frame < Wx::Frame
166
166
  # or/and the widget as well. Note that GUI controls differ in a way how they process events
167
167
  # so the behaviour can be different for various widgets.
168
168
  shape.set_event_processing(Wx::SF::ControlShape::EVTPROCESSING::MOUSE2CANVAS | Wx::SF::ControlShape::EVTPROCESSING::KEY2CANVAS)
169
- #shape.set_event_processing(Wx::SF::ControlShape::EVTPROCESSING::MOUSE2GUI | Wx::SF::ControlShape::EVTPROCESSING::KEY2GUI)
169
+ shape.set_event_processing(Wx::SF::ControlShape::EVTPROCESSING::MOUSE2GUI | Wx::SF::ControlShape::EVTPROCESSING::KEY2GUI)
170
170
  end
171
171
 
172
172
  # ... and process standard canvas operations
@@ -1,6 +1,10 @@
1
1
 
2
2
  require 'test/unit'
3
3
  require 'test/unit/ui/console/testrunner'
4
+ begin
5
+ require 'nokogiri'
6
+ rescue LoadError
7
+ end
4
8
  require 'wx/core'
5
9
 
6
10
  module Wx::SF