+ wxNonOwnedWindow* parentWindow = NULL;
+
+ if (GetParent())
+ parentWindow = dynamic_cast<wxNonOwnedWindow*>(wxGetTopLevelParent(GetParent()));
+
+ wxASSERT_MSG(parentWindow, "Window modal display requires parent.");
+
+ if (parentWindow)
+ {
+ NSWindow* nativeParent = parentWindow->GetWXWindow();
+ ModalDialogDelegate* sheetDelegate = [[ModalDialogDelegate alloc] init];
+ [sheetDelegate setImplementation: this];
+ [oPanel beginSheetForDirectory:dir.AsNSString() file:nil types: nil
+ modalForWindow: nativeParent modalDelegate: sheetDelegate
+ didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:)
+ contextInfo: nil];
+ }
+}
+
+int wxDirDialog::ShowModal()
+{
+ NSOpenPanel *oPanel = [NSOpenPanel openPanel];
+ [oPanel setCanChooseDirectories:YES];
+ [oPanel setResolvesAliases:YES];
+ [oPanel setCanChooseFiles:NO];
+