26 #include <boost/bind.hpp>
71 fcn::Key key = keyEvent.getKey();
72 int32_t keyType = key.getValue();
74 if (keyType == Key::Left && getCaretPosition() > 0)
76 TextField::keyPressed(keyEvent);
78 else if (keyType == Key::Right && getCaretPosition() < getText().size())
80 TextField::keyPressed(keyEvent);
82 else if (keyType == Key::Down && !
m_history.empty())
93 else if (keyType == Key::Up && !
m_history.empty())
103 else if (keyType == Key::Delete && getCaretPosition() < getText().size())
105 TextField::keyPressed(keyEvent);
107 else if (keyType == Key::Backspace && getCaretPosition() > 0)
109 TextField::keyPressed(keyEvent);
111 else if (keyType == Key::Enter)
113 if( getText() !=
"" ) {
122 else if (keyType == Key::Home)
126 else if (keyType == Key::End)
128 setCaretPosition(getText().size());
130 else if (key.isCharacter())
132 TextField::keyPressed(keyEvent);
142 graphics->setColor(getForegroundColor());
143 graphics->drawLine(x, getHeight() - 2, x, 1);
144 graphics->drawLine(x+1, getHeight() - 2, x+1, 1);
void stopBlinking()
Stop blinking the caret for a few seconds.
void setCallback(const type_callback &cb)
Set callback on pressing the ENTER key.
size_t m_history_position
void setInterval(int32_t msec)
Set the interval in milliseconds.
void start()
Start the timer.
void keyPressed(fcn::KeyEvent &keyEvent)
boost::function1< void, std::string > type_callback
void toggleCaretVisible()
Toggle the caret visibility.
void startBlinking()
Start blinking the caret.
void stop()
Stop the timer.
std::vector< std::string > m_history
~CommandLine()
Destructor.
virtual void drawCaret(fcn::Graphics *graphics, int32_t x)
CommandLine()
Constructor.
void setCallback(const type_callback &callback)
Set the callback that will be called.
Timer m_suppressBlinkTimer