Add InputFilter to TextField, TextEditor 75/258375/14
authorBowon Ryu <bowon.ryu@samsung.com>
Fri, 14 May 2021 07:50:39 +0000 (16:50 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Mon, 28 Jun 2021 07:18:49 +0000 (16:18 +0900)
commit0a6073b11b32d2153deb0e4a581a9314eef8ab10
tree9acf5ca3259b53d3cf5cbad2117e5c9be2d2b4bc
parent3eedaa0133492f3aa00d1a3f8df4ece6dd5b2387
Add InputFilter to TextField, TextEditor

Text input filter based on regular expressions.

// example
Property::Map filter;
filter[InputFilter::Property::ACCEPTED] = "[\\d]";
filter[InputFilter::Property::REJECTED] = "[0-5]";

field.SetProperty(DevelTextField::Property::INPUT_FILTER, filter);

DevelTextField::InputFilteredSignal(field).Connect(this, &OnInputFiltered);

```

void OnInputFiltered(TextField field, InputFilter::Property::Type type)
{
  Property::Map filter = field.GetProperty<Property::Map>(DevelTextField::Property::INPUT_FILTER);
  if (type == InputFilter::Property::ACCEPTED)
  {
    std::cout << "only follow character set is accepted " << filter[type] << std::endl;
  }
  else if (type == InputFilter::Property::REJECTED)
  {
    std::cout << "follow character set is rejected " << filter[type] << std::endl;
  }
}

Change-Id: Ia512438c9cb8aeb28c81f38e7b0220544a0751f0
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
21 files changed:
automated-tests/src/dali-toolkit/utc-Dali-TextEditor.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
dali-toolkit/dali-toolkit.h
dali-toolkit/devel-api/controls/text-controls/text-editor-devel.cpp
dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h
dali-toolkit/devel-api/controls/text-controls/text-field-devel.cpp
dali-toolkit/devel-api/controls/text-controls/text-field-devel.h
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
dali-toolkit/internal/controls/text-controls/text-editor-impl.h
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.h
dali-toolkit/internal/file.list
dali-toolkit/internal/text/input-filter.cpp [new file with mode: 0644]
dali-toolkit/internal/text/input-filter.h [new file with mode: 0644]
dali-toolkit/internal/text/text-controller-event-handler.cpp
dali-toolkit/internal/text/text-controller-impl.h
dali-toolkit/internal/text/text-controller.cpp
dali-toolkit/internal/text/text-controller.h
dali-toolkit/internal/text/text-editable-control-interface.h
dali-toolkit/public-api/controls/text-controls/input-filter-properties.h [new file with mode: 0644]
dali-toolkit/public-api/file.list