wxWidgets/include/wx/osx/core/stdpaths.h
Vadim Zeitlin 38aae140ac Forbid creation of wxStandardPaths object directly.
This happens to work under MSW and Unix where there is only one
wxStandardPaths class for both the console and the GUI applications but
doesn't return the correct result under OS X where the Core Foundation
version, returned by wxStandardPaths::Get(), has to be used for the GUI
programs. And historically this confused a lot of people, so just ensure that
they can't accidentally create an object of the wrong type any more.

Closes #13537.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-06 23:14:21 +00:00

71 lines
2.3 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: wx/osx/core/stdpaths.h
// Purpose: wxStandardPaths for CoreFoundation systems
// Author: David Elliott
// Modified by:
// Created: 2004-10-27
// RCS-ID: $Id$
// Copyright: (c) 2004 David Elliott
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MAC_STDPATHS_H_
#define _WX_MAC_STDPATHS_H_
struct __CFBundle;
struct __CFURL;
typedef const __CFURL * wxCFURLRef;
typedef __CFBundle * wxCFBundleRef;
// we inherit the GUI CF-based wxStandardPaths implementation from the Unix one
// used for console programs if possible (i.e. if we're under a Unix system at
// all)
#if defined(__UNIX__)
#include "wx/unix/stdpaths.h"
#define wxStandardPathsCFBase wxStandardPaths
#else
#define wxStandardPathsCFBase wxStandardPathsBase
#endif
// ----------------------------------------------------------------------------
// wxStandardPaths
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxStandardPathsCF : public wxStandardPathsCFBase
{
public:
virtual ~wxStandardPathsCF();
// wxMac specific: allow user to specify a different bundle
wxStandardPathsCF(wxCFBundleRef bundle);
void SetBundle(wxCFBundleRef bundle);
// implement base class pure virtuals
virtual wxString GetExecutablePath() const;
virtual wxString GetConfigDir() const;
virtual wxString GetUserConfigDir() const;
virtual wxString GetDataDir() const;
virtual wxString GetLocalDataDir() const;
virtual wxString GetUserDataDir() const;
virtual wxString GetPluginsDir() const;
virtual wxString GetResourcesDir() const;
virtual wxString
GetLocalizedResourcesDir(const wxString& lang,
ResourceCat category = ResourceCat_None) const;
virtual wxString GetDocumentsDir() const;
protected:
// Ctor is protected, use wxStandardPaths::Get() instead of instantiating
// objects of this class directly.
wxStandardPathsCF();
// this function can be called with any of CFBundleCopyXXXURL function
// pointer as parameter
wxString GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const;
wxCFBundleRef m_bundle;
};
#endif // _WX_MAC_STDPATHS_H_