]>
git.saurik.com Git - wxWidgets.git/blob - src/unix/stdpaths.cpp
   1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        unix/stdpaths.cpp 
   3 // Purpose:     wxStandardPaths implementation for Unix & OpenVMS systems 
   4 // Author:      Vadim Zeitlin 
   8 // Copyright:   (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> 
   9 // License:     wxWindows license 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 // ============================================================================ 
  14 // ============================================================================ 
  16 // ---------------------------------------------------------------------------- 
  18 // ---------------------------------------------------------------------------- 
  20 // for compilers that support precompilation, includes "wx.h". 
  21 #include "wx/wxprec.h" 
  33 #include "wx/filename.h" 
  35 #include "wx/stdpaths.h" 
  37 #if defined( __LINUX__ ) || defined( __VMS ) 
  41 // ============================================================================ 
  42 // common VMS/Unix part of wxStandardPaths implementation 
  43 // ============================================================================ 
  45 void wxStandardPaths::SetInstallPrefix(const wxString
& prefix
) 
  50 wxString 
wxStandardPaths::GetUserConfigDir() const 
  52     return wxFileName::GetHomeDir(); 
  55 // ============================================================================ 
  56 // wxStandardPaths implementation for VMS 
  57 // ============================================================================ 
  61 wxString 
wxStandardPaths::GetInstallPrefix() const 
  63     if ( m_prefix
.empty() ) 
  65         wx_const_cast(wxStandardPaths 
*, this)->m_prefix 
= wxT("/sys$system"); 
  71 wxString 
wxStandardPaths::GetConfigDir() const 
  73    return _T("/sys$manager"); 
  76 wxString 
wxStandardPaths::GetDataDir() const 
  78    return AppendAppName(GetInstallPrefix() + _T("/sys$share")); 
  81 wxString 
wxStandardPaths::GetLocalDataDir() const 
  83    return AppendAppName(_T("/sys$manager")); 
  86 wxString 
wxStandardPaths::GetUserDataDir() const 
  88    return wxFileName::GetHomeDir(); 
  91 wxString 
wxStandardPaths::GetPluginsDir() const 
  93     return wxString(); // TODO: this is wrong, it should return something 
  97 wxStandardPaths::GetLocalizedResourcesDir(const wxChar 
*lang
, 
  98                                           ResourceCat category
) const 
 100     return wxStandardPathsBase::GetLocalizedResourcesDir(lang
, category
); 
 105 // ============================================================================ 
 106 // wxStandardPaths implementation for Unix 
 107 // ============================================================================ 
 109 wxString 
wxStandardPaths::GetInstallPrefix() const 
 111     if ( m_prefix
.empty() ) 
 113         wxStandardPaths 
*pathPtr 
= wx_const_cast(wxStandardPaths 
*, this); 
 116         // under Linux, we can try to infer the prefix from the location of the 
 119         int result 
= readlink("/proc/self/exe", buf
, WXSIZEOF(buf
) - sizeof(char)); 
 122             buf
[result
] = '\0'; // readlink() doesn't NUL-terminate the buffer 
 124             const wxString 
exeStr(buf
, wxConvLibc
); 
 126             // consider that we're in the last "bin" subdirectory of our prefix 
 127             size_t pos 
= exeStr
.rfind(wxT("/bin/")); 
 128             if ( pos 
!= wxString::npos 
) 
 129                 pathPtr
->m_prefix
.assign(exeStr
, 0, pos
); 
 133         if ( m_prefix
.empty() ) 
 135             pathPtr
->m_prefix 
= wxT("/usr/local"); 
 142 // ---------------------------------------------------------------------------- 
 144 // ---------------------------------------------------------------------------- 
 146 wxString 
wxStandardPaths::GetConfigDir() const 
 151 wxString 
wxStandardPaths::GetDataDir() const 
 153    return AppendAppName(GetInstallPrefix() + _T("/share")); 
 156 wxString 
wxStandardPaths::GetLocalDataDir() const 
 158    return AppendAppName(_T("/etc")); 
 161 wxString 
wxStandardPaths::GetUserDataDir() const 
 163    return AppendAppName(wxFileName::GetHomeDir() + _T("/.")); 
 166 wxString 
wxStandardPaths::GetPluginsDir() const 
 168     return AppendAppName(GetInstallPrefix() + _T("/lib")); 
 172 wxStandardPaths::GetLocalizedResourcesDir(const wxChar 
*lang
, 
 173                                           ResourceCat category
) const 
 175     if ( category 
!= ResourceCat_Messages 
) 
 176         return wxStandardPathsBase::GetLocalizedResourcesDir(lang
, category
); 
 178     return GetInstallPrefix() + _T("/share/locale/") + lang 
+ _T("/LC_MESSAGES"); 
 181 #endif // __VMS/!__VMS 
 183 #endif // wxUSE_STDPATHS