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