joachim99@8: /*************************************************************************** joachim99@8: common.h - Things that are needed often joachim99@8: ------------------- joachim99@8: begin : Mon Mar 18 2002 joachim99@77: copyright : (C) 2002-2007 by Joachim Eibl joachim99@69: email : joachim.eibl at gmx.de joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: /*************************************************************************** joachim99@8: * * joachim99@8: * This program is free software; you can redistribute it and/or modify * joachim99@8: * it under the terms of the GNU General Public License as published by * joachim99@8: * the Free Software Foundation; either version 2 of the License, or * joachim99@8: * (at your option) any later version. * joachim99@8: * * joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: #ifndef _COMMON_H joachim99@8: #define _COMMON_H joachim99@8: joachim99@66: #include joachim99@66: joachim99@80: joachim99@8: template< class T > joachim99@8: T min2( T x, T y ) joachim99@8: { joachim99@8: return x joachim99@8: T max2( T x, T y ) joachim99@8: { joachim99@8: return x>y ? x : y; joachim99@8: } joachim99@8: joachim99@8: typedef unsigned char UINT8; joachim99@8: typedef unsigned short UINT16; joachim99@8: typedef unsigned int UINT32; joachim99@8: joachim99@8: joachim99@8: template joachim99@8: T min3( T d1, T d2, T d3 ) joachim99@8: { joachim99@8: if ( d1 < d2 && d1 < d3 ) return d1; joachim99@8: if ( d2 < d3 ) return d2; joachim99@8: return d3; joachim99@8: } joachim99@8: joachim99@8: template joachim99@8: T max3( T d1, T d2, T d3 ) joachim99@8: { joachim99@8: joachim99@8: if ( d1 > d2 && d1 > d3 ) return d1; joachim99@8: joachim99@8: joachim99@8: if ( d2 > d3 ) return d2; joachim99@8: return d3; joachim99@8: joachim99@8: } joachim99@8: joachim99@8: template joachim99@8: T minMaxLimiter( T d, T minimum, T maximum ) joachim99@8: { joachim99@8: assert(minimum<=maximum); joachim99@8: if ( d < minimum ) return minimum; joachim99@8: if ( d > maximum ) return maximum; joachim99@8: return d; joachim99@8: } joachim99@8: joachim99@69: #include joachim99@69: #include joachim99@69: class QFont; joachim99@69: class QColor; joachim99@69: class QSize; joachim99@69: class QPoint; joachim99@69: class QStringList; joachim99@69: class QTextStream; joachim99@69: joachim99@69: class ValueMap joachim99@69: { joachim99@69: private: joachim99@69: std::map m_map; joachim99@69: public: joachim99@69: ValueMap(); joachim99@69: virtual ~ValueMap(); joachim99@69: joachim99@69: void save( QTextStream& ts ); joachim99@69: void load( QTextStream& ts ); joachim99@69: QString getAsString(); joachim99@69: // void load( const QString& s ); joachim99@69: joachim99@69: virtual void writeEntry(const QString&, const QFont& ); joachim99@69: virtual void writeEntry(const QString&, const QColor& ); joachim99@69: virtual void writeEntry(const QString&, const QSize& ); joachim99@69: virtual void writeEntry(const QString&, const QPoint& ); joachim99@69: virtual void writeEntry(const QString&, int ); joachim99@69: virtual void writeEntry(const QString&, bool ); joachim99@80: virtual void writeEntry(const QString&, const QStringList&, char separator='|' ); joachim99@69: virtual void writeEntry(const QString&, const QString& ); joachim99@69: virtual void writeEntry(const QString&, const char* ); joachim99@69: joachim99@80: virtual QFont readFontEntry (const QString&, const QFont* defaultVal ); joachim99@80: virtual QColor readColorEntry(const QString&, const QColor* defaultVal ); joachim99@80: virtual QSize readSizeEntry (const QString&, const QSize* defaultVal ); joachim99@80: virtual QPoint readPointEntry(const QString&, const QPoint* defaultVal ); joachim99@69: virtual bool readBoolEntry (const QString&, bool bDefault ); joachim99@69: virtual int readNumEntry (const QString&, int iDefault ); joachim99@80: virtual QStringList readListEntry (const QString&, const QStringList& defaultVal, char separator='|' ); joachim99@80: virtual QString readStringEntry(const QString&, const QString& ); joachim99@80: joachim99@80: QString readEntry (const QString& s, const QString& defaultVal ); joachim99@80: QString readEntry (const QString& s, const char* defaultVal ); joachim99@80: QFont readEntry (const QString& s, const QFont& defaultVal ); joachim99@80: QColor readEntry(const QString& s, const QColor defaultVal ); joachim99@80: QSize readEntry (const QString& s, const QSize defaultVal ); joachim99@80: QPoint readEntry(const QString& s, const QPoint defaultVal ); joachim99@80: bool readEntry (const QString& s, bool bDefault ); joachim99@80: int readEntry (const QString& s, int iDefault ); joachim99@80: QStringList readEntry (const QString& s, const QStringList& defaultVal, char separator='|' ); joachim99@69: }; joachim99@69: joachim99@69: QStringList safeStringSplit(const QString& s, char sepChar=',', char metaChar='\\' ); joachim99@69: QString safeStringJoin(const QStringList& sl, char sepChar=',', char metaChar='\\' ); joachim99@69: joachim99@8: #endif