1
Welcome to the GLUI User Interface Library, v2.3!
3
-------------------------------------------------
5
This distribution contains the latest community-maintained fork of the
6
GLUI Library. It is based on the GLUI v2.1 beta version from Paul
7
Rademacher (http://www.cs.unc.edu/~rademach/glui/) plus the
8
compatibility changes made by Nigel Stewart in his "GLUI v2.2"
9
(http://www.nigels.com/glt/glui) In accordance with the LGPL under
10
which the library is released (according to Paul's web page at least),
11
these changes are available to everyone in the community.
13
WARNING: This version (2.3) introduces some incompatible changes with
18
----------------------------------
19
- GLUI_String is now a std::string
20
This is the main source of most incopatibilities, but I felt it was
21
a necessary change, because the previous usage of a fixed-sized
22
buffer was just too unsafe. I myself was bitten a few times passing
23
a char* buffer of insufficient size into GLUI as a live variable.
24
It is still possible to use a char buffer, but it is not recommended.
26
If you used GLUI_String before as a live var type, the easiest way
27
to get your code compiling again is to change those to "char
28
buf[300]". The better way, though, is to update your code to treat
31
For instance, if you used to pass mystr to functions that take
32
'const char*', now use mystr.c_str() method, instead.
33
If you used strcpy(mystr, b) to set the value, now just do mystr=b.
34
If you used sprintf(mystr,...) to set the value, now do
35
glui_format_string(mystr,...).
36
If you used to clear the string with mystr[0]='\0', now just clear
39
----------------------------------
40
- Enhanced GLUI_EditText
41
Control keys can be used for navigation and control. The bindings
42
are bash-like: Ctrl-B for previous char, Ctrl-F for forward char, etc.
43
bindings. Also control keys that aren't bound to commands are
44
simply ignored, whereas before they would be inserted as invisible
47
----------------------------------
48
- Added GLUI_CommandLine class
49
This is a GLUI_EditText with a history mechanism.
51
----------------------------------
52
- New, more object oriented construction API.
53
Now instead of calling
55
glui->add_button_to_panel( panel, "my button", myid, mycallback );
57
you should just call the button constructor:
59
new GLUI_Button( panel, "my button", myid, mycallback );
61
And similarly to add it to a GLUI instead of a panel, rather than:
63
glui->add_button( glui, "my button", myid, mycallback );
65
just call the constructor with the GLUI as the first argument:
67
new GLUI_Button( glui, "my button", myid, mycallback );
69
The old scheme is now deprecated, but still works. The benefit of
70
this new scheme is that now the GLUI class doesn't have to know
71
about all the different types of GLUI_Controls that exist.
72
Previously GLUI had to both know about all the controls, and know
73
how to initialize them. Now the responsibility for initialization
74
belongs to the GLUI_Control subclasses themselves, where it
75
belongs. Additionally it means that you can create your own
76
GLUI_Control subclasses which will be on equal footing with the
77
built-in controls, whereas before any user-created controls would
78
always be "second-class citizens" since they would have to be
79
constructed differently from the built-ins.
82
----------------------------------
83
- Removed need for type-declaring arguments when argment type suffices.
84
This effects GLUI_Spinner and GLUI_EditText (and GLUI_CommandLine?).
86
For example, instead of calling
88
new GLUI_Spinner( glui, "myspin", GLUI_SPINNER_INT, &live_int_var );
90
you can just omit the GLUI_SPINNER_INT part, because the type of the
91
live_int_var tells the compiler which type you want.
93
new GLUI_Spinner( glui, "myspin", &live_int_var );
95
If you're not using a live, var, you can still use the
96
GLUI_SPINNER_INT type argument. See glui.h for all the new
97
constructor signatures. Note this only works with the new
98
construction API, not with the old "add_blah_to_panel" style of
101
----------------------------------
102
- GLUI_Rotation uses your matrix live-variable now.
103
GLUI used to ignore the matrix in your live variable. This version
104
doesn't ignore it, so you'll need to set it to the identity matrix
105
yourself if that's what you want it to start as. There could
106
probably be some improvements to this API, though.
108
----------------------------------
109
- Improvements to 'const' usage.
110
Most char*'s in GLUI functions used to be non-const even when the
111
functions did not modify the string. I changed everywhere
112
appropriate to use const char* instead.
114
----------------------------------
115
- Updated license info in the headers
116
Paul's web page says that GLUI is LGPL, but that wasn't declared in
117
the code itself. I've modified all the headers with the standard
120
----------------------------------
121
- Updated examples for the API changes
123
----------------------------------
124
- Created project files for Visual Studio .NET (MSVC7.1)
127
That's about it. Enjoy!
130
If you find yourself with too much time on your hands, the things I
131
think would be most useful for future improvements to GLUI would be:
133
1. The GLUI_TextBox and GLUI_Tree definitely need some work, still.
134
2. Clipboard integration under Windows/X-Win. I have some code that
135
works on Win32 that I once integrated with GLUI, but I lost that
136
version somewhere. I still have the Win32 clipboard code, though
137
if anyone wants to work on integrating it. I have some X-Win
138
clipboard code, too, but I never got it working quite right.
139
3. Remove the dependency on GLUT, making the connection with window
140
system APIs into a more plug-in/adapter modular design.
141
So e.g. if you want to use GLUT, you'd link with the GLUI lib and a
142
GLUI_GLUT lib, and call one extra GLUI_glut_init() function or
146
Definitly consider submitting a patch if you've made some nice improvements
147
to GLUI. Hopefully being an LGPL sourceforge project will attract some new
148
interest to the GLUI project.
155
=================================================
156
JOHN KEW'S ADDITIONS (March 2005)
157
=================================================
159
Thanks to John Kew of Natural Solutions Inc.,
160
there are some new widgets. These are demonstrated in example6.cpp.
164
* GLUI_Scrollbar - A scrollbar slider widget
165
* GLUI_TextBox - A multi-line text widget
166
* GLUI_List - A static choice list
167
* GLUI_FileBrowser - A simple filebrowser based on GLUI_List
168
* GLUI_Tree - Hierarchical tree widget
169
* GLUI_TreePanel - Manager for the tree widget
171
And one other change:
173
* GLUI_Rollout has optional embossed border
175
=================================================
176
PAUL'S ORIGINAL GLUI 2.0/2.1 README
177
=================================================
179
Welcome to the GLUI User Interface Library, v2.0 beta!
180
-------------------------------------------------
182
This distribution contains the full GLUI sources, as well as 5 example
183
programs. You'll find the full manual under "glui_manual.pdf". The
186
http://www.cs.unc.edu/~rademach/glui
189
---------- Windows ----------
191
The directory 'msvc' contains a Visual C++ workspace entitled
192
'glui.dsw'. To recompile the library and examples, open this
193
workspace and run the menu command "Build:Batch Build:Build". The 3
194
executables will be in the 'bin' directory, and the library in the
197
To create a new Windows executable using GLUI, create a "Win32 Console
198
Application" in VC++, add the GLUI library (in 'msvc/lib/glui32.lib'),
199
and add the OpenGL libs:
201
glui32.lib glut32.lib glu32.lib opengl32.lib (Microsoft OpenGL)
203
Include the file "glui.h" in any file that uses the GLUI library.
206
---------- Unix ----------
208
An SGI/HP makefile is found in the file 'makefile' (certain lines may need
209
to be commented/uncommented).
211
To include GLUI in your own apps, add the glui library to your
212
makefile (before the glut library 'libglut.a'), and include "glui.h"
217
----------------------------------------------------------------------
219
Please let me know what you think, what you'd like to change or add,
220
and especially what bugs you encounter. Also, please send me your
221
e-mail so I can add you to a mailing list for updates.
223
Good luck, and thanks for trying this out!
b'\\ No newline at end of file'