non rectangular windows

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

non rectangular windows

Alan Wostenberg-3
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


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Bill Schwab
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]


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Alan Wostenberg-3
"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


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Panu Viljamaa-3
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              |
|--------------------------------------------------------------|


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Chris Uppal-3
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


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Bill Schwab
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]


Reply | Threaded
Open this post in threaded view
|

Re: non rectangular windows

Andy Bower
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
---