foxguib 1.1.0

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 (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