Files
Upsilon/apps/calculation/text_field.cpp
Émilie Feral 470f36d2bd [apps/calculation] create a class text field specific to calculation
Change-Id: I261ef72ea62ca8118dda5c2e90e721e987f3283d
2016-11-04 16:53:02 +01:00

30 lines
1.0 KiB
C++

#include "text_field.h"
namespace Calculation {
TextField::TextField(Responder * parentResponder, char * textBuffer, size_t textBufferSize, TextFieldDelegate * delegate) :
::TextField(parentResponder, textBuffer, textBufferSize, delegate)
{
}
bool TextField::handleEvent(Ion::Events::Event event) {
if (m_currentTextLength == 0 &&
(event == Ion::Events::Event::PRODUCT ||
event == Ion::Events::Event::PLUS ||
event == Ion::Events::Event::MINUS ||
event == Ion::Events::Event::DOT ||
event == Ion::Events::Event::DIVISION)) {
KDSize sizePreviousText = KDText::stringSize(m_textBuffer);
m_textBuffer[m_currentTextLength++] = 'a';
m_textBuffer[m_currentTextLength++] = 'n';
m_textBuffer[m_currentTextLength++] = 's';
m_textBuffer[m_currentTextLength] = 0;
KDSize sizeText = KDText::stringSize(m_textBuffer);
KDRect dirtyZone(sizePreviousText.width(), 0, sizeText.width()-sizePreviousText.width(), sizeText.height());
markRectAsDirty(dirtyZone);
}
return(::TextField::handleEvent(event));
}
}