ultimatepp/uppsrc/GridCtrl/GridUtils.h
cxl 5cef37c34d .cosmetics
git-svn-id: svn://ultimatepp.org/upp/trunk@11088 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2017-05-15 14:10:28 +00:00

58 lines
1.1 KiB
C

#ifndef _GridCtrl_GridUtils_h_
#define _GridCtrl_GridUtils_h_
#define BIT(x) (1 << x)
inline bool IsSet(int s, int b)
{
return s & b;
}
inline void BitSet(dword &k, dword v, bool s)
{
if(s) k |= v; else k &= ~v;
}
inline bool BitInverse(dword &k, dword v)
{
bool s = k & v;
BitSet(k, v, !s);
return s;
}
inline int Distance(const Point &p0, const Point &p1)
{
return max(abs(p0.x - p1.x), abs(p0.y - p1.y));
}
inline int32 Round(double a)
{
#if defined(COMPILER_MSC) && defined(CPU_32)
int32 retval;
__asm fld a
__asm fistp retval
return retval;
#else
return (int32) a;
#endif
}
#ifdef flagDEBUG
#define LG LogGui
#else
inline void LG_Dummy_Nop__(int level, const char *fmt, ...) {} // needed to silence CLANG warnings
inline void LG_Dummy_Nop__(const char *fmt, ...) {} // about unused value
#define LG LG_Dummy_Nop__
#endif
#define LGR LogGui
extern LineEdit *dlog;
extern int dlev;
void LogGui(const char *fmt, ...);
void LogGui(int level, const char *fmt, ...);
void LogCon(const char *fmt, ...);
void LogCon(int level, const char *fmt, ...);
#endif