mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
Добавлена поддержка json формата для Linux. sysSetting поддерживает чтение/запись в файл расширенных настроек pgadmin3opt.json.
205 lines
6.3 KiB
C
205 lines
6.3 KiB
C
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: json_defs.h
|
|
// Purpose: shared build defines
|
|
// Author: Luciano Cattani
|
|
// Created: 2007/10/20
|
|
// RCS-ID: $Id: json_defs.h,v 1.6 2008/03/12 10:48:19 luccat Exp $
|
|
// Copyright: (c) 2007 Luciano Cattani
|
|
// Licence: wxWidgets licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#ifndef _WX_JSON_DEFS_H_
|
|
#define _WX_JSON_DEFS_H_
|
|
|
|
// Defines for component version.
|
|
// The following symbols should be updated for each new component release
|
|
// since some kind of tests, like those of AM_WXCODE_CHECKFOR_COMPONENT_VERSION()
|
|
// for "configure" scripts under unix, use them.
|
|
#define wxJSON_MAJOR 1
|
|
#define wxJSON_MINOR 2
|
|
#define wxJSON_RELEASE 1
|
|
|
|
// For non-Unix systems (i.e. when building without a configure script),
|
|
// users of this component can use the following macro to check if the
|
|
// current version is at least major.minor.release
|
|
#define wxCHECK_JSON_VERSION(major,minor,release) \
|
|
(wxJSON_MAJOR > (major) || \
|
|
(wxJSON_MAJOR == (major) && wxJSON_MINOR > (minor)) || \
|
|
(wxJSON_MAJOR == (major) && wxJSON_MINOR == (minor) && wxJSON_RELEASE >= (release)))
|
|
|
|
|
|
// Defines for shared builds.
|
|
// Simple reference for using these macros and for writin components
|
|
// which support shared builds:
|
|
//
|
|
// 1) use the WXDLLIMPEXP_MYCOMP in each class declaration:
|
|
// class WXDLLIMPEXP_MYCOMP myCompClass { [...] };
|
|
//
|
|
// 2) use the WXDLLIMPEXP_MYCOMP in the declaration of each global function:
|
|
// WXDLLIMPEXP_MYCOMP int myGlobalFunc();
|
|
//
|
|
// 3) use the WXDLLIMPEXP_DATA_MYCOMP() in the declaration of each global
|
|
// variable:
|
|
// WXDLLIMPEXP_DATA_MYCOMP(int) myGlobalIntVar;
|
|
//
|
|
#ifdef WXMAKINGDLL_JSON
|
|
#define WXDLLIMPEXP_JSON WXEXPORT
|
|
#define WXDLLIMPEXP_DATA_JSON(type) WXEXPORT type
|
|
#elif defined(WXUSINGDLL11)
|
|
#define WXDLLIMPEXP_JSON WXIMPORT
|
|
#define WXDLLIMPEXP_DATA_JSON(type) WXIMPORT type
|
|
#else // not making nor using DLL
|
|
#define WXDLLIMPEXP_JSON
|
|
#define WXDLLIMPEXP_DATA_JSON(type) type
|
|
#endif
|
|
|
|
// the __PRETTY_FUNCTION__ macro expands to the full class's
|
|
// member name in the GNU GCC.
|
|
// For other compilers we use the standard __wxFUNCTION__ macro
|
|
#if !defined( __GNUC__ )
|
|
#define __PRETTY_FUNCTION__ __WXFUNCTION__
|
|
#endif
|
|
|
|
|
|
|
|
// define wxJSON_USE_UNICODE if wxWidgets was built with
|
|
// unicode support
|
|
#if defined( wxJSON_USE_UNICODE )
|
|
#undef wxJSON_USE_UNICODE
|
|
#endif
|
|
// do not modify the following lines
|
|
#if wxUSE_UNICODE == 1
|
|
#define wxJSON_USE_UNICODE
|
|
#endif
|
|
|
|
// the following macro, if defined, cause the wxJSONValue to store
|
|
// pointers to C-strings as pointers to statically allocated
|
|
// C-strings. By default this macro is not defined
|
|
// #define wxJSON_USE_CSTRING
|
|
|
|
|
|
// the following macro, if defined, cause the wxJSONvalue and its
|
|
// referenced data structure to store and increment a static
|
|
// progressive counter in the ctor.
|
|
// this is only usefull for debugging purposes
|
|
// #define WXJSON_USE_VALUE_COUNTER
|
|
|
|
|
|
// the following macro is used by wxJSON internally and you should not
|
|
// modify it. If the platform seems to support 64-bits integers,
|
|
// the following lines define the 'wxJSON_64BIT_INT' macro
|
|
#if defined( wxLongLong_t )
|
|
#define wxJSON_64BIT_INT
|
|
#endif
|
|
|
|
|
|
//
|
|
// the following macro, if defined, cause the wxJSON library to
|
|
// always use 32-bits integers also when the platform seems to
|
|
// have native 64-bits support: by default the macro if not defined
|
|
//
|
|
// #define wxJSON_NO_64BIT_INT
|
|
//
|
|
#if defined( wxJSON_NO_64BIT_INT ) && defined( wxJSON_64BIT_INT )
|
|
#undef wxJSON_64BIT_INT
|
|
#endif
|
|
|
|
//
|
|
// it seems that some compilers do not define 'long long int' limits
|
|
// constants. For example, this is the output of the Borland BCC 5.5
|
|
// compiler when I tried to compile wxJSON with 64-bits integer support:
|
|
// Error E2451 ..\src\jsonreader.cpp 1737: Undefined symbol 'LLONG_MAX'
|
|
// in function wxJSONReader::Strtoll(const wxString &,__int64 *)
|
|
// *** 1 errors in Compile ***
|
|
// so, if the constants are not defined, I define them by myself
|
|
#if !defined( LLONG_MAX )
|
|
#define LLONG_MAX 9223372036854775807
|
|
#endif
|
|
|
|
#if !defined( ULLONG_MAX )
|
|
#define ULLONG_MAX 18446744073709551615
|
|
#endif
|
|
|
|
#if !defined( LLONG_MIN )
|
|
#define LLONG_MIN -9223372036854775808
|
|
#endif
|
|
|
|
|
|
|
|
// the same applies for all other integer constants
|
|
#if !defined( INT_MIN )
|
|
#define INT_MIN -32768
|
|
#endif
|
|
#if !defined( INT_MAX )
|
|
#define INT_MAX 32767
|
|
#endif
|
|
#if !defined( UINT_MAX )
|
|
#define UINT_MAX 65535
|
|
#endif
|
|
#if !defined( LONG_MIN )
|
|
#define LONG_MIN -2147483648
|
|
#endif
|
|
#if !defined( LONG_MAX )
|
|
#define LONG_MAX 2147483647
|
|
#endif
|
|
#if !defined( ULONG_MAX )
|
|
#define ULONG_MAX 4294967295
|
|
#endif
|
|
#if !defined( SHORT_MAX )
|
|
#define SHORT_MAX 32767
|
|
#endif
|
|
#if !defined( SHORT_MIN )
|
|
#define SHORT_MIN -32768
|
|
#endif
|
|
#if !defined( USHORT_MAX )
|
|
#define USHORT_MAX 65535
|
|
#endif
|
|
|
|
|
|
|
|
//
|
|
// define the wxJSON_ASSERT() macro to expand to wxASSERT()
|
|
// unless the wxJSON_NOABORT_ASSERT is defined
|
|
// #define wxJSON_NOABORT_ASSERT
|
|
#if defined( wxJSON_NOABORT_ASSERT )
|
|
#define wxJSON_ASSERT( cond )
|
|
#else
|
|
#define wxJSON_ASSERT( cond ) wxASSERT( cond );
|
|
#endif
|
|
|
|
|
|
//
|
|
// the following macros are used by the wxJSONWriter::WriteStringValues()
|
|
// when the wxJSONWRITER_SPLIT_STRING flag is set
|
|
#define wxJSONWRITER_LAST_COL 50
|
|
#define wxJSONWRITER_SPLIT_COL 75
|
|
#define wxJSONWRITER_MIN_LENGTH 15
|
|
#define wxJSONWRITER_TAB_LENGTH 4
|
|
|
|
|
|
//
|
|
// some compilers (i.e. MSVC++) defines their own 'snprintf' function
|
|
// so if it is not defined, define it in the following lines
|
|
// please note that we cannot use the wxWidget's counterpart 'wxSnprintf'
|
|
// because the latter uses 'wxChar' but wxJSON only use 'char'
|
|
#if !defined(snprintf) && defined(_MSC_VER)
|
|
#define snprintf _snprintf
|
|
#endif
|
|
|
|
|
|
//
|
|
// check if wxWidgets is compiled using --enable-stl in which case
|
|
// we have to use different aproaches when declaring the array and
|
|
// key/value containers (see the docs: wxJSON internals: array and hash_map
|
|
#undef wxJSON_USE_STL
|
|
#if defined( wxUSE_STL ) && wxUSE_STL == 1
|
|
#define wxJSON_USE_STL
|
|
#endif
|
|
|
|
//
|
|
// defines the MIN and MAX macro for numeric arguments
|
|
// note that the safest way to define such functions is using templates
|
|
#define MIN(a,b) a < b ? a : b
|
|
#define MAX(a,b) a > b ? a : b
|
|
|
|
|
|
#endif // _WX_JSON_DEFS_H_
|