Have you noticed how the realAudio and many gaming applications often
have irregularly shaped windows that are updated in realtime? I need a realtime control panel for an application and would like to use a clamshell shaped window. In general how can I persuade Dolphin to draw irregularly shaped windows -- not your oval-within-the-rectangular window as in the tutorials, but, say, an oval window. Do I draw on the screen as in the Clock tutorial or is there a more proper way? -Alan Wostenber, Baan Global Support |
Alan,
> Have you noticed how the realAudio and many gaming applications often > have irregularly shaped windows that are updated in realtime? For a different perspective, have a look at http://www.iarchitect.com/mshame.htm > I need > a realtime control panel for an application and would like to use a > clamshell shaped window. Rounded corners tend to be very inefficient, not only because they are harder to draw, but, because they result in much larger invalid rectangles for the stuff that's uncovered. > In general how can I persuade Dolphin to draw irregularly shaped > windows -- not your oval-within-the-rectangular window as in the > tutorials, but, say, an oval window. Do I draw on the screen as in the > Clock tutorial or is there a more proper way? My understanding is that Windows still assumes that every process has a message queue and therefore a window and assocated window handle, even if that window is not visible - please correct me if I'm wrong. Windows assumes that each window is rectangular, and that's really not a big limitation because it works the way everyone wants most of the time, and when it doesn't, you don't need to fill the entire rectangle. As far as drawing non-rectangular graphics, Petzold's book is the place to look. IIRC, it comes down to creating a region and selecting it into a device context as the clipping region, and then drawing. You might also have to suppress erasing of the background to get it to work; otherwise, your app would (I think) blast a white background over the stuff that you want to have showin through the corners of your window. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
"Bill Schwab" <[hidden email]> wrote in message news:<9nk63o$4aq$[hidden email]>...
> Alan, > > > Have you noticed how the realAudio and many gaming applications often > > have irregularly shaped windows that are updated in realtime? > > For a different perspective, have a look at > > http://www.iarchitect.com/mshame.htm > They make some goods critiques of the trend to irregular "consumer device" interfaces contradicts ease-of-use. Thanks for the general and technical pointers, Bill. How valid in your opinion is the critique? -Alan |
Alan Wostenberg wrote:
> > http://www.iarchitect.com/mshame.htm > > > They make some goods critiques of the trend to irregular "consumer device" interfaces contradicts > ease-of-use. I find the site cited useful, although I didn't find the example against irregular windows (something wrong with the usability of their site?). Should every physical consumer device be cubical ? In GUIs the case against non-rectangular windows is that they are non-traditional. But if they indeed are better for some applications, we should choose usability over tradition. At one point GUIs themselves were non-traditional. I wonder what people who produce VisualWorks and Squeak would think about the above site. -Panu -- |--------------------------------------------------------------| |The Call-For-Votes for comp.software.patterns is in progress. | |The CFV is available at comp.object, comp.lang.smalltalk and | |news.announce.newgroups. SAY YES TO PATTERNS. Panu Viljamaa | | http://members.fcc.net/panu/index.htm | |--------------------------------------------------------------| |
Panu,
> I find the site cited useful, although I didn't find the example against irregular windows (something > wrong with the usability of their site?). Look in the section on Metaphors. Also the in-depth sections on UIs designed to look like phones/CD-players/etc. > Should every physical consumer device be cubical ? No, but it's an important point that Windows UIs don't have to look like consumer devices. In fact those boxes have some of the worst UIs ever designed, so we should think *very* carefully before emulating them in software. > In GUIs the case against non-rectangular windows is > that they are non-traditional. That's part of the case, yes. > But if they indeed are better for some applications, we should choose > usability over tradition. At one point GUIs themselves were non-traditional. Yes, I agree; but are there any applications which do benefit from non-rectangular windows? I've never seen an example of one. I have an increasing collection of apps which don't use "traditional" windows (media-player, Win DVD, ...) In each case the UI is bad beyond belief. I may be over-generalising, but I now see the use of these vapid, glitzy, fashionable UIs as a warning sign that the app will at least approach, and quite possibly reach, complete unusability. I'm not saying that I don't think there could every be an example of a good UI which required non-rectangular windows. I just haven't seen one yet, and can't (off the top of my head) think of one. The nearest thing to an example that I can think of is in the UNIX/X-Windows world where some window managers don't make the window's title-bar extend across the full width of the window (thus saving screen space). Those windows are, indeed, non-rectangular, but they are still, as it were, mostly rectangular (the window-as-rectangle concept is still valid), and -- more importantly -- they are still *uniform*. Don't forget that "usability" of an app is not something that should be considered in isolation. Unless you are building a UI for an entire system (so no user will ever normally see any software except the stuff you are providing), the "usability" of an app is not just how easy it is to drive that app, but how easy it is to drive the app *in a context where the users also interact with other apps*. > I wonder what people who produce VisualWorks and Squeak would think about the above site. I'd be more interested to know what the people behind the site would think of VW and Squeak. Not that I'd necessarily agree with them (I suspect they'd miss the point of Morphic) but I find both those UIs *very* difficult to come to terms with, and it'd be interesting to see (an attempt at) an informed analysis of what's really going wrong. > -Panu -- chris |
In reply to this post by Alan Wostenberg-3
Alan,
> > > Have you noticed how the realAudio and many gaming applications often > > > have irregularly shaped windows that are updated in realtime? > > > > For a different perspective, have a look at > > > > http://www.iarchitect.com/mshame.htm > > > > They make some goods critiques of the trend to irregular "consumer > device" interfaces contradicts ease-of-use. Thanks for the general and > technical pointers, Bill. How valid in your opinion is the critique? You said it yourself - they make some good points. I also agree with Chris that "trendy" UI design is usually a warning sign that the app as a whole will be less than optimal. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Alan Wostenberg-3
Alan,
> Have you noticed how the realAudio and many gaming applications often > have irregularly shaped windows that are updated in realtime? I need > a realtime control panel for an application and would like to use a > clamshell shaped window. > > In general how can I persuade Dolphin to draw irregularly shaped > windows -- not your oval-within-the-rectangular window as in the > tutorials, but, say, an oval window. Do I draw on the screen as in the > Clock tutorial or is there a more proper way? I'm not an expert in these matters but I think the trick is to create your app inside a "transparent" window. One does this using the WS_EX_TRANSPARENT window style. MSDN has this to say about this style flag: * WS_EX_TRANSPARENT Specifies that a window created with this style is to be transparent. That is, any windows that are beneath the window are not obscured by the window. A window created with this style receives WM_PAINT messages only after all sibling windows beneath it have been updated. You can use View>>isTransparent: to set this style to try things out. Obviously, you'll have to mask the non-rectangular area that you want using a clipping region before you start painting your window contents and you'll probably have to get rid of all window borders too. Let us know how you get on if you give it a try. Best Regards, Andy Bower Dolphin Support http://www.object-arts.com --- Are you trying too hard? http://www.object-arts.com/Relax.htm --- |
Free forum by Nabble | Edit this page |