]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxStandardPaths implementation for OS/2.
authorStefan Neis <Stefan.Neis@t-online.de>
Sat, 6 Nov 2004 22:14:04 +0000 (22:14 +0000)
committerStefan Neis <Stefan.Neis@t-online.de>
Sat, 6 Nov 2004 22:14:04 +0000 (22:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

build/bakefiles/files.bkl
include/wx/os2/stdpaths.h [new file with mode: 0644]
include/wx/stdpaths.h
src/os2/app.cpp
src/os2/stdpaths.cpp [new file with mode: 0644]

index e3605bdc32def2cd40caf8cdecf2e6e6a1e6cc56..33079e69feda04fa7872bde0dacd622bb8edc0b2 100644 (file)
@@ -153,6 +153,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
 <set var="BASE_OS2_SRC" hints="files">
     src/os2/dir.cpp
     src/os2/mimetype.cpp
 <set var="BASE_OS2_SRC" hints="files">
     src/os2/dir.cpp
     src/os2/mimetype.cpp
+    src/os2/stdpaths.cpp
     src/os2/thread.cpp
     src/os2/utils.cpp
     src/os2/utilsexc.cpp
     src/os2/thread.cpp
     src/os2/utils.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>
 <set var="BASE_OS2_HDR" hints="files">
 <set var="BASE_AND_GUI_OS2_SRC" hints="files">
 </set>
 <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 var="BASE_CMN_SRC" hints="files">
 </set>
 
 <set var="BASE_CMN_SRC" hints="files">
diff --git a/include/wx/os2/stdpaths.h b/include/wx/os2/stdpaths.h
new file mode 100644 (file)
index 0000000..353fc5b
--- /dev/null
@@ -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_
index dba20f0284e499d3055c1442a5a9c432bd181d81..8721d015d0e33b4415f0a2a733647a119f74772e 100644 (file)
@@ -91,6 +91,8 @@ protected:
     #include "wx/msw/stdpaths.h"
 #elif defined(__WXMAC__) || defined(__WXCOCOA__)
     #include "wx/mac/corefoundation/stdpaths.h"
     #include "wx/msw/stdpaths.h"
 #elif defined(__WXMAC__) || defined(__WXCOCOA__)
     #include "wx/mac/corefoundation/stdpaths.h"
+#elif defined(__OS2__)
+    #include "wx/os2/stdpaths.h"
 #elif defined(__UNIX__)
     #include "wx/unix/stdpaths.h"
 #endif
 #elif defined(__UNIX__)
     #include "wx/unix/stdpaths.h"
 #endif
index cf60a549266f81df85128f41861787947fae9d2e..52aebcb4b8958e34fb1e971f5cb6481c30188a24 100644 (file)
@@ -33,6 +33,8 @@
     #include "wx/dynarray.h"
     #include "wx/wxchar.h"
     #include "wx/icon.h"
     #include "wx/dynarray.h"
     #include "wx/wxchar.h"
     #include "wx/icon.h"
+    #include "wx/stdpaths.h"
+    #include "wx/filename.h"
 #endif
 
 #include "wx/log.h"
 #endif
 
 #include "wx/log.h"
@@ -219,7 +221,9 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     // OS2 has to have an anchorblock
     //
     vHabmain = WinInitialize(0);
     // OS2 has to have an anchorblock
     //
     vHabmain = WinInitialize(0);
-
+    wxFileName GetPrefix(argv[0]);
+    GetPrefix.MakeAbsolute();
+    wxStandardPaths::SetInstallPrefix(GetPrefix.GetPath());
     if (!vHabmain)
     {
         // TODO: at least give some error message here...
     if (!vHabmain)
     {
         // TODO: at least give some error message here...
diff --git a/src/os2/stdpaths.cpp b/src/os2/stdpaths.cpp
new file mode 100644 (file)
index 0000000..86a91d3
--- /dev/null
@@ -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();
+}