Q:  How can I make a non-rectangular Window?
Q:  How can I make a non-rectangular View?

A:  You cannot at present make a non-rectangular Window.  We hear the request.  Tell us how important is this ability compared with your other needs.   The WhatADrag example on the 2.0 release (/NextDeveloper/Examples/WhatADrag) shows you how to create windows with transparency for dragging arbitrary shapes on the screen between windows.  This does not produce true transparent windows, but it accomplishes most of what developers need transparent windows for.

A: You can clip a View to a non-rectangular shape by creating a subclass of View, and overriding the following View method to establish your own clipping path.

- clipToFrame:(const NXRect *) frameRect
 /*
  * TYPE: Focusing and displaying; Clips to frame during focusing 
  *
  * This method is provided to allow for your View to do arbitrary clipping
  * during focusing.  This method is called from within the focusing
  * machinery if clipping is required.  The default implementation just
  * calls PSrectclip with the values in frameRect. You must use frameRect
  * rather than just looking at your View's frame instance variable,
  * because due to focusing, the origins may not be the same. 
  */
{
    PSrectclip(NX_X(frameRect), NX_Y(frameRect),
	       NX_WIDTH(frameRect), NX_HEIGHT(frameRect));
    return self;
}

In addition, the 3.0 documentation on clipToFrame: contains an example of clipping the View to a circular region.

QA33

Valid for 1.0, 2.0, 3.0