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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/changelog.txt +128 -0
- data/doc/www/index.html +173 -0
- data/doc/www/upload.rb +9 -0
- data/examples/event_handler.rb +67 -0
- data/examples/event_handlers.rbin +0 -0
- data/examples/guib_testdialog.rb +31 -0
- data/examples/testdialog.rb +29 -0
- data/exe/foxguib +1 -0
- data/foxGUIb-debug.rb +37 -0
- data/foxGUIb.rb +88 -0
- data/foxGUIb_win32.rbw +1 -0
- data/foxguib.gemspec +26 -0
- data/license.txt +49 -0
- data/readme.txt +1 -0
- data/release_notes.txt +68 -0
- data/src/assert.rb +8 -0
- data/src/cfgman.rb +27 -0
- data/src/code-gen/code-generator.rb +171 -0
- data/src/code-gen/property-generators.rb +65 -0
- data/src/code-gen/widget-generator.rb +22 -0
- data/src/convert.rb +60 -0
- data/src/direct_widget_manipulation.rb +343 -0
- data/src/docman.rb +260 -0
- data/src/document.rb +405 -0
- data/src/event_categories.yaml +85 -0
- data/src/event_listener.rb +57 -0
- data/src/events.yaml +77 -0
- data/src/events_docu.yaml +228 -0
- data/src/get_events.rb +64 -0
- data/src/gui/ArrowButton.tga +0 -0
- data/src/gui/BoxMinus.tga +0 -0
- data/src/gui/BoxPlus.tga +0 -0
- data/src/gui/Button.tga +0 -0
- data/src/gui/CheckButton.tga +0 -0
- data/src/gui/ComboBox.tga +0 -0
- data/src/gui/Dial.tga +0 -0
- data/src/gui/GroupBox.tga +0 -0
- data/src/gui/HorizontalFrame.tga +0 -0
- data/src/gui/HorizontalSeparator.tga +0 -0
- data/src/gui/Label.tga +0 -0
- data/src/gui/MDIChild.tga +0 -0
- data/src/gui/MDIClient.tga +0 -0
- data/src/gui/Matrix.tga +0 -0
- data/src/gui/MenuCaption.tga +0 -0
- data/src/gui/MenuCascade.tga +0 -0
- data/src/gui/MenuCheck.tga +0 -0
- data/src/gui/MenuCommand.tga +0 -0
- data/src/gui/MenuPane.tga +0 -0
- data/src/gui/MenuRadio.tga +0 -0
- data/src/gui/MenuSeparator.tga +0 -0
- data/src/gui/MenuTitle.tga +0 -0
- data/src/gui/Menubar.tga +0 -0
- data/src/gui/Packer.tga +0 -0
- data/src/gui/ProgressBar.tga +0 -0
- data/src/gui/RadioButton.tga +0 -0
- data/src/gui/RadioMutex.tga +0 -0
- data/src/gui/ScrollWindow.tga +0 -0
- data/src/gui/Scrollbar.tga +0 -0
- data/src/gui/Shutter.tga +0 -0
- data/src/gui/ShutterItem.tga +0 -0
- data/src/gui/Slider.tga +0 -0
- data/src/gui/Spinner.tga +0 -0
- data/src/gui/Splitter.tga +0 -0
- data/src/gui/StatusBar.tga +0 -0
- data/src/gui/Statusline.tga +0 -0
- data/src/gui/Switcher.tga +0 -0
- data/src/gui/TabBar.tga +0 -0
- data/src/gui/TabBook.tga +0 -0
- data/src/gui/TabItem.tga +0 -0
- data/src/gui/Text.tga +0 -0
- data/src/gui/TextField.tga +0 -0
- data/src/gui/ToggleButton.tga +0 -0
- data/src/gui/Toolbar.tga +0 -0
- data/src/gui/VerticalFrame.tga +0 -0
- data/src/gui/VerticalSeparator.tga +0 -0
- data/src/gui/_guib_event_editor.rb +185 -0
- data/src/gui/_guib_event_editor.rbin +0 -0
- data/src/gui/_guib_genruby.rb +414 -0
- data/src/gui/_guib_genruby.rbin +0 -0
- data/src/gui/_guib_mainwin.rb +574 -0
- data/src/gui/_guib_mainwin.rbin +0 -0
- data/src/gui/event_editor.rb +180 -0
- data/src/gui/genruby.rb +155 -0
- data/src/gui/guib__console.rb +265 -0
- data/src/gui/mainwin.rb +71 -0
- data/src/gui/ruby_console.rb +263 -0
- data/src/gui/svg/Matrix.svg +87 -0
- data/src/gui/svg/MenuCheck.svg +135 -0
- data/src/gui/svg/MenuRadio.svg +130 -0
- data/src/gui/svg/RadioMutex.svg +119 -0
- data/src/gui/textview.rb +101 -0
- data/src/gui/textview.rbin +0 -0
- data/src/minitest.rb +60 -0
- data/src/prop-lists.rb +323 -0
- data/src/prop-types.rb +606 -0
- data/src/properties.rb +119 -0
- data/src/propman.rb +88 -0
- data/src/relink_mechanisms.rb +95 -0
- data/src/serialize.rb +167 -0
- data/src/state_machine.rb +73 -0
- data/src/version.rb +6 -0
- data/src/widget-lists.rb +118 -0
- data/src/widget-selector.rb +85 -0
- data/src/widgettree-controls.rb +183 -0
- data.tar.gz.sig +0 -0
- metadata +236 -0
- 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.
|
data/doc/www/index.html
ADDED
@@ -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 graphical user interfaces for <b><a href="http://www.ruby-lang.org/en" target="_blank">Ruby</a></b>. </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 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 and run <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. </font></font></li>
|
57
|
+
|
58
|
+
|
59
|
+
<li><font face="Verdana, Arial, Helvetica, sans-serif"><font size="3">you are done. </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> <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 </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 </small></span><big><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><big>©</big></font></big><span style="font-family: Verdana,Arial,Helvetica,sans-serif;"><small> 2004-2006 by Meinrad Recheis aka Henon
|
110
|
+
(meinrad dot recheis at gmail dot 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 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 commercial and
|
129
|
+
non-commercial use. </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;"> </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 <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
|
+
© 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
|