impl = theImplementation;
}
+- (BOOL)canBecomeKeyWindow
+{
+ return YES;
+}
+
- (wxNonOwnedWindowCocoaImpl*) implementation
{
return impl;
- (void)windowDidResize:(NSNotification *)notification;
- (NSSize)windowWillResize:(NSWindow *)window toSize:(NSSize)proposedFrameSize;
-- (void)windowDidResignMain:(NSNotification *)notification;
-- (void)windowDidBecomeMain:(NSNotification *)notification;
+- (void)windowDidResignKey:(NSNotification *)notification;
+- (void)windowDidBecomeKey:(NSNotification *)notification;
- (void)windowDidMove:(NSNotification *)notification;
- (BOOL)windowShouldClose:(id)window;
}
}
-- (void)windowDidBecomeMain:(NSNotification *)notification
+- (void)windowDidBecomeKey:(NSNotification *)notification
{
wxNSWindow* window = (wxNSWindow*) [notification object];
wxNonOwnedWindowCocoaImpl* windowimpl = [window implementation];
}
}
-- (void)windowDidResignMain:(NSNotification *)notification
+- (void)windowDidResignKey:(NSNotification *)notification
{
wxNSWindow* window = (wxNSWindow*) [notification object];
wxNonOwnedWindowCocoaImpl* windowimpl = [window implementation];
{
wxNonOwnedWindow* wxpeer = windowimpl->GetWXPeer();
if ( wxpeer )
+ {
wxpeer->HandleActivated(0, false);
+ // Needed for popup window since the firstResponder
+ // (focus in wx) doesn't change when this
+ // TLW becomes inactive.
+ wxFocusEvent event( wxEVT_KILL_FOCUS, wxpeer->GetId());
+ event.SetEventObject(wxpeer);
+ wxpeer->HandleWindowEvent(event);
+ }
}
}
int windowstyle = NSBorderlessWindowMask;
- if ( style & wxFRAME_TOOL_WINDOW )
+ if ( style & wxFRAME_TOOL_WINDOW || ( style & wxPOPUP_WINDOW ) ||
+ GetWXPeer()->GetExtraStyle() & wxTOPLEVEL_EX_DIALOG )
+ {
m_macWindow = [wxNSPanel alloc];
+ }
else
m_macWindow = [wxNSWindow alloc];
[m_macWindow setAcceptsMouseMovedEvents: YES];
- // [m_macWindow makeKeyAndOrderFront:nil];
+ if ( ( style & wxPOPUP_WINDOW ) )
+ [m_macWindow makeKeyAndOrderFront:nil];
}
height = rect.size.height;
}
-void wxNonOwnedWindowCocoaImpl::GetContentArea( int& left, int &right, int &width, int &height ) const
+void wxNonOwnedWindowCocoaImpl::GetContentArea( int& left, int &top, int &width, int &height ) const
{
NSRect outer = NSMakeRect(100,100,100,100);
NSRect content = [NSWindow contentRectForFrameRect:outer styleMask:[m_macWindow styleMask] ];
NSRect rect = [[m_macWindow contentView] frame];
+ left = rect.origin.x;
+ top = rect.origin.y;
width = rect.size.width;
height = rect.size.height;
}