add glui library
This commit is contained in:
228
Extras/glui/readme.txt
Normal file
228
Extras/glui/readme.txt
Normal file
@@ -0,0 +1,228 @@
|
||||
Welcome to the GLUI User Interface Library, v2.3!
|
||||
March 22, 2005
|
||||
-------------------------------------------------
|
||||
|
||||
This distribution contains the latest community-maintained fork of the
|
||||
GLUI Library. It is based on the GLUI v2.1 beta version from Paul
|
||||
Rademacher (http://www.cs.unc.edu/~rademach/glui/) plus the
|
||||
compatibility changes made by Nigel Stewart in his "GLUI v2.2"
|
||||
(http://www.nigels.com/glt/glui) In accordance with the LGPL under
|
||||
which the library is released (according to Paul's web page at least),
|
||||
these changes are available to everyone in the community.
|
||||
|
||||
WARNING: This version (2.3) introduces some incompatible changes with
|
||||
previous versions!!
|
||||
|
||||
CHANGES:
|
||||
|
||||
----------------------------------
|
||||
- GLUI_String is now a std::string
|
||||
This is the main source of most incopatibilities, but I felt it was
|
||||
a necessary change, because the previous usage of a fixed-sized
|
||||
buffer was just too unsafe. I myself was bitten a few times passing
|
||||
a char* buffer of insufficient size into GLUI as a live variable.
|
||||
It is still possible to use a char buffer, but it is not recommended.
|
||||
|
||||
If you used GLUI_String before as a live var type, the easiest way
|
||||
to get your code compiling again is to change those to "char
|
||||
buf[300]". The better way, though, is to update your code to treat
|
||||
it as a std::string.
|
||||
|
||||
For instance, if you used to pass mystr to functions that take
|
||||
'const char*', now use mystr.c_str() method, instead.
|
||||
If you used strcpy(mystr, b) to set the value, now just do mystr=b.
|
||||
If you used sprintf(mystr,...) to set the value, now do
|
||||
glui_format_string(mystr,...).
|
||||
If you used to clear the string with mystr[0]='\0', now just clear
|
||||
it with mystr="".
|
||||
|
||||
----------------------------------
|
||||
- Enhanced GLUI_EditText
|
||||
Control keys can be used for navigation and control. The bindings
|
||||
are bash-like: Ctrl-B for previous char, Ctrl-F for forward char, etc.
|
||||
bindings. Also control keys that aren't bound to commands are
|
||||
simply ignored, whereas before they would be inserted as invisible
|
||||
characters.
|
||||
|
||||
----------------------------------
|
||||
- Added GLUI_CommandLine class
|
||||
This is a GLUI_EditText with a history mechanism.
|
||||
|
||||
----------------------------------
|
||||
- New, more object oriented construction API.
|
||||
Now instead of calling
|
||||
|
||||
glui->add_button_to_panel( panel, "my button", myid, mycallback );
|
||||
|
||||
you should just call the button constructor:
|
||||
|
||||
new GLUI_Button( panel, "my button", myid, mycallback );
|
||||
|
||||
And similarly to add it to a GLUI instead of a panel, rather than:
|
||||
|
||||
glui->add_button( glui, "my button", myid, mycallback );
|
||||
|
||||
just call the constructor with the GLUI as the first argument:
|
||||
|
||||
new GLUI_Button( glui, "my button", myid, mycallback );
|
||||
|
||||
The old scheme is now deprecated, but still works. The benefit of
|
||||
this new scheme is that now the GLUI class doesn't have to know
|
||||
about all the different types of GLUI_Controls that exist.
|
||||
Previously GLUI had to both know about all the controls, and know
|
||||
how to initialize them. Now the responsibility for initialization
|
||||
belongs to the GLUI_Control subclasses themselves, where it
|
||||
belongs. Additionally it means that you can create your own
|
||||
GLUI_Control subclasses which will be on equal footing with the
|
||||
built-in controls, whereas before any user-created controls would
|
||||
always be "second-class citizens" since they would have to be
|
||||
constructed differently from the built-ins.
|
||||
|
||||
|
||||
----------------------------------
|
||||
- Removed need for type-declaring arguments when argment type suffices.
|
||||
This effects GLUI_Spinner and GLUI_EditText (and GLUI_CommandLine?).
|
||||
|
||||
For example, instead of calling
|
||||
|
||||
new GLUI_Spinner( glui, "myspin", GLUI_SPINNER_INT, &live_int_var );
|
||||
|
||||
you can just omit the GLUI_SPINNER_INT part, because the type of the
|
||||
live_int_var tells the compiler which type you want.
|
||||
|
||||
new GLUI_Spinner( glui, "myspin", &live_int_var );
|
||||
|
||||
If you're not using a live, var, you can still use the
|
||||
GLUI_SPINNER_INT type argument. See glui.h for all the new
|
||||
constructor signatures. Note this only works with the new
|
||||
construction API, not with the old "add_blah_to_panel" style of
|
||||
API.
|
||||
|
||||
----------------------------------
|
||||
- GLUI_Rotation uses your matrix live-variable now.
|
||||
GLUI used to ignore the matrix in your live variable. This version
|
||||
doesn't ignore it, so you'll need to set it to the identity matrix
|
||||
yourself if that's what you want it to start as. There could
|
||||
probably be some improvements to this API, though.
|
||||
|
||||
----------------------------------
|
||||
- Improvements to 'const' usage.
|
||||
Most char*'s in GLUI functions used to be non-const even when the
|
||||
functions did not modify the string. I changed everywhere
|
||||
appropriate to use const char* instead.
|
||||
|
||||
----------------------------------
|
||||
- Updated license info in the headers
|
||||
Paul's web page says that GLUI is LGPL, but that wasn't declared in
|
||||
the code itself. I've modified all the headers with the standard
|
||||
LGPL notice.
|
||||
|
||||
----------------------------------
|
||||
- Updated examples for the API changes
|
||||
|
||||
----------------------------------
|
||||
- Created project files for Visual Studio .NET (MSVC7.1)
|
||||
|
||||
|
||||
That's about it. Enjoy!
|
||||
|
||||
|
||||
If you find yourself with too much time on your hands, the things I
|
||||
think would be most useful for future improvements to GLUI would be:
|
||||
|
||||
1. The GLUI_TextBox and GLUI_Tree definitely need some work, still.
|
||||
2. Clipboard integration under Windows/X-Win. I have some code that
|
||||
works on Win32 that I once integrated with GLUI, but I lost that
|
||||
version somewhere. I still have the Win32 clipboard code, though
|
||||
if anyone wants to work on integrating it. I have some X-Win
|
||||
clipboard code, too, but I never got it working quite right.
|
||||
3. Remove the dependency on GLUT, making the connection with window
|
||||
system APIs into a more plug-in/adapter modular design.
|
||||
So e.g. if you want to use GLUT, you'd link with the GLUI lib and a
|
||||
GLUI_GLUT lib, and call one extra GLUI_glut_init() function or
|
||||
something.
|
||||
|
||||
|
||||
Definitly consider submitting a patch if you've made some nice improvements
|
||||
to GLUI. Hopefully being an LGPL sourceforge project will attract some new
|
||||
interest to the GLUI project.
|
||||
|
||||
Bill Baxter
|
||||
baxter
|
||||
at
|
||||
cs unc edu
|
||||
|
||||
=================================================
|
||||
JOHN KEW'S ADDITIONS (March 2005)
|
||||
=================================================
|
||||
|
||||
Thanks to John Kew of Natural Solutions Inc.,
|
||||
there are some new widgets. These are demonstrated in example6.cpp.
|
||||
|
||||
The new widgets are:
|
||||
|
||||
* GLUI_Scrollbar - A scrollbar slider widget
|
||||
* GLUI_TextBox - A multi-line text widget
|
||||
* GLUI_List - A static choice list
|
||||
* GLUI_FileBrowser - A simple filebrowser based on GLUI_List
|
||||
* GLUI_Tree - Hierarchical tree widget
|
||||
* GLUI_TreePanel - Manager for the tree widget
|
||||
|
||||
And one other change:
|
||||
|
||||
* GLUI_Rollout has optional embossed border
|
||||
|
||||
=================================================
|
||||
PAUL'S ORIGINAL GLUI 2.0/2.1 README
|
||||
=================================================
|
||||
|
||||
Welcome to the GLUI User Interface Library, v2.0 beta!
|
||||
-------------------------------------------------
|
||||
|
||||
This distribution contains the full GLUI sources, as well as 5 example
|
||||
programs. You'll find the full manual under "glui_manual.pdf". The
|
||||
GLUI web page is at
|
||||
|
||||
http://www.cs.unc.edu/~rademach/glui
|
||||
|
||||
|
||||
---------- Windows ----------
|
||||
|
||||
The directory 'msvc' contains a Visual C++ workspace entitled
|
||||
'glui.dsw'. To recompile the library and examples, open this
|
||||
workspace and run the menu command "Build:Batch Build:Build". The 3
|
||||
executables will be in the 'bin' directory, and the library in the
|
||||
'lib' directory.
|
||||
|
||||
To create a new Windows executable using GLUI, create a "Win32 Console
|
||||
Application" in VC++, add the GLUI library (in 'msvc/lib/glui32.lib'),
|
||||
and add the OpenGL libs:
|
||||
|
||||
glui32.lib glut32.lib glu32.lib opengl32.lib (Microsoft OpenGL)
|
||||
|
||||
Include the file "glui.h" in any file that uses the GLUI library.
|
||||
|
||||
|
||||
---------- Unix ----------
|
||||
|
||||
An SGI/HP makefile is found in the file 'makefile' (certain lines may need
|
||||
to be commented/uncommented).
|
||||
|
||||
To include GLUI in your own apps, add the glui library to your
|
||||
makefile (before the glut library 'libglut.a'), and include "glui.h"
|
||||
in your sources.
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Please let me know what you think, what you'd like to change or add,
|
||||
and especially what bugs you encounter. Also, please send me your
|
||||
e-mail so I can add you to a mailing list for updates.
|
||||
|
||||
Good luck, and thanks for trying this out!
|
||||
|
||||
Paul Rademacher
|
||||
rademach
|
||||
at
|
||||
cs unc edu
|
||||
Reference in New Issue
Block a user