172 lines
6.6 KiB
HTML
172 lines
6.6 KiB
HTML
<!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>
|