mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[escher] Create a even odd editable text cell inheriting from even odd
and composing with editable text cell Change-Id: I454159402260fe791769859130052e824cb03128
This commit is contained in:
@@ -11,6 +11,7 @@ objs += $(addprefix escher/src/,\
|
||||
editable_text_menu_list_cell.o\
|
||||
editable_text_cell.o\
|
||||
even_odd_cell.o\
|
||||
even_odd_editable_text_cell.o\
|
||||
expression_view.o\
|
||||
header_view_controller.o\
|
||||
header_view_delegate.o\
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <escher/editable_text_menu_list_cell.h>
|
||||
#include <escher/editable_text_cell.h>
|
||||
#include <escher/even_odd_cell.h>
|
||||
#include <escher/even_odd_editable_text_cell.h>
|
||||
#include <escher/expression_view.h>
|
||||
#include <escher/header_view_controller.h>
|
||||
#include <escher/header_view_delegate.h>
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
|
||||
class EditableTextCell : public TableViewCell, public Responder {
|
||||
public:
|
||||
EditableTextCell(Responder * parentResponder, TextFieldDelegate * delegate, char * draftTextBuffer);
|
||||
EditableTextCell(Responder * parentResponder, TextFieldDelegate * delegate, char * draftTextBuffer,
|
||||
float horizontalAlignment = 0.0f, float verticalAlignment = 0.5f, KDColor textColor = KDColorBlack, KDColor = KDColorWhite);
|
||||
TextField * textfield();
|
||||
void reloadCell() override;
|
||||
const char * text() const;
|
||||
void setText(const char * textContent);
|
||||
|
||||
24
escher/include/escher/even_odd_editable_text_cell.h
Normal file
24
escher/include/escher/even_odd_editable_text_cell.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef ESCHER_EVEN_ODD_EDITABLE_TEXT_CELL_H
|
||||
#define ESCHER_EVEN_ODD_EDITABLE_TEXT_CELL_H
|
||||
|
||||
#include <escher/responder.h>
|
||||
#include <escher/even_odd_cell.h>
|
||||
#include <escher/editable_text_cell.h>
|
||||
|
||||
class EvenOddEditableTextCell : public EvenOddCell, public Responder {
|
||||
public:
|
||||
EvenOddEditableTextCell(char * draftTextBuffer);
|
||||
void setDelegate(TextFieldDelegate * delegate);
|
||||
void reloadCell() override;
|
||||
const char * text() const;
|
||||
void setText(const char * textContent);
|
||||
int numberOfSubviews() const override;
|
||||
View * subviewAtIndex(int index) override;
|
||||
void layoutSubviews() override;
|
||||
void didBecomeFirstResponder() override;
|
||||
void setEditing(bool isEditing);
|
||||
private:
|
||||
EditableTextCell m_editableCell;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -3,13 +3,18 @@
|
||||
#include <escher/palette.h>
|
||||
#include <assert.h>
|
||||
|
||||
EditableTextCell::EditableTextCell(Responder * parentResponder, TextFieldDelegate * delegate, char * draftTextBuffer) :
|
||||
EditableTextCell::EditableTextCell(Responder * parentResponder, TextFieldDelegate * delegate, char * draftTextBuffer,
|
||||
float horizontalAlignment, float verticalAlignment, KDColor textColor, KDColor backgroundColor) :
|
||||
TableViewCell(),
|
||||
Responder(parentResponder),
|
||||
m_textField(TextField(this, m_textBody, draftTextBuffer, 255, delegate))
|
||||
m_textField(TextField(this, m_textBody, draftTextBuffer, 255, delegate, horizontalAlignment, verticalAlignment, textColor, backgroundColor))
|
||||
{
|
||||
}
|
||||
|
||||
TextField * EditableTextCell::textfield() {
|
||||
return &m_textField;
|
||||
}
|
||||
|
||||
void EditableTextCell::reloadCell() {
|
||||
TableViewCell::reloadCell();
|
||||
KDColor backgroundColor = isHighlighted()? Palette::FocusCellBackgroundColor : Palette::CellBackgroundColor;
|
||||
|
||||
48
escher/src/even_odd_editable_text_cell.cpp
Normal file
48
escher/src/even_odd_editable_text_cell.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include <escher/even_odd_editable_text_cell.h>
|
||||
#include <escher/app.h>
|
||||
#include <assert.h>
|
||||
|
||||
EvenOddEditableTextCell::EvenOddEditableTextCell(char * draftTextBuffer) :
|
||||
EvenOddCell(),
|
||||
Responder(nullptr),
|
||||
m_editableCell(this, nullptr, draftTextBuffer, 1.0f, 0.5f, KDColorBlack, KDColorWhite)
|
||||
{
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::setDelegate(TextFieldDelegate * delegate) {
|
||||
m_editableCell.textfield()->setTextFieldDelegate(delegate);
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::reloadCell() {
|
||||
EvenOddCell::reloadCell();
|
||||
m_editableCell.textfield()->setBackgroundColor(backgroundColor());
|
||||
}
|
||||
|
||||
const char * EvenOddEditableTextCell::text() const {
|
||||
return m_editableCell.text();
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::setText(const char * textContent) {
|
||||
m_editableCell.setText(textContent);
|
||||
}
|
||||
|
||||
int EvenOddEditableTextCell::numberOfSubviews() const {
|
||||
return 1;
|
||||
}
|
||||
|
||||
View * EvenOddEditableTextCell::subviewAtIndex(int index) {
|
||||
assert(index == 0);
|
||||
return &m_editableCell;
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::layoutSubviews() {
|
||||
m_editableCell.setFrame(bounds());
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::didBecomeFirstResponder() {
|
||||
app()->setFirstResponder(&m_editableCell);
|
||||
}
|
||||
|
||||
void EvenOddEditableTextCell::setEditing(bool isEditing) {
|
||||
m_editableCell.setEditing(isEditing);
|
||||
}
|
||||
Reference in New Issue
Block a user