PLIB 1.8.5+ r2173 from http://plib.svn.sourceforge.net/svnroot/plib/trunk
This commit is contained in:
171
doc/pui/FAQ.html
Normal file
171
doc/pui/FAQ.html
Normal file
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<META name="keywords" content="PUI, PLIB, OpenGL, UI, user, interface, library, portable, picoscopic, MUI, widget, GUI, fast, FAQ, Baker, Steve">
|
||||
<META name="description" content="Here are some questions that have been asked about the PLIB Picoscopic User Interface library.">
|
||||
<TITLE>The Picoscopic User Interface: FAQ list.</TITLE>
|
||||
</HEAD>
|
||||
<BODY text="#B5A642" link="#8FFF8F" vlink="#18A515" alink="#20336B"
|
||||
bgcolor="#005000" background="../marble.png">
|
||||
|
||||
<TABLE>
|
||||
<TR>
|
||||
<TD>
|
||||
<IMG SRC="pooh.png" ALT="Imagine Pooh Here" width=60 height=77>
|
||||
</TD>
|
||||
<TD>
|
||||
<H1>PUI: A Picoscopic User Interface</H1>
|
||||
<H1>Frequently Asked Questions List.</H1>
|
||||
By Steve Baker
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
Here are some questions that have been asked about PUI:
|
||||
<ul>
|
||||
<li><A HREF="#Q1">Q1: Can I build a Windoze DLL for PUI?</A>
|
||||
<li><A HREF="#Q2">Q2: Which versions of OpenGL and GLUT will support PUI?</A>
|
||||
<li><A HREF="#Q3">Q3: Which machines/operating systems can run PUI?</A>
|
||||
<li><A HREF="#Q4">Q4: Is PUI stable? Are there known bugs?</A>
|
||||
<li><A HREF="#Q5">Q5: What changes do you expect to make in future releases?</A>
|
||||
<li><A HREF="#Q6">Q6: Where can I ask questions?</A>
|
||||
<li><A HREF="#Q7">Q7: What's the difference between PUI and MUI?</A>
|
||||
<li><A HREF="#Q8">Q8: Are there restrictions on using PUI?</A>
|
||||
<li><A HREF="#Q9">Q9: Do I have to write in C++ to use PUI?</A>
|
||||
</ul>
|
||||
<p>
|
||||
<hr>
|
||||
<p>
|
||||
<H2><A NAME="Q1">Q1: Can I build a Windoze DLL for PUI?</A></H2>
|
||||
|
||||
Not from the present sources. Some Windoze compilers
|
||||
require an '_export' directive on functions or classes
|
||||
that are to be exported from the DLL. This is ugly and
|
||||
I refuse to add non-standard syntax to the library just
|
||||
to pander to a disgusting Windoze-ism. PUI is a VERY
|
||||
small library and there is really no need for it to
|
||||
be a DLL anyway.
|
||||
|
||||
<H2><A NAME="Q2">Q2: Which versions of OpenGL and GLUT will support PUI?</A></H2>
|
||||
|
||||
In principal, any version of GLUT since 2.0 and any
|
||||
reasonably compliant OpenGL (including Mesa) should
|
||||
be happy to support PUI.
|
||||
|
||||
<H2><A NAME="Q3">Q3: Which machines/operating systems can run PUI?</A></H2>
|
||||
|
||||
AFAIK, any machine with C++, OpenGL (or Mesa) and
|
||||
GLUT will run PUI programs without problems.
|
||||
|
||||
<H2><A NAME="Q4">Q4: Is PUI stable? Are there known bugs?</A></H2>
|
||||
|
||||
So far, there have only been a couple of bugs reported
|
||||
in PUI - the most significant is that the menu bar doesn't
|
||||
work properly after the GLUT window has been resized.
|
||||
<p>
|
||||
The 'complex' demo program seems to fail when a dialog
|
||||
box is dismissed. This may be because the dialog object
|
||||
is deleted inside a callback within a member function of
|
||||
that object. This problem only appears under Microsoft
|
||||
operating systems and so is hard for me to track down.
|
||||
The simplest thing may be for me to change the demo
|
||||
program so it just doesn't work that way.
|
||||
|
||||
<H2><A NAME="Q5">Q5: What changes do you expect to make in future releases?</A></H2>
|
||||
|
||||
I am generally unhappy about the somewhat inconsistant
|
||||
set of constructor functions for the various widgets.
|
||||
Some auto-size their widgets, some take the size directly,
|
||||
others have both. This needs to be made much more consistant
|
||||
across all the widget classes.
|
||||
<p>
|
||||
I want to write a cute interactive GUI designer program to
|
||||
write C++ source code for the PUI constructor functions
|
||||
automatically. Something along the lines of the XForms
|
||||
'fdesign' or the FLTK 'fluid' programs.
|
||||
<p>
|
||||
If GLUT ever changes to allow applications to run without
|
||||
calling 'glutMainLoop', I will greatly improve the Dialog
|
||||
box API which sucks right now. It would also spur me on
|
||||
to write a File Selector widget. The problem is that
|
||||
you'd really like to be able to write things like:
|
||||
<pre>
|
||||
|
||||
if ( ( fd = fopen ( "babble", "w" ) ) == NULL )
|
||||
{
|
||||
if ( puYesNoDialog ( "Can't open babble file",
|
||||
"Do you want to continue?" ) )
|
||||
return ;
|
||||
else
|
||||
exit ( 1 ) ;
|
||||
}
|
||||
|
||||
</pre>
|
||||
However, the 'puYesNoDialog' function can't get it's
|
||||
graphics up on the screen without returning to GLUT's
|
||||
main loop - and it can't do that since the call to
|
||||
puYesNoDialog is in a GLUT callback function.
|
||||
Look at the ugly code in 'complex' to see how to do
|
||||
this kind of thing without this facility.
|
||||
<p>
|
||||
Finally, the appearance of PUI's widgets is somehow
|
||||
not as neat as some other GUI's such as MUI and Motif.
|
||||
This should be pretty easy to fix - and it's something
|
||||
on the 'to do' list.
|
||||
|
||||
<H2><A NAME="Q6">Q6: Where can I ask questions?</A></H2>
|
||||
|
||||
Since PUI is now a part of <A HREF="../index.html">PLIB</A>,
|
||||
all user level questions, development issues and announcements
|
||||
are handled from the PLIB mailing list.
|
||||
|
||||
<H2><A NAME="Q7">Q7: What's the difference between PUI and MUI?</A></H2>
|
||||
|
||||
The main reason I wrote PUI was my disappointment
|
||||
with MUI.
|
||||
<p>
|
||||
MUI has now been 'abandoned' by it's author (Tom Davis)
|
||||
who none-the-less retains copyright over it. MUI has
|
||||
several known bugs - and the only known documentation
|
||||
was written by me - and I have never actually written
|
||||
a real application using it!
|
||||
<p>
|
||||
The MUI library (distributed with GLUT) takes
|
||||
over all of the GLUT callbacks - this makes it
|
||||
very hard to write general purpose programs with
|
||||
MUI.
|
||||
<p>
|
||||
In contrast, it is very easy to add PUI widgets to
|
||||
an existing OpenGL/GLUT application with only a
|
||||
couple of lines of code.
|
||||
<p>
|
||||
PUI also works quite well with 3D hardware such
|
||||
as 3Dfx Voodoo that 'take over' the screen. Since
|
||||
MUI and GLUT both create their menu's using the
|
||||
underlying windowing system's GUI, these menu's
|
||||
won't be visible on that kind of hardware. PUI
|
||||
uses only OpenGL to do all kinds of widgets, so
|
||||
portability onto 3Dfx hardware is assured.
|
||||
|
||||
<H2><A NAME="Q8">Q8: Are there restrictions on using PUI ?</A></H2>
|
||||
|
||||
PUI is OpenSource under the terms of LGPL. If for some reason,
|
||||
you find LGPL too restrictive and if you wish to use it in some
|
||||
major project then please talk to me about it - I can be flexible.
|
||||
|
||||
<H2><A NAME="#Q9">Q9: Do I have to write in C++ to use PUI?</A></H2>
|
||||
|
||||
Yes - there will never be a {insert favorite non-C++ language here}
|
||||
version of PUI.
|
||||
<hr>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="http://validator.w3.org/check/referer"><img border="0" src="../valid-html40.png" alt="Valid HTML 4.0!" height="31" width="88"></a>
|
||||
<td>
|
||||
<ADDRESS>
|
||||
<A HREF="http://www.sjbaker.org">Steve J. Baker.</A> <<A HREF="mailto:sjbaker1@airmail.net">sjbaker1@airmail.net</A>>
|
||||
</ADDRESS>
|
||||
</table>
|
||||
</BODY>
|
||||
</HTML>
|
||||
Reference in New Issue
Block a user