Blame view

Giac_maj/epsilon-giac/apps/calculation/text_field.cpp 1.04 KB
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  #include "text_field.h"
  
  namespace Calculation {
  
  TextField::TextField(Responder * parentResponder, char * textBuffer, size_t textBufferSize, TextFieldDelegate * delegate) :
    ::TextField(parentResponder, textBuffer, textBuffer, textBufferSize, delegate, false)
  {
    setEditing(true);
  }
  
  bool TextField::handleEvent(Ion::Events::Event event) {
    if (event == Ion::Events::Back) {
      return false;
    }
    if (event == Ion::Events::Ans) {
      insertTextAtLocation("ans", cursorLocation());
      setCursorLocation(cursorLocation() + strlen("ans"));
      return true;
    }
    if (textLength() == 0 &&
        (event == Ion::Events::Multiplication ||
         event == Ion::Events::Plus ||
         event == Ion::Events::Power ||
         event == Ion::Events::Square ||
         event == Ion::Events::Division ||
         event == Ion::Events::Sto)) {
      if (!isEditing()) {
        setEditing(true);
        setText("");
      }
      insertTextAtLocation("ans", cursorLocation());
      setCursorLocation(cursorLocation() + strlen("ans"));
    }
    return(::TextField::handleEvent(event));
  }
  
  }