Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/gui/gl/glgui_textfield.cc @ 9869

Last change on this file since 9869 was 9869, checked in by bensch, 18 years ago

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File size: 3.6 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
17
18#include "glgui_textfield.h"
19
20#include "text.h"
21
22namespace OrxGui
23{
24  ObjectListDefinition(GLGuiTextfield);
25  /**
26   * standard constructor
27  */
28  GLGuiTextfield::GLGuiTextfield ()
29  {
30    this->init();
31
32  }
33
34
35  /**
36   * standard deconstructor
37  */
38  GLGuiTextfield::~GLGuiTextfield()
39  {}
40
41  /**
42   * initializes the GUI-element
43   */
44  void GLGuiTextfield::init()
45  {
46    this->registerObject(this, GLGuiTextfield::_objectList);
47
48    this->_text.setParent2D(this);
49    this->_text.setRelCoor2D(4,4);
50    this->_text.setFont("fonts/final_frontier.ttf", 20);
51    this->_text.setLineWidth(400);
52    this->_text.setColor(foregroundColor());
53    this->_text.setVisibility(false);
54    this->_changedTextColor = Color::white;
55    this->resize();
56  }
57
58  /**
59  * @brief sets the Text of the Text
60  * @param text The new Text.
61   */
62  void GLGuiTextfield::setText(const std::string& text)
63  {
64    this->_text.setText(text);
65    this->changedText();
66  }
67
68  /**
69   * @brief appends text to the Text
70   * @param appendText the Text to append
71   */
72  void GLGuiTextfield::append(const std::string& appendText)
73  {
74    this->_text.append(appendText);
75    this->changedText();
76  }
77
78
79  /**
80   * @brief appends a Character to the Text
81   * @param character the Character to append.
82   */
83  void GLGuiTextfield::appendCharacter(char character)
84  {
85    this->_text.appendCharacter(character);
86    this->changedText();
87  }
88
89
90  /**
91   * @brief Removes Characters from the Text
92   * @param chars The count of characters to remove
93   */
94  void GLGuiTextfield::removeCharacters(unsigned int chars)
95  {
96    this->_text.removeCharacters(chars);
97    this->changedText();
98  }
99
100  void GLGuiTextfield::clear()
101  {
102    this->_text.clear();
103    this->changedText();
104  }
105
106  /**
107  * @brief If the Text has been changed this function is called.
108  *
109  * This Function also emits the Signal textChanged.
110   */
111  void GLGuiTextfield::changedText()
112  {
113    this->resize();
114    this->setFrontColor(_changedTextColor, true);
115    this->textChanged.emit(this->_text.text());
116  }
117
118  void GLGuiTextfield::setChangedTextColor(const Color& color)
119  {
120    this->_changedTextColor = color;
121  }
122
123  /**
124   * @brief Resizes the Widget to the new Size-constraints.
125   */
126  void GLGuiTextfield::resize()
127  {
128    this->_text.setRelCoor2D(borderLeft(), borderTop());
129    this->setSize2D( this->_text.getSize2D() + Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));
130    //this->_text.setLineWidth(this->size2D);
131    GLGuiWidget::resize();
132    /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
133    this->frontRect().setSize(this->getSize2D() - Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));*/
134  }
135
136  void GLGuiTextfield::updateFrontColor()
137  {
138    this->_text.setColor(foregroundColor());
139  }
140
141  void GLGuiTextfield::hiding()
142  {
143    this->_text.setVisibility(false);
144  }
145
146  void GLGuiTextfield::showing()
147  {
148    this->_text.setVisibility(true);
149  }
150
151
152
153  /**
154   * draws the GLGuiTextfield
155   */
156  void GLGuiTextfield::draw() const
157  {
158    this->beginDraw();
159    GLGuiWidget::draw();
160
161    //     this->frontMaterial().select();
162    //     GLGuiWidget::drawRect(this->frontRect());
163
164    this->endDraw();
165  }
166}
Note: See TracBrowser for help on using the repository browser.