(Lisp-HUG) Visible :Invisible CAPI Panes...
Greetings to the List on this beautiful spring day in the Rocky Mountains... In my application, I have a small CAPI pane onto which I need to scroll, a line of pixels at a time, a periodic "event status" string. I am not using a regular scrollable pane as it seems to scroll a line of text at a time, which appears jerky with this small 22-pixel high pane. When I receive a string that I need to scroll up the pane, I first write the string text into an "invisible" area of the pane, and then repeatedly PixBlt the string image up the pane a row of pixels at a time separated by (Sleep 0.1) calls to generate the smooth scrolling effect. This works very nicely indeed and I end up with a smoothly scrolling string. It scrolls halfway up and then delays for 500-milliseconds and then scrolls the rest of the way and disappears off the top. Neato... However, I can't keep the "Invisible" area of the pane where I write the string invisible. I define the pane with :internal-min/max-width/height statements (say 100 pixels for all) along with :visible-min/max-width/height statements (say 50 pixels), so that the visible area is smaller than the invisible area. I write the string (gp:draw-string) to the invisible area and then gp:PixBlt the string to the visible area a line of pixels at a time. If I have the visible/invisible areas defined as described above, I get no string image PixBlted over at all - just black area. If I set the :internal and :visible sizes the same, I get the string correctly - but the area needed to not be visible shows, of course, on the screen. I assume that :visible means just that - the area visible on the screen. If an area is *not* :visible, then it should not display and you should see just the background color of the interface. The CAPI documentation says, "Visible constraints control the size of the part of the pane that you can see", which seems straightforward enough. What am I missing??? What difference is there in gp:draw-string(ing) a string to a visible area and a not-visible area? All of this is happening in the callback for the pane which is gp:Invalidate-Rectangle'd once a second "elsewhere". The callback springs to life and checks an mp:mailbox for an incoming string to scroll etc etc etc. So, I am confident that I am running in the correct process. Everything works perfectly as long as the :internal and :visible parameters are the same. Thoughts?? Regards, Jack Harper Secure Outcomes Inc. Evergreen, Colorado USA