Hello Norman

<>
>> Prowess is an alternative window manager. We were discussing an idea 
>> for simulating outline dragging in Wman.
>
> Yes, I know. My point being that Prowess was built on top of WMAN wasn't
> it? I'm sure that in order to run Prowess, WMAN had to be loaded. If so,
> and they managed this new border-dragging-resize then surely, WMAN must
> have had something to do with it under the covers?

Im far away from home right now, so cant check, but I think not. Prowess is an 
alternative to Wman and therefor had the freedom to do things differently. I 
was trying to push the envelope of Wman to see whether it could be pressed into 
behaving as weve come to expect from the competition. I found the Application 
(sub) Windows to be the most versatile, although very clumsy to use. Using AWs 
you can simulate stretch bars of all kinds
                / Corner (2 AWs)
      +-----+
      |       |    <- Side
      | ---- |   <- Divider
      |       |
      +-----+
          ^
           |  Up/Down

To do all of those at once requires about 13 of them, so its really fiddly 
business. Some reasons to use AWs are that the PI will do the work of detecting 
the window in focus and any buttons pressed, as well as displaying the pointers 
of your choice, eg resize up/down or sideways or corner.

Using an AW as a title bar simplifies simulating the effect of moving a window 
by dragging it via its titlebar. Its not perfect, as it complicates having 
other objects there as well. So you either have to make your own display 
routines, use multiple AWs, or accept a patchy titlebar. You can also use AWs 
to create the effect of different layouts, etc. But its all rather cumbersome. 
EasyMenu can only work with 32 AWs, if I remember correctly, so you may soon 
run out of slots.. Info Windows can also be used in many non-obvious ways for 
all kinds of decoration. You can use them to create lines and shadows, and also 
use them to fake states, hide stuff, etc.

I dont suppose weve ever seen a program that uses Wman to its full extent, 
mainly because its 1) difficult to get to grips with (complex and lacking in 
documentation) 2) Fiddly and inflexible, and 3) doesnt lend itself to 
"objectifying": Due to the data structures it is virtually impossible to create 
re-usable object libraries. Still, it is reasonably compact (as these things 
go) and fast, and I suppose those where more important criteria at the time of 
design.

Its possible to write pointer-driven programs that dont use Wman at all. I have 
written a few myself in S*Basic. They can be much more flexible, but tend to 
look rather clunky unless you are prepared to use lots of resources and effort 
on the pixel-, rather than character- level. 

> Anyway, correct me if I'm wrong, but with WMAN I can set the OUTLN of my
> window initially, then when doing a move, I can set it to the new
> location and preserve the contents.
>
> In addition, I can tell when the pointer goes onto the border (can't I?)
> and when a mouse is down.

The internal window move routine only returns on completion so you cant 
(easily) read the pointer record at the same time.

<>

Seasons best and all that,

Per
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to