emscripten/tests/box2d/glui
..
CMakeLists.txt
algebra3.cpp
algebra3.h
arcball.cpp
arcball.h
glui.cpp
glui.h
glui_add_controls.cpp
glui_bitmap_img_data.cpp
glui_bitmaps.cpp
glui_button.cpp
glui_checkbox.cpp
glui_column.cpp
glui_commandline.cpp
glui_control.cpp
glui_edittext.cpp
glui_filebrowser.cpp
glui_internal.h
glui_internal_control.h
glui_list.cpp
glui_listbox.cpp
glui_mouse_iaction.cpp
glui_node.cpp
glui_panel.cpp
glui_radio.cpp
glui_rollout.cpp
glui_rotation.cpp
glui_scrollbar.cpp
glui_separator.cpp
glui_spinner.cpp
glui_statictext.cpp
glui_string.cpp
glui_textbox.cpp
glui_translation.cpp
glui_tree.cpp
glui_treepanel.cpp
glui_window.cpp
quaternion.cpp
quaternion.h
readme.txt

readme.txt

Этот файл содержит невидимые символы Юникода!

Этот файл содержит невидимые символы Юникода, которые могут быть отображены не так, как показано ниже. Если это намеренно, можете спокойно проигнорировать это предупреждение. Используйте кнопку Экранировать, чтобы показать скрытые символы.

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