Added wxStandardPaths implementation for OS/2.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Neis
2004-11-06 22:14:04 +00:00
parent 08429a81ca
commit 175bb578e0
5 changed files with 148 additions and 1 deletions

View File

@@ -153,6 +153,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="BASE_OS2_SRC" hints="files"> <set var="BASE_OS2_SRC" hints="files">
src/os2/dir.cpp src/os2/dir.cpp
src/os2/mimetype.cpp src/os2/mimetype.cpp
src/os2/stdpaths.cpp
src/os2/thread.cpp src/os2/thread.cpp
src/os2/utils.cpp src/os2/utils.cpp
src/os2/utilsexc.cpp src/os2/utilsexc.cpp
@@ -160,6 +161,10 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="BASE_AND_GUI_OS2_SRC" hints="files"> <set var="BASE_AND_GUI_OS2_SRC" hints="files">
</set> </set>
<set var="BASE_OS2_HDR" hints="files"> <set var="BASE_OS2_HDR" hints="files">
wx/os2/apptbase.h
wx/os2/apptrait.h
wx/os2/mimetype.h
wx/os2/stdpaths.h
</set> </set>
<set var="BASE_CMN_SRC" hints="files"> <set var="BASE_CMN_SRC" hints="files">

47
include/wx/os2/stdpaths.h Normal file
View File

@@ -0,0 +1,47 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/msw/stdpaths.h
// Purpose: wxStandardPaths for OS/2
// Author: Stefan Neis
// Modified by:
// Created: 2004-11-06
// RCS-ID: $Id$
// Copyright: (c) 2004 Stefan Neis <Stefan.Neis@t-online.de>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_OS2_STDPATHS_H_
#define _WX_OS2_STDPATHS_H_
// ----------------------------------------------------------------------------
// wxStandardPaths
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxStandardPaths : public wxStandardPathsBase
{
public:
// set the program installation directory which is /usr/local by default
//
// The program directory can be determined automatically from argv[0],
// this function is automatically called from application initialisation.
// If you override the initialisation routine, you should call it
// explicitely yourself.
static void SetInstallPrefix(const wxString& prefix);
// get the program installation prefix
//
// if the prefix had been previously by SetInstallPrefix, returns that
// value, otherwise returns /usr/local if it failed
wxString GetInstallPrefix() const;
// implement base class pure virtuals
virtual wxString GetConfigDir() const;
virtual wxString GetUserConfigDir() const;
virtual wxString GetDataDir() const;
virtual wxString GetUserDataDir() const;
virtual wxString GetPluginsDir() const;
private:
static wxString m_prefix;
};
#endif // _WX_OS2_STDPATHS_H_

View File

@@ -91,6 +91,8 @@ protected:
#include "wx/msw/stdpaths.h" #include "wx/msw/stdpaths.h"
#elif defined(__WXMAC__) || defined(__WXCOCOA__) #elif defined(__WXMAC__) || defined(__WXCOCOA__)
#include "wx/mac/corefoundation/stdpaths.h" #include "wx/mac/corefoundation/stdpaths.h"
#elif defined(__OS2__)
#include "wx/os2/stdpaths.h"
#elif defined(__UNIX__) #elif defined(__UNIX__)
#include "wx/unix/stdpaths.h" #include "wx/unix/stdpaths.h"
#endif #endif

View File

@@ -33,6 +33,8 @@
#include "wx/dynarray.h" #include "wx/dynarray.h"
#include "wx/wxchar.h" #include "wx/wxchar.h"
#include "wx/icon.h" #include "wx/icon.h"
#include "wx/stdpaths.h"
#include "wx/filename.h"
#endif #endif
#include "wx/log.h" #include "wx/log.h"
@@ -219,7 +221,9 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
// OS2 has to have an anchorblock // OS2 has to have an anchorblock
// //
vHabmain = WinInitialize(0); vHabmain = WinInitialize(0);
wxFileName GetPrefix(argv[0]);
GetPrefix.MakeAbsolute();
wxStandardPaths::SetInstallPrefix(GetPrefix.GetPath());
if (!vHabmain) if (!vHabmain)
{ {
// TODO: at least give some error message here... // TODO: at least give some error message here...

89
src/os2/stdpaths.cpp Normal file
View File

@@ -0,0 +1,89 @@
///////////////////////////////////////////////////////////////////////////////
// Name: unix/stdpaths.cpp
// Purpose: wxStandardPaths implementation for OS/2 systems
// Author: Stefan Neis
// Modified by:
// Created: 2004-11-06
// RCS-ID: $Id$
// Copyright: (c) 2004 Stefan Neis <Stefan.Neis@t-online.de>
// License: wxWindows license
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/app.h"
#endif //WX_PRECOMP
#include "wx/filename.h"
#include "wx/stdpaths.h"
// ============================================================================
// wxStandardPaths implementation
// ============================================================================
// ----------------------------------------------------------------------------
// prefix management
// ----------------------------------------------------------------------------
wxString wxStandardPaths::m_prefix;
void wxStandardPaths::SetInstallPrefix(const wxString& prefix)
{
m_prefix = prefix;
}
wxString wxStandardPaths::GetInstallPrefix() const
{
if ( m_prefix.empty() )
{
wxStandardPaths *self = wx_const_cast(wxStandardPaths *, this);
self->m_prefix = _T("/usr/local");
}
return m_prefix;
}
// ----------------------------------------------------------------------------
// public functions
// ----------------------------------------------------------------------------
wxString wxStandardPaths::GetConfigDir() const
{
return m_prefix;
}
wxString wxStandardPaths::GetUserConfigDir() const
{
return wxFileName::GetHomeDir();
}
wxString wxStandardPaths::GetDataDir() const
{
return GetInstallPrefix() + _T("\\data");
}
wxString wxStandardPaths::GetUserDataDir() const
{
return AppendAppName(wxFileName::GetHomeDir() + _T("\\."));
}
wxString wxStandardPaths::GetPluginsDir() const
{
return wxString();
}