mirror of
https://github.com/suchmememanyskill/CYD-Klipper.git
synced 2026-03-21 05:33:24 +00:00
Make generic functions for creating flex parents
This commit is contained in:
@@ -103,11 +103,7 @@ void nav_buttons_setup(unsigned char active_panel){
|
|||||||
lv_obj_t * root_panel = lv_create_empty_panel(lv_scr_act());
|
lv_obj_t * root_panel = lv_create_empty_panel(lv_scr_act());
|
||||||
lv_obj_set_size(root_panel, CYD_SCREEN_SIDEBAR_SIZE_PX, CYD_SCREEN_HEIGHT_PX);
|
lv_obj_set_size(root_panel, CYD_SCREEN_SIDEBAR_SIZE_PX, CYD_SCREEN_HEIGHT_PX);
|
||||||
lv_obj_align(root_panel, LV_ALIGN_TOP_LEFT, 0, 0);
|
lv_obj_align(root_panel, LV_ALIGN_TOP_LEFT, 0, 0);
|
||||||
lv_obj_set_layout(root_panel, LV_LAYOUT_FLEX);
|
lv_layout_flex_column(root_panel, LV_FLEX_ALIGN_START, 0, 0);
|
||||||
lv_obj_set_flex_flow(root_panel, LV_FLEX_FLOW_COLUMN);
|
|
||||||
lv_obj_set_flex_align(root_panel, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
||||||
lv_obj_set_style_pad_column(root_panel, 0, 0);
|
|
||||||
lv_obj_set_style_pad_row(root_panel, 0, 0);
|
|
||||||
|
|
||||||
// Files/Print
|
// Files/Print
|
||||||
create_button(LV_SYMBOL_COPY, "Idle", btn_click_files, update_printer_data_time, root_panel);
|
create_button(LV_SYMBOL_COPY, "Idle", btn_click_files, update_printer_data_time, root_panel);
|
||||||
|
|||||||
@@ -38,40 +38,33 @@ void macros_panel_init(lv_obj_t* panel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
lv_obj_t * root_panel = lv_create_empty_panel(panel);
|
lv_obj_t * root_panel = lv_create_empty_panel(panel);
|
||||||
lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX);
|
lv_obj_set_size(root_panel, CYD_SCREEN_PANEL_WIDTH, CYD_SCREEN_HEIGHT_PX - CYD_SCREEN_MIN_BUTTON_HEIGHT_PX - CYD_SCREEN_BIG_GAP_PX * 2);
|
||||||
lv_obj_align(root_panel, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX);
|
lv_obj_align(root_panel, LV_ALIGN_TOP_MID, 0, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX * 2);
|
||||||
lv_obj_set_layout(root_panel, LV_LAYOUT_FLEX);
|
lv_layout_flex_column(root_panel);
|
||||||
lv_obj_set_flex_flow(root_panel, LV_FLEX_FLOW_COLUMN);
|
|
||||||
lv_obj_set_flex_align(root_panel, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
||||||
lv_obj_set_style_pad_column(root_panel, 0, 0);
|
|
||||||
lv_obj_set_style_pad_row(root_panel, 0, 0);
|
|
||||||
|
|
||||||
|
for (int j = 0; j < 2; j++)
|
||||||
for (int i = 0; i < query.count; i++){
|
for (int i = 0; i < query.count; i++){
|
||||||
const char* macro = query.macros[i];
|
const char* macro = query.macros[i];
|
||||||
|
|
||||||
lv_obj_t * panel = lv_create_empty_panel(root_panel);
|
lv_obj_t * panel = lv_create_empty_panel(root_panel);
|
||||||
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX * 2);
|
lv_layout_flex_row(panel, LV_FLEX_ALIGN_END);
|
||||||
|
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
||||||
lv_obj_t * line = lv_line_create(panel);
|
|
||||||
lv_line_set_points(line, line_points, 2);
|
|
||||||
lv_obj_set_style_line_width(line, 1, 0);
|
|
||||||
lv_obj_set_style_line_color(line, lv_color_hex(0xAAAAAA), 0);
|
|
||||||
lv_obj_align(line, LV_ALIGN_BOTTOM_MID, 0, 0);
|
|
||||||
|
|
||||||
lv_obj_t * label = lv_label_create(panel);
|
lv_obj_t * label = lv_label_create(panel);
|
||||||
lv_label_set_text(label, macro);
|
lv_label_set_text(label, macro);
|
||||||
lv_obj_align(label, LV_ALIGN_LEFT_MID, 0, 0);
|
|
||||||
lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);
|
lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);
|
||||||
// TODO: Hack. Needs to be fixed for proper porting
|
lv_obj_set_flex_grow(label, 1);
|
||||||
lv_obj_set_width(label, CYD_SCREEN_PANEL_WIDTH * 0.75f);
|
|
||||||
|
|
||||||
lv_obj_t * btn = lv_btn_create(panel);
|
lv_obj_t * btn = lv_btn_create(panel);
|
||||||
lv_obj_set_height(btn, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
lv_obj_set_height(btn, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
||||||
lv_obj_align(btn, LV_ALIGN_RIGHT_MID, 0, 0);
|
|
||||||
lv_obj_add_event_cb(btn, btn_press, LV_EVENT_CLICKED, (void*)macro);
|
|
||||||
|
|
||||||
label = lv_label_create(btn);
|
label = lv_label_create(btn);
|
||||||
lv_label_set_text(label, "Run");
|
lv_label_set_text(label, "Run");
|
||||||
lv_obj_center(label);
|
lv_obj_center(label);
|
||||||
|
|
||||||
|
lv_obj_t * line = lv_line_create(root_panel);
|
||||||
|
lv_line_set_points(line, line_points, 2);
|
||||||
|
lv_obj_set_style_line_width(line, 1, 0);
|
||||||
|
lv_obj_set_style_line_color(line, lv_color_hex(0xAAAAAA), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,17 +87,8 @@ const static lv_point_t line_points[] = { {0, 0}, {(short int)((CYD_SCREEN_PANEL
|
|||||||
void create_settings_widget(const char* label_text, lv_obj_t* object, lv_obj_t* root_panel){
|
void create_settings_widget(const char* label_text, lv_obj_t* object, lv_obj_t* root_panel){
|
||||||
lv_obj_set_height(object, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
lv_obj_set_height(object, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
||||||
|
|
||||||
lv_obj_t * panel = lv_obj_create(root_panel);
|
lv_obj_t * panel = lv_create_empty_panel(root_panel);
|
||||||
lv_obj_set_style_border_width(panel, 0, 0);
|
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX);
|
||||||
lv_obj_set_style_bg_opa(panel, LV_OPA_TRANSP, 0);
|
|
||||||
lv_obj_set_style_pad_all(panel, 0, 0);
|
|
||||||
lv_obj_set_size(panel, CYD_SCREEN_PANEL_WIDTH - CYD_SCREEN_BIG_GAP_PX * 3, CYD_SCREEN_MIN_BUTTON_HEIGHT_PX + CYD_SCREEN_BIG_GAP_PX * 2);
|
|
||||||
|
|
||||||
lv_obj_t * line = lv_line_create(panel);
|
|
||||||
lv_line_set_points(line, line_points, 2);
|
|
||||||
lv_obj_set_style_line_width(line, 1, 0);
|
|
||||||
lv_obj_set_style_line_color(line, lv_color_hex(0xAAAAAA), 0);
|
|
||||||
lv_obj_align(line, LV_ALIGN_BOTTOM_MID, 0, 0);
|
|
||||||
|
|
||||||
lv_obj_t * label = lv_label_create(panel);
|
lv_obj_t * label = lv_label_create(panel);
|
||||||
lv_label_set_text(label, label_text);
|
lv_label_set_text(label, label_text);
|
||||||
@@ -105,15 +96,16 @@ void create_settings_widget(const char* label_text, lv_obj_t* object, lv_obj_t*
|
|||||||
|
|
||||||
lv_obj_set_parent(object, panel);
|
lv_obj_set_parent(object, panel);
|
||||||
lv_obj_align(object, LV_ALIGN_RIGHT_MID, 0, 0);
|
lv_obj_align(object, LV_ALIGN_RIGHT_MID, 0, 0);
|
||||||
|
|
||||||
|
lv_obj_t * line = lv_line_create(root_panel);
|
||||||
|
lv_line_set_points(line, line_points, 2);
|
||||||
|
lv_obj_set_style_line_width(line, 1, 0);
|
||||||
|
lv_obj_set_style_line_color(line, lv_color_hex(0xAAAAAA), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void settings_panel_init(lv_obj_t* panel){
|
void settings_panel_init(lv_obj_t* panel){
|
||||||
|
lv_obj_set_style_pad_all(panel, CYD_SCREEN_BIG_GAP_PX, 0);
|
||||||
lv_obj_set_layout(panel, LV_LAYOUT_FLEX);
|
lv_layout_flex_column(panel);
|
||||||
lv_obj_set_flex_flow(panel, LV_FLEX_FLOW_COLUMN);
|
|
||||||
lv_obj_set_flex_align(panel, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
|
||||||
lv_obj_set_style_pad_column(panel, 0, 0);
|
|
||||||
lv_obj_set_style_pad_row(panel, 0, 0);
|
|
||||||
|
|
||||||
lv_obj_t * btn = lv_btn_create(panel);
|
lv_obj_t * btn = lv_btn_create(panel);
|
||||||
lv_obj_add_event_cb(btn, reset_wifi_click, LV_EVENT_CLICKED, NULL);
|
lv_obj_add_event_cb(btn, reset_wifi_click, LV_EVENT_CLICKED, NULL);
|
||||||
|
|||||||
@@ -7,4 +7,20 @@ lv_obj_t* lv_create_empty_panel(lv_obj_t* root) {
|
|||||||
lv_obj_set_style_bg_opa(panel, LV_OPA_TRANSP, 0);
|
lv_obj_set_style_bg_opa(panel, LV_OPA_TRANSP, 0);
|
||||||
lv_obj_set_style_pad_all(panel, 0, 0);
|
lv_obj_set_style_pad_all(panel, 0, 0);
|
||||||
return panel;
|
return panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void lv_layout_flex_column(lv_obj_t* obj, lv_flex_align_t allign, lv_coord_t pad_column, lv_coord_t pad_row){
|
||||||
|
lv_obj_set_layout(obj, LV_LAYOUT_FLEX);
|
||||||
|
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
|
||||||
|
lv_obj_set_flex_align(obj, allign, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||||
|
lv_obj_set_style_pad_column(obj, pad_column, 0);
|
||||||
|
lv_obj_set_style_pad_row(obj, pad_row, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lv_layout_flex_row(lv_obj_t* obj, lv_flex_align_t allign, lv_coord_t pad_column, lv_coord_t pad_row){
|
||||||
|
lv_obj_set_layout(obj, LV_LAYOUT_FLEX);
|
||||||
|
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW);
|
||||||
|
lv_obj_set_flex_align(obj, allign, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||||
|
lv_obj_set_style_pad_column(obj, pad_column, 0);
|
||||||
|
lv_obj_set_style_pad_row(obj, pad_row, 0);
|
||||||
}
|
}
|
||||||
@@ -3,4 +3,6 @@
|
|||||||
#define CYD_SCREEN_PANEL_WIDTH \
|
#define CYD_SCREEN_PANEL_WIDTH \
|
||||||
(CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX)
|
(CYD_SCREEN_WIDTH_PX - CYD_SCREEN_SIDEBAR_SIZE_PX)
|
||||||
|
|
||||||
lv_obj_t* lv_create_empty_panel(lv_obj_t* root);
|
lv_obj_t* lv_create_empty_panel(lv_obj_t* root);
|
||||||
|
void lv_layout_flex_column(lv_obj_t* obj, lv_flex_align_t allign = LV_FLEX_ALIGN_START, lv_coord_t pad_column = CYD_SCREEN_BIG_GAP_PX, lv_coord_t pad_row = CYD_SCREEN_BIG_GAP_PX);
|
||||||
|
void lv_layout_flex_row(lv_obj_t* obj, lv_flex_align_t allign = LV_FLEX_ALIGN_START, lv_coord_t pad_column = CYD_SCREEN_BIG_GAP_PX, lv_coord_t pad_row = CYD_SCREEN_BIG_GAP_PX);
|
||||||
Reference in New Issue
Block a user