foxguib 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/changelog.txt +128 -0
  4. data/doc/www/index.html +173 -0
  5. data/doc/www/upload.rb +9 -0
  6. data/examples/event_handler.rb +67 -0
  7. data/examples/event_handlers.rbin +0 -0
  8. data/examples/guib_testdialog.rb +31 -0
  9. data/examples/testdialog.rb +29 -0
  10. data/exe/foxguib +1 -0
  11. data/foxGUIb-debug.rb +37 -0
  12. data/foxGUIb.rb +88 -0
  13. data/foxGUIb_win32.rbw +1 -0
  14. data/foxguib.gemspec +26 -0
  15. data/license.txt +49 -0
  16. data/readme.txt +1 -0
  17. data/release_notes.txt +68 -0
  18. data/src/assert.rb +8 -0
  19. data/src/cfgman.rb +27 -0
  20. data/src/code-gen/code-generator.rb +171 -0
  21. data/src/code-gen/property-generators.rb +65 -0
  22. data/src/code-gen/widget-generator.rb +22 -0
  23. data/src/convert.rb +60 -0
  24. data/src/direct_widget_manipulation.rb +343 -0
  25. data/src/docman.rb +260 -0
  26. data/src/document.rb +405 -0
  27. data/src/event_categories.yaml +85 -0
  28. data/src/event_listener.rb +57 -0
  29. data/src/events.yaml +77 -0
  30. data/src/events_docu.yaml +228 -0
  31. data/src/get_events.rb +64 -0
  32. data/src/gui/ArrowButton.tga +0 -0
  33. data/src/gui/BoxMinus.tga +0 -0
  34. data/src/gui/BoxPlus.tga +0 -0
  35. data/src/gui/Button.tga +0 -0
  36. data/src/gui/CheckButton.tga +0 -0
  37. data/src/gui/ComboBox.tga +0 -0
  38. data/src/gui/Dial.tga +0 -0
  39. data/src/gui/GroupBox.tga +0 -0
  40. data/src/gui/HorizontalFrame.tga +0 -0
  41. data/src/gui/HorizontalSeparator.tga +0 -0
  42. data/src/gui/Label.tga +0 -0
  43. data/src/gui/MDIChild.tga +0 -0
  44. data/src/gui/MDIClient.tga +0 -0
  45. data/src/gui/Matrix.tga +0 -0
  46. data/src/gui/MenuCaption.tga +0 -0
  47. data/src/gui/MenuCascade.tga +0 -0
  48. data/src/gui/MenuCheck.tga +0 -0
  49. data/src/gui/MenuCommand.tga +0 -0
  50. data/src/gui/MenuPane.tga +0 -0
  51. data/src/gui/MenuRadio.tga +0 -0
  52. data/src/gui/MenuSeparator.tga +0 -0
  53. data/src/gui/MenuTitle.tga +0 -0
  54. data/src/gui/Menubar.tga +0 -0
  55. data/src/gui/Packer.tga +0 -0
  56. data/src/gui/ProgressBar.tga +0 -0
  57. data/src/gui/RadioButton.tga +0 -0
  58. data/src/gui/RadioMutex.tga +0 -0
  59. data/src/gui/ScrollWindow.tga +0 -0
  60. data/src/gui/Scrollbar.tga +0 -0
  61. data/src/gui/Shutter.tga +0 -0
  62. data/src/gui/ShutterItem.tga +0 -0
  63. data/src/gui/Slider.tga +0 -0
  64. data/src/gui/Spinner.tga +0 -0
  65. data/src/gui/Splitter.tga +0 -0
  66. data/src/gui/StatusBar.tga +0 -0
  67. data/src/gui/Statusline.tga +0 -0
  68. data/src/gui/Switcher.tga +0 -0
  69. data/src/gui/TabBar.tga +0 -0
  70. data/src/gui/TabBook.tga +0 -0
  71. data/src/gui/TabItem.tga +0 -0
  72. data/src/gui/Text.tga +0 -0
  73. data/src/gui/TextField.tga +0 -0
  74. data/src/gui/ToggleButton.tga +0 -0
  75. data/src/gui/Toolbar.tga +0 -0
  76. data/src/gui/VerticalFrame.tga +0 -0
  77. data/src/gui/VerticalSeparator.tga +0 -0
  78. data/src/gui/_guib_event_editor.rb +185 -0
  79. data/src/gui/_guib_event_editor.rbin +0 -0
  80. data/src/gui/_guib_genruby.rb +414 -0
  81. data/src/gui/_guib_genruby.rbin +0 -0
  82. data/src/gui/_guib_mainwin.rb +574 -0
  83. data/src/gui/_guib_mainwin.rbin +0 -0
  84. data/src/gui/event_editor.rb +180 -0
  85. data/src/gui/genruby.rb +155 -0
  86. data/src/gui/guib__console.rb +265 -0
  87. data/src/gui/mainwin.rb +71 -0
  88. data/src/gui/ruby_console.rb +263 -0
  89. data/src/gui/svg/Matrix.svg +87 -0
  90. data/src/gui/svg/MenuCheck.svg +135 -0
  91. data/src/gui/svg/MenuRadio.svg +130 -0
  92. data/src/gui/svg/RadioMutex.svg +119 -0
  93. data/src/gui/textview.rb +101 -0
  94. data/src/gui/textview.rbin +0 -0
  95. data/src/minitest.rb +60 -0
  96. data/src/prop-lists.rb +323 -0
  97. data/src/prop-types.rb +606 -0
  98. data/src/properties.rb +119 -0
  99. data/src/propman.rb +88 -0
  100. data/src/relink_mechanisms.rb +95 -0
  101. data/src/serialize.rb +167 -0
  102. data/src/state_machine.rb +73 -0
  103. data/src/version.rb +6 -0
  104. data/src/widget-lists.rb +118 -0
  105. data/src/widget-selector.rb +85 -0
  106. data/src/widgettree-controls.rb +183 -0
  107. data.tar.gz.sig +0 -0
  108. metadata +236 -0
  109. metadata.gz.sig +0 -0
@@ -0,0 +1,263 @@
1
+ # Copyright (c) 2004-2006 by Henon (meinrad dot recheis at gmail dot com)
2
+
3
+ require "libGUIb16" if __FILE__ == $0
4
+ require "guib__console"
5
+
6
+ class Console < BaseConsole
7
+ def initialize(parent)
8
+ super
9
+ create_styles
10
+ @cmdln.connect(SEL_COMMAND) {
11
+ execute
12
+ }
13
+ @history = ["", ""]
14
+ @histpos = 0
15
+ # @back.connect(SEL_COMMAND){ gohistory( -1) }
16
+ # @fwd.connect(SEL_COMMAND){ gohistory( 1) }
17
+ # @text.text="use out(*args) to print expressions to the console\n"
18
+ # ~ @HistoryText.textStyle-=TEXT_READONLY
19
+ @text.textStyle -= TEXT_WORDWRAP
20
+ @CmdsText.textStyle -= TEXT_WORDWRAP
21
+ @HistoryText.textStyle -= TEXT_WORDWRAP
22
+ # ~ @text.connect(SEL_KEYPRESS) {|x,y,evt|
23
+ # ~ if evt.code > 0 and evt.code <= 255
24
+ # ~ @text.text+=evt.code.chr
25
+ # ~ else
26
+ # ~ 0
27
+ # ~ end
28
+ # ~ }
29
+ # load_cmds
30
+ @cmdln.connect(SEL_KEYPRESS) { |x, y, evt|
31
+ if evt.code == 65362
32
+ gohistory(-1)
33
+ 1
34
+ elsif evt.code == 65364
35
+ gohistory(1)
36
+ 1
37
+ # TODO: PgUp and PgDown to scroll the @text.text
38
+ else
39
+ 0
40
+ end
41
+ }
42
+ @HorizontalFrame5.hide
43
+ configure_textbuffer @HistoryText
44
+ configure_textbuffer @CmdsText
45
+ @topwin.app.addChore do
46
+ @cmdln.setFocus
47
+ end
48
+ @scrolling = true
49
+ end
50
+ attr_reader :s_error, :s_op, :s_cmd
51
+ def create_styles
52
+ @text.styled = true
53
+
54
+ # syntax hiliting styles:
55
+ @styles = [
56
+ @s_error = FXHiliteStyle.new,
57
+ @s_cmd = FXHiliteStyle.new,
58
+ @s_op = FXHiliteStyle.new
59
+ ]
60
+ @styles.each { |style|
61
+ style.normalForeColor = @text.textColor
62
+ style.normalBackColor = @text.backColor
63
+ style.selectForeColor = @text.selTextColor
64
+ style.selectBackColor = @text.selBackColor
65
+ style.hiliteForeColor = @text.hiliteTextColor
66
+ style.hiliteBackColor = @text.hiliteBackColor
67
+ style.activeBackColor = @text.activeBackColor
68
+ style.style = 0
69
+ }
70
+
71
+ # ruby syntax error
72
+ @s_error.normalForeColor = FXRGB(228, 128, 130)
73
+
74
+ # recognized d1 command
75
+ @s_cmd.normalForeColor = FXRGB(50, 80, 234)
76
+
77
+ # console operator outputs
78
+ @s_op.normalForeColor = FXRGB(104, 152, 113)
79
+
80
+ @text.hiliteStyles = @styles
81
+ end
82
+
83
+ def load_cmds filename
84
+ require filename
85
+ @cmds = []
86
+ $cmds.each { |a|
87
+ cmd = a[0]
88
+ @cmds << cmd
89
+ params = a[1]
90
+ help = a[2]
91
+ @CmdsText.appendText "#{cmd} #{params}\n"
92
+ }
93
+ end
94
+
95
+ def configure_textbuffer buffer
96
+ buffer.connect(SEL_LEFTBUTTONRELEASE) {
97
+ if buffer.selEndPos == buffer.selStartPos
98
+ a = buffer.lineStart(buffer.cursorPos)
99
+ e = buffer.lineEnd(buffer.cursorPos)
100
+ seltext = buffer.text[a..e]
101
+ @cmdln.text = seltext.chomp
102
+ end
103
+ 0
104
+ }
105
+ buffer.connect(SEL_SELECTED) { |x, y, data|
106
+ seltext = buffer.text[data[0]..data[0] + data[1]]
107
+ @cmdln.text = seltext.chomp
108
+ }
109
+ buffer.connect(SEL_KEYPRESS) { |x, y, data|
110
+ out data.code
111
+ if data.code == 65293
112
+ execute
113
+ end
114
+ 0
115
+ }
116
+ end
117
+
118
+ def gohistory go
119
+ @histpos += go
120
+ @histpos = 0 if @histpos < 0
121
+ @histpos = @history.size - 1 if @histpos >= @history.size
122
+ @cmdln.text = @history[@histpos]
123
+ end
124
+
125
+ def addhistory cmd
126
+ @history.pop # poppin empty string
127
+ last = @history.pop
128
+ @history << last
129
+ if cmd != last
130
+ @history << cmd.chomp
131
+ @HistoryText.text += cmd.chomp + "\n"
132
+ end
133
+ @history << ""
134
+ @histpos = @history.size - 1
135
+ end
136
+
137
+ def execute cmd = nil
138
+ cmd ||= @cmdln.text
139
+ begin
140
+ addhistory cmd
141
+
142
+ out ">", cmd.split($/).join($/ + "> ")
143
+
144
+ @rv = eval cmd
145
+ rescue Exception
146
+ # @cmdln.textColor=FXRGB(255,0,0)
147
+ styled_out(@s_error, "\t", $!)
148
+ styled_out(@s_error, "\t", $!.backtrace.join($/ + "\t"))
149
+ end
150
+ @cmdln.text = ""
151
+ @cmdln.setFocus
152
+ end
153
+
154
+ def prepare_args(*args)
155
+ args.collect! { |e|
156
+ if e.nil?
157
+ "<nil>"
158
+ elsif e.is_a? Array
159
+ e.join(" ")
160
+ else
161
+ e
162
+ end
163
+ }
164
+ args.join(" ")
165
+ end
166
+
167
+ def print_to_console(s, line_ending = "")
168
+ unless @text.nil?
169
+ @text.appendText s + line_ending
170
+ # scroll to the end
171
+ @text.makePositionVisible(@text.text.size) if @scrolling
172
+ # puts s
173
+ end
174
+ end
175
+
176
+ # every argument is converted to string and joined with delimiter ' '
177
+ # arguments that are nil will be printed as "<nil>" instead of printing nil.to_s
178
+ # out with no arguments will print a "\n" to the console
179
+ def p(*)
180
+ s = prepare_args(*)
181
+ print_to_console(s)
182
+ s
183
+ end
184
+
185
+ def out(*)
186
+ s = prepare_args(*)
187
+ print_to_console(s, $/)
188
+ s
189
+ end
190
+
191
+ def styled_print_to_console(s, style, line_ending = "")
192
+ unless @text.nil?
193
+ pos = @text.text.size
194
+ @text.appendText s + line_ending
195
+ # style it !!!
196
+ @text.changeStyle(pos, s.size, get_style_index(style))
197
+ # scroll to the end
198
+ @text.makePositionVisible(@text.text.size) if @scrolling
199
+ # puts s
200
+ end
201
+ end
202
+
203
+ def styled_out(style, *)
204
+ s = prepare_args(*)
205
+ styled_print_to_console(s, style, $/)
206
+ end
207
+
208
+ def styled_p(style, *)
209
+ s = prepare_args(*)
210
+ styled_print_to_console(s, style)
211
+ end
212
+
213
+ def get_style_index(style)
214
+ @styles.index(style) + 1
215
+ end
216
+
217
+ def noscroll
218
+ @scrolling = false
219
+ end
220
+
221
+ def scroll
222
+ @scrolling = true
223
+ end
224
+
225
+ def nolang
226
+ @MenuButton.text = "Menu"
227
+ @HistoryTabItem.text = "History"
228
+ @CmdsTabItem.text = "Commands"
229
+ @Label4.text = "Cmd >"
230
+ @Label5.text = "Address:"
231
+ end
232
+ end
233
+ # ~ def out(*args)
234
+ # ~ $console.out(*args)
235
+ # ~ end
236
+
237
+ def create_console
238
+ $app = App.new
239
+ $console = Console.new $app
240
+ $console.topwin.show(0)
241
+ $app.create
242
+ end
243
+
244
+ def create_console_nolang
245
+ $app = App.new
246
+ $console = Console.new $app
247
+ $console.nolang
248
+ $console.topwin.show(0)
249
+ $app.create
250
+ end
251
+
252
+ def run_console
253
+ $app.run
254
+ end
255
+ # unit test
256
+
257
+ if __FILE__ == $0
258
+ # Dir.chdir ".."
259
+ # require "paths"
260
+ $FX = "FX/"
261
+ create_console_nolang
262
+ run_console
263
+ end
@@ -0,0 +1,87 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://web.resource.org/cc/"
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://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ width="32.000000px"
12
+ height="32.000000px"
13
+ id="svg2"
14
+ sodipodi:version="0.32"
15
+ inkscape:version="0.42"
16
+ sodipodi:docbase="/d/pr/foxGUIb/gui/pngs"
17
+ sodipodi:docname="Matrix.svg"
18
+ inkscape:export-filename="/d/pr/foxGUIb/gui/pngs/Matrix.png"
19
+ inkscape:export-xdpi="72.000000"
20
+ inkscape:export-ydpi="72.000000">
21
+ <defs
22
+ id="defs4" />
23
+ <sodipodi:namedview
24
+ id="base"
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1.0"
28
+ inkscape:pageopacity="0.0"
29
+ inkscape:pageshadow="2"
30
+ inkscape:zoom="11.200000"
31
+ inkscape:cx="19.273745"
32
+ inkscape:cy="18.829019"
33
+ inkscape:document-units="px"
34
+ inkscape:current-layer="layer1"
35
+ inkscape:window-width="1024"
36
+ inkscape:window-height="743"
37
+ inkscape:window-x="91"
38
+ inkscape:window-y="183" />
39
+ <metadata
40
+ id="metadata7">
41
+ <rdf:RDF>
42
+ <cc:Work
43
+ rdf:about="">
44
+ <dc:format>image/svg+xml</dc:format>
45
+ <dc:type
46
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
47
+ </cc:Work>
48
+ </rdf:RDF>
49
+ </metadata>
50
+ <g
51
+ inkscape:label="Layer 1"
52
+ inkscape:groupmode="layer"
53
+ id="layer1">
54
+ <rect
55
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
56
+ id="rect1306"
57
+ width="10.447895"
58
+ height="10.332165"
59
+ x="3.7728338"
60
+ y="3.9100168"
61
+ rx="0.0000000" />
62
+ <rect
63
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
64
+ id="rect2051"
65
+ width="10.443892"
66
+ height="10.328205"
67
+ x="18.089460"
68
+ y="3.9095480"
69
+ rx="0.0000000" />
70
+ <rect
71
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
72
+ id="rect2073"
73
+ width="10.517181"
74
+ height="10.400682"
75
+ x="3.8696823"
76
+ y="17.915602"
77
+ rx="0.0000000" />
78
+ <rect
79
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
80
+ id="rect2077"
81
+ width="10.517181"
82
+ height="10.400682"
83
+ x="18.186754"
84
+ y="17.915602"
85
+ rx="0.0000000" />
86
+ </g>
87
+ </svg>
@@ -0,0 +1,135 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://web.resource.org/cc/"
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://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ width="32.000000px"
12
+ height="32.000000px"
13
+ id="svg2"
14
+ sodipodi:version="0.32"
15
+ inkscape:version="0.42"
16
+ sodipodi:docbase="/d/pr/foxGUIb/gui/pngs"
17
+ sodipodi:docname="MenuCheck.svg"
18
+ inkscape:export-filename="/d/pr/foxGUIb/gui/pngs/MenuRadio.png"
19
+ inkscape:export-xdpi="72.000000"
20
+ inkscape:export-ydpi="72.000000">
21
+ <defs
22
+ id="defs4" />
23
+ <sodipodi:namedview
24
+ id="base"
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1.0"
28
+ inkscape:pageopacity="1.0000000"
29
+ inkscape:pageshadow="2"
30
+ inkscape:zoom="8.0000000"
31
+ inkscape:cx="26.581713"
32
+ inkscape:cy="7.9282831"
33
+ inkscape:document-units="px"
34
+ inkscape:current-layer="layer1"
35
+ inkscape:window-width="1024"
36
+ inkscape:window-height="743"
37
+ inkscape:window-x="99"
38
+ inkscape:window-y="292" />
39
+ <metadata
40
+ id="metadata7">
41
+ <rdf:RDF>
42
+ <cc:Work
43
+ rdf:about="">
44
+ <dc:format>image/svg+xml</dc:format>
45
+ <dc:type
46
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
47
+ </cc:Work>
48
+ </rdf:RDF>
49
+ </metadata>
50
+ <g
51
+ inkscape:label="Layer 1"
52
+ inkscape:groupmode="layer"
53
+ id="layer1">
54
+ <rect
55
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:1.4997326;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
56
+ id="rect2051"
57
+ width="10.443892"
58
+ height="10.328205"
59
+ x="3.4803505"
60
+ y="3.3024955"
61
+ rx="0.0000000" />
62
+ <rect
63
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
64
+ id="rect2073"
65
+ width="10.517181"
66
+ height="10.400682"
67
+ x="36.101826"
68
+ y="19.076317"
69
+ rx="0.0000000" />
70
+ <rect
71
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
72
+ id="rect2077"
73
+ width="10.517181"
74
+ height="10.400682"
75
+ x="50.418896"
76
+ y="19.076317"
77
+ rx="0.0000000" />
78
+ <path
79
+ sodipodi:type="arc"
80
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
81
+ id="path2140"
82
+ sodipodi:cx="-5.4910712"
83
+ sodipodi:cy="3.2946427"
84
+ sodipodi:rx="1.6517857"
85
+ sodipodi:ry="1.5625000"
86
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
87
+ transform="matrix(2.212146,0.000000,0.000000,2.212146,54.80829,2.925653)" />
88
+ <path
89
+ sodipodi:type="arc"
90
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
91
+ id="path2144"
92
+ sodipodi:cx="-5.4910712"
93
+ sodipodi:cy="3.2946427"
94
+ sodipodi:rx="1.6517857"
95
+ sodipodi:ry="1.5625000"
96
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
97
+ transform="matrix(2.212146,0.000000,0.000000,2.212146,63.95219,32.64694)" />
98
+ <path
99
+ sodipodi:type="arc"
100
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
101
+ id="path2142"
102
+ sodipodi:cx="-5.4910712"
103
+ sodipodi:cy="3.2946427"
104
+ sodipodi:rx="1.6517857"
105
+ sodipodi:ry="1.5625000"
106
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
107
+ transform="matrix(3.669538,0.000000,0.000000,3.669538,76.21818,-3.502792)" />
108
+ <path
109
+ sodipodi:type="arc"
110
+ style="opacity:1.0000000;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.57439631;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
111
+ id="path2146"
112
+ sodipodi:cx="-5.4910712"
113
+ sodipodi:cy="3.2946427"
114
+ sodipodi:rx="1.6517857"
115
+ sodipodi:ry="1.5625000"
116
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
117
+ transform="matrix(1.305486,0.000000,0.000000,1.305486,63.25676,4.189140)" />
118
+ <text
119
+ xml:space="preserve"
120
+ style="font-size:21.864220px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
121
+ x="6.9791288"
122
+ y="28.5"
123
+ id="text2166"
124
+ sodipodi:linespacing="125.00000%"><tspan
125
+ sodipodi:role="line"
126
+ id="tspan2168"
127
+ x="6.9791288"
128
+ y="28.500000">m</tspan></text>
129
+ <path
130
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:2.7500000;stroke-linecap:square;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
131
+ d="M 6.2187500,9.5937500 L 7.7733000,11.307077 L 11.250000,7.2500000"
132
+ id="path2170"
133
+ sodipodi:nodetypes="ccc" />
134
+ </g>
135
+ </svg>
@@ -0,0 +1,130 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://web.resource.org/cc/"
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://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ width="32.000000px"
12
+ height="32.000000px"
13
+ id="svg2"
14
+ sodipodi:version="0.32"
15
+ inkscape:version="0.42"
16
+ sodipodi:docbase="/d/pr/foxGUIb/gui/pngs"
17
+ sodipodi:docname="MenuRadio.svg"
18
+ inkscape:export-filename="/d/pr/foxGUIb/gui/pngs/RadioMutex.png"
19
+ inkscape:export-xdpi="72.000000"
20
+ inkscape:export-ydpi="72.000000">
21
+ <defs
22
+ id="defs4" />
23
+ <sodipodi:namedview
24
+ id="base"
25
+ pagecolor="#ffffff"
26
+ bordercolor="#666666"
27
+ borderopacity="1.0"
28
+ inkscape:pageopacity="1.0000000"
29
+ inkscape:pageshadow="2"
30
+ inkscape:zoom="2.8284271"
31
+ inkscape:cx="92.042355"
32
+ inkscape:cy="-71.784179"
33
+ inkscape:document-units="px"
34
+ inkscape:current-layer="layer1"
35
+ inkscape:window-width="1024"
36
+ inkscape:window-height="743"
37
+ inkscape:window-x="99"
38
+ inkscape:window-y="292" />
39
+ <metadata
40
+ id="metadata7">
41
+ <rdf:RDF>
42
+ <cc:Work
43
+ rdf:about="">
44
+ <dc:format>image/svg+xml</dc:format>
45
+ <dc:type
46
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
47
+ </cc:Work>
48
+ </rdf:RDF>
49
+ </metadata>
50
+ <g
51
+ inkscape:label="Layer 1"
52
+ inkscape:groupmode="layer"
53
+ id="layer1">
54
+ <rect
55
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
56
+ id="rect2051"
57
+ width="10.443892"
58
+ height="10.328205"
59
+ x="50.321602"
60
+ y="5.0702624"
61
+ rx="0.0000000" />
62
+ <rect
63
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
64
+ id="rect2073"
65
+ width="10.517181"
66
+ height="10.400682"
67
+ x="36.101826"
68
+ y="19.076317"
69
+ rx="0.0000000" />
70
+ <rect
71
+ style="opacity:1.0000000;color:#000000;fill:#869bb9;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
72
+ id="rect2077"
73
+ width="10.517181"
74
+ height="10.400682"
75
+ x="50.418896"
76
+ y="19.076317"
77
+ rx="0.0000000" />
78
+ <path
79
+ sodipodi:type="arc"
80
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
81
+ id="path2140"
82
+ sodipodi:cx="-5.4910712"
83
+ sodipodi:cy="3.2946427"
84
+ sodipodi:rx="1.6517857"
85
+ sodipodi:ry="1.5625000"
86
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
87
+ transform="matrix(2.212146,0.000000,0.000000,2.212146,54.80829,2.925653)" />
88
+ <path
89
+ sodipodi:type="arc"
90
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
91
+ id="path2144"
92
+ sodipodi:cx="-5.4910712"
93
+ sodipodi:cy="3.2946427"
94
+ sodipodi:rx="1.6517857"
95
+ sodipodi:ry="1.5625000"
96
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
97
+ transform="matrix(2.212146,0.000000,0.000000,2.212146,63.95219,32.64694)" />
98
+ <path
99
+ sodipodi:type="arc"
100
+ style="opacity:1.0000000;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.40869793;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
101
+ id="path2142"
102
+ sodipodi:cx="-5.4910712"
103
+ sodipodi:cy="3.2946427"
104
+ sodipodi:rx="1.6517857"
105
+ sodipodi:ry="1.5625000"
106
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
107
+ transform="matrix(3.669538,0.000000,0.000000,3.669538,29.96818,-3.502792)" />
108
+ <path
109
+ sodipodi:type="arc"
110
+ style="opacity:1.0000000;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.57439631;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
111
+ id="path2146"
112
+ sodipodi:cx="-5.4910712"
113
+ sodipodi:cy="3.2946427"
114
+ sodipodi:rx="1.6517857"
115
+ sodipodi:ry="1.5625000"
116
+ d="M -3.8392855 3.2946427 A 1.6517857 1.5625000 0 1 1 -7.1428570,3.2946427 A 1.6517857 1.5625000 0 1 1 -3.8392855 3.2946427 z"
117
+ transform="matrix(1.305486,0.000000,0.000000,1.305486,17.00676,4.189140)" />
118
+ <text
119
+ xml:space="preserve"
120
+ style="font-size:21.864220px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans"
121
+ x="6.9791288"
122
+ y="28.5"
123
+ id="text2166"
124
+ sodipodi:linespacing="125.00000%"><tspan
125
+ sodipodi:role="line"
126
+ id="tspan2168"
127
+ x="6.9791288"
128
+ y="28.500000">m</tspan></text>
129
+ </g>
130
+ </svg>