look in the environment for the options values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
7b4eedf698
commit
bf85ddfc8a
@ -29,6 +29,7 @@
|
||||
#include "wx/sysopt.h"
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/app.h"
|
||||
#include "wx/list.h"
|
||||
#include "wx/string.h"
|
||||
#include "wx/arrstr.h"
|
||||
@ -68,11 +69,33 @@ void wxSystemOptions::SetOption(const wxString& name, int value)
|
||||
|
||||
wxString wxSystemOptions::GetOption(const wxString& name)
|
||||
{
|
||||
wxString val;
|
||||
|
||||
int idx = gs_optionNames.Index(name, false);
|
||||
if (idx == wxNOT_FOUND)
|
||||
return wxEmptyString;
|
||||
else
|
||||
return gs_optionValues[idx];
|
||||
if ( idx != wxNOT_FOUND )
|
||||
{
|
||||
val = gs_optionValues[idx];
|
||||
}
|
||||
else // not set explicitely
|
||||
{
|
||||
// look in the environment: first for a variable named "wx_appname_name"
|
||||
// which can be set to affect the behaviour or just this application
|
||||
// and then for "wx_name" which can be set to change the option globally
|
||||
wxString var(name);
|
||||
var.Replace(_T("."), _T("_")); // '.'s not allowed in env var names
|
||||
|
||||
wxString appname;
|
||||
if ( wxTheApp )
|
||||
appname = wxTheApp->GetAppName();
|
||||
|
||||
if ( !appname.empty() )
|
||||
val = wxGetenv(_T("wx_") + appname + _T('_') + var);
|
||||
|
||||
if ( val.empty() )
|
||||
val = wxGetenv(_T("wx_") + var);
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
int wxSystemOptions::GetOptionInt(const wxString& name)
|
||||
@ -82,7 +105,7 @@ int wxSystemOptions::GetOptionInt(const wxString& name)
|
||||
|
||||
bool wxSystemOptions::HasOption(const wxString& name)
|
||||
{
|
||||
return gs_optionNames.Index(name, false) != wxNOT_FOUND;
|
||||
return !GetOption(name).empty();
|
||||
}
|
||||
|
||||
#endif // wxUSE_SYSTEM_OPTIONS
|
||||
|
Loading…
Reference in New Issue
Block a user