+// Patch 531199 defined a window event handler, as follows.
+// TODO: merge the moving/sizing event handling with the event
+// handler above.
+#if 0
+static pascal OSStatus
+WindowHandler( EventHandlerCallRef inHandler, EventRef inEvent, void* userData )
+{
+ Rect bounds;
+ SInt16 height, width;
+ UInt32 attributes;
+ OSStatus result = eventNotHandledErr;
+
+ GetEventParameter( inEvent, kEventParamAttributes, typeUInt32, NULL, sizeof( UInt32 ), NULL, &attributes );
+
+ if ((attributes & (kWindowBoundsChangeSizeChanged | kWindowBoundsChangeOriginChanged)) != 0)
+ {
+ // Extract the current bounds. This is the paramter you get to modify to
+ // alter the window position or size during a window resizing.
+ GetEventParameter( inEvent, kEventParamCurrentBounds, typeQDRectangle, NULL, sizeof( bounds ), NULL, &bounds );
+
+ wxRect rect;
+ rect.SetLeft(bounds.left);
+ rect.SetTop(bounds.top);
+ rect.SetRight(bounds.right);
+ rect.SetBottom(bounds.bottom);
+
+ bool rc;
+ wxWindowMac *pWindow = (wxWindowMac*)userData;
+ if ((attributes & kWindowBoundsChangeSizeChanged) != 0) {
+ wxSizeEvent event(rect, pWindow->GetId());
+ event.SetEventObject(pWindow);
+ rc = pWindow->GetEventHandler()->ProcessEvent(event);
+ rect = event.GetRect();
+ }
+ else {
+ wxMoveEvent event(rect, pWindow->GetId());
+ event.SetEventObject(pWindow);
+ rc = pWindow->GetEventHandler()->ProcessEvent(event);
+ rect = event.GetRect();
+ }
+
+ if (rc) {
+ bounds.left = rect.GetLeft();
+ bounds.top = rect.GetTop();
+ bounds.right = rect.GetRight();
+ bounds.bottom = rect.GetBottom();
+ }
+
+ // Set the current bounds parameter to our adjusted bounds. Return
+ // noErr to indicate we handled this event.
+ SetEventParameter( inEvent, kEventParamCurrentBounds, typeQDRectangle, sizeof( bounds ), &bounds );
+ result = noErr;
+ }
+ return result;
+}
+#endif
+ // WindowHandler
+