/* copyright : (C) 2004 by Baryshev Dmitry KSquirrel - image viewer for KDE */ /* Gwenview - A simple image viewer for KDE Copyright (c) 2000-2003 Aur?lien G?teau This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef SQ_THUMBNAILSIZE_H #define SQ_THUMBNAILSIZE_H #include #include #include /** * This is an "enum-like" class : an enum with cast operators to convert * from/to string and a few other methods */ class SQ_ThumbnailSize : public TQObject { public: enum Size { Medium, Large, Huge }; SQ_ThumbnailSize(TQObject *parent, Size value); SQ_ThumbnailSize(TQObject *parent, const TQString& str); void setExtended(bool); bool extended() const; void setMargin(int); int margin() const; void setPixelSize(const TQString &size); TQString pixelSizeString() const; int pixelSize() const; TQSize extendedSize() const; int value() const; TQString stringValue() const; static int biggest() { return 128; } static int smallest() { return 48; } static SQ_ThumbnailSize* instance() { return m_instance; } private: Size mValue; bool m_extended; int m_margin; static SQ_ThumbnailSize *m_instance; }; inline int SQ_ThumbnailSize::value() const { return (int)mValue; } inline void SQ_ThumbnailSize::setExtended(bool ex) { m_extended = ex; } inline bool SQ_ThumbnailSize::extended() const { return m_extended; } inline void SQ_ThumbnailSize::setMargin(int m) { m_margin = m; } inline int SQ_ThumbnailSize::margin() const { return m_margin; } inline int SQ_ThumbnailSize::pixelSize() const { switch (mValue) { case Medium: return 64; case Large: return 96; default: return 128; } } inline TQSize SQ_ThumbnailSize::extendedSize() const { switch (mValue) { case Medium: return TQSize(76, 108); case Large: return TQSize(108, 139); default: return TQSize(140, 170); } } inline TQString SQ_ThumbnailSize::pixelSizeString() const { switch (mValue) { case Medium: return "medium"; case Large: return "large"; default: return "huge"; } } #endif