support for default location added
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "wx/dirdlg.h"
|
||||
|
||||
#include "wx/cmndata.h"
|
||||
#include "wx/filename.h"
|
||||
|
||||
#include "wx/mac/private.h"
|
||||
|
||||
@@ -29,6 +30,34 @@
|
||||
|
||||
IMPLEMENT_CLASS(wxDirDialog, wxDialog)
|
||||
|
||||
static pascal void NavEventProc(
|
||||
NavEventCallbackMessage inSelector,
|
||||
NavCBRecPtr ioParams,
|
||||
NavCallBackUserData ioUserData );
|
||||
|
||||
static NavEventUPP sStandardNavEventFilter = NewNavEventUPP(NavEventProc);
|
||||
|
||||
static pascal void NavEventProc(
|
||||
NavEventCallbackMessage inSelector,
|
||||
NavCBRecPtr ioParams,
|
||||
NavCallBackUserData ioUserData )
|
||||
{
|
||||
wxDirDialog * data = ( wxDirDialog *) ioUserData ;
|
||||
if ( inSelector == kNavCBStart )
|
||||
{
|
||||
if (data && !data->GetPath().IsEmpty() )
|
||||
{
|
||||
// Set default location for the modern Navigation APIs
|
||||
// Apple Technical Q&A 1151
|
||||
FSSpec theFSSpec;
|
||||
wxMacFilename2FSSpec(data->GetPath(), &theFSSpec);
|
||||
AEDesc theLocation = { typeNull, NULL };
|
||||
if (noErr == ::AECreateDesc(typeFSS, &theFSSpec, sizeof(FSSpec), &theLocation))
|
||||
::NavCustomControl(ioParams->context, kNavCtlSetLocation, (void *) &theLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wxDirDialog::wxDirDialog(wxWindow *parent,
|
||||
const wxString& message,
|
||||
const wxString& defaultPath,
|
||||
@@ -57,7 +86,7 @@ int wxDirDialog::ShowModal()
|
||||
{
|
||||
wxMacCFStringHolder message(m_message, m_font.GetEncoding());
|
||||
options.message = message;
|
||||
err = NavCreateChooseFolderDialog(&options, NULL, NULL, NULL, &dialog);
|
||||
err = NavCreateChooseFolderDialog(&options, sStandardNavEventFilter , NULL, this , &dialog);
|
||||
if (err == noErr)
|
||||
{
|
||||
err = NavDialogRun(dialog);
|
||||
|
Reference in New Issue
Block a user