Padding adjustments & dialog autosize

This commit is contained in:
Raphael Coeffic
2022-06-14 09:42:39 +02:00
parent 6f15104bb4
commit 015c4795ca
7 changed files with 24 additions and 13 deletions
+17 -7
View File
@@ -21,16 +21,26 @@
#include "mainwindow.h"
#include "theme.h"
static rect_t _get_form_rect(const rect_t& rect)
{
return {0, POPUP_HEADER_HEIGHT, rect.w,
coord_t(rect.h - POPUP_HEADER_HEIGHT)};
}
DialogWindowContent::DialogWindowContent(Dialog* parent, const rect_t& rect) :
ModalWindowContent(parent, rect),
form(this, _get_form_rect(rect), FORM_NO_BORDER)
form(this, rect_t{})
{
form.setFlexLayout();
auto form_obj = form.getLvObj();
lv_obj_set_style_pad_all(form_obj, lv_dpx(8), 0);
lv_coord_t max_height = LCD_H * 0.8;
lv_obj_set_style_max_height(form_obj, max_height, 0);
}
void DialogWindowContent::setTitle(const std::string& text)
{
ModalWindowContent::setTitle(text);
if (title) {
lv_coord_t title_h = lv_obj_get_height(title);
lv_obj_set_y(form.getLvObj(), title_h);
}
}
void DialogWindowContent::deleteLater(bool detach, bool trash)
+2
View File
@@ -31,6 +31,8 @@ class DialogWindowContent : public ModalWindowContent
public:
DialogWindowContent(Dialog* parent, const rect_t& rect);
void setTitle(const std::string& text) override;
void deleteLater(bool detach = true, bool trash = true) override;
void updateSize() override;
+1 -2
View File
@@ -47,9 +47,8 @@ class FlexGridLayout
// padding
lv_obj_set_style_pad_all(obj, padding, LV_PART_MAIN);
lv_obj_set_style_pad_left(obj, padding + PAGE_PADDING, LV_PART_MAIN);
lv_obj_set_style_pad_right(obj, padding + PAGE_PADDING, LV_PART_MAIN);
lv_obj_set_style_pad_row(obj, padding, LV_PART_MAIN);
lv_obj_set_style_pad_column(obj, padding, LV_PART_MAIN);
// layout
lv_obj_set_layout(obj, LV_LAYOUT_GRID);
+2 -1
View File
@@ -115,9 +115,10 @@ void FormGroup::setFlexLayout(lv_flex_flow_t flow, lv_coord_t padding)
lv_obj_set_height(lvobj, LV_SIZE_CONTENT);
}
FormGroup::Line* FormGroup::newLine(FlexGridLayout* layout)
FormGroup::Line* FormGroup::newLine(FlexGridLayout* layout, lv_coord_t left_padding)
{
if (layout) layout->resetPos();
auto lv_line = window_create(lvobj);
if (left_padding) lv_obj_set_style_pad_left(lv_line, left_padding, 0);
return new Line(this, lv_line, layout);
}
+1 -1
View File
@@ -101,7 +101,7 @@ class FormGroup : public Window
#endif
void setFlexLayout(lv_flex_flow_t flow = LV_FLEX_FLOW_COLUMN, lv_coord_t padding = 0);
Line* newLine(FlexGridLayout* layout = nullptr);
Line* newLine(FlexGridLayout* layout = nullptr, lv_coord_t left_padding = 0);
};
class FormWindow : public FormGroup
+1 -1
View File
@@ -51,7 +51,7 @@ class ModalWindowContent : public Window
std::string getName() const override { return "ModalWindowContent"; }
#endif
void setTitle(const std::string& text);
virtual void setTitle(const std::string& text);
std::string getTitle() const;
void onClicked() override;
-1
View File
@@ -480,7 +480,6 @@ void Window::bringToTop()
if (lvobj) lv_obj_move_foreground(lvobj);
}
void lvglPushEncoderEvent(event_t& evt);
void Window::checkEvents()
{
auto copy = children;