### ICustomButton

  The ICustomButton class creates and manages the custom button window. Custom buttons allow the application to customize the button appearance by providing an ICustomButtonDrawHandler to draw the button while retaining the behavior of a push button.

  Custom buttons support the following features:

  - Latching. Latchable buttons toggle between a latched (depressed) and unlatched (default) state. Latching is enabled by creating the button with the ICustomButton::latchable style, or by calling ICustomButton::enableLatching.
  - Multiple lines of text. Custom buttons examine the text for newline characters and use this information to flow the text to multiple lines. Additionally ICustomButton::calcMinimumSize accurately determines the size of the button's window with multiple lines of text.
  - 3D borders. Custom button borders are drawn in the 3D look.
  - Custom drawing of the entire button, or selected parts of the button, through the use of ICustomButtonDrawHandler. You do this by deriving from ICustomButtonDrawHandler and overriding one or all of its virtual functions. You then attach your new handler class to ICustomButton. You might also need to derive from ICustomButton and override calcMinimumSize so that the button correctly reports its size to canvas windows.

### ICustomButton - Member Functions and Data by Group

### Constructors & Destructor

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

~ICustomButton

      public:
      virtual ~ICustomButton()

Supported Platforms

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

ICustomButton

  Overload 1

      public:
      ICustomButton(const IWindowHandle& handle)

  Creates an ICustomButton object for the specified button control.

Supported Platforms

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

AIX Considerations

  This constructor is to be used to create an ICustomButton object from a Motif XmPushButton widget. The default ICustomButtonDrawHandler draws the button image and sets this image as the XmNlabelPixmap, XmNlabelInsenstivePixmap, or the XmNarmPixmap as appropriate.

OS/2 Considerations

  This constructor is to be used to create an ICustomButton object from a Presentation Manager button control created with the user button style.

Windows Considerations

  This constructor is to be used to create an ICustomButton object from a Windows button control created with the owner draw style.

  Overload 2

      public:
      ICustomButton( unsigned long id,
                     IWindow* parent,
                     IWindow* owner,
                     const IRectangle& initial = IRectangle ( ),
                     const Style& style = defaultStyle ( ) )

  Creates an ICustomButton with the specified window ID, parent and owner windows, screen position and size, and window style.

Exception

  IInvalidParameter | The parent window pointer is invalid.

Supported Platforms

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

  Overload 3

      protected:
      ICustomButton()

  This constructor does not create the button control window. When using this constructor, you must create the window. You can create the window using IWindow::create in the body of the constructor of your ICustomButton derived class. You can then begin event handling by calling IWindow::startHandlingEventsFor.

  This constructor does not attach an ICustomButtonDrawHandler to the button being created. You can attach and detach the default draw handler using ICustomButton::addDefaultDrawHandler and ICustomButton::removeDefaultDrawHandler.

Supported Platforms

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

### Attributes

Use these members to query and set the accessible attributes of objects of this class.

disable

      public:
      virtual ICustomButton& disable()

  Prevents keyboard and mouse input from being sent to the window.

Supported Platforms

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

enable

      public:
      virtual ICustomButton& enable(bool enableWindow = true)

  Enables the window to accept keyboard and mouse input.

Supported Platforms

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

### Colors

Use these members to set or query the color attributes of a custom button.

backgroundColor

      public:
      virtual IColor backgroundColor() const

  Returns the color used to paint the background of the custom button when it is in the default state. If you have not specifically set the background color, this function returns the system color in effect for middle of buttons.

Supported Platforms

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

isLatchedBackgroundColorHalftone

      public:
      virtual bool isLatchedBackgroundColorHalftone() const

  Returns true if the color used to paint the background of the button has halftone emphasis when the custom button is in the latched state.

Supported Platforms

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

latchedBackgroundColor

      public:
      virtual IColor latchedBackgroundColor() const

  Returns the color used to paint the background of the custom button when it is in the latched state.

Supported Platforms

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

latchedForegroundColor

      public:
      virtual IColor latchedForegroundColor() const

  Returns the color used to paint the foreground of the custom button when it is in the latched state.

Supported Platforms

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

resetBackgroundColor

      public:
      virtual ICustomButton& resetBackgroundColor()

  Resets the color used to paint the background by undoing a previous set.

Supported Platforms

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

Portability Considerations

  ICustomButton only overrides this function on Windows. On other platforms, the function is provided by a base class.

resetLatchedBackgroundColor

      public:
      virtual ICustomButton& resetLatchedBackgroundColor()

  Resets the latched background color by undoing a previous set.

Supported Platforms

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

resetLatchedForegroundColor

      public:
      virtual ICustomButton& resetLatchedForegroundColor()

  Resets the latched foreground color by undoing a previous set.

Supported Platforms

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

setBackgroundColor

      public:
      virtual ICustomButton&
        setBackgroundColor( const IColor& color )

  Sets the background color to the indicated color.

Supported Platforms

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

Portability Considerations

  ICustomButton only overrides this function on Windows. On other platforms, the function is provided by a base class

setLatchedBackgroundColor

      public:
      virtual ICustomButton&
        setLatchedBackgroundColor( const IColor& color,
                                   bool halftone = true )

  Sets the color used to paint the background of the button when it is in the latched state.

Supported Platforms

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

setLatchedForegroundColor

      public:
      virtual ICustomButton&
        setLatchedForegroundColor( const IColor& color )

  Sets the color used to paint the foreground of the button when it is in the latched state.

Supported Platforms

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

setColor

      protected:
      virtual ICustomButton&
        setColor( unsigned long colorArea,
                  const IColor& color )

  Sets the colorArea to the indicated color.

Supported Platforms

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

Portability Considerations

  ICustomButton only overrides this function on Windows. On other platforms, the function is provided by a base class

### Default Draw Handler

Use these members to manage the default draw handler of a custom button.

addDefaultDrawHandler

      protected:
      ICustomButton& addDefaultDrawHandler()

  Attaches the default ICustomButtonDrawHandler to the window. A call to this function will not attach the default handler if it is already attached.

Supported Platforms

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

removeDefaultDrawHandler

      protected:
      ICustomButton& removeDefaultDrawHandler()

  Removes the default ICustomButtonDrawHandler from the window. A call to this function will not remove the default hander if it is not attached.

Supported Platforms

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

### Event-Handling Implementation

Event-handling implementation members perform processing needed to allow event handlers to properly receive and route events.

passEventToOwner

      protected:
      virtual bool passEventToOwner(IEvent& event)

  Determines if the event is passed on to the owner.

Supported Platforms

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

Portability Considerations

  ICustomButton overrides this function in AIX to prevent mouse button click messages from being passed to the owner.

### Fonts

Use these members to set, reset, and query fonts.

characterSize

      public:
      ISize characterSize() const

  Calculates and returns the average character width and maximum character height for the currently set font.

Supported Platforms

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

font

      public:
      virtual IFont font() const

  Returns the font used by the window.

Supported Platforms

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

resetFont

      public:
      virtual ICustomButton& resetFont()

  Causes the window to disregard a font set by a call to setFont. Following a call to this function, the window uses a default font.

Supported Platforms

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

setFont

      public:
      virtual ICustomButton& setFont(const IFont& font)

  Sets a new font to be used by the window.

Supported Platforms

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

### Latch Support

Use these members to manage the latched state of a custom button.

disableAutoLatch

      public:
      virtual ICustomButton& disableAutoLatch()

  Disables the autoLatch style.

Supported Platforms

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

disableLatching

      public:
      virtual ICustomButton& disableLatching()

  Sets the style of the button so that the user cannot latch or unlatch it.

Supported Platforms

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

enableAutoLatch

      public:
      virtual ICustomButton& enableAutoLatch(bool enable = true)

  Sets the style of the button so that other custom buttons in the same group that have the autoLatch style are automatically unlatched when the user latches the button.

Supported Platforms

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

enableLatching

      public:
      virtual ICustomButton& enableLatching(bool enable = true)

  Sets the style of the button so that the user can latch or unlatch it.

Supported Platforms

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

isAutoLatchEnabled

      public:
      virtual bool isAutoLatchEnabled() const

  Returns true if the autoLatch style is set for the button.

Supported Platforms

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

isLatched

      public:
      virtual bool isLatched() const

  Returns true if the button is in a latched state.

Supported Platforms

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

isLatchingEnabled

      public:
      virtual bool isLatchingEnabled() const

  Returns true if the latchable style is set for the button.

Supported Platforms

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

latch

      public:
      virtual ICustomButton&
        latch( bool latched = true,
               bool refresh = true )

  Puts the button in a latched state.

Supported Platforms

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

unlatch

      public:
      virtual ICustomButton& unlatch()

  Puts the button in the unlatched (default) state.

Supported Platforms

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

### Layout Support

These members provide layout support for custom buttons.

setLayoutDistorted

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

  Called when changes have occurred in the window that will cause the layout of the window in a canvas to be updated. It is overridden by ICustomButton to optimize drawing and minimum size calculations.

Supported Platforms

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

calcMinimumSize

      protected:
      virtual ISize calcMinimumSize() const

  Returns the recommended minimum size of the custom button. The size is based on the button text and the current font. This function examines the text for newline characters to accurately determine the button's size with multiple lines of text.

Supported Platforms

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

### Notification Members

These INotificationId strings are used for all notifications that ICustomButton provides to its observers.

latchId

      public:
      static INotificationId const latchId

  This notification identifier is provided to observers when the user latches or unlatches the button. A boolean value is provided in the INotificationEvent::eventData field of the INotificationEvent. This value is true if the button is currently in the latched state.

Supported Platforms

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

### Styles

Use these members to set and query ICustomButton styles. You can use these styles with the styles defined by the following nested classes:

- IWindow Styles
- IButton Styles

If the latchable style is set for the button but not the autoLatch style, then the user can latch and unlatch the button directly. If the autoLatch style is set for the button but not the latchable style, then the user can latch the button but cannot unlatch it directly. The user must latch another custom button that has the autoLatch style to unlatch the previous button. If both the latchable and autoLatch styles are set for the button, then the user can latch and unlatch the button directly. Also, the button automatically unlatches itself when the user latches another custom button that has the autoLatch style.

convertToGUIStyle

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

  Use this function to convert style bits into the style value that can be processed by the GUI. The default action is to return the base GUI style for the platform. Extended styles, those defined by the Open Class Library, can be returned by setting the extendedOnly parameter 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 have changed 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 custom buttons.

  style
    Use the styles provided by ICustomButton::Styles to specify the default style.

  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

autoLatch

      public:
      static const Style autoLatch

  Unlatches automatically other custom buttons in the same group when the user latches button. This style also allows the user to latch the button when clicking on the button with mouse button 1.

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 IWindow::visible.

Supported Platforms

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

latchable

      public:
      static const Style latchable

  Allows the user to latch or unlatch the custom button when clicking on the button with mouse button 1.

Supported Platforms

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

### Text Processing

Use these members to manage the text. You can query and set the text as well as query the length of the text for objects of this class.

setText

  Sets the custom button's text.

  Overload 1

      public:
      virtual ICustomButton& setText(const char* text)

Supported Platforms

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

  Overload 2

      public:
      virtual ICustomButton& setText(const IResourceId& text)

  Sets the custom button's text from a resource file.

Supported Platforms

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

text

      public:
      virtual IString text() const

  Returns the custom button's text.

Supported Platforms

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

### User Data

Use these members to set or query user data for custom button objects.

setUserData

      public:
      ICustomButton& setUserData(unsigned long data)

  Stores an unsigned long value that represents special data to be associated with the button object.

Supported Platforms

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

userData

      public:
      unsigned long userData() const

  Returns an unsigned long value that represents special data associated with the button object. This data can be used to store information about special drawing for the button.

Supported Platforms

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

### ICustomButton - Inherited Member Functions and Data

#### Inherited Public Functions

  IButton

  -     virtual ~IButton()

  -     bool allowsMouseClickFocus() const

  -     virtual IButton& click()

  -     virtual IColor disabledForegroundColor() const

  -     virtual IButton& disableMouseClickFocus()

  -     virtual IButton& enableMouseClickFocus(bool enable = true)

  -     virtual IButton& enableNotification(bool enable = true)

  -     virtual IColor foregroundColor() const

  -     virtual IButton& highlight(bool highlight = true)

  -     virtual IColor hiliteBackgroundColor() const

  -     virtual IColor hiliteForegroundColor() const

  -     bool isHighlighted() const

  -     virtual IButton& setText(const char* text)

  -     virtual IButton& setText(const IResourceId& text)

  -     virtual IButton& unhighlight()

  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

  ITextControl

  -     virtual ~ITextControl()

  -     static bool clipboardHasTextFormat()

  -     virtual ISize displaySize(const char* text = 0) const

  -     virtual ITextControl&
          setLayoutDistorted( unsigned long layoutAttributeOn,
                              unsigned long layoutAttributeOff )

  -     virtual ITextControl& setText(const char* text)

  -     virtual ITextControl& setText(const IResourceId& text)

  -     virtual unsigned long textLength() 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)

  -     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()

  -     virtual IWindowHandle defaultPushButton() const

  -     static IWindow* desktopWindow()

  -     virtual IWindow& disable()

  -     virtual IColor disabledBackgroundColor() 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 IWindowHandle handle() const

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

  -     virtual IWindowHandle handleForChildCreation() const

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

  -     virtual bool isTabStop() 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 )

  -     virtual IWindowHandle
          matchForMnemonic( unsigned short character ) const

  -     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

  -     static ISize parentSize(const IWindowHandle& windowHandle)

  -     virtual ISize parentSize() const

  -     static IPoint pointerPosition()

  -     virtual IPoint position() const

  -     virtual IWindow&
          positionBehindSibling( const IWindowHandle& siblingWindow )

  -     virtual IWindow& positionBehindSiblings()

  -     virtual IWindow& positionOnSiblings()

  -     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 const IWindow& postEvent(const IEvent& event) 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

  IButton

  -     static INotificationId const buttonClickId

  -     static const Style noPointerFocus

  ITextControl

  -     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,
                  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,
                  IXmCreateFunction createFunction,
                  const IWindow* parent,
                  const IWindow* owner,
                  const IRectangle& initRect,
                  IWindow::SiblingOrder ordering = defaultOrdering ( ) )

  -     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 ( ) )

  -     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 )

  -     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 short dataValue )

  -     IWindow& setWindowData(long index, unsigned long 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) = 0

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

  IButton

  -     IButton()

  IControl

  -     IControl()

  ITextControl

  -     ITextControl()

#### Inherited Protected Data

  - None