comparison engine/core/gui/widgets/utf8textfield.h @ 228:756b895e1dab

Merged unicode-support back into trunk. Now all GUI/visible strings should be unicode. Internal strings unchanged. Remember to use a font that actually has the desired codepoints. Current default unicode policiy is 'ignore'.
author phoku@33b003aa-7bff-0310-803a-e67f0ece8222
date Sat, 21 Mar 2009 10:38:11 +0000
parents
children
comparison
equal deleted inserted replaced
227:d642169490f7 228:756b895e1dab
1 /***************************************************************************
2 * Copyright (C) 2009 by the FIFE team *
3 * http://www.fifengine.de *
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 GCN_UTF8TEXTFIELD_HPP
23 #define GCN_UTF8TEXTFIELD_HPP
24
25 // Standard C++ library includes
26
27 // 3rd party library includes
28 #include <guichan/widgets/textfield.hpp>
29
30 // FIFE includes
31 // These includes are split up in two parts, separated by one empty line
32 // First block: files included from the FIFE root src directory
33 // Second block: files included from the same folder
34 #include "util/utf8/utf8stringeditor.h"
35
36 namespace gcn {
37
38 /**
39 * UTF-8 aware version of the TextField class.
40 *
41 * Using UTF8StringEditor, it is able to correctly edit UTF-8 text line.
42 *
43 * You will also need an UTF-8 aware font to be able to correctly
44 * display such text (so gcn::ImageFont can not be used).
45 *
46 * @author Przemyslaw Grzywacz
47 */
48 class UTF8TextField: public TextField
49 {
50 public:
51 /**
52 * UTF8TextField constructor.
53 * @param text Initial text.
54 */
55 UTF8TextField(const std::string& text = "");
56
57 /**
58 * Destructor.
59 */
60 virtual ~UTF8TextField();
61
62 /**
63 * Key pressed handler.
64 *
65 * Overides gcn::TextField to handle UTF-8 character codes.
66 *
67 * @param keyEvent Keyboard event.
68 */
69 virtual void keyPressed(KeyEvent& keyEvent);
70
71 protected:
72 /**
73 * UTF-8 string editor suppor.
74 *
75 * It allows the UTF8TextField to easly traverse UTF-8 strings
76 * as well as inserting and deleting characters.
77 */
78 UTF8StringEditor* mStringEditor;
79 };
80
81
82 }
83
84 #endif // !GCN_UTF8TEXTFIELD_HPP