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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ef9f8fd2a5d4a7e9035145b03f4c184aad0833f18f23e467aa53980e3c7c84d3
4
+ data.tar.gz: 1c1d6a826207dcb485684d5f234cf05b70246bab5d01d2e5f423679f81b6f165
5
+ SHA512:
6
+ metadata.gz: dc9c89e21987729b9f6185164df25717f6aaf2ba18b928973969e09cc9f1ff6f886ae75e26d427123dfb2b05ea53143e92684738ab272f02da8f8e77fe73663b
7
+ data.tar.gz: 1cee86a3d2dd8e37ecdb6e15cd8197a4da82e37807cd522daa5a3c3e0104db51f2aa37d78421504d0853feb120ab2045804e4848e4a270070be3a492c113f526
checksums.yaml.gz.sig ADDED
Binary file
data/changelog.txt ADDED
@@ -0,0 +1,128 @@
1
+ ===========================================================
2
+ foxGUIb v1.0.0 for FXRuby 1.6
3
+ ===========================================================
4
+
5
+ * fixed: a bug that blocked the radio buttons in Generator Dialog
6
+ * fixed: better error message when loading of libguib fails
7
+ * added $VERBOSE=nil to overcome a bug in ruby 1.8.x that yields a whole lot
8
+ of warnings when loading fxruby
9
+ * fixed a bug in RangeProp
10
+
11
+ ===========================================================
12
+ foxGUIb v0.7.1 for FXRuby 1.6
13
+ ===========================================================
14
+
15
+ * fixed: numbers and constants weren't saved/loaded right
16
+ * fixed: crash when deleting a radiobutton out of a
17
+ radiomutex.
18
+
19
+ ===========================================================
20
+ foxGUIb v0.7 for FXRuby 1.6
21
+ ===========================================================
22
+
23
+ Summary:
24
+ --------
25
+
26
+ FOX 1.6 brings to you full unicode support. see:
27
+ foxGUIb/test/unicode_test_japanese.rbin
28
+ This release is tested against FXRuby 1.6.0
29
+ I got some bug reports and most of them are fixed in this
30
+ release. Please keep sending bug reports to further improve
31
+ foxGUIb.
32
+
33
+ List of changes:
34
+ ----------------
35
+ * restructured the source repository to be user centered.
36
+ now the sources are in ./src and only the important files
37
+ are in the toplevel directory.
38
+ * Fixed the bug that allowed to change properties of a
39
+ deleted widget (caused a crash)
40
+ * Fixed several bugs that led to crashes when typing
41
+ improper values into the property manipulators. e.g.:
42
+ backColor="bad input" instead of "200,255,255"
43
+ * on startup foxGUIb logs important version infos to the
44
+ log file. the log file is appended instead of replaced.
45
+ in case of a problem you can send me your logfile.
46
+ * some code improvements. hope i didn't introduce more bugs
47
+ * repository switched to svn.
48
+ ... the contracting design window issue (windows only) is
49
+ still unfixed.
50
+
51
+ ===========================================================
52
+ foxGUIb v0.6.2 for FXRuby 1.4.x (stable)
53
+ ===========================================================
54
+ * fixed the "initial design window" isssue on windows.
55
+
56
+
57
+ ===========================================================
58
+ foxGUIb v0.6.1 for FXRuby 1.4.x
59
+ ===========================================================
60
+ * fixed the forgotten comma which caused a crash
61
+
62
+
63
+ ===========================================================
64
+ foxGUIb v0.6 for FXRuby 1.4.x
65
+ ===========================================================
66
+ * added widgets radiomutex menuradio and menucheck
67
+ * validates widget names (whether suitable as instance var), lowercase default names
68
+ * fixed the codegen-dialog startup bugs:
69
+ * the suggested class name changes according to the selected root widget
70
+ * codegen dialog protects settings by means of a checkboxthat toggles it readonly
71
+ * fixed bug: "on XP, the code gen window opens rather low down on the screen"
72
+ * context menu commands that are not supposed to be applied in certain situations are disabled (now foolproof ^^)
73
+ * context menu is now also available in the layout for most of the widgets (that respond to LMB-press)
74
+ * terminology: changed "paste/add under" to "paste/add inside"
75
+ * fixed: crash on closing last open layout
76
+ * fixed: the 'ruby sequence' option for code generator was broken
77
+ * fixed: crash on generate when document has been switched meanwhile.
78
+ * newly created widget is allways highlighted blue
79
+ * terminology: changed term for foxGUIb documents from 'Dialog' to 'Layout' in the userinterface
80
+ * fixed: the copy-paste bug and removed backColor hacks that became obsolete because of the new backColor(=) singleton methods
81
+ * added cut (to the options copy, paste and delete)
82
+ * removed "place exact" by "paste under/ -before/ -after"
83
+ * event editor: can now be started from context menu
84
+ * fix: changed backColor to allways return the true color of the widget (not the blue selection color of foxGUIb).
85
+ * externalized FX.rb as libGUIb and wrote an installer for it.
86
+ * updated foxGUIb to use libGUIb14.rb
87
+ * hacked mainwindow layouts to be always in front of foxGUIb mainwin
88
+ * fixed: the mainwindow allways in front of guib hack introduced a new problem. mainwindows got generated as dialog boxes
89
+ * eliminated include FX and include Fox from libGUIb.
90
+ * fixed bug in event_handler example
91
+
92
+
93
+ --------------------------------------------------------------------
94
+ v0.5.0
95
+ * Compatible with FXRuby1.4.4. Unfortunately this release is incompatible with
96
+ old FXRuby versions <= 1.2.6. Send me a feature request if you need it.
97
+ * New feature: "EventEditor". Event handling code can be written directly in
98
+ the EventEditor. Test running of the designed GUI with events is not included yet.
99
+ * The code generator supports events. See the event_handler.rbin example.
100
+ * EventEditor shows documentation for each listed event in the FXRuby API
101
+ * I polished foxGUIb's own GUI a bit. Looks quite professional now ;)
102
+ * Most icons are now in TGA file format which can allways be loaded because TGA
103
+ support is built-in in the FOX library.
104
+ * Fixed the startup crash on linux platforms.
105
+ * Fixed "Save As" Bug
106
+ Notes: Mike Parr is currently writing documentation for foxGUIb. The docu will be
107
+ included in the package in succeding versions. Thanks to all who encouraged me to
108
+ continue on foxGUIb!!
109
+ --------------------------------------------------------------------
110
+ v1_branch: (unstable)
111
+ * completed module Direct Widget Manipulation that features
112
+ * insert mode: mouse and keyboard controllable insert cursor
113
+ * edit mode: mouse-over hovering, single/multiple select, recursive select
114
+ and mouse-drag-relink, keyboard relink of selected widget
115
+ --------------------------------------------------------------------
116
+ version 0.4.1: development release. (unstable)
117
+ * fixed a critical bug in code-generator.rb (widgetname without quotes)
118
+ --------------------------------------------------------------------
119
+ version 0.4: development release. (unstable)
120
+ * ported to fox12 - fxruby 1.2.6 but tried to be backward compatible to fox 1.0. that is:
121
+ previous foxGUIb version documents can be loaded.
122
+ NOTE: radiobuttons in groupboxes don't support radio behaviour any more.
123
+ * code generator outputs version
124
+ * fixed bug: crashes after switching to a loaded document.
125
+ * Combobox#comboItems= now takes a newline seperated string
126
+ * added widgets: MainWindow, Matrix
127
+ --------------------------------------------------------------------
128
+ Version 0.3: initial release.
@@ -0,0 +1,173 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+
5
+
6
+
7
+
8
+
9
+ <title>foxGUIb: interactive gui builder and codegenerator for FXRuby</title>
10
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
11
+ </head>
12
+
13
+
14
+ <body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">
15
+
16
+
17
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><big><big><big><big><b><font size="3"><big><big><big><big>foxGUIb</big></big></big></big></font></b></big></big></big></big><font size="3"> <br>
18
+ ... is an interactive gui builder and codegenerator for</font></font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"> <b><a href="http://www.fxruby.org/" target="_blank">FXRuby</a></b></font></font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3">. It is a convenient tool that makes it easy to quickly build
19
+ complex and good looking&nbsp;graphical user interfaces for <b><a href="http://www.ruby-lang.org/en" target="_blank">Ruby</a></b>.&nbsp;</font></font></p>
20
+
21
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"></font></font></p>
22
+
23
+
24
+
25
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><span style="font-weight: bold;">download:</span> all releases of <a href="http://rubyforge.org/frs/?group_id=88">foxGUIb</a></font></font></p>
26
+
27
+
28
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><span style="font-weight: bold;">users
29
+ guide:</span> thanks to my dear friend <span style="font-style: italic;">Mike Parr</span>
30
+ there is a comprehensive <a href="http://www.mikeparr.info/rubyguib/foxguibhome.htm">User's Guide</a> available.</font></font></p>
31
+
32
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><span style="font-weight: bold;">screen shot: </span>the
33
+ window&nbsp;in the back is the main window of foxGUIb showing the
34
+ "widget tree" the "widget selector" and the "properties" of the
35
+ currently highlighted widget (blue). The window in the front is the
36
+ design window, where a user has built a simple user interface.</font></font></p>
37
+
38
+ <p style="margin-left: 40px;"><img style="width: 500px; height: 325px;" alt="[screenshot]" src="http://www.mikeparr.info/rubyguib/pics/guibshot1.jpg"></p>
39
+
40
+
41
+ <p style="font-weight: bold;"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3">installation v0.6.2:</font></font></p>
42
+
43
+
44
+ <ol>
45
+
46
+
47
+ <li><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><span style="text-decoration: underline;">install
48
+ libGUIb</span>: download the latest version of the package <span style="font-style: italic;">libGUIb-install</span> and
49
+ uncompress it to a temporary directory. go to that
50
+ directory&nbsp;and run&nbsp;<big><code><small>ruby install.rb</small></code></big>
51
+ (on linux this requires superuser privileges)</font></font></li>
52
+
53
+
54
+ <li><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><span style="text-decoration: underline;">install
55
+ foxGUIb</span>: download the latest <span style="font-style: italic;">foxGUIb</span> package and
56
+ uncompress it to a directory of your choice.&nbsp;&nbsp;</font></font></li>
57
+
58
+
59
+ <li><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3">you are done.&nbsp;</font></font></li>
60
+
61
+
62
+ </ol>
63
+
64
+
65
+ <p style="font-weight: bold;"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3">installation v0.7:</font></font></p>
66
+ <span style="font-family: Helvetica,Arial,sans-serif;">the release process was too complicated with 3 packages, so i simplified it:</span><br style="font-family: Helvetica,Arial,sans-serif;">
67
+ <span style="font-family: Helvetica,Arial,sans-serif;">dowload the all-in-one-archive and install libGUIb. see </span><span style="text-decoration: underline; font-family: Helvetica,Arial,sans-serif;">installation.txt</span><span style="font-family: Helvetica,Arial,sans-serif;"> for details.</span><br>
68
+ <p><font style="font-weight: bold;" face="Verdana, Arial, Helvetica, sans-serif"><font size="3">usage:</font></font></p>
69
+
70
+
71
+ <ul>
72
+
73
+
74
+ <li style="font-family: Helvetica,Arial,sans-serif;">go to the foxGUIb directory and run foxGUIb either by:</li>
75
+
76
+
77
+
78
+ <ul>
79
+
80
+
81
+ <li style="font-family: Helvetica,Arial,sans-serif;">double-clicking on foxGUIb-win32.rbw (on windows)</li>
82
+
83
+
84
+ <li><span style="font-family: Helvetica,Arial,sans-serif;">typing</span>&nbsp;<code><span style="font-family: monospace;">ruby foxGUIb.rb</span></code>
85
+ <span style="font-family: Helvetica,Arial,sans-serif;">(on *nix-like systems)</span></li>
86
+
87
+
88
+
89
+ </ul>
90
+
91
+
92
+ <li><span style="font-family: Helvetica,Arial,sans-serif;">to release files generated by foxGUIb you might want to distribute them together with </span><span style="font-style: italic; font-family: Helvetica,Arial,sans-serif;">libGUIb14.rb</span><span style="font-family: Helvetica,Arial,sans-serif;">,
93
+ which is also available for download as single file (</span><span style="font-style: italic; font-family: Helvetica,Arial,sans-serif;">libGUIb14.rb-redistributable*.zip</span><span style="font-family: Helvetica,Arial,sans-serif;">)</span>.</li>
94
+
95
+
96
+ </ul>
97
+
98
+
99
+ <p><font face="Verdana, Arial, Helvetica, sans-serif"><small><b>mailing
100
+ list:</b></small> </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">foxGUIb
101
+ users may use the <a href="http://rubyforge.org/mailman/listinfo/fxruby-users" target="_blank">fxruby-users</a> mailing list&nbsp;</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">(low
102
+ traffic).</font></p>
103
+
104
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
105
+ <small><font size="3"><small><b>bugs:</b></small></font></small>
106
+ a bugtracker can be found on <a href="http://rubyforge.org/projects/fox-tool/">http://rubyforge.org/projects/fox-tool/</a></font></p>
107
+
108
+
109
+ <span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small><span style="font-weight: bold;">copyright:</span> foxGUIb and libGUIb are copyright&nbsp;</small></span><big><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><big>&copy;</big></font></big><span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small> 2004-2006 by Meinrad Recheis aka Henon
110
+ (meinrad dot&nbsp;recheis at gmail dot&nbsp;com)<br>
111
+ <br>
112
+ </small></span><span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small><span style="font-weight: bold;">license: <br>
113
+
114
+
115
+ </span></small></span>
116
+ <ul>
117
+
118
+
119
+ <li><small><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><small><span style="text-decoration: underline;">foxGUIb</span> is
120
+ open source and redestributable under the terms of the <a href="http://www.opensource.org/licenses/artistic-license.php">Artistic
121
+ License</a>.</small></font></font></small></li>
122
+
123
+
124
+ <li><small><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><small><span style="text-decoration: underline;">libGUIb</span> is&nbsp;redistributable for </small></font></font></small><small><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><small>commercial and non-commercial use under the terms of the <a href="http://www.gnu.org/licenses/lgpl.html">LGPL</a></small></font></font></small><small><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><small>.</small></font></font></small></li>
125
+
126
+
127
+ <li><small><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3"><small><span style="text-decoration: underline;">Source files generated
128
+ by foxGUIb</span> are free for&nbsp;commercial and
129
+ non-commercial use.&nbsp;</small></font></font></small></li>
130
+
131
+
132
+ </ul>
133
+
134
+
135
+ <div style="margin-left: 40px;"><span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, </small></span><br>
136
+ <span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small>INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND </small></span><br>
137
+ <span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small>FITNESS FOR A PARTICULAR PURPOSE.</small></span><br>
138
+ <span style="font-family: Verdana,Arial,Helvetica,sans-serif;"></span></div>
139
+ <span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small>
140
+
141
+ <span style="font-weight: bold;"></span></small></span>
142
+ <hr noshade="noshade">
143
+ <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">some people i'd like to pay my respect to: <br>
144
+
145
+
146
+ </font></p>
147
+
148
+ <div style="margin-left: 40px;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Yukihiro Matsumoto</b>, the inventor of <a href="http://www.ruby-lang.org/en">RUBY</a> (the best
149
+ scripting language ever!)</font><br>
150
+
151
+ <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
152
+ <b>Jeroen van der Zijp,</b> the inventor of the GUI toolkit <a href="http://www.fox-toolkit.org">FOX</a></font><small style="font-family: Helvetica,Arial,sans-serif;">&nbsp;</small><br>
153
+
154
+ <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
155
+ <b>Lyle Johnson</b>, the creator and maintainer of <a href="http://www.fxruby.org/">FXRuby</a></font><br>
156
+
157
+ <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
158
+ <span style="font-weight: bold;">Tom Copeland</span>,
159
+ and the&nbsp;<a href="http://www.rubyforge.org/">rubyforge.org</a>
160
+ team. they are hosting this project.</font><br>
161
+
162
+ <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
163
+ <span style="font-weight: bold;">Mike Parr</span>, the author of the <a href="http://www.mikeparr.info/rubyguib/foxguibhome.htm">guide</a>.</font></div>
164
+
165
+ <p></p>
166
+
167
+
168
+ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Copyright
169
+ &copy; 2006 Meinrad Recheis</font></p>
170
+
171
+
172
+ </body>
173
+ </html>
data/doc/www/upload.rb ADDED
@@ -0,0 +1,9 @@
1
+ STDOUT.sync = true
2
+
3
+ puts `scp index.html fox-tool.rubyforge.org:/var/www/gforge-projects/fox-tool`
4
+
5
+ pw = File.read("pw")
6
+ io = IO.popen("scp index.html fox-tool.rubyforge.org:/var/www/gforge-projects/fox-tool", "w")
7
+ puts "sleeping for a minute"
8
+ sleep 60
9
+ io.puts pw
@@ -0,0 +1,67 @@
1
+ # source generated by foxGUIb
2
+
3
+ class EventHandler
4
+ def initialize(parent)
5
+ construct_widget_tree(parent)
6
+ init if respond_to? :init
7
+ end
8
+
9
+ def construct_widget_tree(parent)
10
+ @topwin =
11
+ FX::MainWindow.new(parent) { |w|
12
+ @MainWindow = w
13
+ w.wdg_name = "MainWindow"
14
+ w.width = 200
15
+ w.shown = true
16
+ w.y = 593
17
+ w.height = 150
18
+ w.x = 51
19
+ FX::VerticalFrame.new(@MainWindow) { |w|
20
+ @VerticalFrame = w
21
+ w.wdg_name = "VerticalFrame"
22
+ w.width = 200
23
+ w.height = 150
24
+ FX::Button.new(@VerticalFrame) { |w|
25
+ @Button = w
26
+ w.wdg_name = "Button"
27
+ w.text = "click to see what happens!"
28
+ w.width = 177
29
+ w.height = 23
30
+ @Button.connect(Fox::SEL_LEFTBUTTONRELEASE) {
31
+ @Text.appendText "lmb up\n"
32
+ 0 # this prevents fox from blocking the builtin event handler for leftbuttonpress
33
+ }
34
+ @Button.connect(Fox::SEL_LEFTBUTTONPRESS) {
35
+ @Text.appendText "lmb down\n"
36
+ 0 # this prevents fox from blocking the builtin event handler for leftbuttonpress
37
+ }
38
+ @Button.connect(Fox::SEL_COMMAND) {
39
+ @Text.appendText "click!\n"
40
+ }
41
+ }
42
+ FX::Text.new(@VerticalFrame) { |w|
43
+ @Text = w
44
+ w.wdg_name = "Text"
45
+ w.width = 200
46
+ w.y = 23
47
+ w.height = 127
48
+ }
49
+ }
50
+ }
51
+ end
52
+ attr_reader :topwin
53
+ attr_reader :MainWindow
54
+ attr_reader :VerticalFrame
55
+ attr_reader :Button
56
+ attr_reader :Text
57
+ end
58
+
59
+ # unit test
60
+ if __FILE__ == $0
61
+ require "FX"
62
+ app = FX::App.new
63
+ w = EventHandler.new app
64
+ w.topwin.show(0)
65
+ app.create
66
+ app.run
67
+ end
Binary file
@@ -0,0 +1,31 @@
1
+ class TestDialog
2
+ def initialize(parent)
3
+ construct_widget_tree(parent)
4
+ init if respond_to? :init
5
+ end
6
+
7
+ def construct_widget_tree(parent)
8
+ @topwin =
9
+ FX::DialogBox.new(parent) { |w|
10
+ @DialogBox = w
11
+ w.width = 200
12
+ w.shown = true
13
+ w.y = 325
14
+ w.height = 150
15
+ w.x = 540
16
+ }
17
+ end
18
+ attr_accessor :topwin,
19
+ :DialogBox,
20
+ :__foxGUIb__last__
21
+ end
22
+
23
+ # unit test
24
+ if __FILE__ == $0
25
+ require "FX"
26
+ app = App.new
27
+ w = TestDialog.new app
28
+ w.topwin.show(0)
29
+ app.create
30
+ app.run
31
+ end
@@ -0,0 +1,29 @@
1
+ # Copyright (c) 2004-2006 by Henon (meinrad dot recheis at gmail dot com)
2
+
3
+ $stdout.sync = true
4
+ require "guib_testdialog"
5
+ class TestDialog
6
+ def init
7
+ # exits the interpreter when the dialog is closed
8
+ @topwin.connect(SEL_CLOSE) {
9
+ puts "goodbye!"
10
+ exit(0)
11
+ }
12
+ # adding a button here manually just to show
13
+ # that you can to just anything in the extension file
14
+ Fox::FXButton.new(@topwin, "click me") { |b|
15
+ b.connect(SEL_COMMAND) {
16
+ puts "hello world!"
17
+ }
18
+ }
19
+ end
20
+ end
21
+ # unit test just copied from the guib file
22
+ if __FILE__ == $0
23
+ require "../FX"
24
+ app = App.new
25
+ w = TestDialog.new app
26
+ w.topwin.show(0)
27
+ app.create
28
+ app.run
29
+ end
data/exe/foxguib ADDED
@@ -0,0 +1 @@
1
+ require_relative "../foxGUIb"
data/foxGUIb-debug.rb ADDED
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2004-2006 by Henon (meinrad dot recheis at gmail dot com)
2
+ # foxGUIb debug
3
+
4
+ # TODO:
5
+ # add a libGUIb version
6
+ # scrollbar style
7
+ # terminate called after throwing an instance of 'FX::FXFontException'
8
+
9
+ # combobox and list and others: add Array-like interface
10
+
11
+ # eliminate globals. $app --> App.instance
12
+ # replace pp with yaml
13
+ # show if document is modified
14
+ # codegenerator that outputs true subclasses as opposed to a delegator, or outputs module that can be included
15
+ # review container. change container header to checker with boxstyle
16
+ # replace png dummy by tga dummy
17
+ # review img= (concerning the removal of icons)
18
+ # listitems, treeitems
19
+ # extract more docu from the fxruby api
20
+
21
+ # more TODOs:
22
+
23
+ # Also, I noticed that the code gen dialog does not automatically add .rb to my chosen class name
24
+
25
+ # generator: floatinput.rb:99: uninitialized constant MainWindow (NameError)
26
+
27
+ # removing eventhandling code leaves a single character undeletable
28
+ # codegen derive instead of embed
29
+ # 'autosave ruby class' option
30
+ # 'generate code on every save' option.
31
+ # +namespace solution would be nice.
32
+ # convert old fox-tool examples to foxguib
33
+ # schow modified and ask to save
34
+
35
+ $DEBUG = true
36
+
37
+ require "foxGUIb"
data/foxGUIb.rb ADDED
@@ -0,0 +1,88 @@
1
+ # Copyright (c) 2004-2008 by Henon (meinrad dot recheis at gmail dot com)
2
+
3
+ # foxGUIb - main script
4
+ # when started with ruby's commandline option -d output goes to $stdout otherwise to log.txt
5
+
6
+ $: << File.expand_path("src", __dir__)
7
+ $: << File.expand_path("src/gui", __dir__)
8
+ $: << File.expand_path("src/code-gen", __dir__)
9
+
10
+ require "version"
11
+
12
+ begin
13
+ require FOXGUIB_LIBRARY
14
+ rescue LoadError
15
+ puts $!
16
+ puts
17
+ puts "Possible causes of this error are:"
18
+ puts "* libGUIb is not installed"
19
+ puts "* fxruby is not installed"
20
+ puts "* fxruby gem could not be loaded because you did not start ruby with -rubygems option"
21
+ puts "* other unexpected error. please check the following backtrace to find the cause of the error."
22
+ puts
23
+ puts $!.backtrace
24
+ exit
25
+ end
26
+
27
+ STDOUT.sync = true
28
+ unless $DEBUG
29
+ $stdout = File.new("log.txt", "a")
30
+ $stdout.sync = true
31
+ end
32
+ puts "\nstarting foxGUIb #{FOXGUIB_VERSION}. #{Time.now}"
33
+ puts "\tRUBY VERSION #{RUBY_VERSION}"
34
+ puts "\tPLATFORM #{RUBY_PLATFORM}"
35
+
36
+ HOME = Dir.getwd
37
+
38
+ include FX
39
+ include Fox
40
+ puts "\tFXRuby version: #{Fox.fxrubyversion}"
41
+ puts "\tFOX version: #{Fox.fxversion}\n\n"
42
+
43
+ require "properties"
44
+ require "widget-generator"
45
+ require "mainwin"
46
+ require "docman"
47
+ require "propman"
48
+ require "widget-selector"
49
+ require "ruby_console"
50
+ require "cfgman"
51
+
52
+ STD_BACK_COLOR = FXRGB(230, 230, 230)
53
+ HEADER_COLOR = FXRGB(255, 255, 168)
54
+
55
+ App.new FOXGUIB, ""
56
+
57
+ MAINWIN = MainWin.new $app
58
+ MAINWIN.topwin.shown = false
59
+ DocMan.instance
60
+ PropMan.instance.create(width = 300)
61
+ WidgetSelector.instance
62
+ $console = Console.new(MAINWIN.topwin)
63
+ $console.nolang
64
+ $console.styled_out($console.s_op, "#{FOXGUIB} interactive ruby command console\nuse 'out(*args)' to output objects to the console.")
65
+ $console.topwin.hide
66
+ # ---
67
+ $fxapp.create
68
+ MAINWIN.topwin.resize(1000, 600)
69
+ MAINWIN.topwin.show(PLACEMENT_SCREEN)
70
+ begin
71
+ load_settings("guib.conf")
72
+
73
+ # Load files given on command line
74
+ ARGV.each do |arg|
75
+ DocMan.instance.load(arg)
76
+ end
77
+
78
+ $fxapp.run
79
+ puts "exited normally"
80
+ rescue Exception
81
+ puts "#" * 15
82
+ puts $!
83
+ puts $!.backtrace.join("\n")
84
+ puts "#" * 15
85
+ DocMan.instance.emergency_save
86
+ ensure
87
+ save_settings("guib.conf")
88
+ end
data/foxGUIb_win32.rbw ADDED
@@ -0,0 +1 @@
1
+ require "foxGUIb"
data/foxguib.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ require_relative "src/version"
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "foxguib"
5
+ spec.version = FOXGUIB_VERSION
6
+ spec.authors = ["Meinrad Recheis aka Henon", "Lars Kanis"]
7
+ spec.email = ["meinrad.recheis@gmail.com", "lars@greiz-reinsdorf.de"]
8
+
9
+ spec.summary = "Fox GUI builder"
10
+ spec.description = "GUI builder for the Fox toolkit written in Ruby."
11
+ spec.homepage = "https://github.com/larskanis/foxGUIb"
12
+ spec.license = "Artistic License 1.0"
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ spec.bindir = "exe"
16
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
17
+ spec.require_paths = ["src"]
18
+
19
+ spec.required_ruby_version = [">= 2.5", "< 4.0"]
20
+
21
+ spec.add_runtime_dependency "fxruby", "~> 1.6.0"
22
+ spec.add_runtime_dependency "libguib", "~> 1.1"
23
+
24
+ spec.add_development_dependency "bundler", ">= 1.11", "<= 3.0"
25
+ spec.add_development_dependency "rake", "~> 13.0"
26
+ end