#ifndef SETTINGS_H
#define SETTINGS_H
#if wxUSE_UNICODE
#define _UU(x,y) wxString((x),(y))
#define _CC(x,y) (x).mb_str((y))
#else
#define _UU(x,y) (x)
#define _CC(x,y) (x)
#endif
#define _U(x) _UU((x),wxConvUTF8)
#define _C(x) _CC((x),wxConvUTF8)
#if defined(_MSC_VER)
/*
Needed for VC6. Windows headers are included somewhere after wxWidgets, and that
causes the stupid CreateWindow/CreateDialog/FindWindow/...etc macros (that resolve
to ANSI and UNICODE versions) to invalidate all calls to such methods in our
code
*/
#include <wx/msw/winundef.h>
/*
Disable the warning:
"<Unknown>' has C-linkage specified, but returns UDT 'wxString' which is
incompatible with C"
This is Ok, because we're always using the returned UDT from within C++
*/
#pragma warning(disable:4190)
// Fix 'for loop scoping' for visual C++ 6
/// @todo Fix this version number...My SP5 VC++6 is version 1200, but what about
/// other SPs? (1-4,6)
#if _MSC_VER <= 1200
#define for if(0); else for
#endif
#endif
/*
Exclude VC++, because it has silly constraints on importing/exporting classes
from DLLs. Instead, we build "sdk" as a static library
*/
#if defined(__WXMSW__) && !defined(_MSC_VER)
#ifndef DLLIMPORT
#if EXPORT_LIB
#define DLLIMPORT __declspec (dllexport)
#else
#define DLLIMPORT __declspec (dllimport)
#endif // EXPORT_LIB
#endif // DLLIMPORT
#ifndef EVTIMPORT
#if EXPORT_EVENTS
#define EVTIMPORT __declspec (dllexport)
#else
#define EVTIMPORT __declspec (dllimport)
#endif // EXPORT_EVENTS
#endif // EVTIMPORT
#else
#define DLLIMPORT
#define EVTIMPORT
#endif
#include <wx/string.h>
#include <wx/dynarray.h>
#if wxCHECK_VERSION(2, 5, 0)
#include <wx/arrstr.h>
#endif
#define DECLARE_CB_EVENT_TYPE(type) \
extern EVTIMPORT const wxEventType type;
#define DEFINE_CB_EVENT_TYPE(type) \
const wxEventType type = wxNewEventType();
#define DEFAULT_WORKSPACE _T("default.workspace")
#define WORKSPACES_FILES_FILTER _("Code::Blocks workspace files (*.workspace)|*.workspace")
#define CODEBLOCKS_FILES_FILTER _("Code::Blocks project files (*.cbp)|*.cbp")
#define DEVCPP_FILES_FILTER _("Bloodshed Dev-C++ project files (*.dev)|*.dev")
#define MSVC_FILES_FILTER _("MS Visual C++ project files (*.dsp)|*.dsp")
#define MSVS_FILES_FILTER _("MS Visual Studio project files (*.vcproj)|*.vcproj")
#define MSVC_WORKSPACE_FILES_FILTER _("MS Visual C++ workspace files (*.dsw)|*.dsw")
#define MSVS_WORKSPACE_FILES_FILTER _("MS Visual Studio solution files (*.sln)|*.sln")
#define C_FILES_FILTER _("C/C++ files (*.c;*.cpp;*.cc;*.cxx;*.h;*.hpp;*.hh;*.hxx)|*.c;*.cpp;*.cc;*.cxx;*.h;*.hpp;*.hh;*.hxx")
#define SOURCE_FILES_FILTER _("C/C++ source files (*.c;*.cpp;*.cc;*.cxx)|*.c;*.cpp;*.cc;*.cxx")
#define HEADER_FILES_FILTER _("C/C++ header files (*.h;*.hpp;*.hh;*.hxx)|*.h;*.hpp;*.hh;*.hxx")
#define RESOURCE_FILES_FILTER _("Resource files (*.xrc;*.rc)|*.xrc;*.rc")
#define ALL_KNOWN_FILES_FILTER _("All known files|*.workspace;*.cbp;*.c;*.cpp;*.cc;*.cxx;*.h;*.hpp;*.hh;*.hxx;*.xrc;*.rc")
#define ALL_FILES_FILTER _("All files (*.*)|*.*")
#define SOURCE_FILES_DIALOG_FILTER wxString(WORKSPACES_FILES_FILTER) + _T("|") + \
CODEBLOCKS_FILES_FILTER + _T("|") + \
C_FILES_FILTER + _T("|") + \
SOURCE_FILES_FILTER + _T("|") + \
HEADER_FILES_FILTER + _T("|") + \
RESOURCE_FILES_FILTER + _T("|") + \
ALL_KNOWN_FILES_FILTER + _T("|") + \
ALL_FILES_FILTER
#define SOURCE_FILES_FILTER_INDEX 6
#define KNOWN_SOURCES_DIALOG_FILTER wxString(C_FILES_FILTER) + _T("|") + \
SOURCE_FILES_FILTER + _T("|") + \
HEADER_FILES_FILTER + _T("|") + \
RESOURCE_FILES_FILTER + _T("|") + \
ALL_FILES_FILTER
#define KNOWN_SOURCES_FILTER_INDEX 4
#define WORKSPACE_EXT _T("workspace")
#define CODEBLOCKS_EXT _T("cbp")
#define DEVCPP_EXT _T("dev")
#define MSVC_EXT _T("dsp")
#define MSVS_EXT _T("vcproj")
#define MSVC_WORKSPACE_EXT _T("dsw")
#define MSVS_WORKSPACE_EXT _T("sln")
#define CPP_EXT _T("cpp")
#define C_EXT _T("c")
#define CC_EXT _T("cc")
#define CXX_EXT _T("cxx")
#define HPP_EXT _T("hpp")
#define H_EXT _T("h")
#define HH_EXT _T("hh")
#define HXX_EXT _T("hxx")
#define OBJECT_EXT _T("o")
#define XRCRESOURCE_EXT _T("xrc")
#define STATICLIB_EXT _T("a")
#ifdef __WXMSW__
#define DYNAMICLIB_EXT _T("dll")
#define EXECUTABLE_EXT _T("exe")
#define RESOURCE_EXT _T("rc")
#define RESOURCEBIN_EXT _T("res")
#else
#define DYNAMICLIB_EXT _T("so")
#define EXECUTABLE_EXT _T("")
#define RESOURCE_EXT _T("")
#define RESOURCEBIN_EXT _T("")
#endif
// Convenience Macros for the SDK
#define EDMAN() Manager::Get()->GetEditorManager()
#define PRJMAN() Manager::Get()->GetProjectManager()
#define MSGMAN() Manager::Get()->GetMessageManager()
#define TLSMAN() Manager::Get()->GetToolsManager()
#define MACMAN() Manager::Get()->GetMacrosManager()
#define PRSMAN() Manager::Get()->GetPersonalityManager()
#define CFGMAN() ConfigManager::Get()
#define CFG_READ(...) ConfigManager::Get()->Read(__VA_ARGS__)
#define CFG_WRITE(...) ConfigManager::Get()->Write(__VA_ARGS__)
#endif // SETTINGS_H
syntax highlighted by Code2HTML, v. 0.9.1