Added "hack" to allow window import with Qt.

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/trunk@1393 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
ceylo 2010-02-05 19:26:20 +00:00
parent e79415209f
commit d4a5384da1

View File

@ -90,16 +90,35 @@ myWheelStatus(0.0f)
{ {
if (Handle) if (Handle)
{ {
if (![(NSWindow *)Handle isKindOfClass:[NSWindow class]]) NSWindow *cocoaWindow = nil;
std::cerr << "Cannot import this Window Handle because it is not a <NSWindow *> object"
<< "(or one of its subclasses). You gave a <" if ([(id)Handle isKindOfClass:[NSWindow class]])
<< [[(NSWindow *)Handle className] UTF8String] {
<< "> object." << std::endl; cocoaWindow = (NSWindow *)Handle;
NSLog(@"detected window object");
}
else if ([(id)Handle isKindOfClass:[NSView class]])
{
cocoaWindow = [(NSView *)Handle window];
NSLog(@"detected view object");
}
else else
{
std::cerr
<< "Cannot import this Window Handle because it is neither"
<< "a <NSWindow *> nor <NSView *> object"
<< "(or any of its subclasses). You gave a <"
<< [[(id)Handle className] UTF8String]
<< "> object."
<< std::endl;
}
if (cocoaWindow)
{ {
// We create the window according to the given handle // We create the window according to the given handle
myWrapper = [[WindowWrapper alloc] initWithWindow:(NSWindow *)Handle myWrapper = [[WindowWrapper alloc] initWithWindow:cocoaWindow
settings:params settings:params
delegate:this]; delegate:this];
@ -115,6 +134,16 @@ myWheelStatus(0.0f)
std::cerr << "Failed to make the public window" << std::endl; std::cerr << "Failed to make the public window" << std::endl;
} }
} }
else
{
std::cerr
<< "Could not get a valid NSWindow object from the given handle"
<< " (%p <"
<< [[(id)Handle className] UTF8String]
<< ">"
<< std::endl;
}
} }
} }