Latest libopenui updates

This commit is contained in:
Bertrand Songis
2019-10-11 19:44:06 +02:00
parent cd702443c7
commit ce3d612faf
5 changed files with 35 additions and 18 deletions
+4 -4
View File
@@ -363,15 +363,15 @@ class BitmapBuffer: public BitmapBufferBase<uint16_t>
coord_t drawSizedText(coord_t x, coord_t y, const char * s, uint8_t len, LcdFlags flags=0);
void drawText(coord_t x, coord_t y, const char * s, LcdFlags flags = 0)
coord_t drawText(coord_t x, coord_t y, const char * s, LcdFlags flags = 0)
{
drawSizedText(x, y, s, 255, flags);
return drawSizedText(x, y, s, 255, flags);
}
void drawTextAtIndex(coord_t x, coord_t y, const char * s, uint8_t idx, LcdFlags flags = 0)
coord_t drawTextAtIndex(coord_t x, coord_t y, const char * s, uint8_t idx, LcdFlags flags = 0)
{
char length = *s++;
drawSizedText(x, y, s+length*idx, length, flags);
return drawSizedText(x, y, s+length*idx, length, flags);
}
void drawNumber(coord_t x, coord_t y, int32_t val, LcdFlags flags = 0, uint8_t len = 0, const char * prefix = nullptr, const char * suffix = nullptr);
+11
View File
@@ -39,6 +39,16 @@ class CheckBox : public FormField {
}
#endif
const char * getLabel() const
{
return label.c_str();
}
void setLabel(std::string newLabel)
{
label = std::move(newLabel);
}
void paint(BitmapBuffer * dc) override;
#if defined(HARDWARE_KEYS)
@@ -55,6 +65,7 @@ class CheckBox : public FormField {
}
protected:
std::string label;
std::function<uint8_t()> _getValue;
std::function<void(uint8_t)> _setValue;
};
+11 -11
View File
@@ -27,7 +27,7 @@
MainWindow mainWindow;
#if defined(HARDWARE_TOUCH)
STRUCT_TOUCH touchState;
TouchState touchState;
Keyboard * Keyboard::activeKeyboard = nullptr;
#endif
@@ -42,20 +42,20 @@ void MainWindow::emptyTrash()
void MainWindow::checkEvents(bool trash)
{
#if defined(HARDWARE_TOUCH)
if (touchState.Event == TE_DOWN) {
onTouchStart(touchState.X + scrollPositionX, touchState.Y + scrollPositionY);
if (touchState.event == TE_DOWN) {
onTouchStart(touchState.x + scrollPositionX, touchState.y + scrollPositionY);
// touchState.Event = TE_NONE;
}
else if (touchState.Event == TE_UP) {
touchState.Event = TE_NONE;
else if (touchState.event == TE_UP) {
touchState.event = TE_NONE;
onTouchEnd(touchState.startX + scrollPositionX, touchState.startY + scrollPositionY);
}
else if (touchState.Event == TE_SLIDE) {
coord_t x = touchState.X - touchState.lastX;
coord_t y = touchState.Y - touchState.lastY;
onTouchSlide(touchState.X, touchState.Y, touchState.startX, touchState.startY, x, y);
touchState.lastX = touchState.X;
touchState.lastY = touchState.Y;
else if (touchState.event == TE_SLIDE) {
coord_t x = touchState.x - touchState.lastX;
coord_t y = touchState.y - touchState.lastY;
onTouchSlide(touchState.x, touchState.y, touchState.startX, touchState.startY, x, y);
touchState.lastX = touchState.x;
touchState.lastY = touchState.y;
}
#endif
+5 -2
View File
@@ -171,7 +171,9 @@ bool TextEdit::onTouchEnd(coord_t x, coord_t y)
setFocus();
}
#if defined(SOFTWARE_KEYBOARD)
TextKeyboard::show(this);
#endif
coord_t rest = x;
for (cursorPos = 0; cursorPos < length; cursorPos++) {
@@ -187,12 +189,13 @@ bool TextEdit::onTouchEnd(coord_t x, coord_t y)
invalidate();
return true;
}
#endif
#if defined(SOFTWARE_KEYBOARD)
void TextEdit::onFocusLost()
{
#if defined(HARDWARE_TOUCH)
TextKeyboard::hide();
#endif
// TODO storageDirty(...);
FormField::onFocusLost();
}
+4 -1
View File
@@ -37,7 +37,10 @@ class Theme {
virtual void drawProgressBar(BitmapBuffer * dc, coord_t x, coord_t y, coord_t w, coord_t h, int value) const = 0;
virtual void drawCheckBox(BitmapBuffer * dc, CheckBox * checkBox) const
{
return drawCheckBox(dc, checkBox->getValue(), 0, 0, checkBox->hasFocus());
drawCheckBox(dc, checkBox->getValue(), 0, FIELD_PADDING_TOP, checkBox->hasFocus());
const char * label = checkBox->getLabel();
if (label)
dc->drawText(22, FIELD_PADDING_TOP, label);
}
virtual void drawCheckBox(BitmapBuffer * dc, bool checked, coord_t x, coord_t y, bool focus = false) const = 0;
virtual void drawChoice(BitmapBuffer * dc, ChoiceBase * choice, const char * str) const = 0;