[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Accepting values menu

I was assigned the task of building a menu interface for a new component
of a large system which was build by someone else.  I had been mucking
around for several weeks with the Genera 7.1 present and accept stuff.
What I basically wanted to do was pop up a menu and have the user
choose the values of several variables.

I had an alist (i.e.  something suitable for the presentation type
ALIST-MEMBER) that user should choose a value out of.  However this
list could be quite long so I didn't want to enumerate all the
choices, as is done when using DW:ACCEPTING-VALUES and accepting
something of type ALIST-MEMBER.  I struggled with this for several
days, I looked in the documentation.  In the documentation [Genera 7,
Volume 7A, P. 374], one of the options for DEFINE-PRESENTATION-TYPE is
:CHOOSE-DISPLAYER which seemed might be relavent here.  There was a
description (by example) of what this argument should look like, it
gives the definition for ALIST-MEMBER and says use the internal
definition of ALIST-MEMBER, but this was not much help as that is what
I wanted to change.  As far as I can tell
DW::ACCEPT-VALUES-CHOOSE-FROM-SEQUENCE is only mentioned on pages 374
and 375 and no where else.  I was stuck and couldn't think of what
else to do, so being fairly desperate I called software support.  They
had a suggestion to try, it didn't work.  They are still (as far as I
know) "doing research on it" and haven't gotten back to me.

I finally solved that problem by defining my type using
SCL:TOKEN-OR-TYPE.  But this was not the end of the problem, there was
more fun ahead.

I wanted the user to be able to click on one "Low", "High", or
"Default" and use the value associated with those, or type another
value.  [Similar to the Typeout Action item in the Edit Window
Attributes menu, but I wanted the "other" value visible all the time.]
I hacked on this for several days, and never quite got it working
right.  Then I remember Volume 7B, all the crudy menu stuff that we
used before the new and improved Genera 7 came about.  I hadn't used
this stuff for a while (at least a year and and a half) but I thought
why not try it.  5-6 hours later I had my menu interface using a
TV:CHOOSE-VARIABLE-VALUES-MENU.  This included defining my own
TV:CHOOSE-VARIABLE-VALUES type so all the items in my alist were not
displayed.  It took several weeks of my time to get a menu that did
not work quite right using present and accept, by only 5-6 hours using
the old crudy stuff, this is called progress.

There are a couple of quite apparent reasons that I was able to use
the old stuff and get it working so quickly.

1. Documentation.  TV:CHOOSE-VARIABLE-VALUES was completely
   documented, there were no undocumented internal function that I had
   to figure out [although the documentation was a bit disorganized].
   By constrast the Genera 7 Volume 7A documentation sucks!  There is
   no question in my mind that this particular volume is by far the
   worst of all the Symbolics documentation.  This is an even bigger
   problem because the present and accept stuff is one of the major
   (if not the major) components that has been added/changed in Genera

2. Source Code.  All the source code that I wanted to look at when
   using TV:CHOOSE-VARIABLE-VALUES was there.  By contrast almost all
   the present and accept stuff is restricted.

Because of this I find it incredibly difficult to do anything with
present and accept.  I constantly find myself trying to reinvent the
wheel, I know that somewhere there is some code that does almost
exactly what I want to do, if I could just get my hands on it and
tweak it a little bit.

Software support claims that the Volume 7A documentation is being
completely rewritten for 7.2.  That's fine but that does not help me
now, 7.2 is supposed to fix many, many things, but I am still waiting
for it.

Supposedly Symbolics - Austin has a machine with all the sources on
it, that I could go out and look at source I want.  This is almost
no help at all.  I don't have time to go out there whenever I need to
look at some source code, and I for one do not find it easy to figure
out all the source I need to look at and then go out to Symbolics,
memorize the information from the source and then come back to work.

I believe Symbolics is really digging themselves a hole.  I used to
think that a Symbolics was the greatest machine in the world, but more
and more I dread having to use one, because I know that I'll just get
frustrated because something doesn't work as advertized or something
perhaps works but the documentation is unusable or some wonderful new
feature that is supposed to save me time ends up getting in the way
most of the time.

Sorry for the length of this message, but this has finally really
ticked me off.