1 /*************************************************************************** 2 * Copyright (C) 2005-2019 by the FIFE team * 3 * http://www.fifengine.net * 4 * This file is part of FIFE. * 5 * * 6 * FIFE is free software; you can redistribute it and/or * 7 * modify it under the terms of the GNU Lesser General Public * 8 * License as published by the Free Software Foundation; either * 9 * version 2.1 of the License, or (at your option) any later version. * 10 * * 11 * This library is distributed in the hope that it will be useful, * 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 14 * Lesser General Public License for more details. * 15 * * 16 * You should have received a copy of the GNU Lesser General Public * 17 * License along with this library; if not, write to the * 18 * Free Software Foundation, Inc., * 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * 20 ***************************************************************************/ 21 22 #ifndef FIFE_EVENTCHANNEL_TEXT_H 23 #define FIFE_EVENTCHANNEL_TEXT_H 24 25 // Standard C++ library includes 26 // 27 28 // 3rd party library includes 29 // 30 31 // FIFE includes 32 // These includes are split up in two parts, separated by one empty line 33 // First block: files included from the FIFE root src directory 34 // Second block: files included from the same folder 35 // 36 namespace FIFE { 37 38 /** Represents a text. 39 */ 40 class Text { 41 public: 42 43 /** Constructor 44 * @param text pointer to the UTF-8 text 45 * @param start point of the text edit event 46 * @param length length of the text edit event 47 */ 48 Text(const char* text = 0, int32_t start = 0, int32_t length = 0): 49 m_text(text ? text : ""), 50 m_start(start), 51 m_length(length) {} 52 53 /** Destructor 54 */ ~Text()55 virtual ~Text() {} 56 57 /** Tells whether the Text can be represented as a string. 58 */ isPrintable()59 bool isPrintable() const { 60 if (!m_text.empty()) { 61 return true; 62 } 63 return false; 64 } 65 66 /** Gets the string, encoded as UTF-8. 67 */ getAsString()68 std::string getAsString() const { 69 return m_text; 70 } 71 72 /** Gets the start point of the text edit event, cursor position. 73 */ getStart()74 int32_t getStart() const { 75 return m_start; 76 } 77 78 /** Gets the length of the text edit event, 79 * the number of characters to edit from the start point. 80 */ getLength()81 int32_t getLength() const { 82 return m_length; 83 } 84 85 private: 86 std::string m_text; 87 int32_t m_start; 88 int32_t m_length; 89 }; 90 91 } //FIFE 92 93 #endif 94