/*************************************************************************** * ktouchkey.h * * ----------- * * Copyright (C) 2000 by Håvard Frøiland, 2004 by Andreas Nicolai * * ghorwin@users.sourceforge.net * * * * 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. * ***************************************************************************/ #ifndef KTOUCHKEY_H #define KTOUCHKEY_H #ifdef HAVE_CONFIG_H #include #endif #include #include /// This class contains information about one character on a key. class KTouchKeyChar { public: /// Position of the character on the key. enum position_t { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT }; /// Constructor. KTouchKeyChar() {} /// Constructor. KTouchKeyChar(TQChar ch, position_t p, bool bold = false) : m_ch(ch), m_pos(p), m_bold(bold) {} TQChar m_ch; ///< The character to draw. position_t m_pos; ///< The position of the character. bool m_bold; ///< Whether this is a bold character. TQString m_text; ///< The text to draw of m_ch == 0. }; /// This class represents a key on the keyboard. /// The primary character is the identification character for the key and will /// be printed top left of the key (like normal character keys). If a secondary /// character is given (as for the keys containing numbers), the primary key will /// be printed bottom left and the secondary key will be printed top left. /// If m_secondaryChar is 0, no secondary character is given. class KTouchKey { public: enum keytype_t { NORMAL, FINGER, ENTER, BACKSPACE, SHIFT, SPACE, OTHER }; /// Default constructor KTouchKey() : m_type(NORMAL), m_x(0), m_y(0), m_w(0), m_h(0) {} /// Convenience constructor for a key with a single character (like before). KTouchKey(keytype_t type, int x, int y, int w, int h, TQChar ch); /// Convenience constructor for a key with a text on it (type will be OTHER). KTouchKey(int x, int y, int w, int h, TQString text); /// Resizes the key (this function will be obsolete soon) void resize(double scale); /// Reads the key data from the DomElement bool read(TQDomNode node); /// Creates a new DomElement, writes the key data into it and appends it to the root object. void write(TQDomDocument& doc, TQDomElement& root) const; unsigned int m_number; ///< The number of the key. keytype_t m_type; ///< The type of the key. KTouchKeyChar m_chars[4]; ///< The key character information. int m_x; ///< The x-coordinate of the top-left corner of the key. int m_y; ///< The y-coordinate of the top-left corner of the key. int m_w; ///< The width. int m_h; ///< The height. int m_xS; ///< The scaled x-coordinate of the top-left corner of the key. int m_yS; ///< The scaled y-coordinate of the top-left corner of the key. int m_wS; ///< The scaled width. int m_hS; ///< The scaled height. }; // --------------------------------------------------------------------------------------- #endif // KTOUCHKEYS_H