2007-09-13 11:55:46 +00:00
|
|
|
/********************/
|
2009-11-23 20:18:47 +00:00
|
|
|
/* System includes. */
|
2007-09-13 11:55:46 +00:00
|
|
|
/********************/
|
2012-03-19 16:29:24 +00:00
|
|
|
#ifndef FCTSYS_H_
|
|
|
|
#define FCTSYS_H_
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
// For compilers that support precompilation, includes "wx.h".
|
2012-01-23 04:33:36 +00:00
|
|
|
#include <wx/wxprec.h>
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
#ifdef __BORLANDC__
|
|
|
|
#pragma hdrstop
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// for all others, include the necessary headers (this file is usually all you
|
|
|
|
// need because it includes almost all "standard" wxWindows headers
|
|
|
|
#ifndef WX_PRECOMP
|
|
|
|
#include <wx/wx.h>
|
|
|
|
#endif
|
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
/*
|
|
|
|
* FIXME: This appears to already be included in the OSX build of wxWidgets.
|
|
|
|
* Will someone with OSX please remove this and see if it compiles.
|
|
|
|
*/
|
2007-06-05 12:10:51 +00:00
|
|
|
#ifdef __WXMAC__
|
|
|
|
#include <Carbon/Carbon.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef M_PI
|
|
|
|
#define M_PI 3.141592653
|
|
|
|
#endif
|
|
|
|
|
2007-09-13 11:55:46 +00:00
|
|
|
#define PCB_INTERNAL_UNIT 10000 // PCBNEW internal unit = 1/10000 inch
|
|
|
|
#define EESCHEMA_INTERNAL_UNIT 1000 // EESCHEMA internal unit = 1/1000 inch
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
#ifdef __WINDOWS__
|
2007-09-13 11:55:46 +00:00
|
|
|
#define DIR_SEP '\\'
|
|
|
|
#define STRING_DIR_SEP wxT( "\\" )
|
2007-06-05 12:10:51 +00:00
|
|
|
#else
|
2007-09-13 11:55:46 +00:00
|
|
|
#define DIR_SEP '/'
|
|
|
|
#define STRING_DIR_SEP wxT( "/" )
|
2007-06-05 12:10:51 +00:00
|
|
|
#endif
|
|
|
|
|
2007-12-05 17:56:57 +00:00
|
|
|
#ifdef DEBUG
|
|
|
|
#define D(x) x
|
|
|
|
#else
|
|
|
|
#define D(x) // nothing
|
|
|
|
#endif
|
|
|
|
|
2012-03-19 16:29:24 +00:00
|
|
|
/**
|
|
|
|
* Function Clamp
|
|
|
|
* limits @a value within the range @a lower <= @a value <= @a upper. It will work
|
|
|
|
* on temporary expressions, since they are evaluated only once, and it should work
|
2012-03-19 20:57:19 +00:00
|
|
|
* on most if not all numeric types, string types, or any type for which "operator < ()"
|
|
|
|
* is present. The arguments are accepted in this order so you can remember the
|
|
|
|
* expression as a memory aid:
|
2012-03-19 16:29:24 +00:00
|
|
|
* <p>
|
|
|
|
* result is: lower <= value <= upper
|
|
|
|
*/
|
|
|
|
template <typename T> inline const T& Clamp( const T& lower, const T& value, const T& upper )
|
|
|
|
{
|
|
|
|
wxASSERT( lower <= upper );
|
|
|
|
if( value < lower )
|
|
|
|
return lower;
|
2012-03-19 20:57:19 +00:00
|
|
|
else if( upper < value )
|
2012-03-19 16:29:24 +00:00
|
|
|
return upper;
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
|
2007-09-13 11:55:46 +00:00
|
|
|
#define UNIX_STRING_DIR_SEP wxT( "/" )
|
|
|
|
#define WIN_STRING_DIR_SEP wxT( "\\" )
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2007-10-21 16:46:13 +00:00
|
|
|
#define USE_RESIZE_BORDER
|
2007-10-02 15:35:31 +00:00
|
|
|
#if defined(__UNIX__) || defined(USE_RESIZE_BORDER)
|
2009-11-23 20:18:47 +00:00
|
|
|
#define MAYBE_RESIZE_BORDER wxRESIZE_BORDER // linux users like resizeable
|
|
|
|
// borders
|
2007-10-02 15:35:31 +00:00
|
|
|
#else
|
2009-11-23 20:18:47 +00:00
|
|
|
#define MAYBE_RESIZE_BORDER 0 // no resizeable border
|
2007-10-02 15:35:31 +00:00
|
|
|
#endif
|
|
|
|
|
2010-11-22 20:39:22 +00:00
|
|
|
// wxNullPtr is not defined prior to wxWidget 2.9.0.
|
|
|
|
#if !wxCHECK_VERSION( 2, 9, 0 )
|
|
|
|
#define wxNullPtr ((void *)NULL)
|
|
|
|
#endif
|
|
|
|
|
2012-01-23 04:33:36 +00:00
|
|
|
#include <config.h>
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2012-03-19 16:29:24 +00:00
|
|
|
#endif // FCTSYS_H__
|