[comp.lang.smalltalk] More comments on Smalltalk/V Mac

cca@pur-phy (Charles C. Allen) (05/11/89)

I'm becoming a little more disenchanted with the current release of
Smalltalk/V Mac as I dig deeper into it.  Basically, it looks like Digitalk
needs to clean it up before it's truly usable as a Mac programming
environment.  Here are some further problems (& questions!) I've run
across.

The Pen>>fillAtX:andY: primitive is apparently not implemented.

When trying to get the above method working, another apparent bug came to
light:  In the DemoClass multiSpiral method (for example, the specific
method isn't important), stick

        pen fillAt: rectangle center.

as the third to last line.  An apparently infinite set of Walkback windows
starts appearing.

Each instance of any sort of SubPane has a CharacterScanner instance
variable.  I suppose this is a holdover from the days of the original
Smalltalk/V on the IBM that had no graphics capabilities.  It certainly
is not necessary for many types of panes.

I've been unable to figure out how to open a GraphPane that doesn't have
scrollbars.  The scrollbars scroll over something apparently the size of my
screen, but I haven't tracked down where this info really comes from.  Of
course, the scrollbars are added in the addMenus method, right where
EVERYBODY would immediately look for it.  Thank goodness for Senders and
Implementors browsers.  Note that this behavior snuck in between the
printing of the manual and the final image release. The pictures in the
manual show no scrollbars for AnimalHabitat, etc.  If anyone has figured
out GraphPanes, please send me a note.  DrawPanes seem simpler, but since
they're not documented in the manual, and used only by DemoClass, it's
difficult to figure out if they're going to stick around in future
versions.

FileIn the FreeDrawing demo.  Open a new FreeDrawing, and scroll the small
(actually, the "real" size) image on the left.  You can scroll the thumb
into hyperspace in either direction.  Watch as it writes over the Save and
Cancel buttons....

Charles Allen           cca@newton.physics.purdue.edu

folta@tove.umd.edu (Wayne Folta) (05/12/89)

I have also noted one bug and one omission in Smalltalk/V Mac (a product
which I heartily enjoy :-)):

   1. Horizontal scrollbars don't scroll "by screens" correctly.  By
      "by screens", I mean clicking to the right of the bubble, on the gray
      area, which should scroll in screen-sized chunks (the same for the
      vertical scrollbar).  But if you generate something huge (such as
      250 factorial), the page scrolling works twice, then you are forced to 
      scroll with the arrow only.  Dragging the bubble all the way to the
      right does not work, either.  The only way to see the whole line is to
      use the scroll arrow--a slow proposition.

   2. Is there any provision for a stream to/from the Serial port?  I searched
      all through Inside Mac, and basically decided--am I right?--that the I/O
      calls that are documented are not direct Trap calls.  Therefore, I would
      have to go to Lightspeed C and write a VPRM to do i/o.  It is great that
      Smalltalk/V has this nice hook, but it would be nice to have serial
      i/o capability primitives supplied.  Or did I just miss something?


Wayne Folta          (folta@tove.umd.edu  128.8.128.42)

chesley@goofy.apple.com (Harry Chesley) (05/16/89)

In article <17450@mimsy.UUCP> folta@tove.umd.edu (Wayne Folta) writes:
>  Is there any provision for a stream to/from the Serial port?  I searched
>  all through Inside Mac, and basically decided--am I right?--that the I/O
>  calls that are documented are not direct Trap calls.  Therefore, I would
>  have to go to Lightspeed C and write a VPRM to do i/o.  It is great that
>  Smalltalk/V has this nice hook, but it would be nice to have serial
>  i/o capability primitives supplied.  Or did I just miss something?

The calls documented in Inside Macintosh are not direct trap calls, but 
they map easily to trap calls since the serial port driver is accessible 
via the standard PBRead/PBWrite/PBControl/etc. calls. The routines in 
Inside Macintosh provide an easier-to-use, "high level" interface. To find 
the "low level" equivalent calls, read the sections in the Inside 
Macintosh serial port section marked "Assembly-language note".

This is true of pretty much all the other drivers as well. You can write 
some pretty low level stuff in Smalltalk/V and still stay entirely in 
Smalltalk.

I've implemented a serial port stream, so I know this works. I'm afraid it 
isn't in distributable form though. However, feel free to email me any 
specific questions if you run into trouble implementing your own serial 
port stream.