### IViewPort

  The IViewPort class provides scrolling support for another window. The window being scrolled is termed the view window. Typically, the view window does not readily support resizing. Because of this, you must support scrolling so users can scroll the view window to see clipped information.

  View window candidates include the following classes:

  - ICanvas
  - ISetCanvas
  - IMultiCellCanvas
  - INotebook
  - IContainerControl
  Note: If you are using an IMultiCellCanvas with expandable rows or columns as the view window, specify the IViewPort::expandableViewWindow style when you construct the view port.

  You specify the view window by making it a child window of the view port. A view port supports multiple view windows. Only one view window is visible in the view rectangle at a time. Hidden view windows can be made visible in the view rectangle using IViewPort::setViewWindow. As a hidden view window is made visible, the prior view window is always hidden.

  The IViewPort object optionally includes horizontal and vertical scroll bars. You can specify scroll bars that are the following:

  - Always visible
  - Never visible
  - Visible only if the size of the view window is larger than the size of the view port window

    If the view port has nothing to scroll because the view window is entirely visible, the scroll bars are hidden.

  Logical sizes specified through IViewPort::setViewWindowSize are limited to 0x3FFF0000. If you do not call setViewWindowSize, the size of a view window is limited to 32 K. If the view window has no size and does not use a logical size, IViewPort sizes the view window to its minimum size. If you use the IViewPort::expandableViewWindow style and no logical size, IViewPort can grow the view window larger than its minimum size.

#### Portability Considerations

  In AIX the Open Class Library does not support the style combination of one scroll bar displayed as needed and the other scroll bar always displayed. If this combination of styles is used, both scroll bars are always displayed. Motif supports all other combinations for displaying the view port scroll bars.
  Note: Previous versions of this class created each scroll bar with a 1-based range. The scroll bar ranges are now 0-based so that the interface is consistent with IViewPort::scrollViewHorizontallyTo and IViewPort::scrollViewVerticallyTo.

#### AIX Considerations

  By default the last child window of the view port will be the view window displayed in the view rectangle. Any child window of the view port can be designated the view window using IViewPort::setViewWindow.

  Use the view port protected function handleForChildCreation to get the window handle of the parent to use for creating a view window.

  When the view port contains scroll bars, the underlying widgets manage the size of the scroll bars' scroll boxes, and updates their positions as your view window is scrolled.

#### OS/2 Considerations

  By default the first child window of the view port will be the view window displayed in the view rectangle. Any child window of the view port can be designated the view window using IViewPort::setViewWindow.

  The view port changes the parent window of the view window to a scrollable rectangular window to properly clip the child window. The window identifier (ID) of the scrollable rectangular window is IC_VIEWPORT_VIEWRECTANGLE. If you enable the view window for direct manipulation, the direct manipulation events are dispatched to the scrollable rectangular window.

  When the view port contains scroll bars, the view port manages the size of the scroll bars' scroll boxes, and updates their positions as it scrolls your view window.

#### Windows Considerations

  By default the first child window of the view port will be the view window displayed in the view rectangle. Any child window of the view port can be designated the view window using IViewPort::setViewWindow.

  The view port changes the parent window of the view window to a scrollable rectangular window to properly clip the child window. The window identifier (ID) of the scrollable rectangular window is IC_VIEWPORT_VIEWRECTANGLE. If you enable the view window for direct manipulation, the direct manipulation events are dispatched to the scrollable rectangular window.

  When the view port contains scroll bars, the view port manages the size of the scroll bars' scroll boxes, and updates their positions as it scrolls your view window.

### IViewPort - Member Functions and Data by Group

### Constructors & Destructor

You can construct and destruct objects of this class. You cannot copy or assign IViewPort objects because both the copy constructor and assignment operator are private functions.

~IViewPort

      public:
      virtual ~IViewPort()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IViewPort

      public:
      IViewPort( unsigned long windowIdentifier,
                 IWindow* parent,
                 IWindow* owner,
                 const IRectangle& initialSize = IRectangle ( ),
                 const Style& style = defaultStyle ( ) )

  windowIdentifier
    The window identifier of the view port you are constructing.

    We recommend that you do the following:

    - For portability, use a value in the range 0 to 65535.
    - Give unique identifiers to all windows in the same frame window. Two windows are in the same frame window if the first frame window in each of its parent window chains is the same window.
    - Give the client window a window identifier of IC_FRAME_CLIENT_ID, which is defined in the file icconst.h.
    Presentation Manager Notes Do not use FID_xxx values defined in pmwin.h, other than FID_CLIENT (which is equivalent to IC_FRAME_CLIENT_ID).

    The OS/2 and Windows versions of the IViewPort class reserve the following window identifiers for child windows that it creates:

    IC_VIEWPORT_VERTSCROLLBAR
      Vertical scroll bar.
    IC_VIEWPORT_HORZSCROLLBAR
      Horizontal scroll bar.
    IC_VIEWPORT_VIEWRECTANGLE
      Scroll rectangle window. The window within which the application window is scrolled. IViewPort changes the parent of the view window to this window.
  parent
    The parent window of the view port you are constructing. You must specify a parent window. The parent window is primarily used for visible relationships.
  owner
    The owner window of the view port you are constructing. The owner window is primarily used for routing notification events and unprocessed messages. A window also inherits colors from its owner window.
    Motif Notes The owner window is only used for routing unprocessed messages. There is no concept of an owner in Motif.
  initialSize
    The initial position and size of the view port you are constructing. The position is relative to the origin of the parent window. See ICoordinateSystem for additional information. Optional.
  style
    The view port's characteristics. This value can be a combination of IViewPort::Style, ICanvas::Style, and IWindow::Style objects. Optional.

Exception

  IInvalidParameter | style contains an invalid combination of styles. style cannot contain more than one horizontal scroll bar style (IViewPort::alwaysHorizontalScrollBar, IViewPort::asNeededHorizontalScrollBar, and IViewPort::noHorizontalScrollBar), or more than one vertical scroll bar style (IViewPort::alwaysVerticalScrollBar, IViewPort::asNeededVerticalScrollBar, and IViewPort::noVerticalScrollBar).

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Child Creation

Override these functions to provide information necessary for creating child windows.

handleForChildCreation

      protected:
      virtual IWindowHandle handleForChildCreation() const

  Returns the handle that should be used when creating children of the IViewPort.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Child Scroll Bars

Use these members to access the scroll bar windows created by the IViewPort window.

horizontalScrollBar

      public:
      IScrollBar* horizontalScrollBar() const

  Returns the address of the horizontal scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

verticalScrollBar

      public:
      IScrollBar* verticalScrollBar() const

  Returns the address of the vertical scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Layout Support

Layout members determine how this class sizes and positions its child windows or how this window will be laid out on another canvas.

hasChildrenToLayout

      public:
      virtual bool hasChildrenToLayout() const

  Indicates whether the view port is managing the scrolling (or sizing and positioning) of any child windows.

  This version returns true if any of the following is true:

  - You explicitly identified a window to scroll by calling the function IViewPort::setViewWindow.
  - The view port has a single child window, excluding its scroll bars and view rectangle window.

  Otherwise it returns false.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setLayoutDistorted

      public:
      virtual IViewPort&
        setLayoutDistorted( unsigned long layoutAttributeOn,
                            unsigned long layoutAttributeOff )

  Processes a size change as a layout change.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

calcMinimumSize

      protected:
      virtual ISize calcMinimumSize() const

  Returns the recommended minimum size for this IViewPort object. The size is based on the minimum size of the vertical and horizontal scroll bars.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

layout

      protected:
      virtual IViewPort& layout()

  Positions the scroll bars, scroll rectangle window, and view window.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Notification Members

These members allow observers to process changes to the window.

viewWindowSizeId

      public:
      static INotificationId const viewWindowSizeId

  Notification identifier provided to observers when the logical size of the view port's view window changes. IViewPort provides a pointer to an ISize object for the new size in the eventData field of the INotificationEvent.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Styles

Use these members to customize a window at the time you construct it. Most styles have equivalent member functions, which allow you to similarly modify a window after creating it. You can use these styles with the styles defined by the following nested classes:

- ICanvas::Style
- IWindow::Style

Once you have constructed an IViewPort object, you can use IViewPort, ICanvas, and IWindow member functions to query and change individual styles.

convertToGUIStyle

      public:
      virtual unsigned long
        convertToGUIStyle( const IBitFlag& style,
                           bool extendedOnly = false ) const

  Converts a style object into a value appropriate for the underlying system. The default action is to return the base GUI styles for the platform. Extended styles, those defined by the application and the Open Class Library, will be returned if you set extendedOnly to true.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

defaultStyle

      public:
      static Style defaultStyle()

  Returns the default style. The default style is classDefaultStyle unless you change the style using setDefaultStyle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setDefaultStyle

      public:
      static void setDefaultStyle(const Style& style)

  Sets the default style for all subsequent view ports.

  This member function is not thread safe. In a multithreaded application, it should only be called when a conflict is not possible. A conflict can arise if you set the default style on one thread at the same time that it is being queried on another. In this situation, the query would take place while the style is in an unknown state.

  When you create a window class and do not specifically specify window styles in the constructor, the Open Class Library queries the default style. Therefore, the only safe place to call this member function is when no other application threads that create windows are active.

  Another way to avoid a conflict in a multithreaded application is to specifically specify window styles on window construction, rather than calling this member function.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

alwaysHorizontalScrollBar

      public:
      static const Style alwaysHorizontalScrollBar

  Specifies that the view port never removes the horizontal scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

alwaysVerticalScrollBar

      public:
      static const Style alwaysVerticalScrollBar

  Specifies that the view port never removes the vertical scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

asNeededHorizontalScrollBar

      public:
      static const Style asNeededHorizontalScrollBar

  Specifies that the view port removes the horizontal scroll bar when the entire width of the view window is visible and there is no data to scroll horizontally.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

asNeededVerticalScrollBar

      public:
      static const Style asNeededVerticalScrollBar

  Specifies that the view port removes the vertical scroll bar when the entire height of the view window is visible and there is no data to scroll vertically.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

classDefaultStyle

      public:
      static const Style classDefaultStyle

  Specifies the original default style for this class, which is IViewPort::asNeededHorizontalScrollBar | IViewPort::asNeededVerticalScrollBar | IWindow::visible.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

expandableViewWindow

      public:
      static const Style expandableViewWindow

  Specifies that the view port will size its view window to completely fill the view port by sizing the view window to the larger of the following:

  - The minimum size of the view window
  - The size of the view rectangle.

  When the view port sizes the view window to its minimum size, it allows the user to scroll the view window if it is not completely visible.

  Use this style when using an IMultiCellCanvas with expandable rows or columns as the view window.
  Note: Setting a logical view window size through the function IViewPort::setViewWindowSize causes this style to be ignored.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

noHorizontalScrollBar

      public:
      static const Style noHorizontalScrollBar

  Specifies that the view port never shows the horizontal scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

noVerticalScrollBar

      public:
      static const Style noVerticalScrollBar

  Specifies that the view port never shows the vertical scroll bar.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

noViewWindowFill

      public:
      static const Style noViewWindowFill

  Specifies that the view port does not paint the portion of the view rectangle occupied by the view window.
  Note: If you know that the view window paints its entire rectangle, specify this style to optimize overall painting.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### View Window

Use these members to change the appearance of the view window in the view port.

scrollViewHorizontallyTo

      public:
      virtual IViewPort&
        scrollViewHorizontallyTo( unsigned long leftOffset )

  Scrolls the view window horizontally. The value you specify is the offset in pels from the left edge of the view window to the point you want to see at the left edge of the view rectangle. Specify the value 0 to line up the left edge of the view window with the left edge of the view rectangle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

scrollViewVerticallyTo

      public:
      virtual IViewPort&
        scrollViewVerticallyTo( unsigned long topOffset )

  Scrolls the view window vertically. The value you specify is the offset in pels from the top edge of the view window to the point you want to see at the top edge of the view rectangle. Specify the value 0 to line up the top edge of the view window with the top edge of the view rectangle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setViewWindow

      public:
      virtual IViewPort&
        setViewWindow( const IWindowHandle& viewWindow )

  Changes the view window that displays in the view rectangle. The specified view window must be a child window of the view port. The prior view window is hidden.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setViewWindowSize

      public:
      virtual IViewPort& setViewWindowSize(const ISize& size)

  Changes the logical size of the window being scrolled. The logical size does not have to match the real size of the window.

  If you call this function, you will manage the appearance of the view window. IViewPort processes the position and size of the scroll boxes of its scroll bars, but you are responsible for changing the position or repainting the view window to give the appearance of scrolling.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

viewWindow

      public:
      virtual IWindowHandle viewWindow()

  Returns the handle of the window bounded by the view port.

Exception

  IInvalidRequest | The view port has found more than one view window. A view port can have only one child window.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

AIX Considerations

  Use the view port protected function handleForChildCreation to get the window handle of the parent to use for creating a view window.

OS/2 Considerations

  The parent of the view window is changed to the scrollable rectangular window so that the view window is properly clipped.

Windows Considerations

  The parent of the view window is changed to the scrollable rectangular window so that the view window is properly clipped.

viewWindowDrawRectangle

      public:
      virtual IRectangle viewWindowDrawRectangle() const

  Returns the area of the view window that is currently visible in the view port.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

viewWindowSize

      public:
      virtual ISize viewWindowSize() const

  Returns the logical size of the window being scrolled. If you have not called IViewPort::setViewWindowSize to set a logical size, the real size of the view window is returned.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

positionViewWindow

      protected:
      virtual IViewPort&
        positionViewWindow( const IWindowHandle& viewWindow,
                            const IRectangle& viewRectangle )

  Positions the view window within the view rectangle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setTopLeftViewPoint

      protected:
      virtual IViewPort&
        setTopLeftViewPoint( const IPoint& topLeft )

  Sets the view window coordinate, in origin lower-left coordinates, that displays in the upper-left corner of the view rectangle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setupScrollBars

      protected:
      virtual IViewPort& setupScrollBars()

  Sizes, shows, or hides scroll bars for the view port window, as appropriate. This function also positions and sizes the scroll rectangle window that bounds the view window. IViewPort calls this function before calling positionViewWindow.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

topLeftViewPoint

      protected:
      IPoint topLeftViewPoint() const

  Returns the view window coordinate that displays in the upper-left corner of the view rectangle in origin lower-left coordinates.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IViewPort - Inherited Member Functions and Data

#### Inherited Public Functions

  ICanvas

  -     virtual ~ICanvas()

  -     virtual ICanvas& addBorder()

  -     virtual IColor backgroundColor() const

  -     virtual IColor borderColor() const

  -     IText borderText() const

  -     IPoint bottomRightLayoutOffset() const

  -     virtual IFont font() const

  -     virtual bool hasBorder() const

  -     ICanvas( unsigned long windowIdentifier,
                 IWindow* parent,
                 IWindow* owner,
                 const IRectangle& initial = IRectangle ( ),
                 const Style& style = defaultStyle ( ) )

  -     virtual bool isTabStop() const

  -     virtual IWindowHandle
          matchForMnemonic( unsigned short character ) const

  -     virtual ICanvas& removeBorder()

  -     virtual ICanvas& resetBorderColor()

  -     virtual ICanvas& resetFont()

  -     virtual ICanvas& setBorderColor(const IColor& borderColor)

  -     virtual ICanvas&
          setBorderText( const IText& borderText,
                         bool showBorder = true )

  -     virtual ICanvas&
          setBorderText( const IResourceId& borderText,
                         bool showBorder = true )

  -     virtual ICanvas& setFont(const IFont& font)

  -     virtual ICanvas&
          setLayoutDistorted( unsigned long layoutAttributesOn,
                              unsigned long layoutAttributesOff )

  -     IPoint topLeftLayoutOffset() const

  IControl

  -     virtual ~IControl()

  INotifier

  -     virtual ~INotifier()

  -     virtual INotifier& disableNotification() = 0

  -     virtual INotifier&
          enableNotification( bool enable = true ) = 0

  -     INotifier()

  -     virtual bool isEnabledForNotification() const = 0

  -     virtual INotifier&
          notifyObservers( const INotificationEvent& event ) = 0

  -     virtual INotifier&
          notifyObserversAsync( const INotificationEvent& event )

  -     const IThreadId& threadId() const

  IWindow

  -     virtual ~IWindow()

  -     IAccelTblHandle acceleratorHandle() const

  -     IAcceleratorTable acceleratorTable() const

  -     virtual IColor activeColor() const

  -     IWindow&
          addOrReplaceAttribute( const IAttributeName& name,
                                 const IAttribute& attribute )

  -     IWindow&
          adoptWindowData( const DataHandle& typeToken,
                           IWindowData* windowData )

  -     virtual IString asDebugInfo() const

  -     virtual IString asString() const

  -     IAttributeName
          attributeNameAt( const AttributeCursor& cursor ) const

  -     const IAttribute*
          attributeWithName( const IAttributeName& name,
                             ESearchType search = kWindowOnly ) const

  -     virtual IWindow& capturePointer(bool capture = true)

  -     ISize characterSize() const

  -     IWindowHandle childAt(const ChildCursor& cursor) const

  -     IWindow* childWindowAt(const ChildCursor& cursor) const

  -     virtual IArgList
          convertToArgList( const IBitFlag& style ) const

  -     static DataHandle
          dataHandleWithKey( const char* dataKeyName )

  -     virtual IWindowHandle defaultEmphasisButton() const

  -     static SiblingOrder defaultOrdering()

  -     static IWindow* desktopWindow()

  -     virtual IWindow& disable()

  -     virtual IColor disabledBackgroundColor() const

  -     virtual IColor disabledForegroundColor() const

  -     virtual IWindow& disableGroup()

  -     IWindow& disableMinimumSizeCaching()

  -     virtual IWindow& disableNotification()

  -     virtual IWindow& disableTabStop()

  -     virtual IWindow& disableUpdate()

  -     bool
          dispatchRemainingHandlers( IEvent& event,
                                     bool callDefProc = true )

  -     virtual IWindow& enable(bool enableWindow = true)

  -     virtual IWindow& enableGroup(bool enable = true)

  -     IWindow&
          enableMinimumSizeCaching( bool enableCaching = true )

  -     virtual IWindow& enableNotification(bool enable = true)

  -     virtual IWindow& enableTabStop(bool enable = true)

  -     virtual IWindow& enableUpdate(bool enableWindow = true)

  -     static IWindow::ExceptionFn* exceptionFunction()

  -     virtual IColor foregroundColor() const

  -     virtual IWindowHandle handle() const

  -     virtual bool
          handleException( IException& dispatcherException,
                           IEvent& exceptionEvent )

  -     static IWindowHandle
          handleWithParent( unsigned long identifier,
                            const IWindowHandle& parent )

  -     static IWindowHandle handleWithPointerCaptured()

  -     virtual bool hasFocus() const

  -     virtual bool hasPointerCaptured() const

  -     unsigned long helpId() const

  -     virtual IWindow& hide()

  -     virtual IWindow& hideSourceEmphasis()

  -     virtual IColor hiliteBackgroundColor() const

  -     virtual IColor hiliteForegroundColor() const

  -     virtual unsigned long id() const

  -     virtual IColor inactiveColor() const

  -     virtual IRectangle invalidatedRect() const

  -     virtual IRegionHandle invalidatedRegion() const

  -     bool isAutoDeleteObject() const

  -     bool isAutoDestroyWindow() const

  -     bool isEnabled() const

  -     virtual bool isEnabledForNotification() const

  -     virtual bool isFrameWindow() const

  -     virtual bool isGroup() const

  -     bool isHandling(const EventMask& events) const

  -     virtual bool
          isLayoutDistorted( unsigned long layoutAttribute ) const

  -     bool isMinimumSizeCachingEnabled() const

  -     bool isShowing() const

  -     bool isUpdateEnabled() const

  -     virtual bool isValid() const

  -     bool isVisible() const

  -     static bool isWindowValid(const IWindow* window)

  -     IDMItemProvider* itemProvider() const

  -     IWindow(const IWindowHandle& handle)

  -     IWindow(unsigned long identifier, IWindow* parent)

  -     virtual IRectangle layoutAdjustment() const

  -     static IPoint
          mapPoint( const IPoint& point,
                    const IWindowHandle& from,
                    const IWindowHandle& to )

  -     IMessageQueueHandle messageQueue() const

  -     ISize minimumSize(bool windowCalculatedSize = false) const

  -     virtual IPointerHandle mousePointer() const

  -     static void movePointerTo(const IPoint& position)

  -     virtual IWindow&
          moveSizeTo( const IRectangle& newSizeAndPosition )

  -     virtual IWindow& moveTo(const IPoint& newPosition)

  -     virtual IRectangle nativeRect() const

  -     virtual INotifierAddress notifierAddress() const

  -     virtual IWindow&
          notifyObservers( const INotificationEvent& event )

  -     virtual IWindow&
          notifyObserversAsync( const INotificationEvent& event )

  -     static IWindow* objectWindow()

  -     virtual IWindow* owner() const

  -     IWindow* parent() const

  -     virtual ISize parentSize() const

  -     static ISize parentSize(const IWindowHandle& windowHandle)

  -     static IPoint pointerPosition()

  -     virtual IPoint position() const

  -     virtual IWindow&
          positionBehindSibling( const IWindowHandle& siblingWindow )

  -     virtual IWindow& positionBehindSiblings()

  -     virtual IWindow& positionOnSiblings()

  -     virtual const IWindow& postEvent(const IEvent& event) const

  -     virtual const IWindow&
          postEvent( unsigned long eventId,
                     const IEventParameter1& parm1 = 0,
                     const IEventParameter2& parm2 = 0 ) const

  -     virtual const IWindow&
          postEvent( EventType eventType,
                     const IEventParameter1& parm1 = 0,
                     const IEventParameter2& parm2 = 0 ) const

  -     virtual IPresSpaceHandle presSpace() const

  -     virtual IRectangle rect() const

  -     virtual IWindow&
          refresh( const IRectangle& invalidRectangle,
                   bool immediate = false )

  -     virtual IWindow& refresh(RefreshType type = paintAll)

  -     virtual IWindow& releasePointer()

  -     virtual void
          releasePresSpace( const IPresSpaceHandle& presentationSpaceHandle ) const

  -     IWindow& removeAllAttributes()

  -     IWindow& removeAttribute(const IAttributeName& name)

  -     virtual IWindow& resetActiveColor()

  -     virtual IWindow& resetBackgroundColor()

  -     virtual IWindow& resetDisabledBackgroundColor()

  -     virtual IWindow& resetDisabledForegroundColor()

  -     virtual IWindow& resetFont()

  -     virtual IWindow& resetForegroundColor()

  -     virtual IWindow& resetHiliteBackgroundColor()

  -     virtual IWindow& resetHiliteForegroundColor()

  -     virtual IWindow& resetInactiveColor()

  -     IWindow& resetMinimumSize()

  -     virtual IWindow& resetShadowColor()

  -     virtual IEventResult sendEvent(const IEvent& event) const

  -     virtual IEventResult
          sendEvent( unsigned long eventId,
                     const IEventParameter1& parm1 = 0,
                     const IEventParameter2& parm2 = 0 ) const

  -     virtual IEventResult
          sendEvent( EventType eventType,
                     const IEventParameter1& parm1 = 0,
                     const IEventParameter2& parm2 = 0 ) const

  -     IWindow&
          setAcceleratorHandle( const IAccelTblHandle& handle )

  -     IWindow&
          setAcceleratorTable( const IAcceleratorTable* acceleratorTable )

  -     virtual IWindow& setActiveColor(const IColor& color)

  -     IWindow& setAutoDeleteObject(bool autoDelete = true)

  -     IWindow& setAutoDestroyWindow(bool autoDestroy = false)

  -     virtual IWindow& setBackgroundColor(const IColor& color)

  -     static void setDefaultOrdering(SiblingOrder order)

  -     virtual IWindow&
          setDisabledBackgroundColor( const IColor& color )

  -     virtual IWindow&
          setDisabledForegroundColor( const IColor& color )

  -     static IWindow::ExceptionFn*
          setExceptionFunction( IWindow::ExceptionFn* exceptionFunction )

  -     virtual IWindow& setFocus()

  -     virtual IWindow& setFont(const IFont& font)

  -     virtual IWindow& setForegroundColor(const IColor& color)

  -     IWindow& setHelpId(unsigned long helpTopicId)

  -     virtual IWindow&
          setHiliteBackgroundColor( const IColor& color )

  -     virtual IWindow&
          setHiliteForegroundColor( const IColor& color )

  -     virtual IWindow& setId(unsigned long newIdentifier)

  -     virtual IWindow& setInactiveColor(const IColor& color)

  -     IWindow& setItemProvider(IDMItemProvider* dragProvider)

  -     virtual IWindow&
          setLayoutDistorted( unsigned long layoutAttributesOn,
                              unsigned long layoutAttributesOff )

  -     IWindow& setMinimumSize(const ISize& size)

  -     virtual IWindow&
          setMousePointer( const IPointerHandle& mousePointer )

  -     virtual IWindow& setOwner(const IWindow* newOwner)

  -     virtual IWindow& setParent(const IWindow* newParent)

  -     virtual IWindow& setShadowColor(const IColor& color)

  -     virtual IColor shadowColor() const

  -     virtual IWindow& show(bool showWindow = true)

  -     virtual IWindow& showSourceEmphasis(bool show = true)

  -     virtual ISize size() const

  -     virtual IWindow& sizeTo(const ISize& newSize)

  -     IWindow& startHandling(const EventMask& events)

  -     IWindow& stopHandling(const EventMask& events)

  -     virtual IWindow&
          validateRect( const IRectangle& validatedRectangle )

  -     virtual IWindow&
          validateRegion( const IRegionHandle& validatedRegion )

  -     virtual IRectangle visibleRectangle() const

  -     IWindowData* windowData(const DataHandle& typeToken) const

  -     static IWindow*
          windowWithHandle( const IWindowHandle& windowHandle,
                            bool allThreads = true )

  -     static IWindow*
          windowWithOwner( unsigned long identifier,
                           const IWindow* owner,
                           bool allThreads = true )

  -     static IWindow*
          windowWithParent( unsigned long identifier,
                            const IWindow* parent,
                            bool allThreads = true )

#### Inherited Public Data

  IWindow

  -     static INotificationId const activeColorId

  -     static const EventMask allMouseMoves

  -     static INotificationId const
          attributeAddReplaceId

  -     static INotificationId const attributeRemoveId

  -     static INotificationId const backgroundColorId

  -     static INotificationId const borderColorId

  -     static const Style clipChildren

  -     static const Style clipSiblings

  -     static const Style clipToParent

  -     static INotificationId const commandId

  -     static const Style disabled

  -     static INotificationId const
          disabledBackgroundColorId

  -     static INotificationId const
          disabledForegroundColorId

  -     static INotificationId const enableId

  -     static INotificationId const focusId

  -     static INotificationId const fontId

  -     static INotificationId const foregroundColorId

  -     static const Style group

  -     static INotificationId const
          hiliteBackgroundColorId

  -     static INotificationId const
          hiliteForegroundColorId

  -     static INotificationId const inactiveColorId

  -     static const Style leftToRight

  -     static const EventMask mouseEntersLeaves

  -     static const Style noStyle

  -     static INotificationId const positionId

  -     static const Style rightToLeft

  -     static const Style saveBits

  -     static INotificationId const shadowColorId

  -     static INotificationId const sizeId

  -     static const EventMask someMouseMoves

  -     static const Style synchPaint

  -     static INotificationId const systemCommandId

  -     static const Style tabStop

  -     static const Style visible

  -     static INotificationId const visibleId

  INotifier

  -     static INotificationId const allChangesId

  -     static INotificationId const deleteId

  ICanvas

  -     static const Style border

  -     static INotificationId const textId

#### Inherited Protected Functions

  IWindow

  -     IWindow& addHandler(IHandler* newHandler)

  -     virtual IWindow&
          addObserver( IObserver& observer,
                       const IInterest& interest )

  -     static void
          addToWindowSet( IWindow* window,
                          const IWindowHandle& windowHandle )

  -     IWindow& bindMessageQueue(bool bindToMessageQueue = true)

  -     IColor
          color( unsigned long colorArea,
                 const IColor& defaultColor ) const

  -     IColor color(unsigned long colorArea) const

  -     virtual IWindowHandle
          create( unsigned long id,
                  const char* text,
                  unsigned long style,
                  const char* windowClass,
                  const IWindowHandle& parent,
                  const IWindowHandle& owner,
                  const IRectangle& initRect,
                  const void* ctlData,
                  const void* presParams,
                  IWindow::SiblingOrder ordering = defaultOrdering ( ),
                  unsigned long extendedStyle = 0 )

  -     virtual IWindowHandle
          create( unsigned long id,
                  const char* text,
                  const IBitFlag& style,
                  IXmCreateFunction createFunction,
                  const IWindow* parent,
                  const IWindow* owner,
                  const IRectangle& initRect,
                  IWindow::SiblingOrder ordering = defaultOrdering ( ) )

  -     virtual IWindowHandle
          create( unsigned long id,
                  const char* text,
                  unsigned long style,
                  IXmCreateFunction createFunction,
                  const IWindowHandle& parent,
                  const IWindowHandle& owner,
                  const IRectangle& initRect,
                  const void* callerArgList,
                  unsigned int callerNumberArguments,
                  IWindow::SiblingOrder ordering = defaultOrdering ( ),
                  unsigned long extendedStyle = 0 )

  -     virtual IWindowHandle
          create( unsigned long id,
                  const char* text,
                  const IBitFlag& style,
                  const char* windowClass,
                  const IWindow* parent,
                  const IWindow* owner,
                  const IRectangle& initRect,
                  const void* ctlData,
                  const void* presParams,
                  IWindow::SiblingOrder ordering = defaultOrdering ( ) )

  -     IWindow& defaultProcedure(IEvent& event)

  -     bool deleteIsInProcess() const

  -     bool dispatch(IEvent& event)

  -     virtual unsigned long extendedStyle() const

  -     bool isBoundToMessageQueue() const

  -     virtual bool isDragStarting(IEvent& event)

  -     bool isPrimaryWindow() const

  -     bool isUserWindowWordReserved() const

  -     IWindow()

  -     IWindowNotifyHandler* notificationHandler() const

  -     virtual IWindow&
          notifyObservers( const INotificationId& notification )

  -     IObserverList&
          observerList( const IInterest* interest = 0 ) const

  -     virtual IWindow&
          prepareForUse( const IWindowHandle& windowHandle )

  -     virtual IWindow& removeAllObservers()

  -     static void removeFromWindowSet(IWindow* window)

  -     IWindow& removeHandler(IHandler* oldHandler)

  -     virtual IWindow& removeObserver(IObserver& observer)

  -     virtual IWindow&
          removeObserver( IObserver& observer,
                          const IInterest& interest )

  -     IWindow& reserveUserWindowWord(bool reserve = true)

  -     virtual IWindow& resetColor(unsigned long colorArea)

  -     ISize savedMinimumSize() const

  -     IWindow& saveMinimumSize(const ISize& size)

  -     virtual IWindow&
          setBidiSettings( const IBidiSettings& bidiSettings,
                           bool childInherit,
                           bool refresh )

  -     virtual IWindow&
          setColor( unsigned long colorArea,
                    const IColor& color )

  -     virtual IWindow&
          setDefaultEmphasisButton( const IWindowHandle& defaultEmphasisButton,
                                    bool enable )

  -     virtual IWindow&
          setDefaultPushButton( const IWindowHandle& defaultPushButton )

  -     virtual IWindow&
          setExtendedStyle( unsigned long extendedStyle )

  -     IWindow&
          setNotificationHandler( IWindowNotifyHandler* notifyHandler )

  -     virtual IWindow& setStyle(unsigned long style)

  -     IWindow& setWindowData(long index, unsigned long dataValue)

  -     IWindow&
          setWindowData( long index,
                         unsigned short dataValue )

  -     IWindow&
          startHandlingEventsFor( unsigned long identifier,
                                  IWindow* parent )

  -     IWindow&
          startHandlingEventsFor( const IWindowHandle& windowHandle )

  -     virtual unsigned long style() const

  -     IWindow& unbindMessageQueue()

  -     unsigned long windowULong(long index) const

  -     unsigned short windowUShort(long index) const

  INotifier

  -     virtual INotifier&
          addObserver( IObserver& observer,
                       const IInterest& interest )

  -     virtual INotifier&
          notifyObservers( const INotificationId& id ) = 0

  -     virtual IObserverList&
          observerList( const IInterest* anInterest = 0 ) const = 0

  -     virtual INotifier& removeAllObservers() = 0

  -     virtual INotifier&
          removeObserver( IObserver& observer,
                          const IInterest& interest )

  -     virtual INotifier& removeObserver(IObserver& observer) = 0

  ICanvas

  -     bool areChildrenReversed() const

  -     virtual IWindowPosBuffer fixupChildren()

  -     ICanvas()

  -     ICanvas&
          initialize( unsigned long windowIdentifier,
                      IWindow* parent,
                      IWindow* owner,
                      const IRectangle& initialRect,
                      unsigned long style,
                      unsigned long extendedStyle )

  -     virtual ICanvas& layout()

  -     ISize layoutSize() const

  -     virtual bool passEventToOwner(IEvent& event)

  -     IRectangle
          rectangleInsideBorder( const ISize& sizeWithBorder ) const

  -     virtual ICanvas&
          setBidiSettings( const IBidiSettings& bidiSettings,
                           bool childInherit,
                           bool refresh )

  -     ICanvas& setLayoutSize(const ISize& size)

  -     ISize sizeWithBorder(const ISize& sizeWithoutBorder) const

  IControl

  -     IControl()

#### Inherited Protected Data

  - None