### IRecoordHandler

  The IRecoordHandler class handles the notification that a window or control is being resized.

  A recoordination event notifies a window when the size and position of the window's client area must be calculated. This event is processed by this handler to make any adjustments in child window coordinates which are necessary due to the window size change. This handler is distinct from an IResizeHander in that it runs before the IResizeHander and processes a different message. The message handled by the IRecoordHandler is WM_CALCVALIDRECTS/WM_NCCALCSIZE.

  IRecoordHandler processes the resizing event by creating an IRecoordEvent object and routing it to the virtual windowSizeChanged function. You can override this virtual function to supply your own specialized processing of a resizing event.

  The following return values from the virtual functions specify whether the window event is passed on for additional processing:

  true
    The resizing event requires no additional processing. Do not pass it to another handler.
  false
    The resizing event requires additional processing. Pass the resizing event to the next handler for additional processing, as follows:
    - If there is another handler for the window, pass the resizing event to the next handler.
    - If this is the last handler for the window, call IWindow::dispatch to dispatch the event to the window's owner window.
    - If this is the last handler for the owner window, call IWindow::defaultProcedure to process the event.

### IRecoordHandler - Member Functions and Data by Group

### Constructors & Destructor

The only way to create objects of this class is by using the default constructor.

~IRecoordHandler

      public:
      virtual ~IRecoordHandler()

Supported Platforms

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

IRecoordHandler

      public:
      IRecoordHandler()

  Used by derived classes to construct objects of this class. This is the default constructor and accepts no parameters.

Supported Platforms

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

### Event Dispatching

Event-dispatching members evaluate an event to determine if it is appropriate for this handler object to process it. If it is, it calls the virtual function used to process the event.

dispatchHandlerEvent

      protected:
      virtual bool dispatchHandlerEvent(IEvent& event)

  If a resizing event is received, the windowSizeChanged virtual function is called.

Supported Platforms

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

### Event Processing

Event-processing members must be supplied to process events affecting recoordination. You can override these virtual members in a derived class.

windowSizeChanged

      protected:
      virtual bool
        windowSizeChanged( IWindowHandle handle,
                           const IRectangle& newWindowRect,
                           const IRectangle& oldWindowRect )

  Processes resizing events. This member is called when the event indicates that the size of the window with window handle handle has changed. It is implemented by derived classes.

Supported Platforms

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

### IRecoordHandler - Inherited Member Functions and Data

#### Inherited Public Functions

  IHandler

  -     virtual ~IHandler()

  -     virtual IString asDebugInfo() const

  -     virtual IString asString() const

  -     virtual IHandler& disable()

  -     virtual IHandler& enable(bool enable = true)

  -     virtual IHandler& handleEventsFor(IWindow* window)

  -     IHandler()

  -     bool isEnabled() const

  -     virtual IHandler& stopHandlingEventsFor(IWindow* window)

  IRecoordHandler

  -     static IRecoordHandler* defaultHandler()

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IHandler

  -     virtual IEventResult defaultProcedure(IEvent& event)

  -     virtual bool dispatchHandlerEvent(IEvent& event) = 0

#### Inherited Protected Data

  - None