diff --git a/demos/benchmark/lv_demo_benchmark.c b/demos/benchmark/lv_demo_benchmark.c
index a0458c7148..47b1bbcbfe 100644
--- a/demos/benchmark/lv_demo_benchmark.c
+++ b/demos/benchmark/lv_demo_benchmark.c
@@ -147,7 +147,7 @@ static void multiple_rgb_images_cb(void)
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * obj = lv_image_create(lv_screen_active());
lv_image_set_src(obj, &img_benchmark_lvgl_logo_rgb);
- if(x == 0) lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(obj, true);
fall_anim(obj, 80);
}
@@ -174,7 +174,7 @@ static void multiple_argb_images_cb(void)
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * obj = lv_image_create(lv_screen_active());
lv_image_set_src(obj, &img_benchmark_lvgl_logo_argb);
- if(x == 0) lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(obj, true);
fall_anim(obj, 80);
}
@@ -201,7 +201,7 @@ static void rotated_argb_image_cb(void)
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * obj = lv_image_create(lv_screen_active());
lv_image_set_src(obj, &img_benchmark_lvgl_logo_argb);
- if(x == 0) lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(obj, true);
lv_image_set_rotation(obj, lv_rand(100, 3500));
fall_anim(obj, 80);
@@ -242,7 +242,7 @@ static void multiple_labels_cb(void)
int32_t x;
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * obj = lv_label_create(lv_screen_active());
- if(x == 0) lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(obj, true);
lv_label_set_text_static(obj, "Hello LVGL!");
color_anim(obj);
}
@@ -303,7 +303,7 @@ static void multiple_arcs_cb(void)
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * obj = lv_arc_create(lv_screen_active());
- if(x == 0) lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(obj, true);
lv_obj_set_size(obj, 100, 100);
lv_obj_center(obj);
@@ -337,7 +337,7 @@ static void containers_cb(void)
int32_t x;
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * card = card_create();
- if(x == 0) lv_obj_add_flag(card, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(card, true);
fall_anim(card, 30);
}
}
@@ -361,7 +361,7 @@ static void containers_with_overlay_cb(void)
int32_t x;
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * card = card_create();
- if(x == 0) lv_obj_add_flag(card, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(card, true);
fall_anim(card, 30);
}
}
@@ -388,7 +388,7 @@ static void containers_with_opa_cb(void)
int32_t x;
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * card = card_create();
- if(x == 0) lv_obj_add_flag(card, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(card, true);
lv_obj_set_style_opa(card, LV_OPA_50, 0);
fall_anim(card, 30);
}
@@ -414,7 +414,7 @@ static void containers_with_opa_layer_cb(void)
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * card = card_create();
lv_obj_set_style_opa_layered(card, LV_OPA_50, 0);
- if(x == 0) lv_obj_add_flag(card, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(card, true);
fall_anim(card, 30);
}
}
@@ -441,7 +441,7 @@ static void containers_with_scrolling_cb(void)
int32_t x;
for(x = 0; x < hor_cnt; x++) {
lv_obj_t * card = card_create();
- if(x == 0) lv_obj_add_flag(card, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(x == 0) lv_obj_set_flex_in_new_track(card, true);
}
}
@@ -525,7 +525,7 @@ void lv_demo_benchmark(void)
lv_display_t * disp = lv_display_get_default();
lv_subject_add_observer_obj(&disp->perf_sysmon_backend.subject, sysmon_perf_observer_cb, title, NULL);
#if LV_USE_PERF_MONITOR_LOG_MODE
- lv_obj_add_flag(title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(title, true);
#endif
#else
lv_label_set_text(title, "LV_USE_PERF_MONITOR is not enabled");
@@ -549,7 +549,7 @@ void lv_demo_benchmark_summary_display(const lv_demo_benchmark_summary_t * summa
lv_obj_t * table = lv_table_create(lv_screen_active());
lv_obj_set_width(table, lv_pct(100));
lv_obj_set_style_max_height(table, lv_pct(100), 0);
- lv_obj_add_flag(table, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(table, true);
lv_obj_set_style_text_color(table, lv_palette_darken(LV_PALETTE_BLUE_GREY, 2), LV_PART_ITEMS);
lv_obj_set_style_border_color(table, lv_palette_darken(LV_PALETTE_BLUE_GREY, 2), LV_PART_ITEMS);
lv_obj_add_event_cb(table, table_draw_task_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
diff --git a/demos/gltf/lv_demo_gltf.c b/demos/gltf/lv_demo_gltf.c
index ac83d8b5dc..6d3dcee007 100644
--- a/demos/gltf/lv_demo_gltf.c
+++ b/demos/gltf/lv_demo_gltf.c
@@ -124,7 +124,7 @@ lv_obj_t * lv_demo_gltf(const char * path)
{
lv_obj_t * viewer = lv_gltf_create(lv_screen_active());
lv_obj_set_size(viewer, LV_PCT(100), LV_PCT(100));
- lv_obj_remove_flag(viewer, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(viewer, false);
lv_gltf_set_background_mode(viewer, LV_GLTF_BG_MODE_ENVIRONMENT);
lv_gltf_model_t * model = lv_gltf_load_model_from_file(viewer, path);
LV_ASSERT_NULL(model);
diff --git a/demos/keypad_encoder/lv_demo_keypad_encoder.c b/demos/keypad_encoder/lv_demo_keypad_encoder.c
index 26979ef525..b432e625b5 100644
--- a/demos/keypad_encoder/lv_demo_keypad_encoder.c
+++ b/demos/keypad_encoder/lv_demo_keypad_encoder.c
@@ -97,32 +97,32 @@ static void selectors_create(lv_obj_t * parent)
lv_table_set_cell_value(obj, 2, 1, "21");
lv_table_set_cell_value(obj, 3, 0, "30");
lv_table_set_cell_value(obj, 3, 1, "31");
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_calendar_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_buttonmatrix_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_checkbox_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_slider_create(parent);
lv_slider_set_range(obj, 0, 10);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_switch_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_spinbox_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_dropdown_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
obj = lv_roller_create(parent);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
lv_obj_t * list = lv_list_create(parent);
lv_obj_update_layout(list);
@@ -154,7 +154,7 @@ static void text_input_create(lv_obj_t * parent)
lv_textarea_set_placeholder_text(ta2, "Type something");
lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_obj_add_event_cb(ta1, ta_event_cb, LV_EVENT_ALL, kb);
lv_obj_add_event_cb(ta2, ta_event_cb, LV_EVENT_ALL, kb);
@@ -201,7 +201,7 @@ static void ta_event_cb(lv_event_t * e)
if(code == LV_EVENT_CLICKED && indev_type == LV_INDEV_TYPE_ENCODER) {
lv_keyboard_set_textarea(kb, ta);
- lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, false);
lv_group_focus_obj(kb);
lv_group_set_editing(lv_obj_get_group(kb), kb != NULL);
lv_obj_set_height(tv, LV_VER_RES / 2);
@@ -209,7 +209,7 @@ static void ta_event_cb(lv_event_t * e)
}
if(code == LV_EVENT_READY || code == LV_EVENT_CANCEL) {
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_obj_set_height(tv, LV_VER_RES);
}
}
diff --git a/demos/music/lv_demo_music_list.c b/demos/music/lv_demo_music_list.c
index ff4ee09f43..b60c10bdb3 100644
--- a/demos/music/lv_demo_music_list.c
+++ b/demos/music/lv_demo_music_list.c
@@ -222,7 +222,7 @@ static lv_obj_t * add_list_button(lv_obj_t * parent, uint32_t track_id)
lv_image_set_inner_align(border, LV_IMAGE_ALIGN_TILE);
lv_obj_set_width(border, lv_pct(120));
lv_obj_align(border, LV_ALIGN_BOTTOM_MID, 0, 0);
- lv_obj_add_flag(border, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(border, true);
return btn;
}
diff --git a/demos/music/lv_demo_music_main.c b/demos/music/lv_demo_music_main.c
index 5ee43c680b..d8839a5970 100644
--- a/demos/music/lv_demo_music_main.c
+++ b/demos/music/lv_demo_music_main.c
@@ -396,8 +396,8 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
{
/*A transparent container in which the player section will be scrolled*/
main_cont = lv_obj_create(parent);
- lv_obj_remove_flag(main_cont, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_remove_flag(main_cont, LV_OBJ_FLAG_SCROLL_ELASTIC);
+ lv_obj_set_clickable(main_cont, false);
+ lv_obj_set_scroll_elastic(main_cont, false);
lv_obj_remove_style_all(main_cont); /*Make it transparent*/
lv_obj_set_size(main_cont, lv_pct(100), lv_pct(100));
lv_obj_set_scroll_snap_y(main_cont, LV_SCROLL_SNAP_CENTER); /*Snap the children to the center*/
@@ -410,7 +410,7 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
#else
lv_obj_set_size(player, music_width, music_height + LV_DEMO_MUSIC_HANDLE_SIZE * 2);
#endif
- lv_obj_remove_flag(player, LV_OBJ_FLAG_SNAPPABLE);
+ lv_obj_set_snappable(player, false);
lv_obj_set_style_bg_color(player, lv_color_hex(0xffffff), 0);
lv_obj_set_style_border_width(player, 0, 0);
@@ -421,16 +421,16 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
* It is used only to snap it to center.*/
lv_obj_t * placeholder1 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder1);
- lv_obj_remove_flag(placeholder1, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(placeholder1, false);
lv_obj_t * placeholder2 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder2);
- lv_obj_remove_flag(placeholder2, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(placeholder2, false);
#if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
lv_obj_t * placeholder3 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder3);
- lv_obj_remove_flag(placeholder3, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(placeholder3, false);
lv_obj_set_size(placeholder1, lv_pct(100), music_height);
lv_obj_set_y(placeholder1, 0);
@@ -462,14 +462,14 @@ static void create_wave_images(lv_obj_t * parent)
lv_image_set_inner_align(wave_top, LV_IMAGE_ALIGN_TILE);
lv_obj_set_width(wave_top, music_width);
lv_obj_align(wave_top, LV_ALIGN_TOP_MID, 0, 0);
- lv_obj_add_flag(wave_top, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(wave_top, true);
lv_obj_t * wave_bottom = lv_image_create(parent);
lv_image_set_src(wave_bottom, &img_lv_demo_music_wave_bottom);
lv_image_set_inner_align(wave_bottom, LV_IMAGE_ALIGN_TILE);
lv_obj_set_width(wave_bottom, music_width);
lv_obj_align(wave_bottom, LV_ALIGN_BOTTOM_MID, 0, 0);
- lv_obj_add_flag(wave_bottom, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(wave_bottom, true);
LV_IMAGE_DECLARE(img_lv_demo_music_corner_left);
LV_IMAGE_DECLARE(img_lv_demo_music_corner_right);
@@ -480,7 +480,7 @@ static void create_wave_images(lv_obj_t * parent)
#else
lv_obj_align(wave_corner, LV_ALIGN_BOTTOM_LEFT, -music_width / 6, 0);
#endif
- lv_obj_add_flag(wave_corner, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(wave_corner, true);
wave_corner = lv_image_create(parent);
lv_image_set_src(wave_corner, &img_lv_demo_music_corner_right);
@@ -489,7 +489,7 @@ static void create_wave_images(lv_obj_t * parent)
#else
lv_obj_align(wave_corner, LV_ALIGN_BOTTOM_RIGHT, music_width / 6, 0);
#endif
- lv_obj_add_flag(wave_corner, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(wave_corner, true);
}
static lv_obj_t * create_title_box(lv_obj_t * parent)
@@ -557,7 +557,8 @@ static lv_obj_t * create_spectrum_obj(lv_obj_t * parent)
#else
lv_obj_set_height(obj, 250);
#endif
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_clickable(obj, false);
+ lv_obj_set_scrollable(obj, false);
lv_obj_add_event_cb(obj, spectrum_draw_event_cb, LV_EVENT_ALL, NULL);
lv_obj_refresh_ext_draw_size(obj);
album_image_obj = album_image_create(obj);
@@ -570,7 +571,7 @@ static lv_obj_t * create_ctrl_box(lv_obj_t * parent)
lv_obj_t * cont = lv_obj_create(parent);
lv_obj_remove_style_all(cont);
lv_obj_set_height(cont, LV_SIZE_CONTENT);
- lv_obj_remove_flag(cont, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(cont, false);
#if LV_DEMO_MUSIC_LARGE
lv_obj_set_style_pad_bottom(cont, 17, 0);
#else
@@ -600,29 +601,29 @@ static lv_obj_t * create_ctrl_box(lv_obj_t * parent)
lv_image_set_src(icon, &img_lv_demo_music_btn_prev);
lv_obj_set_grid_cell(icon, LV_GRID_ALIGN_CENTER, 2, 1, LV_GRID_ALIGN_CENTER, 0, 1);
lv_obj_add_event_cb(icon, prev_click_event_cb, LV_EVENT_CLICKED, NULL);
- lv_obj_add_flag(icon, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(icon, true);
play_obj = lv_imagebutton_create(cont);
lv_imagebutton_set_src(play_obj, LV_IMAGEBUTTON_STATE_RELEASED, NULL, &img_lv_demo_music_btn_play, NULL);
lv_imagebutton_set_src(play_obj, LV_IMAGEBUTTON_STATE_CHECKED_RELEASED, NULL, &img_lv_demo_music_btn_pause, NULL);
- lv_obj_add_flag(play_obj, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_checkable(play_obj, true);
lv_obj_set_grid_cell(play_obj, LV_GRID_ALIGN_CENTER, 3, 1, LV_GRID_ALIGN_CENTER, 0, 1);
lv_obj_add_event_cb(play_obj, play_event_click_cb, LV_EVENT_CLICKED, NULL);
- lv_obj_add_flag(play_obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(play_obj, true);
lv_obj_set_width(play_obj, img_lv_demo_music_btn_play.header.w);
icon = lv_image_create(cont);
lv_image_set_src(icon, &img_lv_demo_music_btn_next);
lv_obj_set_grid_cell(icon, LV_GRID_ALIGN_CENTER, 4, 1, LV_GRID_ALIGN_CENTER, 0, 1);
lv_obj_add_event_cb(icon, next_click_event_cb, LV_EVENT_CLICKED, NULL);
- lv_obj_add_flag(icon, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(icon, true);
LV_IMAGE_DECLARE(img_lv_demo_music_slider_knob);
slider_obj = lv_slider_create(cont);
lv_obj_set_style_anim_duration(slider_obj, 100, 0);
- lv_obj_add_flag(slider_obj, LV_OBJ_FLAG_CLICKABLE); /*No input from the slider*/
- lv_obj_remove_flag(slider_obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_clickable(slider_obj, true); /*No input from the slider*/
+ lv_obj_set_scroll_on_focus(slider_obj, false);
#if LV_DEMO_MUSIC_LARGE == 0
lv_obj_set_height(slider_obj, 3);
@@ -972,8 +973,8 @@ static lv_obj_t * album_image_create(lv_obj_t * parent)
lv_image_set_antialias(img, false);
lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
lv_obj_add_event_cb(img, album_gesture_event_cb, LV_EVENT_GESTURE, NULL);
- lv_obj_remove_flag(img, LV_OBJ_FLAG_GESTURE_BUBBLE);
- lv_obj_add_flag(img, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_gesture_bubble(img, false);
+ lv_obj_set_clickable(img, true);
return img;
diff --git a/demos/render/lv_demo_render.c b/demos/render/lv_demo_render.c
index 53f75ed60c..aec43c16de 100644
--- a/demos/render/lv_demo_render.c
+++ b/demos/render/lv_demo_render.c
@@ -878,7 +878,7 @@ static void blend_mode_cb(lv_obj_t * parent)
lv_obj_set_style_image_recolor(img_recolored, lv_color_hex(0x00ff00), 0);
lv_obj_set_style_image_recolor_opa(img_recolored, LV_OPA_50, 0);
lv_obj_set_y(img_recolored, 30);
- lv_obj_add_flag(img_recolored, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(img_recolored, true);
}
diff --git a/demos/widgets/lv_demo_widgets.c b/demos/widgets/lv_demo_widgets.c
index b18bc28f3b..f52136cf98 100644
--- a/demos/widgets/lv_demo_widgets.c
+++ b/demos/widgets/lv_demo_widgets.c
@@ -81,19 +81,19 @@ void lv_demo_widgets_with_args(const lv_demo_args_t * args)
lv_obj_t * tab_bar = lv_tabview_get_tab_bar(tv);
lv_obj_set_style_pad_left(tab_bar, LV_HOR_RES / 2, 0);
lv_obj_t * logo = lv_image_create(tab_bar);
- lv_obj_add_flag(logo, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(logo, true);
LV_IMAGE_DECLARE(img_lvgl_logo);
lv_image_set_src(logo, &img_lvgl_logo);
lv_obj_align(logo, LV_ALIGN_LEFT_MID, -LV_HOR_RES / 2 + 25, 0);
lv_obj_t * label = lv_demo_widgets_title_create(tab_bar, "");
- lv_obj_add_flag(label, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(label, true);
lv_label_set_text_fmt(label, "LVGL v%d.%d.%d", lv_version_major(), lv_version_minor(), lv_version_patch());
lv_obj_align_to(label, logo, LV_ALIGN_OUT_RIGHT_TOP, 10, 0);
label = lv_label_create(tab_bar);
lv_label_set_text_static(label, "Widgets demo");
- lv_obj_add_flag(label, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(label, true);
lv_obj_add_style(label, &style_text_muted, 0);
lv_obj_align_to(label, logo, LV_ALIGN_OUT_RIGHT_BOTTOM, 10, 0);
}
@@ -142,7 +142,7 @@ static void color_changer_create(lv_obj_t * parent)
lv_obj_remove_style_all(color_cont);
lv_obj_set_flex_flow(color_cont, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(color_cont, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_add_flag(color_cont, LV_OBJ_FLAG_FLOATING);
+ lv_obj_set_floating(color_cont, true);
lv_obj_set_style_bg_color(color_cont, lv_color_white(), 0);
lv_obj_set_style_pad_right(color_cont, disp_size == DISP_SMALL ? LV_DPX(47) : LV_DPX(55), 0);
@@ -162,11 +162,12 @@ static void color_changer_create(lv_obj_t * parent)
lv_obj_set_style_opa(c, LV_OPA_TRANSP, 0);
lv_obj_set_size(c, 20, 20);
lv_obj_add_event_cb(c, color_event_cb, LV_EVENT_ALL, &palette[i]);
- lv_obj_remove_flag(c, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(c, false);
}
lv_obj_t * btn = lv_button_create(parent);
- lv_obj_add_flag(btn, LV_OBJ_FLAG_FLOATING | LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_floating(btn, true);
+ lv_obj_set_clickable(btn, true);
lv_obj_set_style_bg_color(btn, lv_color_white(), LV_STATE_CHECKED);
lv_obj_set_style_pad_all(btn, 10, 0);
lv_obj_set_style_radius(btn, LV_RADIUS_CIRCLE, 0);
diff --git a/demos/widgets/lv_demo_widgets_analytics.c b/demos/widgets/lv_demo_widgets_analytics.c
index c80f394791..6fa09b3b93 100644
--- a/demos/widgets/lv_demo_widgets_analytics.c
+++ b/demos/widgets/lv_demo_widgets_analytics.c
@@ -100,7 +100,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_height(chart2_cont, lv_pct(100));
lv_obj_set_style_max_height(chart2_cont, 300, 0);
lv_obj_set_flex_grow(chart2_cont, 1);
- lv_obj_add_flag(chart2_cont, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(chart2_cont, true);
static const char * chart2_texts[] = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", NULL};
chart2 = create_chart_with_scales(chart2_cont, "Monthly revenue", chart2_texts);
@@ -117,13 +117,13 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
/*Create all 3 scales first to have their size resolved*/
scale1 = create_scale_box(parent, "Monthly Target", "Revenue: -", "Sales: -", "Costs: -");
- lv_obj_add_flag(lv_obj_get_parent(scale1), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(lv_obj_get_parent(scale1), true);
scale2 = create_scale_box(parent, "Sessions", "Desktop: -", "Tablet: -", "Mobile: -");
- if(disp_size < DISP_LARGE) lv_obj_add_flag(lv_obj_get_parent(scale2), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(disp_size < DISP_LARGE) lv_obj_set_flex_in_new_track(lv_obj_get_parent(scale2), true);
scale3 = create_scale_box(parent, "Network Speed", "Low speed", "Normal Speed", "High Speed");
- if(disp_size < DISP_LARGE) lv_obj_add_flag(lv_obj_get_parent(scale3), LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ if(disp_size < DISP_LARGE) lv_obj_set_flex_in_new_track(lv_obj_get_parent(scale3), true);
lv_obj_update_layout(parent);
int32_t scale_w;
@@ -156,7 +156,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0);
lv_obj_set_style_arc_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
lv_anim_set_var(&a, arc);
@@ -171,7 +171,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0);
lv_obj_set_style_arc_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_center(arc);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
@@ -187,7 +187,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0);
lv_obj_set_style_arc_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_center(arc);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
@@ -211,7 +211,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 10, LV_PART_INDICATOR);
lv_obj_set_style_arc_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_center(arc);
arc = lv_arc_create(scale2);
@@ -223,7 +223,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 20, LV_PART_INDICATOR);
lv_obj_set_style_arc_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_center(arc);
arc = lv_arc_create(scale2);
@@ -234,7 +234,7 @@ void lv_demo_widgets_analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 30, LV_PART_INDICATOR);
lv_obj_set_style_arc_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_center(arc);
lv_timer_t * scale2_timer = lv_timer_create(scale2_timer_cb, 100, scale2);
@@ -543,7 +543,8 @@ static lv_obj_t * create_chart_with_scales(lv_obj_t * parent, const char * title
lv_obj_t * chart = lv_chart_create(wrapper);
lv_group_add_obj(lv_group_get_default(), chart);
- lv_obj_add_flag(chart, LV_OBJ_FLAG_SCROLL_ON_FOCUS | LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_scroll_on_focus(chart, true);
+ lv_obj_set_send_draw_task_events(chart, true);
lv_chart_set_div_line_count(chart, 0, 12);
lv_chart_set_point_count(chart, 12);
lv_obj_set_grid_cell(chart, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_STRETCH, 0, 1);
diff --git a/demos/widgets/lv_demo_widgets_profile.c b/demos/widgets/lv_demo_widgets_profile.c
index 47924b81d2..727293d7ce 100644
--- a/demos/widgets/lv_demo_widgets_profile.c
+++ b/demos/widgets/lv_demo_widgets_profile.c
@@ -93,7 +93,7 @@ void lv_demo_widgets_profile_create(lv_obj_t * parent)
/*Create a keyboard*/
lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
/*Create the second panel*/
lv_obj_t * panel2 = lv_obj_create(parent);
@@ -146,7 +146,7 @@ void lv_demo_widgets_profile_create(lv_obj_t * parent)
lv_obj_t * slider1 = lv_slider_create(panel3);
lv_obj_set_width(slider1, LV_PCT(95));
lv_obj_add_event_cb(slider1, slider_event_cb, LV_EVENT_ALL, NULL);
- lv_obj_add_flag(slider1, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(slider1, true);
lv_obj_refresh_ext_draw_size(slider1);
lv_obj_t * team_player_label = lv_label_create(panel3);
@@ -376,7 +376,7 @@ static void ta_event_cb(lv_event_t * e)
lv_obj_set_style_max_height(kb, LV_HOR_RES * 2 / 3, 0);
lv_obj_update_layout(tv); /*Be sure the sizes are recalculated*/
lv_obj_set_height(tv, LV_VER_RES - lv_obj_get_height(kb));
- lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, false);
lv_obj_scroll_to_view_recursive(ta, LV_ANIM_OFF);
lv_indev_wait_release(lv_event_get_param(e));
}
@@ -384,13 +384,13 @@ static void ta_event_cb(lv_event_t * e)
else if(code == LV_EVENT_DEFOCUSED) {
lv_keyboard_set_textarea(kb, NULL);
lv_obj_set_height(tv, LV_VER_RES);
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_indev_reset(NULL, ta);
}
else if(code == LV_EVENT_READY || code == LV_EVENT_CANCEL) {
lv_obj_set_height(tv, LV_VER_RES);
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_indev_reset(NULL, ta); /*To forget the last clicked object to make it focusable again*/
}
}
@@ -403,7 +403,7 @@ static void birthday_event_cb(lv_event_t * e)
if(code == LV_EVENT_FOCUSED) {
if(lv_indev_get_type(lv_indev_active()) == LV_INDEV_TYPE_POINTER) {
if(calendar == NULL) {
- lv_obj_add_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(lv_layer_top(), true);
calendar = lv_calendar_create(lv_layer_top());
lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_50, 0);
lv_obj_set_style_bg_color(lv_layer_top(), lv_palette_main(LV_PALETTE_GREY), 0);
@@ -434,7 +434,7 @@ static void calendar_event_cb(lv_event_t * e)
lv_obj_delete(calendar);
calendar = NULL;
- lv_obj_remove_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(lv_layer_top(), false);
lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_TRANSP, 0);
}
}
diff --git a/demos/widgets/lv_demo_widgets_shop.c b/demos/widgets/lv_demo_widgets_shop.c
index 3514199e76..debf01474d 100644
--- a/demos/widgets/lv_demo_widgets_shop.c
+++ b/demos/widgets/lv_demo_widgets_shop.c
@@ -146,7 +146,7 @@ void lv_demo_widgets_shop_create(lv_obj_t * parent)
lv_obj_t * list = lv_obj_create(parent);
if(disp_size == DISP_SMALL) {
- lv_obj_add_flag(list, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(list, true);
lv_obj_set_height(list, LV_PCT(100));
}
else {
@@ -156,7 +156,7 @@ void lv_demo_widgets_shop_create(lv_obj_t * parent)
lv_obj_set_flex_flow(list, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_grow(list, 1);
- lv_obj_add_flag(list, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(list, true);
title = lv_demo_widgets_title_create(list, "Top products");
@@ -169,7 +169,7 @@ void lv_demo_widgets_shop_create(lv_obj_t * parent)
lv_obj_t * notifications = lv_obj_create(parent);
if(disp_size == DISP_SMALL) {
- lv_obj_add_flag(notifications, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(notifications, true);
lv_obj_set_height(notifications, LV_PCT(100));
}
else {
diff --git a/docs/src/common-widget-features/flags.mdx b/docs/src/common-widget-features/flags.mdx
index 9028cea22e..60794ac373 100644
--- a/docs/src/common-widget-features/flags.mdx
+++ b/docs/src/common-widget-features/flags.mdx
@@ -3,6 +3,14 @@ title: Flags
description: Some widget attributes can be enabled or disabled using lv_obj_add_flag and lv_obj_remove_flag.
---
+
+Flags are deprecated in LVGL v9.6 and will be removed in LVGL v10.
+Use a dedicated function instead, such as .
+
+ and
+can be used to replace `LV_OBJ_FLAG_USER_1-4`.
+
+
Some widget attributes can be enabled or disabled using
and
.
diff --git a/docs/src/migration-v10.mdx b/docs/src/migration-v10.mdx
index 4e87d2c410..8f3f0bf97b 100644
--- a/docs/src/migration-v10.mdx
+++ b/docs/src/migration-v10.mdx
@@ -103,6 +103,26 @@ if you need finer control.
lv_obj_t * obj = lv_obj_find_by_name(parent, "my_widget");
```
+- The generic flag API — `lv_obj_add_flag()`, `lv_obj_remove_flag()`,
+ `lv_obj_set_flag()`, `lv_obj_has_flag()` and `lv_obj_has_flag_any()` — is
+ deprecated. Each flag now has a dedicated setter (`lv_obj_set_(obj, en)`)
+ and getter (`lv_obj_is_(obj)`):
+ ```c
+ /* Before */
+ lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_flag(obj, LV_OBJ_FLAG_SCROLLABLE, en);
+ bool h = lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN);
+
+ /* After */
+ lv_obj_set_hidden(obj, true);
+ lv_obj_set_clickable(obj, false);
+ lv_obj_set_scrollable(obj, en);
+ bool h = lv_obj_is_hidden(obj);
+ ```
+ The custom-bit flags (`LV_OBJ_FLAG_USER_1`–`4`) can be accessed via
+ `lv_obj_set/get_user_flag()`
+
---
## Widgets
diff --git a/examples/anim/lv_example_anim_2.c b/examples/anim/lv_example_anim_2.c
index 901a3a4db9..0de10829be 100644
--- a/examples/anim/lv_example_anim_2.c
+++ b/examples/anim/lv_example_anim_2.c
@@ -26,7 +26,7 @@ void lv_example_anim_2(void)
{
lv_obj_t * obj = lv_obj_create(lv_screen_active());
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(obj, false);
lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0);
lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0);
diff --git a/examples/anim/lv_example_anim_3.c b/examples/anim/lv_example_anim_3.c
index 0cff3f332e..e0e6625bbc 100644
--- a/examples/anim/lv_example_anim_3.c
+++ b/examples/anim/lv_example_anim_3.c
@@ -125,7 +125,7 @@ static void page_obj_init(lv_obj_t * par)
ginfo.anim_obj = lv_obj_create(par);
lv_obj_set_size(ginfo.anim_obj, 30, 30);
lv_obj_set_align(ginfo.anim_obj, LV_ALIGN_TOP_LEFT);
- lv_obj_remove_flag(ginfo.anim_obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(ginfo.anim_obj, false);
lv_obj_set_style_bg_color(ginfo.anim_obj, lv_palette_main(LV_PALETTE_RED), LV_PART_MAIN);
lv_obj_set_grid_cell(ginfo.anim_obj, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);
diff --git a/examples/anim/lv_example_anim_timeline_1.c b/examples/anim/lv_example_anim_timeline_1.c
index b5cf985fa7..e492ebd417 100644
--- a/examples/anim/lv_example_anim_timeline_1.c
+++ b/examples/anim/lv_example_anim_timeline_1.c
@@ -69,8 +69,8 @@ void lv_example_anim_timeline_1(void)
/* create btn_start */
lv_obj_t * btn_start = lv_button_create(par);
lv_obj_add_event_cb(btn_start, btn_start_event_handler, LV_EVENT_VALUE_CHANGED, anim_timeline);
- lv_obj_add_flag(btn_start, LV_OBJ_FLAG_IGNORE_LAYOUT);
- lv_obj_add_flag(btn_start, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_ignore_layout(btn_start, true);
+ lv_obj_set_checkable(btn_start, true);
lv_obj_align(btn_start, LV_ALIGN_TOP_MID, -100, 20);
lv_obj_t * label_start = lv_label_create(btn_start);
@@ -80,7 +80,7 @@ void lv_example_anim_timeline_1(void)
/* create btn_pause */
lv_obj_t * btn_pause = lv_button_create(par);
lv_obj_add_event_cb(btn_pause, btn_pause_event_handler, LV_EVENT_CLICKED, anim_timeline);
- lv_obj_add_flag(btn_pause, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(btn_pause, true);
lv_obj_align(btn_pause, LV_ALIGN_TOP_MID, 100, 20);
lv_obj_t * label_pause = lv_label_create(btn_pause);
@@ -90,7 +90,7 @@ void lv_example_anim_timeline_1(void)
/* create slider_prg */
lv_obj_t * slider_prg = lv_slider_create(par);
lv_obj_add_event_cb(slider_prg, slider_prg_event_handler, LV_EVENT_VALUE_CHANGED, anim_timeline);
- lv_obj_add_flag(slider_prg, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(slider_prg, true);
lv_obj_align(slider_prg, LV_ALIGN_BOTTOM_MID, 0, -20);
lv_slider_set_range(slider_prg, 0, LV_ANIM_TIMELINE_PROGRESS_MAX);
diff --git a/examples/event/lv_example_event_bubble.c b/examples/event/lv_example_event_bubble.c
index 9543e9de4b..0679db71f6 100644
--- a/examples/event/lv_example_event_bubble.c
+++ b/examples/event/lv_example_event_bubble.c
@@ -38,7 +38,7 @@ void lv_example_event_bubble(void)
for(i = 0; i < 30; i++) {
lv_obj_t * btn = lv_button_create(cont);
lv_obj_set_size(btn, 70, 50);
- lv_obj_add_flag(btn, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(btn, true);
lv_obj_t * label = lv_label_create(btn);
lv_label_set_text_fmt(label, "%" LV_PRIu32, i);
diff --git a/examples/event/lv_example_event_draw.c b/examples/event/lv_example_event_draw.c
index 7f76297c54..f13e9b5cbd 100644
--- a/examples/event/lv_example_event_draw.c
+++ b/examples/event/lv_example_event_draw.c
@@ -61,7 +61,7 @@ void lv_example_event_draw(void)
lv_obj_set_size(cont, 200, 200);
lv_obj_center(cont);
lv_obj_add_event_cb(cont, event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(cont, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(cont, true);
lv_timer_create(timer_cb, 30, cont);
}
diff --git a/examples/event/lv_example_event_trickle.c b/examples/event/lv_example_event_trickle.c
index d1990bf71f..057bed8109 100644
--- a/examples/event/lv_example_event_trickle.c
+++ b/examples/event/lv_example_event_trickle.c
@@ -25,7 +25,7 @@ void lv_example_event_trickle(void)
lv_style_set_bg_color(&style_black, lv_color_black());
/*Enable event trickle-down on the container*/
- lv_obj_add_flag(cont, LV_OBJ_FLAG_EVENT_TRICKLE);
+ lv_obj_set_event_trickle(cont, true);
lv_obj_add_style(cont, &style_black, LV_STATE_PRESSED);
diff --git a/examples/layouts/flex/lv_example_flex_ignore_layout.c b/examples/layouts/flex/lv_example_flex_ignore_layout.c
index a3c06c48ac..2c891dec4f 100644
--- a/examples/layouts/flex/lv_example_flex_ignore_layout.c
+++ b/examples/layouts/flex/lv_example_flex_ignore_layout.c
@@ -37,7 +37,7 @@ void lv_example_flex_ignore_layout(void)
align and does not occupy a flex slot. */
lv_obj_t * button_2 = lv_button_create(container);
lv_obj_set_align(button_2, LV_ALIGN_CENTER);
- lv_obj_set_flag(button_2, LV_OBJ_FLAG_IGNORE_LAYOUT, true);
+ lv_obj_set_ignore_layout(button_2, true);
lv_obj_set_style_bg_color(button_2, lv_color_hex(0xe74c3c), 0);
lv_obj_t * label_2 = lv_label_create(button_2);
lv_label_set_text(label_2, "I'm Free!");
diff --git a/examples/layouts/flex/lv_example_flex_new_track.c b/examples/layouts/flex/lv_example_flex_new_track.c
index d7427d904b..e2f405e7ea 100644
--- a/examples/layouts/flex/lv_example_flex_new_track.c
+++ b/examples/layouts/flex/lv_example_flex_new_track.c
@@ -66,7 +66,7 @@ void lv_example_flex_new_track(void)
/* Track 2 — forced onto a new track */
lv_obj_t * label_6 = lv_label_create(container);
- lv_obj_set_flag(label_6, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK, true);
+ lv_obj_set_flex_in_new_track(label_6, true);
lv_obj_set_style_bg_color(label_6, lv_color_hex(0xe74c3c), 0);
lv_label_set_text(label_6, "Sat");
lv_obj_add_style(label_6, &style_day, 0);
diff --git a/examples/layouts/grid/lv_example_grid_ignore_layout.c b/examples/layouts/grid/lv_example_grid_ignore_layout.c
index f19be9b2ef..f45b18874d 100644
--- a/examples/layouts/grid/lv_example_grid_ignore_layout.c
+++ b/examples/layouts/grid/lv_example_grid_ignore_layout.c
@@ -73,7 +73,7 @@ void lv_example_grid_ignore_layout(void)
lv_obj_add_style(label_4, &style_cell, 0);
lv_obj_t * label_5 = lv_label_create(container);
- lv_obj_set_flag(label_5, LV_OBJ_FLAG_IGNORE_LAYOUT, true);
+ lv_obj_set_ignore_layout(label_5, true);
lv_obj_set_align(label_5, LV_ALIGN_CENTER);
lv_obj_set_style_bg_color(label_5, lv_color_hex(0xe74c3c), 0);
lv_label_set_text(label_5, "FREE");
diff --git a/examples/layouts/split/lv_example_split.c b/examples/layouts/split/lv_example_split.c
index 17b5817f8e..d9641ddd33 100644
--- a/examples/layouts/split/lv_example_split.c
+++ b/examples/layouts/split/lv_example_split.c
@@ -47,7 +47,7 @@ void lv_example_split(void)
{
lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, lv_pct(100), lv_pct(100));
- lv_obj_remove_flag(cont, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(cont, false);
lv_obj_set_style_pad_all(cont, 0, 0);
lv_obj_set_style_border_width(cont, 0, 0);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW);
@@ -64,8 +64,7 @@ void lv_example_split(void)
/* Divider: the draggable handle */
lv_obj_t * divider = lv_obj_create(cont);
lv_obj_set_size(divider, SPLIT_DIVIDER_W, lv_pct(100));
- lv_obj_remove_flag(divider, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(divider, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_scrollable(divider, false);
lv_obj_set_style_radius(divider, 0, 0);
lv_obj_set_style_border_width(divider, 0, 0);
lv_obj_set_style_bg_color(divider, lv_palette_main(LV_PALETTE_GREY), 0);
diff --git a/examples/layouts/split/lv_example_split_vertical.c b/examples/layouts/split/lv_example_split_vertical.c
index bf0dbf25fc..d22a6ddf0b 100644
--- a/examples/layouts/split/lv_example_split_vertical.c
+++ b/examples/layouts/split/lv_example_split_vertical.c
@@ -46,7 +46,7 @@ void lv_example_split_vertical(void)
{
lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, lv_pct(100), lv_pct(100));
- lv_obj_remove_flag(cont, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(cont, false);
lv_obj_set_style_pad_all(cont, 0, 0);
lv_obj_set_style_border_width(cont, 0, 0);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN);
@@ -63,8 +63,7 @@ void lv_example_split_vertical(void)
/* Divider: the draggable handle */
lv_obj_t * divider = lv_obj_create(cont);
lv_obj_set_size(divider, lv_pct(100), SPLIT_DIVIDER_H);
- lv_obj_remove_flag(divider, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(divider, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_scrollable(divider, false);
lv_obj_set_style_radius(divider, 0, 0);
lv_obj_set_style_border_width(divider, 0, 0);
lv_obj_set_style_bg_color(divider, lv_palette_main(LV_PALETTE_GREY), 0);
diff --git a/examples/others/file_explorer/lv_example_file_explorer_2.c b/examples/others/file_explorer/lv_example_file_explorer_2.c
index 741041efde..a4d969e326 100644
--- a/examples/others/file_explorer/lv_example_file_explorer_2.c
+++ b/examples/others/file_explorer/lv_example_file_explorer_2.c
@@ -28,9 +28,9 @@ static void btn_event_handler(lv_event_t * e)
if(code == LV_EVENT_VALUE_CHANGED) {
if(lv_obj_has_state(btn, LV_STATE_CHECKED))
- lv_obj_add_flag(file_explorer, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(file_explorer, true);
else
- lv_obj_remove_flag(file_explorer, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(file_explorer, false);
}
}
@@ -134,7 +134,7 @@ void lv_example_file_explorer_2(void)
lv_obj_set_style_radius(btn, 2, 0);
lv_obj_set_style_pad_all(btn, 4, 0);
lv_obj_align(btn, LV_ALIGN_LEFT_MID, 0, 0);
- lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_checkable(btn, true);
lv_obj_t * label = lv_label_create(btn);
lv_label_set_text(label, LV_SYMBOL_LIST);
diff --git a/examples/others/gestures/lv_example_gestures.c b/examples/others/gestures/lv_example_gestures.c
index 67d83e6bb4..0ce4168235 100644
--- a/examples/others/gestures/lv_example_gestures.c
+++ b/examples/others/gestures/lv_example_gestures.c
@@ -93,10 +93,10 @@ void lv_example_gestures(void)
lv_obj_set_style_bg_color(root_view, lv_color_hex(0xffffff), LV_PART_MAIN);
label = lv_label_create(root_view);
- lv_obj_remove_flag(root_view, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(root_view, false);
lv_label_set_text(label, "Zoom, rotate or move");
- lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(label, true);
lv_style_init(&label_style);
lv_style_set_bg_color(&label_style, lv_color_hex(RECT_COLOR));
diff --git a/examples/others/gridnav/lv_example_gridnav_1.c b/examples/others/gridnav/lv_example_gridnav_1.c
index 66b9157654..44c3dfe4a0 100644
--- a/examples/others/gridnav/lv_example_gridnav_1.c
+++ b/examples/others/gridnav/lv_example_gridnav_1.c
@@ -35,7 +35,7 @@ void lv_example_gridnav_1(void)
for(i = 0; i < 10; i++) {
lv_obj_t * obj = lv_button_create(cont1);
lv_obj_set_size(obj, 70, LV_SIZE_CONTENT);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_checkable(obj, true);
lv_group_remove_obj(obj); /*Not needed, we use the gridnav instead*/
label = lv_label_create(obj);
diff --git a/examples/others/ime/lv_example_ime_pinyin_1.c b/examples/others/ime/lv_example_ime_pinyin_1.c
index 02f24d5a68..92190d31cc 100644
--- a/examples/others/ime/lv_example_ime_pinyin_1.c
+++ b/examples/others/ime/lv_example_ime_pinyin_1.c
@@ -10,11 +10,11 @@ static void ta_event_cb(lv_event_t * e)
if(code == LV_EVENT_FOCUSED) {
if(lv_indev_get_type(lv_indev_active()) != LV_INDEV_TYPE_KEYPAD) {
lv_keyboard_set_textarea(kb, ta);
- lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, false);
}
}
else if(code == LV_EVENT_CANCEL) {
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_obj_remove_state(ta, LV_STATE_FOCUSED);
lv_indev_reset(NULL, ta); /*To forget the last clicked object to make it focusable again*/
}
diff --git a/examples/others/ime/lv_example_ime_pinyin_2.c b/examples/others/ime/lv_example_ime_pinyin_2.c
index dbc43a2d5f..0d754b2cb4 100644
--- a/examples/others/ime/lv_example_ime_pinyin_2.c
+++ b/examples/others/ime/lv_example_ime_pinyin_2.c
@@ -10,11 +10,11 @@ static void ta_event_cb(lv_event_t * e)
if(code == LV_EVENT_FOCUSED) {
if(lv_indev_get_type(lv_indev_active()) != LV_INDEV_TYPE_KEYPAD) {
lv_keyboard_set_textarea(kb, ta);
- lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, false);
}
}
else if(code == LV_EVENT_READY) {
- lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(kb, true);
lv_obj_remove_state(ta, LV_STATE_FOCUSED);
lv_indev_reset(NULL, ta); /*To forget the last clicked object to make it focusable again*/
}
diff --git a/examples/others/observer/lv_example_observer_2.c b/examples/others/observer/lv_example_observer_2.c
index 1f1ae8ab62..ebca0f8ea8 100644
--- a/examples/others/observer/lv_example_observer_2.c
+++ b/examples/others/observer/lv_example_observer_2.c
@@ -135,7 +135,7 @@ static void ui_init(void)
/*Create button which will be active only when logged in*/
btn = lv_button_create(lv_screen_active());
lv_obj_set_pos(btn, 10, 80);
- lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_checkable(btn, true);
lv_obj_bind_state_if_not_eq(btn, &auth_state_subject, LV_STATE_DISABLED, LOGGED_IN);
lv_obj_bind_checked(btn, &engine_subject);
label = lv_label_create(btn);
diff --git a/examples/others/observer/lv_example_observer_3.c b/examples/others/observer/lv_example_observer_3.c
index 05f5940fa1..377345fe44 100644
--- a/examples/others/observer/lv_example_observer_3.c
+++ b/examples/others/observer/lv_example_observer_3.c
@@ -82,7 +82,7 @@ static void set_btn_clicked_event_cb(lv_event_t * e)
lv_obj_align(cont, LV_ALIGN_BOTTOM_MID, 0, 0);
lv_obj_t * hour_roller = lv_roller_create(cont);
- lv_obj_add_flag(hour_roller, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(hour_roller, true);
lv_subject_add_observer_obj(&format_subject, hour_roller_options_update, hour_roller, NULL);
lv_roller_bind_value(hour_roller, &hour_subject);
lv_obj_set_pos(hour_roller, 0, 0);
diff --git a/examples/others/observer/lv_example_observer_4.c b/examples/others/observer/lv_example_observer_4.c
index 9a3cb35101..180df1e103 100644
--- a/examples/others/observer/lv_example_observer_4.c
+++ b/examples/others/observer/lv_example_observer_4.c
@@ -69,7 +69,7 @@ void lv_example_observer_4(void)
lv_subject_add_observer_obj(¤t_tab_subject, indicator_observer_cb, indicator, NULL);
lv_obj_set_height(indicator, 10);
lv_obj_align(indicator, LV_ALIGN_BOTTOM_LEFT, 0, 0);
- lv_obj_add_flag(indicator, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(indicator, true);
/*Be sure the indicator has the correct size*/
lv_obj_update_layout(indicator);
diff --git a/examples/others/observer/lv_example_observer_5.c b/examples/others/observer/lv_example_observer_5.c
index d8d63df4d4..eb19dacb6c 100644
--- a/examples/others/observer/lv_example_observer_5.c
+++ b/examples/others/observer/lv_example_observer_5.c
@@ -103,7 +103,7 @@ static void fw_update_win_observer_cb(lv_observer_t * observer, lv_subject_t * s
lv_arc_bind_value(arc, &fw_download_percent_subject);
lv_obj_center(arc);
lv_obj_set_size(arc, 130, 130);
- lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(arc, false);
lv_obj_t * label = lv_label_create(cont);
lv_label_bind_text(label, &fw_download_percent_subject, "%d %%");
diff --git a/examples/others/snapshot/lv_example_snapshot_1.c b/examples/others/snapshot/lv_example_snapshot_1.c
index 973fdee490..c23338cc13 100644
--- a/examples/others/snapshot/lv_example_snapshot_1.c
+++ b/examples/others/snapshot/lv_example_snapshot_1.c
@@ -62,7 +62,7 @@ void lv_example_snapshot_1(void)
lv_obj_set_style_bg_color(img, lv_color_black(), 0);
lv_obj_set_style_bg_opa(img, LV_OPA_COVER, 0);
// lv_obj_set_style_transform_scale(img, 400, LV_STATE_PRESSED);
- lv_obj_add_flag(img, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(img, true);
lv_obj_add_event_cb(img, event_cb, LV_EVENT_PRESSED, snapshot_obj);
lv_obj_add_event_cb(img, event_cb, LV_EVENT_RELEASED, snapshot_obj);
}
diff --git a/examples/scroll/lv_example_scroll_chain.c b/examples/scroll/lv_example_scroll_chain.c
index 2adf3752ce..0544293563 100644
--- a/examples/scroll/lv_example_scroll_chain.c
+++ b/examples/scroll/lv_example_scroll_chain.c
@@ -40,7 +40,7 @@ void lv_example_scroll_chain(void)
lv_obj_set_size(container_2, lv_pct(100), 90);
lv_obj_set_flex_flow(container_2, LV_FLEX_FLOW_COLUMN);
lv_obj_set_style_pad_row(container_2, 6, 0);
- lv_obj_set_flag(container_2, LV_OBJ_FLAG_SCROLL_CHAIN, false);
+ lv_obj_set_scroll_chain(container_2, false);
lv_obj_set_style_border_color(container_2, lv_color_hex(0x9429ff), 0);
lv_obj_set_style_border_width(container_2, 2, 0);
lv_obj_t * button_2 = lv_button_create(container_2);
diff --git a/examples/scroll/lv_example_scroll_floating.c b/examples/scroll/lv_example_scroll_floating.c
index abf8c6967e..5faaaa5662 100644
--- a/examples/scroll/lv_example_scroll_floating.c
+++ b/examples/scroll/lv_example_scroll_floating.c
@@ -79,7 +79,7 @@ void lv_example_scroll_floating(void)
lv_obj_t * button_7 = lv_button_create(container);
lv_obj_set_size(button_7, 44, 44);
lv_obj_set_align(button_7, LV_ALIGN_BOTTOM_RIGHT);
- lv_obj_set_flag(button_7, LV_OBJ_FLAG_FLOATING, true);
+ lv_obj_set_floating(button_7, true);
lv_obj_set_style_bg_color(button_7, lv_color_hex(0x9429ff), 0);
lv_obj_add_style(button_7, &style_fab, 0);
lv_obj_t * label_7 = lv_label_create(button_7);
diff --git a/examples/scroll/lv_example_scroll_one.c b/examples/scroll/lv_example_scroll_one.c
index 9ba177407b..2483a72781 100644
--- a/examples/scroll/lv_example_scroll_one.c
+++ b/examples/scroll/lv_example_scroll_one.c
@@ -30,66 +30,66 @@ void lv_example_scroll_one(void)
lv_obj_set_flex_flow(container, LV_FLEX_FLOW_ROW);
lv_obj_set_style_pad_column(container, 10, 0);
lv_obj_set_scroll_snap_x(container, LV_SCROLL_SNAP_CENTER);
- lv_obj_set_flag(container, LV_OBJ_FLAG_SCROLL_ONE, true);
+ lv_obj_set_scroll_one(container, true);
lv_obj_t * button_1 = lv_button_create(container);
lv_obj_set_size(button_1, 80, lv_pct(100));
- lv_obj_set_flag(button_1, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_1, false);
lv_obj_t * label_1 = lv_label_create(button_1);
lv_obj_set_align(label_1, LV_ALIGN_CENTER);
lv_label_set_text(label_1, "Panel 1");
lv_obj_t * button_2 = lv_button_create(container);
lv_obj_set_size(button_2, 80, lv_pct(100));
- lv_obj_set_flag(button_2, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_2, false);
lv_obj_t * label_2 = lv_label_create(button_2);
lv_obj_set_align(label_2, LV_ALIGN_CENTER);
lv_label_set_text(label_2, "Panel 2");
lv_obj_t * button_3 = lv_button_create(container);
lv_obj_set_size(button_3, 80, lv_pct(100));
- lv_obj_set_flag(button_3, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_3, false);
lv_obj_t * label_3 = lv_label_create(button_3);
lv_obj_set_align(label_3, LV_ALIGN_CENTER);
lv_label_set_text(label_3, "Panel 3");
lv_obj_t * button_4 = lv_button_create(container);
lv_obj_set_size(button_4, 80, lv_pct(100));
- lv_obj_set_flag(button_4, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_4, false);
lv_obj_t * label_4 = lv_label_create(button_4);
lv_obj_set_align(label_4, LV_ALIGN_CENTER);
lv_label_set_text(label_4, "Panel 4");
lv_obj_t * button_5 = lv_button_create(container);
lv_obj_set_size(button_5, 80, lv_pct(100));
- lv_obj_set_flag(button_5, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_5, false);
lv_obj_t * label_5 = lv_label_create(button_5);
lv_obj_set_align(label_5, LV_ALIGN_CENTER);
lv_label_set_text(label_5, "Panel 5");
lv_obj_t * button_6 = lv_button_create(container);
lv_obj_set_size(button_6, 80, lv_pct(100));
- lv_obj_set_flag(button_6, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_6, false);
lv_obj_t * label_6 = lv_label_create(button_6);
lv_obj_set_align(label_6, LV_ALIGN_CENTER);
lv_label_set_text(label_6, "Panel 6");
lv_obj_t * button_7 = lv_button_create(container);
lv_obj_set_size(button_7, 80, lv_pct(100));
- lv_obj_set_flag(button_7, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_7, false);
lv_obj_t * label_7 = lv_label_create(button_7);
lv_obj_set_align(label_7, LV_ALIGN_CENTER);
lv_label_set_text(label_7, "Panel 7");
lv_obj_t * button_8 = lv_button_create(container);
lv_obj_set_size(button_8, 80, lv_pct(100));
- lv_obj_set_flag(button_8, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_8, false);
lv_obj_t * label_8 = lv_label_create(button_8);
lv_obj_set_align(label_8, LV_ALIGN_CENTER);
lv_label_set_text(label_8, "Panel 8");
lv_obj_t * button_9 = lv_button_create(container);
lv_obj_set_size(button_9, 80, lv_pct(100));
- lv_obj_set_flag(button_9, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_9, false);
lv_obj_t * label_9 = lv_label_create(button_9);
lv_obj_set_align(label_9, LV_ALIGN_CENTER);
lv_label_set_text(label_9, "Panel 9");
diff --git a/examples/scroll/lv_example_scroll_properties.c b/examples/scroll/lv_example_scroll_properties.c
index 9632093d26..c6b2483b74 100644
--- a/examples/scroll/lv_example_scroll_properties.c
+++ b/examples/scroll/lv_example_scroll_properties.c
@@ -3,14 +3,26 @@
static lv_obj_t * list;
+typedef void (*scroll_flag_setter_t)(lv_obj_t *, bool);
+
+static const struct {
+ const char * title;
+ scroll_flag_setter_t setter;
+} scroll_flags[] = {
+ { "Scrollable", lv_obj_set_scrollable },
+ { "Scroll chain", lv_obj_set_scroll_chain },
+ { "Elastic scroll", lv_obj_set_scroll_elastic },
+ { "Scroll momentum", lv_obj_set_scroll_momentum },
+};
+
static void flag_switch_cb(lv_event_t * e)
{
lv_obj_t * sw = lv_event_get_target_obj(e);
- lv_obj_flag_t flag = (lv_obj_flag_t)(lv_uintptr_t)lv_event_get_user_data(e);
- lv_obj_set_flag(list, flag, lv_obj_has_state(sw, LV_STATE_CHECKED));
+ uint32_t idx = (uint32_t)(lv_uintptr_t)lv_event_get_user_data(e);
+ scroll_flags[idx].setter(list, lv_obj_has_state(sw, LV_STATE_CHECKED));
}
-static void add_flag_row(lv_obj_t * parent, const char * title, lv_obj_flag_t flag)
+static void add_flag_row(lv_obj_t * parent, uint32_t idx)
{
lv_obj_t * row = lv_obj_create(parent);
lv_obj_remove_style_all(row);
@@ -19,13 +31,13 @@ static void add_flag_row(lv_obj_t * parent, const char * title, lv_obj_flag_t fl
lv_obj_set_flex_align(row, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
lv_obj_t * label = lv_label_create(row);
- lv_label_set_text(label, title);
+ lv_label_set_text(label, scroll_flags[idx].title);
lv_obj_set_flex_grow(label, 1);
lv_obj_t * sw = lv_switch_create(row);
lv_obj_add_state(sw, LV_STATE_CHECKED); /* flags start enabled */
- lv_obj_add_flag(list, flag);
- lv_obj_add_event_cb(sw, flag_switch_cb, LV_EVENT_VALUE_CHANGED, (void *)(lv_uintptr_t)flag);
+ scroll_flags[idx].setter(list, true);
+ lv_obj_add_event_cb(sw, flag_switch_cb, LV_EVENT_VALUE_CHANGED, (void *)(lv_uintptr_t)idx);
}
/**
@@ -34,9 +46,10 @@ static void add_flag_row(lv_obj_t * parent, const char * title, lv_obj_flag_t fl
*
* These four flags change how a Widget reacts to scrolling but only show
* their effect through interaction, so one example covers them together.
- * A scrollable list sits above four switches; each switch adds or removes
- * its flag on the list with `lv_obj_set_flag`, so the change can be felt
- * immediately by dragging the list.
+ * A scrollable list sits above four switches; each switch toggles the
+ * corresponding behaviour on the list with its dedicated setter (e.g.
+ * `lv_obj_set_scrollable`), so the change can be felt immediately by dragging
+ * the list.
*/
void lv_example_scroll_properties(void)
{
@@ -56,10 +69,9 @@ void lv_example_scroll_properties(void)
lv_obj_center(label);
}
- add_flag_row(panel, "Scrollable", LV_OBJ_FLAG_SCROLLABLE);
- add_flag_row(panel, "Scroll chain", LV_OBJ_FLAG_SCROLL_CHAIN);
- add_flag_row(panel, "Elastic scroll", LV_OBJ_FLAG_SCROLL_ELASTIC);
- add_flag_row(panel, "Scroll momentum", LV_OBJ_FLAG_SCROLL_MOMENTUM);
+ for(uint32_t i = 0; i < sizeof(scroll_flags) / sizeof(scroll_flags[0]); i++) {
+ add_flag_row(panel, i);
+ }
}
-#endif
\ No newline at end of file
+#endif
diff --git a/examples/scroll/lv_example_scroll_scrollable.c b/examples/scroll/lv_example_scroll_scrollable.c
index fdbee2c34e..a4803901bb 100644
--- a/examples/scroll/lv_example_scroll_scrollable.c
+++ b/examples/scroll/lv_example_scroll_scrollable.c
@@ -66,7 +66,7 @@ void lv_example_scroll_scrollable(void)
lv_obj_set_size(container_3, 130, lv_pct(100));
lv_obj_set_flex_flow(container_3, LV_FLEX_FLOW_COLUMN);
lv_obj_set_style_pad_row(container_3, 8, 0);
- lv_obj_set_flag(container_3, LV_OBJ_FLAG_SCROLLABLE, false);
+ lv_obj_set_scrollable(container_3, false);
lv_obj_set_style_border_color(container_3, lv_color_hex(0x9429ff), 0);
lv_obj_set_style_border_width(container_3, 2, 0);
lv_obj_t * label_6 = lv_label_create(container_3);
diff --git a/examples/scroll/lv_example_scroll_snap.c b/examples/scroll/lv_example_scroll_snap.c
index 0b7a066fd0..8cc487eec7 100644
--- a/examples/scroll/lv_example_scroll_snap.c
+++ b/examples/scroll/lv_example_scroll_snap.c
@@ -31,44 +31,44 @@ void lv_example_scroll_snap(void)
lv_obj_set_scroll_snap_x(container, LV_SCROLL_SNAP_CENTER);
lv_obj_t * button_1 = lv_button_create(container);
lv_obj_set_size(button_1, 120, lv_pct(100));
- lv_obj_set_flag(button_1, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_1, false);
lv_obj_t * label_1 = lv_label_create(button_1);
lv_obj_set_align(label_1, LV_ALIGN_CENTER);
lv_label_set_text(label_1, "Panel 1");
lv_obj_t * button_2 = lv_button_create(container);
lv_obj_set_size(button_2, 120, lv_pct(100));
- lv_obj_set_flag(button_2, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_2, false);
lv_obj_t * label_2 = lv_label_create(button_2);
lv_obj_set_align(label_2, LV_ALIGN_CENTER);
lv_label_set_text(label_2, "Panel 2");
lv_obj_t * button_3 = lv_button_create(container);
lv_obj_set_size(button_3, 120, lv_pct(100));
- lv_obj_set_flag(button_3, LV_OBJ_FLAG_SNAPPABLE, false);
+ lv_obj_set_snappable(button_3, false);
lv_obj_set_style_bg_color(button_3, lv_color_hex(0x9429ff), 0);
- lv_obj_set_flag(button_3, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_3, false);
lv_obj_t * label_3 = lv_label_create(button_3);
lv_obj_set_align(label_3, LV_ALIGN_CENTER);
lv_label_set_text(label_3, "No snap");
lv_obj_t * button_4 = lv_button_create(container);
lv_obj_set_size(button_4, 120, lv_pct(100));
- lv_obj_set_flag(button_4, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_4, false);
lv_obj_t * label_4 = lv_label_create(button_4);
lv_obj_set_align(label_4, LV_ALIGN_CENTER);
lv_label_set_text(label_4, "Panel 4");
lv_obj_t * button_5 = lv_button_create(container);
lv_obj_set_size(button_5, 120, lv_pct(100));
- lv_obj_set_flag(button_5, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_5, false);
lv_obj_t * label_5 = lv_label_create(button_5);
lv_obj_set_align(label_5, LV_ALIGN_CENTER);
lv_label_set_text(label_5, "Panel 5");
lv_obj_t * button_6 = lv_button_create(container);
lv_obj_set_size(button_6, 120, lv_pct(100));
- lv_obj_set_flag(button_6, LV_OBJ_FLAG_SCROLL_ON_FOCUS, false);
+ lv_obj_set_scroll_on_focus(button_6, false);
lv_obj_t * label_6 = lv_label_create(button_6);
lv_obj_set_align(label_6, LV_ALIGN_CENTER);
lv_label_set_text(label_6, "Panel 6");
diff --git a/examples/styles/lv_example_style_transform_card.c b/examples/styles/lv_example_style_transform_card.c
index d71df56637..5cbe028264 100644
--- a/examples/styles/lv_example_style_transform_card.c
+++ b/examples/styles/lv_example_style_transform_card.c
@@ -107,7 +107,7 @@ void lv_example_style_transform_card(void)
lv_arc_set_range(arc, 0, 270);
lv_arc_set_value(arc, 225);
lv_obj_add_event_cb(arc, arc_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
- lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST);
+ lv_obj_set_adv_hittest(arc, true);
lv_obj_center(arc);
lv_obj_t * slider = lv_slider_create(lv_screen_active());
@@ -126,9 +126,9 @@ static lv_obj_t * card_create(void)
{
lv_obj_t * card = lv_obj_create(lv_screen_active());
lv_obj_add_style(card, &style_card, 0);
- lv_obj_remove_flag(card, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_remove_flag(card, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_remove_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
+ lv_obj_set_clickable(card, false);
+ lv_obj_set_scrollable(card, false);
+ lv_obj_set_scroll_chain_hor(card, false);
lv_obj_t * avatar = lv_image_create(card);
lv_image_set_src(avatar, &img_transform_avatar_15);
@@ -141,7 +141,7 @@ static lv_obj_t * card_create(void)
lv_obj_set_style_text_font(name, LV_FONT_DEFAULT, 0);
lv_obj_t * btn = lv_button_create(card);
- lv_obj_remove_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
+ lv_obj_set_scroll_chain_hor(card, false);
lv_obj_set_grid_cell(btn, LV_GRID_ALIGN_START, 2, 1, LV_GRID_ALIGN_CENTER, 3, 1);
lv_obj_add_style(btn, &style_btn, 0);
diff --git a/examples/widgets/arc/lv_example_arc_bind_value.c b/examples/widgets/arc/lv_example_arc_bind_value.c
index 40a6fd84c2..94b57225fd 100644
--- a/examples/widgets/arc/lv_example_arc_bind_value.c
+++ b/examples/widgets/arc/lv_example_arc_bind_value.c
@@ -38,7 +38,7 @@ void lv_example_arc_bind_value(void)
lv_obj_t * arc = lv_arc_create(screen);
lv_obj_set_size(arc, 160, 160);
lv_arc_bind_value(arc, &subject_value);
- lv_obj_set_flag(arc, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc, false);
lv_obj_set_style_bg_opa(arc, (255 * 0 / 100), LV_PART_KNOB);
lv_obj_t * lv_label_0 = lv_label_create(arc);
lv_obj_set_align(lv_label_0, LV_ALIGN_CENTER);
diff --git a/examples/widgets/arc/lv_example_arc_pie_chart.c b/examples/widgets/arc/lv_example_arc_pie_chart.c
index df56e37739..b6aa038303 100644
--- a/examples/widgets/arc/lv_example_arc_pie_chart.c
+++ b/examples/widgets/arc/lv_example_arc_pie_chart.c
@@ -54,7 +54,7 @@ void lv_example_arc_pie_chart(void)
/* 5 slices with uneven sweeps so the colours look like a real data breakdown.
Angles measured clockwise from 3 o'clock; the seam between E and A is at 12 o'clock (270°). */
lv_obj_t * arc_1 = lv_arc_create(screen);
- lv_obj_set_flag(arc_1, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc_1, false);
lv_arc_set_bg_start_angle(arc_1, 270);
lv_arc_set_bg_end_angle(arc_1, 325);
lv_obj_set_style_arc_color(arc_1, lv_color_hex(0xef4444), LV_PART_MAIN);
@@ -63,7 +63,7 @@ void lv_example_arc_pie_chart(void)
lv_obj_add_style(arc_1, &style_pie_knob, LV_PART_KNOB);
lv_obj_t * arc_2 = lv_arc_create(screen);
- lv_obj_set_flag(arc_2, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc_2, false);
lv_arc_set_bg_start_angle(arc_2, 325);
lv_arc_set_bg_end_angle(arc_2, 38);
lv_obj_set_style_arc_color(arc_2, lv_color_hex(0xf59e0b), LV_PART_MAIN);
@@ -72,7 +72,7 @@ void lv_example_arc_pie_chart(void)
lv_obj_add_style(arc_2, &style_pie_knob, LV_PART_KNOB);
lv_obj_t * arc_3 = lv_arc_create(screen);
- lv_obj_set_flag(arc_3, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc_3, false);
lv_arc_set_bg_start_angle(arc_3, 38);
lv_arc_set_bg_end_angle(arc_3, 162);
lv_obj_set_style_arc_color(arc_3, lv_color_hex(0x22c55e), LV_PART_MAIN);
@@ -81,7 +81,7 @@ void lv_example_arc_pie_chart(void)
lv_obj_add_style(arc_3, &style_pie_knob, LV_PART_KNOB);
lv_obj_t * arc_4 = lv_arc_create(screen);
- lv_obj_set_flag(arc_4, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc_4, false);
lv_arc_set_bg_start_angle(arc_4, 162);
lv_arc_set_bg_end_angle(arc_4, 190);
lv_obj_set_style_arc_color(arc_4, lv_color_hex(0x3b82f6), LV_PART_MAIN);
@@ -90,7 +90,7 @@ void lv_example_arc_pie_chart(void)
lv_obj_add_style(arc_4, &style_pie_knob, LV_PART_KNOB);
lv_obj_t * arc_5 = lv_arc_create(screen);
- lv_obj_set_flag(arc_5, LV_OBJ_FLAG_CLICKABLE, false);
+ lv_obj_set_clickable(arc_5, false);
lv_arc_set_bg_start_angle(arc_5, 190);
lv_arc_set_bg_end_angle(arc_5, 270);
lv_obj_set_style_arc_color(arc_5, lv_color_hex(0xa855f7), LV_PART_MAIN);
diff --git a/examples/widgets/button/lv_example_button_states.c b/examples/widgets/button/lv_example_button_states.c
index 891336e7b3..96a23f9ac2 100644
--- a/examples/widgets/button/lv_example_button_states.c
+++ b/examples/widgets/button/lv_example_button_states.c
@@ -32,7 +32,7 @@ void lv_example_button_states(void)
/* Checkable, starts checked */
lv_obj_t * button_2 = lv_button_create(screen);
lv_obj_set_size(button_2, 160, 40);
- lv_obj_set_flag(button_2, LV_OBJ_FLAG_CHECKABLE, true);
+ lv_obj_set_checkable(button_2, true);
lv_obj_set_state(button_2, LV_STATE_CHECKED, true);
lv_obj_t * label_2 = lv_label_create(button_2);
lv_obj_set_align(label_2, LV_ALIGN_CENTER);
diff --git a/examples/widgets/button/lv_example_button_styling.c b/examples/widgets/button/lv_example_button_styling.c
index 838c53b84e..07c50214a7 100644
--- a/examples/widgets/button/lv_example_button_styling.c
+++ b/examples/widgets/button/lv_example_button_styling.c
@@ -71,7 +71,7 @@ void lv_example_button_styling(void)
/* Checkable button: swaps to the checked style on toggle */
lv_obj_t * button_2 = lv_button_create(screen);
lv_obj_set_size(button_2, 180, 48);
- lv_obj_set_flag(button_2, LV_OBJ_FLAG_CHECKABLE, true);
+ lv_obj_set_checkable(button_2, true);
lv_obj_add_style(button_2, &style_button, 0);
lv_obj_add_style(button_2, &style_button_pressed, LV_STATE_PRESSED);
lv_obj_add_style(button_2, &style_button_checked, LV_STATE_CHECKED);
diff --git a/examples/widgets/chart/lv_example_chart_area_gradient.c b/examples/widgets/chart/lv_example_chart_area_gradient.c
index 49e2d7230a..106e6b8b61 100644
--- a/examples/widgets/chart/lv_example_chart_area_gradient.c
+++ b/examples/widgets/chart/lv_example_chart_area_gradient.c
@@ -33,7 +33,7 @@ void lv_example_chart_area_gradient(void)
lv_chart_set_div_line_count(chart, 5, 7);
lv_obj_add_event_cb(chart, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(chart, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(chart, true);
lv_chart_series_t * ser = lv_chart_add_series(chart, lv_palette_main(LV_PALETTE_RED), LV_CHART_AXIS_PRIMARY_Y);
diff --git a/examples/widgets/chart/lv_example_chart_recolor_bars.c b/examples/widgets/chart/lv_example_chart_recolor_bars.c
index 6c4936b4e6..c265646108 100644
--- a/examples/widgets/chart/lv_example_chart_recolor_bars.c
+++ b/examples/widgets/chart/lv_example_chart_recolor_bars.c
@@ -44,7 +44,7 @@ void lv_example_chart_recolor_bars(void)
lv_chart_series_t * ser = lv_chart_add_series(chart, lv_color_hex(0xff0000), LV_CHART_AXIS_PRIMARY_Y);
lv_obj_add_event_cb(chart, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(chart, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(chart, true);
uint32_t i;
for(i = 0; i < 24; i++) {
diff --git a/examples/widgets/chart/lv_example_chart_scatter.c b/examples/widgets/chart/lv_example_chart_scatter.c
index 0f859f1385..c59f23c6eb 100644
--- a/examples/widgets/chart/lv_example_chart_scatter.c
+++ b/examples/widgets/chart/lv_example_chart_scatter.c
@@ -56,7 +56,7 @@ void lv_example_chart_scatter(void)
lv_obj_set_size(chart, 200, 150);
lv_obj_align(chart, LV_ALIGN_CENTER, 0, 0);
lv_obj_add_event_cb(chart, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(chart, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(chart, true);
lv_obj_set_style_line_width(chart, 0, LV_PART_ITEMS); /*Remove the lines*/
lv_chart_set_type(chart, LV_CHART_TYPE_SCATTER);
diff --git a/examples/widgets/keyboard/lv_example_keyboard_custom_draw.c b/examples/widgets/keyboard/lv_example_keyboard_custom_draw.c
index f298057365..dc492411ec 100644
--- a/examples/widgets/keyboard/lv_example_keyboard_custom_draw.c
+++ b/examples/widgets/keyboard/lv_example_keyboard_custom_draw.c
@@ -65,7 +65,7 @@ void lv_example_keyboard_custom_draw(void)
{
lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
lv_obj_add_event_cb(kb, event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(kb, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(kb, true);
lv_obj_center(kb);
}
diff --git a/examples/widgets/menu/lv_example_menu_floating_button.c b/examples/widgets/menu/lv_example_menu_floating_button.c
index fbbf9a0bcb..269eff1614 100644
--- a/examples/widgets/menu/lv_example_menu_floating_button.c
+++ b/examples/widgets/menu/lv_example_menu_floating_button.c
@@ -71,7 +71,7 @@ void lv_example_menu_floating_button(void)
/*Create floating btn*/
lv_obj_t * float_btn = lv_button_create(lv_screen_active());
lv_obj_set_size(float_btn, 50, 50);
- lv_obj_add_flag(float_btn, LV_OBJ_FLAG_FLOATING);
+ lv_obj_set_floating(float_btn, true);
lv_obj_align(float_btn, LV_ALIGN_BOTTOM_RIGHT, -10, -10);
lv_obj_add_event_cb(float_btn, float_button_event_cb, LV_EVENT_CLICKED, menu);
lv_obj_set_style_radius(float_btn, LV_RADIUS_CIRCLE, 0);
diff --git a/examples/widgets/menu/lv_example_menu_sidebar.c b/examples/widgets/menu/lv_example_menu_sidebar.c
index 6907d43e0d..0dd1f6cfb4 100644
--- a/examples/widgets/menu/lv_example_menu_sidebar.c
+++ b/examples/widgets/menu/lv_example_menu_sidebar.c
@@ -181,7 +181,7 @@ static lv_obj_t * create_text(lv_obj_t * parent, const char * icon, const char *
}
if(builder_variant == LV_MENU_ITEM_BUILDER_VARIANT_2 && icon && txt) {
- lv_obj_add_flag(img, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(img, true);
lv_obj_swap(img, label);
}
@@ -199,7 +199,7 @@ static lv_obj_t * create_slider(lv_obj_t * parent, const char * icon, const char
lv_slider_set_value(slider, val, LV_ANIM_OFF);
if(icon == NULL) {
- lv_obj_add_flag(slider, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(slider, true);
}
return obj;
diff --git a/examples/widgets/msgbox/lv_example_msgbox_settings.c b/examples/widgets/msgbox/lv_example_msgbox_settings.c
index 9039166f7d..699e4aaa95 100644
--- a/examples/widgets/msgbox/lv_example_msgbox_settings.c
+++ b/examples/widgets/msgbox/lv_example_msgbox_settings.c
@@ -4,7 +4,7 @@
static void minimize_button_event_cb(lv_event_t * e)
{
lv_obj_t * mbox = (lv_obj_t *) lv_event_get_user_data(e);
- lv_obj_add_flag(mbox, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(mbox, true);
}
/**
diff --git a/examples/widgets/scale/lv_example_scale_compass.c b/examples/widgets/scale/lv_example_scale_compass.c
index 9044c7c81c..33f70dfb9d 100644
--- a/examples/widgets/scale/lv_example_scale_compass.c
+++ b/examples/widgets/scale/lv_example_scale_compass.c
@@ -86,7 +86,7 @@ void lv_example_scale_compass(void)
lv_scale_set_rotation(scale, 270);
lv_obj_add_event_cb(scale, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(scale, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(scale, true);
label = lv_label_create(lv_screen_active());
lv_obj_set_width(label, 100);
diff --git a/examples/widgets/scale/lv_example_scale_label_recolor.c b/examples/widgets/scale/lv_example_scale_label_recolor.c
index 5f877ea800..8c521e60b8 100644
--- a/examples/widgets/scale/lv_example_scale_label_recolor.c
+++ b/examples/widgets/scale/lv_example_scale_label_recolor.c
@@ -75,7 +75,7 @@ void lv_example_scale_label_recolor(void)
lv_scale_set_range(scale, 10, 40);
lv_obj_add_event_cb(scale, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(scale, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(scale, true);
}
#endif
diff --git a/examples/widgets/scale/lv_example_scale_sunset_sunrise.c b/examples/widgets/scale/lv_example_scale_sunset_sunrise.c
index 2f51e5587a..7c9da80660 100644
--- a/examples/widgets/scale/lv_example_scale_sunset_sunrise.c
+++ b/examples/widgets/scale/lv_example_scale_sunset_sunrise.c
@@ -46,7 +46,7 @@ void lv_example_scale_sunset_sunrise(void)
lv_obj_set_style_radius(bg, LV_RADIUS_CIRCLE, 0);
lv_obj_set_style_bg_color(bg, lv_palette_darken(LV_PALETTE_GREY, 4), 0);
lv_obj_set_style_bg_opa(bg, LV_OPA_COVER, 0);
- lv_obj_remove_flag(bg, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(bg, false);
lv_obj_set_style_pad_all(bg, 0, LV_PART_MAIN);
lv_obj_t * scale = lv_scale_create(bg);
@@ -107,7 +107,7 @@ void lv_example_scale_sunset_sunrise(void)
};
lv_scale_set_text_src(scale, hour_labels);
- lv_obj_add_flag(scale, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(scale, true);
lv_obj_add_event_cb(scale, label_color_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
lv_obj_t * today = lv_label_create(bg);
diff --git a/examples/widgets/span/lv_example_span_hittest.c b/examples/widgets/span/lv_example_span_hittest.c
index 4f32ab7b54..974ffa2c81 100644
--- a/examples/widgets/span/lv_example_span_hittest.c
+++ b/examples/widgets/span/lv_example_span_hittest.c
@@ -28,7 +28,7 @@ void lv_example_span_hittest(void)
lv_obj_set_width(spans, 240);
lv_obj_set_height(spans, LV_SIZE_CONTENT);
lv_obj_center(spans);
- lv_obj_add_flag(spans, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(spans, true);
lv_span_t * span = lv_spangroup_add_span(spans);
lv_span_set_text(span, "Click any ");
diff --git a/examples/widgets/table/lv_example_table_scrollable_list.c b/examples/widgets/table/lv_example_table_scrollable_list.c
index 5295fa6371..65f23b7122 100644
--- a/examples/widgets/table/lv_example_table_scrollable_list.c
+++ b/examples/widgets/table/lv_example_table_scrollable_list.c
@@ -99,7 +99,7 @@ void lv_example_table_scrollable_list(void)
/*Add an event callback to to apply some custom drawing*/
lv_obj_add_event_cb(table, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
lv_obj_add_event_cb(table, change_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
- lv_obj_add_flag(table, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(table, true);
lv_mem_monitor_t mon2;
lv_mem_monitor(&mon2);
diff --git a/examples/widgets/tabview/lv_example_tabview_tab_button_content.c b/examples/widgets/tabview/lv_example_tabview_tab_button_content.c
index 16d189de04..7c217b65ad 100644
--- a/examples/widgets/tabview/lv_example_tabview_tab_button_content.c
+++ b/examples/widgets/tabview/lv_example_tabview_tab_button_content.c
@@ -36,14 +36,14 @@ void lv_example_tabview_tab_button_content(void)
lv_obj_t * lv_tabview_tab_button_0 = lv_tabview_get_tab_button(tabview, 0);
lv_obj_t * sw_1 = lv_switch_create(lv_tabview_tab_button_0);
lv_obj_set_size(sw_1, 40, 20);
- lv_obj_set_flag(sw_1, LV_OBJ_FLAG_IGNORE_LAYOUT, true);
+ lv_obj_set_ignore_layout(sw_1, true);
lv_obj_set_align(sw_1, LV_ALIGN_RIGHT_MID);
lv_obj_set_x(sw_1, -10);
lv_obj_t * lv_tabview_tab_button_1 = lv_tabview_get_tab_button(tabview, 1);
lv_obj_t * sw_2 = lv_switch_create(lv_tabview_tab_button_1);
lv_obj_set_size(sw_2, 40, 20);
- lv_obj_set_flag(sw_2, LV_OBJ_FLAG_IGNORE_LAYOUT, true);
+ lv_obj_set_ignore_layout(sw_2, true);
lv_obj_set_align(sw_2, LV_ALIGN_RIGHT_MID);
lv_obj_set_x(sw_2, -10);
}
diff --git a/examples/widgets/textarea/lv_example_textarea_buttonmatrix.c b/examples/widgets/textarea/lv_example_textarea_buttonmatrix.c
index 2b70986ff8..245dd44e0d 100644
--- a/examples/widgets/textarea/lv_example_textarea_buttonmatrix.c
+++ b/examples/widgets/textarea/lv_example_textarea_buttonmatrix.c
@@ -49,7 +49,7 @@ void lv_example_textarea_buttonmatrix(void)
lv_obj_set_size(btnm, 200, 150);
lv_obj_align(btnm, LV_ALIGN_BOTTOM_MID, 0, -10);
lv_obj_add_event_cb(btnm, btnm_event_handler, LV_EVENT_VALUE_CHANGED, ta);
- lv_obj_remove_flag(btnm, LV_OBJ_FLAG_CLICK_FOCUSABLE); /*To keep the text area focused on button clicks*/
+ lv_obj_set_click_focusable(btnm, false); /*To keep the text area focused on button clicks*/
lv_buttonmatrix_set_map(btnm, btnm_map);
}
diff --git a/include/lvgl/core/lv_obj.h b/include/lvgl/core/lv_obj.h
index f28b217b42..cced783a5d 100644
--- a/include/lvgl/core/lv_obj.h
+++ b/include/lvgl/core/lv_obj.h
@@ -173,6 +173,33 @@ enum _lv_signed_prop_id_t {
LV_PROPERTY_ID(OBJ, CHILD_COUNT, LV_PROPERTY_TYPE_INT, 72),
LV_PROPERTY_ID(OBJ, INDEX, LV_PROPERTY_TYPE_INT, 73),
+ /*Dedicated boolean properties backing the per-flag setters/getters.
+ *The OBJ_FLAG_* properties above are kept for backward compatibility.*/
+ LV_PROPERTY_ID(OBJ, HIDDEN, LV_PROPERTY_TYPE_BOOL, 74),
+ LV_PROPERTY_ID(OBJ, CLICKABLE, LV_PROPERTY_TYPE_BOOL, 75),
+ LV_PROPERTY_ID(OBJ, CLICK_FOCUSABLE, LV_PROPERTY_TYPE_BOOL, 76),
+ LV_PROPERTY_ID(OBJ, CHECKABLE, LV_PROPERTY_TYPE_BOOL, 77),
+ LV_PROPERTY_ID(OBJ, SCROLLABLE, LV_PROPERTY_TYPE_BOOL, 78),
+ LV_PROPERTY_ID(OBJ, SCROLL_ELASTIC, LV_PROPERTY_TYPE_BOOL, 79),
+ LV_PROPERTY_ID(OBJ, SCROLL_MOMENTUM, LV_PROPERTY_TYPE_BOOL, 80),
+ LV_PROPERTY_ID(OBJ, SCROLL_ONE, LV_PROPERTY_TYPE_BOOL, 81),
+ LV_PROPERTY_ID(OBJ, SCROLL_CHAIN_HOR, LV_PROPERTY_TYPE_BOOL, 82),
+ LV_PROPERTY_ID(OBJ, SCROLL_CHAIN_VER, LV_PROPERTY_TYPE_BOOL, 83),
+ LV_PROPERTY_ID(OBJ, SCROLL_ON_FOCUS, LV_PROPERTY_TYPE_BOOL, 84),
+ LV_PROPERTY_ID(OBJ, SCROLL_WITH_ARROW, LV_PROPERTY_TYPE_BOOL, 85),
+ LV_PROPERTY_ID(OBJ, SNAPPABLE, LV_PROPERTY_TYPE_BOOL, 86),
+ LV_PROPERTY_ID(OBJ, PRESS_LOCK, LV_PROPERTY_TYPE_BOOL, 87),
+ LV_PROPERTY_ID(OBJ, EVENT_BUBBLE, LV_PROPERTY_TYPE_BOOL, 88),
+ LV_PROPERTY_ID(OBJ, GESTURE_BUBBLE, LV_PROPERTY_TYPE_BOOL, 89),
+ LV_PROPERTY_ID(OBJ, ADV_HITTEST, LV_PROPERTY_TYPE_BOOL, 90),
+ LV_PROPERTY_ID(OBJ, IGNORE_LAYOUT, LV_PROPERTY_TYPE_BOOL, 91),
+ LV_PROPERTY_ID(OBJ, FLOATING, LV_PROPERTY_TYPE_BOOL, 92),
+ LV_PROPERTY_ID(OBJ, SEND_DRAW_TASK_EVENTS, LV_PROPERTY_TYPE_BOOL, 93),
+ LV_PROPERTY_ID(OBJ, OVERFLOW_VISIBLE, LV_PROPERTY_TYPE_BOOL, 94),
+ LV_PROPERTY_ID(OBJ, EVENT_TRICKLE, LV_PROPERTY_TYPE_BOOL, 95),
+ LV_PROPERTY_ID(OBJ, STATE_TRICKLE, LV_PROPERTY_TYPE_BOOL, 96),
+ LV_PROPERTY_ID(OBJ, FLEX_IN_NEW_TRACK, LV_PROPERTY_TYPE_BOOL, 97),
+
LV_PROPERTY_OBJ_END,
};
#endif
@@ -201,14 +228,18 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent);
* Set one or more flags
* @param obj pointer to an object
* @param f OR-ed values from `lv_obj_flag_t` to set.
+ * @deprecated Use the dedicated per-flag setter instead, e.g. `lv_obj_set_hidden(obj, true)`.
*/
+LV_DEPRECATED("Use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, true).")
void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f);
/**
* Remove one or more flags
* @param obj pointer to an object
* @param f OR-ed values from `lv_obj_flag_t` to clear.
+ * @deprecated Use the dedicated per-flag setter instead, e.g. `lv_obj_set_hidden(obj, false)`.
*/
+LV_DEPRECATED("Use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, false).")
void lv_obj_remove_flag(lv_obj_t * obj, lv_obj_flag_t f);
/**
@@ -216,9 +247,167 @@ void lv_obj_remove_flag(lv_obj_t * obj, lv_obj_flag_t f);
* @param obj pointer to an object
* @param f OR-ed values from `lv_obj_flag_t` to update.
* @param v true: add the flags; false: remove the flags
+ * @deprecated Use the dedicated per-flag setter instead, e.g. `lv_obj_set_hidden(obj, en)`.
*/
+LV_DEPRECATED("Use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, en).")
void lv_obj_set_flag(lv_obj_t * obj, lv_obj_flag_t f, bool v);
+/** Make the object hidden. (Like it wasn't there at all)
+ * @param obj pointer to a widget
+ * @param en enable or disable the hidden property
+ */
+void lv_obj_set_hidden(lv_obj_t * obj, bool en);
+
+/** Make the object clickable by the input devices
+ * @param obj pointer to a widget
+ * @param en enable or disable the clickable property
+ */
+void lv_obj_set_clickable(lv_obj_t * obj, bool en);
+
+/** Add focused state to the object when clicked
+ * @param obj pointer to a widget
+ * @param en enable or disable the click focusable property
+ */
+void lv_obj_set_click_focusable(lv_obj_t * obj, bool en);
+
+/** Toggle checked state when the object is clicked
+ * @param obj pointer to a widget
+ * @param en enable or disable the checkable property
+ */
+void lv_obj_set_checkable(lv_obj_t * obj, bool en);
+
+/** Make the object scrollable
+ * @param obj pointer to a widget
+ * @param en enable or disable the scrollable property
+ */
+void lv_obj_set_scrollable(lv_obj_t * obj, bool en);
+
+/** Allow scrolling inside but with slower speed
+ * @param obj pointer to a widget
+ * @param en enable or disable the scroll elastic property
+ */
+void lv_obj_set_scroll_elastic(lv_obj_t * obj, bool en);
+
+/** Make the object scroll further when "thrown"
+ * @param obj pointer to a widget
+ * @param en enable or disable the scroll momentum property
+ */
+void lv_obj_set_scroll_momentum(lv_obj_t * obj, bool en);
+
+/** Allow scrolling only one snappable child
+ * @param obj pointer to a widget
+ * @param en enable or disable the scroll one property
+ */
+void lv_obj_set_scroll_one(lv_obj_t * obj, bool en);
+
+/** Allow propagating the scrolling in any directions to a parent
+ * @param obj pointer to a widget
+ * @param en enable or disable scroll chaining
+ */
+void lv_obj_set_scroll_chain(lv_obj_t * obj, bool en);
+
+/** Allow propagating the horizontal scroll to a parent
+ * @param obj pointer to a widget
+ * @param en enable or disable horizontal scroll chaining
+ */
+void lv_obj_set_scroll_chain_hor(lv_obj_t * obj, bool en);
+
+/** Allow propagating the vertical scroll to a parent
+ * @param obj pointer to a widget
+ * @param en enable or disable vertical scroll chaining
+ */
+void lv_obj_set_scroll_chain_ver(lv_obj_t * obj, bool en);
+
+/** Automatically scroll object to make it visible when focused
+ * @param obj pointer to a widget
+ * @param en enable or disable scroll on focus
+ */
+void lv_obj_set_scroll_on_focus(lv_obj_t * obj, bool en);
+
+/** Allow scrolling the focused object with arrow keys
+ * @param obj pointer to a widget
+ * @param en enable or disable scroll with arrow keys
+ */
+void lv_obj_set_scroll_with_arrow(lv_obj_t * obj, bool en);
+
+/** Allow snapping to this object if scroll snap is enabled on the parent
+ * @param obj pointer to a widget
+ * @param en enable or disable the snappable property
+ */
+void lv_obj_set_snappable(lv_obj_t * obj, bool en);
+
+/** Keep the object pressed even if the press slid from the object
+ * @param obj pointer to a widget
+ * @param en enable or disable the press lock property
+ */
+void lv_obj_set_press_lock(lv_obj_t * obj, bool en);
+
+/** Propagate the events to the parent too
+ * @param obj pointer to a widget
+ * @param en enable or disable event bubbling
+ */
+void lv_obj_set_event_bubble(lv_obj_t * obj, bool en);
+
+/** Propagate the gestures to the parent
+ * @param obj pointer to a widget
+ * @param en enable or disable gesture bubbling
+ */
+void lv_obj_set_gesture_bubble(lv_obj_t * obj, bool en);
+
+/** Allow performing more accurate hit test
+ * @param obj pointer to a widget
+ * @param en enable or disable advanced hit testing
+ */
+void lv_obj_set_adv_hittest(lv_obj_t * obj, bool en);
+
+/** Make the object not positioned by layouts
+ * @param obj pointer to a widget
+ * @param en enable or disable ignoring layout
+ */
+void lv_obj_set_ignore_layout(lv_obj_t * obj, bool en);
+
+/** Do not scroll the object when the parent scrolls and ignore layout
+ * @param obj pointer to a widget
+ * @param en enable or disable floating mode
+ */
+void lv_obj_set_floating(lv_obj_t * obj, bool en);
+
+/** Send LV_EVENT_DRAW_TASK_ADDED events
+ * @param obj pointer to a widget
+ * @param en enable or disable draw task events
+ */
+void lv_obj_set_send_draw_task_events(lv_obj_t * obj, bool en);
+
+/** Do not clip the children to the parent's extended draw size
+ * @param obj pointer to a widget
+ * @param en enable or disable overflow visibility
+ */
+void lv_obj_set_overflow_visible(lv_obj_t * obj, bool en);
+
+/** Propagate the events to the children too
+ * @param obj pointer to a widget
+ * @param en enable or disable event trickling
+ */
+void lv_obj_set_event_trickle(lv_obj_t * obj, bool en);
+
+/** Propagate the states to the children too
+ * @param obj pointer to a widget
+ * @param en enable or disable state trickling
+ */
+void lv_obj_set_state_trickle(lv_obj_t * obj, bool en);
+
+/** Allow only one RADIO_BUTTON sibling to be checked
+ * @param obj pointer to a widget
+ * @param en enable or disable radio button behavior
+ */
+void lv_obj_set_radio_button(lv_obj_t * obj, bool en);
+
+/** Start a new flex track on this item
+ * @param obj pointer to a widget
+ * @param en enable or disable new flex track
+ */
+void lv_obj_set_flex_in_new_track(lv_obj_t * obj, bool en);
+
/**
* Add one or more states to the object. The other state bits will remain unchanged.
* If specified in the styles, transition animation will be started from the previous state to the current.
@@ -250,12 +439,13 @@ void lv_obj_set_state(lv_obj_t * obj, lv_state_t state, bool v);
*/
void lv_obj_set_user_data(lv_obj_t * obj, void * user_data);
-
-/** Allow only one RADIO_BUTTON sibling to be checked
- * @param obj pointer to a widget
- * @param en enable or disable radio button behavior
+/**
+ * Set one of the 4 flags available for the user
+ * @param obj pointer to an object
+ * @param bit the index of the bit (0..3)
+ * @param v the value of the bit, true or false
*/
-void lv_obj_set_radio_button(lv_obj_t * obj, bool en);
+void lv_obj_set_user_flag(lv_obj_t * obj, uint32_t bit, bool v);
/*=======================
* Getter functions
@@ -266,7 +456,9 @@ void lv_obj_set_radio_button(lv_obj_t * obj, bool en);
* @param obj pointer to an object
* @param f the flag(s) to check (OR-ed values can be used)
* @return true: all flags are set; false: not all flags are set
+ * @deprecated Use the dedicated per-flag setter instead, e.g. `lv_obj_is_hidden(obj)`.
*/
+LV_DEPRECATED("Use the dedicated lv_obj_is_() functions instead, e.g. lv_obj_is_hidden(obj).")
bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t f);
/**
@@ -274,9 +466,162 @@ bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t f);
* @param obj pointer to an object
* @param f the flag(s) to check (OR-ed values can be used)
* @return true: at least one flag is set; false: none of the flags are set
+ * @deprecated Use the dedicated per-flag setter instead, e.g. `lv_obj_set_hidden(obj)`.
*/
+LV_DEPRECATED("Use the dedicated lv_obj_is_() functions instead, e.g. lv_obj_is_hidden(obj).")
bool lv_obj_has_flag_any(const lv_obj_t * obj, lv_obj_flag_t f);
+/** Get whether the object is hidden
+ * @param obj pointer to a widget
+ * @return true if the object is hidden, false otherwise
+ */
+bool lv_obj_is_hidden(const lv_obj_t * obj);
+
+/** Get whether the object is clickable by input devices
+ * @param obj pointer to a widget
+ * @return true if the object is clickable
+ */
+bool lv_obj_is_clickable(const lv_obj_t * obj);
+
+/** Get whether the object gets focused when clicked
+ * @param obj pointer to a widget
+ * @return true if click focusable is enabled
+ */
+bool lv_obj_is_click_focusable(const lv_obj_t * obj);
+
+/** Get whether the object toggles checked state when clicked
+ * @param obj pointer to a widget
+ * @return true if the object is checkable
+ */
+bool lv_obj_is_checkable(const lv_obj_t * obj);
+
+/** Get whether the object is scrollable
+ * @param obj pointer to a widget
+ * @return true if the object is scrollable
+ */
+bool lv_obj_is_scrollable(const lv_obj_t * obj);
+
+/** Get whether elastic scrolling is enabled
+ * @param obj pointer to a widget
+ * @return true if scroll elastic is enabled
+ */
+bool lv_obj_is_scroll_elastic(const lv_obj_t * obj);
+
+/** Get whether scroll momentum is enabled
+ * @param obj pointer to a widget
+ * @return true if scroll momentum is enabled
+ */
+bool lv_obj_is_scroll_momentum(const lv_obj_t * obj);
+
+/** Get whether only one snappable child can be scrolled
+ * @param obj pointer to a widget
+ * @return true if scroll one is enabled
+ */
+bool lv_obj_is_scroll_one(const lv_obj_t * obj);
+
+/** Get whether horizontal scroll chaining is enabled
+ * @param obj pointer to a widget
+ * @return true if horizontal scroll chaining is enabled
+ */
+bool lv_obj_is_scroll_chain_hor(const lv_obj_t * obj);
+
+/** Get whether vertical scroll chaining is enabled
+ * @param obj pointer to a widget
+ * @return true if vertical scroll chaining is enabled
+ */
+bool lv_obj_is_scroll_chain_ver(const lv_obj_t * obj);
+
+/** Get whether the object auto-scrolls into view when focused
+ * @param obj pointer to a widget
+ * @return true if scroll on focus is enabled
+ */
+bool lv_obj_is_scroll_on_focus(const lv_obj_t * obj);
+
+/** Get whether the focused object can be scrolled with arrow keys
+ * @param obj pointer to a widget
+ * @return true if scroll with arrow keys is enabled
+ */
+bool lv_obj_is_scroll_with_arrow(const lv_obj_t * obj);
+
+/** Get whether the object is snappable by a scrolling parent
+ * @param obj pointer to a widget
+ * @return true if the object is snappable
+ */
+bool lv_obj_is_snappable(const lv_obj_t * obj);
+
+/** Get whether press lock is enabled
+ * @param obj pointer to a widget
+ * @return true if press lock is enabled
+ */
+bool lv_obj_is_press_lock(const lv_obj_t * obj);
+
+/** Get whether events bubble to the parent
+ * @param obj pointer to a widget
+ * @return true if event bubbling is enabled
+ */
+bool lv_obj_is_event_bubble(const lv_obj_t * obj);
+
+/** Get whether gestures bubble to the parent
+ * @param obj pointer to a widget
+ * @return true if gesture bubbling is enabled
+ */
+bool lv_obj_is_gesture_bubble(const lv_obj_t * obj);
+
+/** Get whether advanced hit testing is enabled
+ * @param obj pointer to a widget
+ * @return true if advanced hit testing is enabled
+ */
+bool lv_obj_is_adv_hittest(const lv_obj_t * obj);
+
+/** Get whether the object ignores layout positioning
+ * @param obj pointer to a widget
+ * @return true if ignore layout is enabled
+ */
+bool lv_obj_is_ignore_layout(const lv_obj_t * obj);
+
+/** Get whether the object is floating
+ * @param obj pointer to a widget
+ * @return true if floating mode is enabled
+ */
+bool lv_obj_is_floating(const lv_obj_t * obj);
+
+/** Get whether draw task events are sent
+ * @param obj pointer to a widget
+ * @return true if draw task events are enabled
+ */
+bool lv_obj_is_send_draw_task_events(const lv_obj_t * obj);
+
+/** Get whether overflow is visible outside the parent
+ * @param obj pointer to a widget
+ * @return true if overflow is visible
+ */
+bool lv_obj_is_overflow_visible(const lv_obj_t * obj);
+
+/** Get whether events trickle to the children
+ * @param obj pointer to a widget
+ * @return true if event trickling is enabled
+ */
+bool lv_obj_is_event_trickle(const lv_obj_t * obj);
+
+/** Get whether states trickle to the children
+ * @param obj pointer to a widget
+ * @return true if state trickling is enabled
+ */
+bool lv_obj_is_state_trickle(const lv_obj_t * obj);
+
+/** Get whether the object is a radio button
+ * @param obj pointer to a widget
+ * @return true if radio button behavior is enabled
+ */
+bool lv_obj_is_radio_button(const lv_obj_t * obj);
+
+/**
+ * Get whether the widget should be placed in a new flex track
+ * @param obj pointer to a widget
+ * @return true if flex in new track is enabled
+ */
+bool lv_obj_is_flex_in_new_track(const lv_obj_t * obj);
+
/**
* Get the state of an object
* @param obj pointer to an object
@@ -292,12 +637,6 @@ lv_state_t lv_obj_get_state(const lv_obj_t * obj);
*/
bool lv_obj_has_state(const lv_obj_t * obj, lv_state_t state);
-/** Get whether the object is a radio button
- * @param obj pointer to a widget
- * @return true if radio button behavior is enabled
- */
-bool lv_obj_is_radio_button(const lv_obj_t * obj);
-
/**
* Get the group of the object
* @param obj pointer to an object
@@ -312,6 +651,14 @@ lv_group_t * lv_obj_get_group(const lv_obj_t * obj);
*/
void * lv_obj_get_user_data(lv_obj_t * obj);
+/**
+ * Get the value of one of the 4 flags available for the user
+ * @param obj pointer to an object
+ * @param bit the index of the bit (0..3)
+ * @return the value of the bit, true or false
+ */
+bool lv_obj_get_user_flag(lv_obj_t * obj, uint32_t bit);
+
/*=======================
* Other functions
*======================*/
diff --git a/include/lvgl/core/lv_obj_property_names.h b/include/lvgl/core/lv_obj_property_names.h
index 5745705dc6..fb9028b29d 100644
--- a/include/lvgl/core/lv_obj_property_names.h
+++ b/include/lvgl/core/lv_obj_property_names.h
@@ -23,7 +23,7 @@
extern const lv_property_name_t lv_led_property_names[2];
extern const lv_property_name_t lv_line_property_names[1];
extern const lv_property_name_t lv_menu_property_names[2];
- extern const lv_property_name_t lv_obj_property_names[76];
+ extern const lv_property_name_t lv_obj_property_names[100];
extern const lv_property_name_t lv_roller_property_names[3];
extern const lv_property_name_t lv_scale_property_names[8];
extern const lv_property_name_t lv_slider_property_names[8];
diff --git a/scripts/gdb/lvglgdb/lvgl/widgets/lv_msgbox.py b/scripts/gdb/lvglgdb/lvgl/widgets/lv_msgbox.py
index a7f135ba59..3f7b8ae8b7 100644
--- a/scripts/gdb/lvglgdb/lvgl/widgets/lv_msgbox.py
+++ b/scripts/gdb/lvglgdb/lvgl/widgets/lv_msgbox.py
@@ -32,6 +32,11 @@ class LVMsgbox(LVObject):
def title(self):
return ptr_or_none(self._wv.safe_field("title"))
+ @property
+ def auto_parent(self):
+ """Mark that the parent was automatically created"""
+ return int(self._wv.safe_field("auto_parent", 0))
+
def snapshot(self, include_children=False, include_styles=False):
"""Snapshot with widget-specific fields in widget_data."""
s = super().snapshot(include_children=include_children, include_styles=include_styles)
@@ -40,5 +45,6 @@ class LVMsgbox(LVObject):
d["content"] = self.content
d["footer"] = self.footer
d["title"] = self.title
+ d["auto_parent"] = self.auto_parent
s['widget_data'] = d
return s
diff --git a/scripts/gdb/scripts/generators/widget_specs.json b/scripts/gdb/scripts/generators/widget_specs.json
index 48c2e4488a..d850ae736c 100644
--- a/scripts/gdb/scripts/generators/widget_specs.json
+++ b/scripts/gdb/scripts/generators/widget_specs.json
@@ -478,7 +478,8 @@
"header": "pointer",
"content": "pointer",
"footer": "pointer",
- "title": "pointer"
+ "title": "pointer",
+ "auto_parent": "bool"
}
},
"summary_tpl": "",
diff --git a/src/core/lv_group.c b/src/core/lv_group.c
index 0a72078f65..5e5bad56f5 100644
--- a/src/core/lv_group.c
+++ b/src/core/lv_group.c
@@ -516,11 +516,11 @@ static bool focus_next_core(lv_group_t * group, void * (*begin)(const lv_ll_t *)
*If any parent is hidden, the object is also hidden)*/
lv_obj_t * parent = *obj_next;
while(parent) {
- if(lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) break;
+ if(lv_obj_is_hidden(parent)) break;
parent = lv_obj_get_parent(parent);
}
- if(parent && lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) continue;
+ if(parent && lv_obj_is_hidden(parent)) continue;
/*If we got her a good candidate is found*/
break;
diff --git a/src/core/lv_obj.c b/src/core/lv_obj.c
index f8d8fc3f3b..c625609bf8 100644
--- a/src/core/lv_obj.c
+++ b/src/core/lv_obj.c
@@ -202,6 +202,126 @@ static const lv_property_ops_t lv_obj_properties[] = {
.id = LV_PROPERTY_OBJ_INDEX,
.getter = lv_obj_get_index,
},
+ {
+ .id = LV_PROPERTY_OBJ_HIDDEN,
+ .setter = lv_obj_set_hidden,
+ .getter = lv_obj_is_hidden,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_CLICKABLE,
+ .setter = lv_obj_set_clickable,
+ .getter = lv_obj_is_clickable,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_CLICK_FOCUSABLE,
+ .setter = lv_obj_set_click_focusable,
+ .getter = lv_obj_is_click_focusable,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_CHECKABLE,
+ .setter = lv_obj_set_checkable,
+ .getter = lv_obj_is_checkable,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLLABLE,
+ .setter = lv_obj_set_scrollable,
+ .getter = lv_obj_is_scrollable,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_ELASTIC,
+ .setter = lv_obj_set_scroll_elastic,
+ .getter = lv_obj_is_scroll_elastic,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_MOMENTUM,
+ .setter = lv_obj_set_scroll_momentum,
+ .getter = lv_obj_is_scroll_momentum,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_ONE,
+ .setter = lv_obj_set_scroll_one,
+ .getter = lv_obj_is_scroll_one,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_CHAIN_HOR,
+ .setter = lv_obj_set_scroll_chain_hor,
+ .getter = lv_obj_is_scroll_chain_hor,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_CHAIN_VER,
+ .setter = lv_obj_set_scroll_chain_ver,
+ .getter = lv_obj_is_scroll_chain_ver,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_ON_FOCUS,
+ .setter = lv_obj_set_scroll_on_focus,
+ .getter = lv_obj_is_scroll_on_focus,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SCROLL_WITH_ARROW,
+ .setter = lv_obj_set_scroll_with_arrow,
+ .getter = lv_obj_is_scroll_with_arrow,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SNAPPABLE,
+ .setter = lv_obj_set_snappable,
+ .getter = lv_obj_is_snappable,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_PRESS_LOCK,
+ .setter = lv_obj_set_press_lock,
+ .getter = lv_obj_is_press_lock,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_EVENT_BUBBLE,
+ .setter = lv_obj_set_event_bubble,
+ .getter = lv_obj_is_event_bubble,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_GESTURE_BUBBLE,
+ .setter = lv_obj_set_gesture_bubble,
+ .getter = lv_obj_is_gesture_bubble,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_ADV_HITTEST,
+ .setter = lv_obj_set_adv_hittest,
+ .getter = lv_obj_is_adv_hittest,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_IGNORE_LAYOUT,
+ .setter = lv_obj_set_ignore_layout,
+ .getter = lv_obj_is_ignore_layout,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_FLOATING,
+ .setter = lv_obj_set_floating,
+ .getter = lv_obj_is_floating,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_SEND_DRAW_TASK_EVENTS,
+ .setter = lv_obj_set_send_draw_task_events,
+ .getter = lv_obj_is_send_draw_task_events,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_OVERFLOW_VISIBLE,
+ .setter = lv_obj_set_overflow_visible,
+ .getter = lv_obj_is_overflow_visible,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_EVENT_TRICKLE,
+ .setter = lv_obj_set_event_trickle,
+ .getter = lv_obj_is_event_trickle,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_STATE_TRICKLE,
+ .setter = lv_obj_set_state_trickle,
+ .getter = lv_obj_is_state_trickle,
+ },
+ {
+ .id = LV_PROPERTY_OBJ_FLEX_IN_NEW_TRACK,
+ .setter = lv_obj_set_flex_in_new_track,
+ .getter = lv_obj_is_flex_in_new_track,
+ },
{
.id = LV_PROPERTY_ID_ANY,
.setter = lv_obj_set_any,
@@ -257,37 +377,187 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent)
void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f)
{
+ LV_LOG_DEPRECATED("use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, true).");
+
LV_CHECK_OBJ(obj, MY_CLASS, return);
- if(lv_obj_has_flag(obj, f)) /*Check if all flags are set*/
- return;
+ if(f >= LV_OBJ_FLAG_LAYOUT_1) lv_obj_allocate_spec_attr(obj);
+
+ /* If all requested flags are already set, do nothing */
+ LV_DEPRECATIONS_IGNORE_BEGIN
+ if(lv_obj_has_flag(obj, f)) return;
+ LV_DEPRECATIONS_IGNORE_END
+
+ if(f & LV_OBJ_FLAG_HIDDEN) lv_obj_set_hidden(obj, true);
+ if(f & LV_OBJ_FLAG_CLICKABLE) lv_obj_set_clickable(obj, true);
+ if(f & LV_OBJ_FLAG_CLICK_FOCUSABLE) lv_obj_set_click_focusable(obj, true);
+ if(f & LV_OBJ_FLAG_CHECKABLE) lv_obj_set_checkable(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLLABLE) lv_obj_set_scrollable(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_ELASTIC) lv_obj_set_scroll_elastic(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_MOMENTUM) lv_obj_set_scroll_momentum(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_ONE) lv_obj_set_scroll_one(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_CHAIN_HOR) lv_obj_set_scroll_chain_hor(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_CHAIN_VER) lv_obj_set_scroll_chain_ver(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_ON_FOCUS) lv_obj_set_scroll_on_focus(obj, true);
+ if(f & LV_OBJ_FLAG_SCROLL_WITH_ARROW) lv_obj_set_scroll_with_arrow(obj, true);
+ if(f & LV_OBJ_FLAG_SNAPPABLE) lv_obj_set_snappable(obj, true);
+ if(f & LV_OBJ_FLAG_PRESS_LOCK) lv_obj_set_press_lock(obj, true);
+ if(f & LV_OBJ_FLAG_EVENT_BUBBLE) lv_obj_set_event_bubble(obj, true);
+ if(f & LV_OBJ_FLAG_GESTURE_BUBBLE) lv_obj_set_gesture_bubble(obj, true);
+ if(f & LV_OBJ_FLAG_ADV_HITTEST) lv_obj_set_adv_hittest(obj, true);
+ if(f & LV_OBJ_FLAG_IGNORE_LAYOUT) lv_obj_set_ignore_layout(obj, true);
+ if(f & LV_OBJ_FLAG_FLOATING) lv_obj_set_floating(obj, true);
+ if(f & LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS) lv_obj_set_send_draw_task_events(obj, true);
+ if(f & LV_OBJ_FLAG_OVERFLOW_VISIBLE) lv_obj_set_overflow_visible(obj, true);
+ if(f & LV_OBJ_FLAG_EVENT_TRICKLE) lv_obj_set_event_trickle(obj, true);
+ if(f & LV_OBJ_FLAG_STATE_TRICKLE) lv_obj_set_state_trickle(obj, true);
+ if(f & LV_OBJ_FLAG_LAYOUT_1) obj->spec_attr->user_flags |= 1 << 0;
+ if(f & LV_OBJ_FLAG_LAYOUT_2) obj->spec_attr->user_flags |= 1 << 1;
+ if(f & LV_OBJ_FLAG_WIDGET_1) obj->spec_attr->user_flags |= 1 << 2;
+ if(f & LV_OBJ_FLAG_WIDGET_2) obj->spec_attr->user_flags |= 1 << 3;
+ if(f & LV_OBJ_FLAG_USER_1) obj->spec_attr->user_flags |= 1 << 4;
+ if(f & LV_OBJ_FLAG_USER_2) obj->spec_attr->user_flags |= 1 << 5;
+ if(f & LV_OBJ_FLAG_USER_3) obj->spec_attr->user_flags |= 1 << 6;
+ if(f & LV_OBJ_FLAG_USER_4) obj->spec_attr->user_flags |= 1 << 7;
+
+ if((f & LV_OBJ_FLAG_LAYOUT_1) || (f & LV_OBJ_FLAG_LAYOUT_2)) {
+ lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
+ lv_obj_mark_layout_as_dirty(obj);
+ }
+}
+
+
+void lv_obj_remove_flag(lv_obj_t * obj, lv_obj_flag_t f)
+{
+ LV_LOG_DEPRECATED("use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, false).");
+
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+
+ if(f >= LV_OBJ_FLAG_LAYOUT_1) lv_obj_allocate_spec_attr(obj);
+
+ /* If none of the requested flags are set, do nothing */
+ if(f & LV_OBJ_FLAG_HIDDEN) lv_obj_set_hidden(obj, false);
+ if(f & LV_OBJ_FLAG_CLICKABLE) lv_obj_set_clickable(obj, false);
+ if(f & LV_OBJ_FLAG_CLICK_FOCUSABLE) lv_obj_set_click_focusable(obj, false);
+ if(f & LV_OBJ_FLAG_CHECKABLE) lv_obj_set_checkable(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLLABLE) lv_obj_set_scrollable(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_ELASTIC) lv_obj_set_scroll_elastic(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_MOMENTUM) lv_obj_set_scroll_momentum(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_ONE) lv_obj_set_scroll_one(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_CHAIN_HOR) lv_obj_set_scroll_chain_hor(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_CHAIN_VER) lv_obj_set_scroll_chain_ver(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_ON_FOCUS) lv_obj_set_scroll_on_focus(obj, false);
+ if(f & LV_OBJ_FLAG_SCROLL_WITH_ARROW) lv_obj_set_scroll_with_arrow(obj, false);
+ if(f & LV_OBJ_FLAG_SNAPPABLE) lv_obj_set_snappable(obj, false);
+ if(f & LV_OBJ_FLAG_PRESS_LOCK) lv_obj_set_press_lock(obj, false);
+ if(f & LV_OBJ_FLAG_EVENT_BUBBLE) lv_obj_set_event_bubble(obj, false);
+ if(f & LV_OBJ_FLAG_GESTURE_BUBBLE) lv_obj_set_gesture_bubble(obj, false);
+ if(f & LV_OBJ_FLAG_ADV_HITTEST) lv_obj_set_adv_hittest(obj, false);
+ if(f & LV_OBJ_FLAG_IGNORE_LAYOUT) lv_obj_set_ignore_layout(obj, false);
+ if(f & LV_OBJ_FLAG_FLOATING) lv_obj_set_floating(obj, false);
+ if(f & LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS) lv_obj_set_send_draw_task_events(obj, false);
+ if(f & LV_OBJ_FLAG_OVERFLOW_VISIBLE) lv_obj_set_overflow_visible(obj, false);
+ if(f & LV_OBJ_FLAG_EVENT_TRICKLE) lv_obj_set_event_trickle(obj, false);
+ if(f & LV_OBJ_FLAG_STATE_TRICKLE) lv_obj_set_state_trickle(obj, false);
+ if(f & LV_OBJ_FLAG_LAYOUT_1) obj->spec_attr->user_flags &= ~(1 << 0);
+ if(f & LV_OBJ_FLAG_LAYOUT_2) obj->spec_attr->user_flags &= ~(1 << 1);
+ if(f & LV_OBJ_FLAG_WIDGET_1) obj->spec_attr->user_flags &= ~(1 << 2);
+ if(f & LV_OBJ_FLAG_WIDGET_2) obj->spec_attr->user_flags &= ~(1 << 3);
+ if(f & LV_OBJ_FLAG_USER_1) obj->spec_attr->user_flags &= ~(1 << 4);
+ if(f & LV_OBJ_FLAG_USER_2) obj->spec_attr->user_flags &= ~(1 << 5);
+ if(f & LV_OBJ_FLAG_USER_3) obj->spec_attr->user_flags &= ~(1 << 6);
+ if(f & LV_OBJ_FLAG_USER_4) obj->spec_attr->user_flags &= ~(1 << 7);
+
+ if((f & LV_OBJ_FLAG_LAYOUT_1) || (f & LV_OBJ_FLAG_LAYOUT_2)) {
+ lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
+ lv_obj_mark_layout_as_dirty(obj);
+ }
+}
+
+
+void lv_obj_set_flag(lv_obj_t * obj, lv_obj_flag_t f, bool v)
+{
+ LV_LOG_DEPRECATED("use the dedicated lv_obj_set_() setters instead, e.g. lv_obj_set_hidden(obj, en).");
+
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+
+ LV_DEPRECATIONS_IGNORE_BEGIN
+ if(v) lv_obj_add_flag(obj, f);
+ else lv_obj_remove_flag(obj, f);
+ LV_DEPRECATIONS_IGNORE_END
+}
+
+
+void lv_obj_set_hidden(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ if(obj->hidden == en) return;
bool was_on_layout = lv_obj_is_layout_positioned(obj);
- /* We must invalidate the area occupied by the object before we hide it as calls to invalidate hidden objects are ignored */
- if(f & LV_OBJ_FLAG_HIDDEN) lv_obj_invalidate(obj);
+ /*Invalidate while still visible*/
+ if(!obj->hidden) lv_obj_invalidate(obj);
- obj->flags |= f;
+ obj->hidden = en;
- if(f & LV_OBJ_FLAG_HIDDEN) {
- if(lv_obj_has_state(obj, LV_STATE_FOCUSED)) {
- lv_group_t * group = lv_obj_get_group(obj);
- if(group != NULL) {
- lv_group_focus_next(group);
- lv_obj_t * next_obj = lv_group_get_focused(group);
- if(next_obj != NULL) {
- lv_obj_invalidate(next_obj);
- }
+ /*Invalidate when visible again*/
+ if(!obj->hidden) lv_obj_invalidate(obj);
+
+ /*Focus the next next item when this one get hidden*/
+ if(obj->hidden && lv_obj_has_state(obj, LV_STATE_FOCUSED)) {
+ lv_group_t * group = lv_obj_get_group(obj);
+ if(group != NULL) {
+ lv_group_focus_next(group);
+ lv_obj_t * next_obj = lv_group_get_focused(group);
+ if(next_obj != NULL) {
+ lv_obj_invalidate(next_obj);
}
}
}
- if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 | LV_OBJ_FLAG_LAYOUT_2))) {
+ if((was_on_layout != lv_obj_is_layout_positioned(obj))) {
lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
lv_obj_mark_layout_as_dirty(obj);
}
+}
- if(f & LV_OBJ_FLAG_SCROLLABLE) {
+void lv_obj_set_clickable(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->clickable = en;
+
+}
+
+void lv_obj_set_click_focusable(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->click_focusable = en;
+}
+
+void lv_obj_set_checkable(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->checkable = en;
+}
+
+void lv_obj_set_scrollable(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+
+ if(obj->scrollable == en) return;
+
+ /*Invalidate the scrollbars while scrollable*/
+ if(obj->scrollable) {
+ lv_area_t hor_area, ver_area;
+ lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area);
+ lv_obj_invalidate_area(obj, &hor_area);
+ lv_obj_invalidate_area(obj, &ver_area);
+ }
+
+ obj->scrollable = en;
+
+ /*Invalidate the scrollbars while scrollable again*/
+ if(obj->scrollable) {
lv_area_t hor_area, ver_area;
lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area);
lv_obj_invalidate_area(obj, &hor_area);
@@ -295,45 +565,166 @@ void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t f)
}
}
-void lv_obj_remove_flag(lv_obj_t * obj, lv_obj_flag_t f)
+void lv_obj_set_scroll_elastic(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_elastic = en;
+}
+
+void lv_obj_set_scroll_momentum(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_momentum = en;
+}
+
+void lv_obj_set_scroll_one(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_one = en;
+}
+
+void lv_obj_set_scroll_chain(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_chain_hor = en;
+ obj->scroll_chain_ver = en;
+}
+
+void lv_obj_set_scroll_chain_hor(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_chain_hor = en;
+}
+
+void lv_obj_set_scroll_chain_ver(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_chain_ver = en;
+}
+
+void lv_obj_set_scroll_on_focus(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_on_focus = en;
+}
+
+void lv_obj_set_scroll_with_arrow(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->scroll_with_arrow = en;
+}
+
+void lv_obj_set_snappable(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->snappable = en;
+}
+
+void lv_obj_set_press_lock(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->press_lock = en;
+}
+
+void lv_obj_set_event_bubble(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->event_bubble = en;
+}
+
+void lv_obj_set_gesture_bubble(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->gesture_bubble = en;
+}
+
+void lv_obj_set_adv_hittest(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->adv_hittest = en;
+}
+
+void lv_obj_set_ignore_layout(lv_obj_t * obj, bool en)
{
LV_CHECK_OBJ(obj, MY_CLASS, return);
- if(!lv_obj_has_flag_any(obj, f))
- return;
+ if(obj->ignore_layout == en) return;
bool was_on_layout = lv_obj_is_layout_positioned(obj);
- if(f & LV_OBJ_FLAG_SCROLLABLE) {
- lv_area_t hor_area, ver_area;
- lv_obj_get_scrollbar_area(obj, &hor_area, &ver_area);
- lv_obj_invalidate_area(obj, &hor_area);
- lv_obj_invalidate_area(obj, &ver_area);
- }
- obj->flags &= (~f);
- lv_obj_t * parent = lv_obj_get_parent(obj);
+ obj->ignore_layout = en;
- if(f & LV_OBJ_FLAG_HIDDEN) {
- lv_obj_invalidate(obj);
- if(parent) {
- lv_obj_mark_layout_as_dirty(parent);
- }
+ if((was_on_layout != lv_obj_is_layout_positioned(obj))) {
+ lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
lv_obj_mark_layout_as_dirty(obj);
}
-
- if((was_on_layout != lv_obj_is_layout_positioned(obj)) || (f & (LV_OBJ_FLAG_LAYOUT_1 | LV_OBJ_FLAG_LAYOUT_2))) {
- if(parent) {
- lv_obj_mark_layout_as_dirty(parent);
- }
- }
-
}
-void lv_obj_set_flag(lv_obj_t * obj, lv_obj_flag_t f, bool v)
+void lv_obj_set_floating(lv_obj_t * obj, bool en)
{
LV_CHECK_OBJ(obj, MY_CLASS, return);
- if(v) lv_obj_add_flag(obj, f);
- else lv_obj_remove_flag(obj, f);
+
+ if(obj->floating == en) return;
+
+ bool was_on_layout = lv_obj_is_layout_positioned(obj);
+
+ obj->floating = en;
+
+ if((was_on_layout != lv_obj_is_layout_positioned(obj))) {
+ lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
+ lv_obj_mark_layout_as_dirty(obj);
+ }
+}
+
+void lv_obj_set_send_draw_task_events(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->send_draw_task_events = en;
+}
+
+void lv_obj_set_overflow_visible(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->overflow_visible = en;
+}
+
+void lv_obj_set_event_trickle(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->event_trickle = en;
+}
+
+void lv_obj_set_state_trickle(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->state_trickle = en;
+}
+
+void lv_obj_set_radio_button(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ obj->radio_button = en;
+}
+
+void lv_obj_set_flex_in_new_track(lv_obj_t * obj, bool en)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+
+ /*TODO For backward compatibility use it as an LV_OBJ_FLAG_LAYOUT_1
+ *It will have its own bit in lv_obj_t after v9.5*/
+ if(en) {
+ /*Need to allocate spec_attr to set the bit*/
+ lv_obj_allocate_spec_attr(obj);
+ obj->spec_attr->user_flags |= 1 << 0;
+ }
+ else {
+ /*If spec_attr is not allocated,
+ *its not needed to clear it as 0 is the default value*/
+ if(obj->spec_attr) obj->spec_attr->user_flags &= ~(1 << 0);
+ }
+
+ lv_obj_mark_layout_as_dirty(lv_obj_get_parent(obj));
+ lv_obj_mark_layout_as_dirty(obj);
}
void lv_obj_add_state(lv_obj_t * obj, lv_state_t state)
@@ -343,7 +734,7 @@ void lv_obj_add_state(lv_obj_t * obj, lv_state_t state)
lv_state_t new_state = obj->state | state;
if(obj->state != new_state) {
update_obj_state(obj, new_state);
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_STATE_TRICKLE)) {
+ if(lv_obj_is_state_trickle(obj)) {
lv_obj_children_add_state(obj, state);
}
}
@@ -356,7 +747,7 @@ void lv_obj_remove_state(lv_obj_t * obj, lv_state_t state)
lv_state_t new_state = obj->state & (~state);
if(obj->state != new_state) {
update_obj_state(obj, new_state);
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_STATE_TRICKLE)) {
+ if(lv_obj_is_state_trickle(obj)) {
lv_obj_children_remove_state(obj, state);
}
}
@@ -369,30 +760,254 @@ void lv_obj_set_state(lv_obj_t * obj, lv_state_t state, bool v)
else lv_obj_remove_state(obj, state);
}
-void lv_obj_set_radio_button(lv_obj_t * obj, bool en)
-{
- LV_CHECK_OBJ(obj, MY_CLASS, return);
- obj->radio_button = en;
-}
-
/*=======================
* Getter functions
*======================*/
bool lv_obj_has_flag(const lv_obj_t * obj, lv_obj_flag_t f)
{
+ LV_LOG_DEPRECATED("use the dedicated lv_obj_is_() getters instead, e.g. lv_obj_is_hidden(obj).");
+
LV_CHECK_OBJ(obj, MY_CLASS, return false);
- return (obj->flags & f) == f;
+ if(f >= LV_OBJ_FLAG_LAYOUT_1 && obj->spec_attr == NULL) return false;;
+
+ if((f & LV_OBJ_FLAG_HIDDEN) && !obj->hidden) return false;
+ if((f & LV_OBJ_FLAG_CLICKABLE) && !obj->clickable) return false;
+ if((f & LV_OBJ_FLAG_CLICK_FOCUSABLE) && !obj->click_focusable) return false;
+ if((f & LV_OBJ_FLAG_CHECKABLE) && !obj->checkable) return false;
+ if((f & LV_OBJ_FLAG_SCROLLABLE) && !obj->scrollable) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_ELASTIC) && !obj->scroll_elastic) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_MOMENTUM) && !obj->scroll_momentum) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_ONE) && !obj->scroll_one) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_CHAIN_HOR) && !obj->scroll_chain_hor) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_CHAIN_VER) && !obj->scroll_chain_ver) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_ON_FOCUS) && !obj->scroll_on_focus) return false;
+ if((f & LV_OBJ_FLAG_SCROLL_WITH_ARROW) && !obj->scroll_with_arrow) return false;
+ if((f & LV_OBJ_FLAG_SNAPPABLE) && !obj->snappable) return false;
+ if((f & LV_OBJ_FLAG_PRESS_LOCK) && !obj->press_lock) return false;
+ if((f & LV_OBJ_FLAG_EVENT_BUBBLE) && !obj->event_bubble) return false;
+ if((f & LV_OBJ_FLAG_GESTURE_BUBBLE) && !obj->gesture_bubble) return false;
+ if((f & LV_OBJ_FLAG_ADV_HITTEST) && !obj->adv_hittest) return false;
+ if((f & LV_OBJ_FLAG_IGNORE_LAYOUT) && !obj->ignore_layout) return false;
+ if((f & LV_OBJ_FLAG_FLOATING) && !obj->floating) return false;
+ if((f & LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS) && !obj->send_draw_task_events) return false;
+ if((f & LV_OBJ_FLAG_OVERFLOW_VISIBLE) && !obj->overflow_visible) return false;
+ if((f & LV_OBJ_FLAG_EVENT_TRICKLE) && !obj->event_trickle) return false;
+ if((f & LV_OBJ_FLAG_STATE_TRICKLE) && !obj->state_trickle) return false;
+ if((f & LV_OBJ_FLAG_LAYOUT_1) && !(obj->spec_attr->user_flags & (1 << 0))) return false;
+ if((f & LV_OBJ_FLAG_LAYOUT_2) && !(obj->spec_attr->user_flags & (1 << 1))) return false;
+ if((f & LV_OBJ_FLAG_WIDGET_1) && !(obj->spec_attr->user_flags & (1 << 2))) return false;
+ if((f & LV_OBJ_FLAG_WIDGET_2) && !(obj->spec_attr->user_flags & (1 << 3))) return false;
+ if((f & LV_OBJ_FLAG_USER_1) && !(obj->spec_attr->user_flags & (1 << 4))) return false;
+ if((f & LV_OBJ_FLAG_USER_2) && !(obj->spec_attr->user_flags & (1 << 5))) return false;
+ if((f & LV_OBJ_FLAG_USER_3) && !(obj->spec_attr->user_flags & (1 << 6))) return false;
+ if((f & LV_OBJ_FLAG_USER_4) && !(obj->spec_attr->user_flags & (1 << 7))) return false;
+
+ return true;
}
bool lv_obj_has_flag_any(const lv_obj_t * obj, lv_obj_flag_t f)
{
+ LV_LOG_DEPRECATED("use the dedicated lv_obj_is_() getters instead, e.g. lv_obj_is_hidden(obj).");
+
LV_CHECK_OBJ(obj, MY_CLASS, return false);
- return !!(obj->flags & f);
+ if((f & LV_OBJ_FLAG_HIDDEN) && obj->hidden) return true;
+ if((f & LV_OBJ_FLAG_CLICKABLE) && obj->clickable) return true;
+ if((f & LV_OBJ_FLAG_CLICK_FOCUSABLE) && obj->click_focusable) return true;
+ if((f & LV_OBJ_FLAG_CHECKABLE) && obj->checkable) return true;
+ if((f & LV_OBJ_FLAG_SCROLLABLE) && obj->scrollable) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_ELASTIC) && obj->scroll_elastic) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_MOMENTUM) && obj->scroll_momentum) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_ONE) && obj->scroll_one) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_CHAIN_HOR) && obj->scroll_chain_hor) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_CHAIN_VER) && obj->scroll_chain_ver) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_ON_FOCUS) && obj->scroll_on_focus) return true;
+ if((f & LV_OBJ_FLAG_SCROLL_WITH_ARROW) && obj->scroll_with_arrow) return true;
+ if((f & LV_OBJ_FLAG_SNAPPABLE) && obj->snappable) return true;
+ if((f & LV_OBJ_FLAG_PRESS_LOCK) && obj->press_lock) return true;
+ if((f & LV_OBJ_FLAG_EVENT_BUBBLE) && obj->event_bubble) return true;
+ if((f & LV_OBJ_FLAG_GESTURE_BUBBLE) && obj->gesture_bubble) return true;
+ if((f & LV_OBJ_FLAG_ADV_HITTEST) && obj->adv_hittest) return true;
+ if((f & LV_OBJ_FLAG_IGNORE_LAYOUT) && obj->ignore_layout) return true;
+ if((f & LV_OBJ_FLAG_FLOATING) && obj->floating) return true;
+ if((f & LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS) && obj->send_draw_task_events) return true;
+ if((f & LV_OBJ_FLAG_OVERFLOW_VISIBLE) && obj->overflow_visible) return true;
+ if((f & LV_OBJ_FLAG_EVENT_TRICKLE) && obj->event_trickle) return true;
+ if((f & LV_OBJ_FLAG_STATE_TRICKLE) && obj->state_trickle) return true;
+
+ if(f >= LV_OBJ_FLAG_LAYOUT_1 && obj->spec_attr == NULL) return false;
+
+ if((f & LV_OBJ_FLAG_LAYOUT_1) && (obj->spec_attr->user_flags & (1 << 0))) return true;
+ if((f & LV_OBJ_FLAG_LAYOUT_2) && (obj->spec_attr->user_flags & (1 << 1))) return true;
+ if((f & LV_OBJ_FLAG_WIDGET_1) && (obj->spec_attr->user_flags & (1 << 2))) return true;
+ if((f & LV_OBJ_FLAG_WIDGET_2) && (obj->spec_attr->user_flags & (1 << 3))) return true;
+ if((f & LV_OBJ_FLAG_USER_1) && (obj->spec_attr->user_flags & (1 << 4))) return true;
+ if((f & LV_OBJ_FLAG_USER_2) && (obj->spec_attr->user_flags & (1 << 5))) return true;
+ if((f & LV_OBJ_FLAG_USER_3) && (obj->spec_attr->user_flags & (1 << 6))) return true;
+ if((f & LV_OBJ_FLAG_USER_4) && (obj->spec_attr->user_flags & (1 << 7))) return true;
+
+ return false;
}
+
+bool lv_obj_is_hidden(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->hidden;
+}
+
+bool lv_obj_is_clickable(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->clickable;
+}
+
+bool lv_obj_is_click_focusable(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->click_focusable;
+}
+
+bool lv_obj_is_checkable(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->checkable;
+}
+
+bool lv_obj_is_scrollable(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scrollable;
+}
+
+bool lv_obj_is_scroll_elastic(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_elastic;
+}
+
+bool lv_obj_is_scroll_momentum(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_momentum;
+}
+
+bool lv_obj_is_scroll_one(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_one;
+}
+
+bool lv_obj_is_scroll_chain_hor(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_chain_hor;
+}
+
+bool lv_obj_is_scroll_chain_ver(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_chain_ver;
+}
+
+bool lv_obj_is_scroll_on_focus(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_on_focus;
+}
+
+bool lv_obj_is_scroll_with_arrow(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->scroll_with_arrow;
+}
+
+bool lv_obj_is_snappable(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->snappable;
+}
+
+bool lv_obj_is_press_lock(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->press_lock;
+}
+
+bool lv_obj_is_event_bubble(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->event_bubble;
+}
+
+bool lv_obj_is_gesture_bubble(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->gesture_bubble;
+}
+
+bool lv_obj_is_adv_hittest(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->adv_hittest;
+}
+
+bool lv_obj_is_ignore_layout(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->ignore_layout;
+}
+
+bool lv_obj_is_floating(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->floating;
+}
+
+bool lv_obj_is_send_draw_task_events(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->send_draw_task_events;
+}
+
+bool lv_obj_is_overflow_visible(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->overflow_visible;
+}
+
+bool lv_obj_is_event_trickle(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->event_trickle;
+}
+
+bool lv_obj_is_state_trickle(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->state_trickle;
+}
+
+bool lv_obj_is_radio_button(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ return obj->radio_button;
+}
+
+bool lv_obj_is_flex_in_new_track(const lv_obj_t * obj)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+
+ /*For backward compatibility use it as as LV_OBJ_FLAG_LAYOUT_1
+ *It will have it's on bin in lv_obj_t after v9.5*/
+ if(obj->spec_attr == NULL) return false;
+
+ return obj->spec_attr->user_flags & (1 << 0);
+}
+
+
lv_state_t lv_obj_get_state(const lv_obj_t * obj)
{
LV_CHECK_OBJ(obj, MY_CLASS, return 0);
@@ -407,12 +1022,6 @@ bool lv_obj_has_state(const lv_obj_t * obj, lv_state_t state)
return !!(obj->state & state);
}
-bool lv_obj_is_radio_button(const lv_obj_t * obj)
-{
- LV_CHECK_OBJ(obj, MY_CLASS, return false);
- return obj->radio_button;
-}
-
lv_group_t * lv_obj_get_group(const lv_obj_t * obj)
{
LV_CHECK_OBJ(obj, MY_CLASS, return NULL);
@@ -621,6 +1230,19 @@ void lv_obj_set_user_data(lv_obj_t * obj, void * user_data)
obj->user_data = user_data;
}
+void lv_obj_set_user_flag(lv_obj_t * obj, uint32_t bit, bool v)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ LV_CHECK_ARG(bit < 4, return);
+
+ lv_obj_spec_attr_t * spec_attr = lv_obj_allocate_spec_attr(obj);
+ LV_ASSERT_MALLOC(spec_attr);
+ if(spec_attr == NULL) return;
+
+ if(v) spec_attr->user_flags |= 1 << (bit + 4);
+ else spec_attr->user_flags &= ~(1 << (bit + 4));
+}
+
void * lv_obj_get_user_data(lv_obj_t * obj)
{
LV_CHECK_OBJ(obj, MY_CLASS, return NULL);
@@ -628,6 +1250,15 @@ void * lv_obj_get_user_data(lv_obj_t * obj)
return obj->user_data;
}
+bool lv_obj_get_user_flag(lv_obj_t * obj, uint32_t bit)
+{
+ LV_CHECK_OBJ(obj, MY_CLASS, return false);
+ LV_CHECK_ARG(bit < 4, return false);
+
+ if(obj->spec_attr == NULL) return false;
+ else return (obj->spec_attr->user_flags & 1 << (bit + 4)) ? true : false;
+}
+
lv_delete_dsc_t * lv_obj_add_delete_cb(lv_obj_t * obj, lv_delete_cb_t cb, void * user_data)
{
LV_CHECK_OBJ(obj, MY_CLASS, return NULL);
@@ -686,16 +1317,19 @@ static void lv_obj_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
}
/*Set attributes*/
- obj->flags = LV_OBJ_FLAG_CLICKABLE;
- obj->flags |= LV_OBJ_FLAG_SNAPPABLE;
- if(parent) obj->flags |= LV_OBJ_FLAG_PRESS_LOCK;
- if(parent) obj->flags |= LV_OBJ_FLAG_SCROLL_CHAIN;
- obj->flags |= LV_OBJ_FLAG_CLICK_FOCUSABLE;
- obj->flags |= LV_OBJ_FLAG_SCROLLABLE;
- obj->flags |= LV_OBJ_FLAG_SCROLL_ELASTIC;
- obj->flags |= LV_OBJ_FLAG_SCROLL_MOMENTUM;
- obj->flags |= LV_OBJ_FLAG_SCROLL_WITH_ARROW;
- if(parent) obj->flags |= LV_OBJ_FLAG_GESTURE_BUBBLE;
+ obj->clickable = 1;
+ obj->snappable = 1;
+ obj->click_focusable = 1;
+ obj->scrollable = 1;
+ obj->scroll_elastic = 1;
+ obj->scroll_momentum = 1;
+ obj->scroll_with_arrow = 1;
+ if(parent) {
+ obj->press_lock = 1;
+ obj->scroll_chain_hor = 1;
+ obj->scroll_chain_ver = 1;
+ obj->gesture_bubble = 1;
+ }
#if LV_OBJ_ID_AUTO_ASSIGN
lv_obj_assign_id(class_p, obj);
@@ -992,7 +1626,7 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
lv_obj_remove_state(obj, LV_STATE_PRESSED);
void * param = lv_event_get_param(e);
/*Go the checked state if enabled*/
- if(lv_indev_get_scroll_obj(param) == NULL && lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) {
+ if(lv_indev_get_scroll_obj(param) == NULL && lv_obj_is_checkable(obj)) {
bool was_checked = lv_obj_has_state(obj, LV_STATE_CHECKED);
if(!(lv_obj_get_state(obj) & LV_STATE_CHECKED)) {
@@ -1038,7 +1672,7 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
}
}
else if(code == LV_EVENT_KEY) {
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE)) {
+ if(lv_obj_is_checkable(obj)) {
uint32_t c = lv_event_get_key(e);
bool was_checked = lv_obj_has_state(obj, LV_STATE_CHECKED);
if(c == LV_KEY_RIGHT || c == LV_KEY_UP) {
@@ -1057,7 +1691,7 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
if(res != LV_RESULT_OK) return;
}
}
- else if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_WITH_ARROW) && !lv_obj_is_editable(obj)) {
+ else if(lv_obj_is_scrollable(obj) && lv_obj_is_scroll_with_arrow(obj) && !lv_obj_is_editable(obj)) {
/*scroll by keypad or encoder*/
lv_anim_enable_t anim_enable = LV_ANIM_OFF;
int32_t sl = lv_obj_get_scroll_left(obj);
@@ -1087,7 +1721,7 @@ static void lv_obj_event(const lv_obj_class_t * class_p, lv_event_t * e)
}
}
else if(code == LV_EVENT_FOCUSED) {
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS)) {
+ if(lv_obj_is_scroll_on_focus(obj)) {
lv_obj_scroll_to_view_recursive(obj, LV_ANIM_ON);
}
@@ -1414,9 +2048,13 @@ static lv_result_t lv_obj_set_any(lv_obj_t * obj, lv_prop_id_t id, const lv_prop
LV_ASSERT(obj != NULL);
if(id >= LV_PROPERTY_OBJ_FLAG_START && id <= LV_PROPERTY_OBJ_FLAG_END) {
+ /*The flag properties are kept for backward compatibility; the dedicated
+ *per-flag setters are registered as normal properties (see lv_obj_properties).*/
lv_obj_flag_t flag = 1L << (id - LV_PROPERTY_OBJ_FLAG_START);
+ LV_DEPRECATIONS_IGNORE_BEGIN
if(prop->num) lv_obj_add_flag(obj, flag);
else lv_obj_remove_flag(obj, flag);
+ LV_DEPRECATIONS_IGNORE_END
return LV_RESULT_OK;
}
else if(id >= LV_PROPERTY_OBJ_STATE_START && id <= LV_PROPERTY_OBJ_STATE_END) {
@@ -1440,7 +2078,9 @@ static lv_result_t lv_obj_get_any(const lv_obj_t * obj, lv_prop_id_t id, lv_prop
if(id >= LV_PROPERTY_OBJ_FLAG_START && id <= LV_PROPERTY_OBJ_FLAG_END) {
lv_obj_flag_t flag = 1L << (id - LV_PROPERTY_OBJ_FLAG_START);
prop->id = id;
- prop->num = obj->flags & flag;
+ LV_DEPRECATIONS_IGNORE_BEGIN
+ prop->num = lv_obj_has_flag_any(obj, flag);
+ LV_DEPRECATIONS_IGNORE_END
return LV_RESULT_OK;
}
else if(id >= LV_PROPERTY_OBJ_STATE_START && id <= LV_PROPERTY_OBJ_STATE_END) {
diff --git a/src/core/lv_obj_event.c b/src/core/lv_obj_event.c
index 0bbffdc56f..875aa47e93 100644
--- a/src/core/lv_obj_event.c
+++ b/src/core/lv_obj_event.c
@@ -397,7 +397,7 @@ static bool event_is_bubbled(lv_event_t * e)
}
/*Check other codes only if bubbling is enabled*/
- if(lv_obj_has_flag(e->current_target, LV_OBJ_FLAG_EVENT_BUBBLE) == false) return false;
+ if(lv_obj_is_event_bubble(e->current_target) == false) return false;
switch(e->code) {
case LV_EVENT_HIT_TEST:
@@ -429,7 +429,7 @@ static bool event_is_trickled(lv_event_t * e)
if(e->stop_trickling) return false;
/*Check other codes only if trickle is enabled*/
- if(lv_obj_has_flag(e->current_target, LV_OBJ_FLAG_EVENT_TRICKLE) == false) return false;
+ if(lv_obj_is_event_trickle(e->current_target) == false) return false;
switch(e->code) {
case LV_EVENT_HIT_TEST:
diff --git a/src/core/lv_obj_pos.c b/src/core/lv_obj_pos.c
index be9874acc5..8497c2809c 100644
--- a/src/core/lv_obj_pos.c
+++ b/src/core/lv_obj_pos.c
@@ -294,7 +294,7 @@ bool lv_obj_is_layout_positioned(const lv_obj_t * obj)
{
LV_CHECK_OBJ(obj, MY_CLASS, return false);
- if(lv_obj_has_flag_any(obj, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_FLOATING)) return false;
+ if(lv_obj_is_hidden(obj) || lv_obj_is_ignore_layout(obj) || lv_obj_is_floating(obj)) return false;
lv_obj_t * parent = lv_obj_get_parent(obj);
if(parent == NULL) return false;
@@ -885,7 +885,7 @@ void lv_obj_move_to(lv_obj_t * obj, int32_t x, int32_t y)
lv_obj_t * parent = obj->parent;
if(parent) {
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_FLOATING)) {
+ if(lv_obj_is_floating(obj)) {
x += parent->coords.x1;
y += parent->coords.y1;
}
@@ -956,7 +956,7 @@ void lv_obj_move_children_by(lv_obj_t * obj, int32_t x_diff, int32_t y_diff, boo
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- if(ignore_floating && lv_obj_has_flag(child, LV_OBJ_FLAG_FLOATING)) continue;
+ if(ignore_floating && lv_obj_is_floating(child)) continue;
child->coords.x1 += x_diff;
child->coords.y1 += y_diff;
child->coords.x2 += x_diff;
@@ -1105,7 +1105,7 @@ bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area)
LV_CHECK_ARG(area != NULL, return false);
LV_CHECK_OBJ(obj, MY_CLASS, return false);
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return false;
+ if(lv_obj_is_hidden(obj)) return false;
/*Invalidate the object only if it belongs to the current or previous or one of the layers'*/
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
@@ -1135,11 +1135,11 @@ bool lv_obj_area_is_visible(const lv_obj_t * obj, lv_area_t * area)
lv_obj_t * parent = lv_obj_get_parent(obj);
while(parent != NULL) {
/*If the parent is hidden then the child is hidden and won't be drawn*/
- if(lv_obj_has_flag(parent, LV_OBJ_FLAG_HIDDEN)) return false;
+ if(lv_obj_is_hidden(parent)) return false;
/*Truncate to the parent and if no common parts break*/
lv_area_t parent_coords = parent->coords;
- if(lv_obj_has_flag(parent, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+ if(lv_obj_is_overflow_visible(parent)) {
int32_t parent_ext_size = lv_obj_get_ext_draw_size(parent);
lv_area_increase(&parent_coords, parent_ext_size, parent_ext_size);
}
@@ -1196,14 +1196,14 @@ bool lv_obj_hit_test(lv_obj_t * obj, const lv_point_t * point)
LV_CHECK_ARG(point != NULL, return false);
LV_CHECK_OBJ(obj, MY_CLASS, return false);
- if(!lv_obj_has_flag(obj, LV_OBJ_FLAG_CLICKABLE)) return false;
+ if(!lv_obj_is_clickable(obj)) return false;
lv_area_t a;
lv_obj_get_click_area(obj, &a);
bool res = lv_area_is_point_on(&a, point, 0);
if(res == false) return false;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_ADV_HITTEST)) {
+ if(lv_obj_is_adv_hittest(obj)) {
lv_hit_test_info_t hit_info;
hit_info.point = point;
hit_info.res = true;
@@ -1377,7 +1377,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
for(i = 0; i < child_cnt; i++) {
int32_t child_res_tmp = LV_COORD_MIN;
lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING))
+ if(child->hidden || child->floating)
continue;
if(child->w_ignore_size)
@@ -1417,7 +1417,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
for(i = 0; i < child_cnt; i++) {
int32_t child_res_tmp = LV_COORD_MIN;
lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if(child->hidden || child->floating) continue;
if(child->w_ignore_size)
continue;
@@ -1485,8 +1485,7 @@ static int32_t calc_content_height(lv_obj_t * obj)
for(i = 0; i < child_cnt; i++) {
int32_t child_res_tmp = LV_COORD_MIN;
lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING))
- continue;
+ if(child->hidden || child->floating) continue;
if(child->h_ignore_size)
continue;
diff --git a/src/core/lv_obj_private.h b/src/core/lv_obj_private.h
index d94416ae11..58794cf95a 100644
--- a/src/core/lv_obj_private.h
+++ b/src/core/lv_obj_private.h
@@ -49,11 +49,11 @@ typedef struct _lv_obj_spec_attr_t {
uint16_t scroll_snap_y : 2; /**< Where to align the snappable children vertically*/
uint16_t scroll_dir : 4; /**< The allowed scroll direction(s), see `lv_dir_t`*/
uint16_t layer_type : 2; /**< Cache the layer type here. Element of lv_intermediate_layer_type_t */
- uint16_t name_static : 1; /**< 1: `name` was not dynamically allocated */
+ uint16_t name_static : 1; /**< 1: `name` was not dynamically allocated */
+ uint16_t user_flags : 8; /**< Store custom flags */
} lv_obj_spec_attr_t;
-
struct _lv_obj_t {
#if LV_USE_EXT_DATA
lv_ext_data_t ext_data;
@@ -71,7 +71,78 @@ struct _lv_obj_t {
void * id;
#endif
lv_area_t coords;
- lv_obj_flag_t flags;
+ /** Make the object hidden. (Like it wasn't there at all) */
+ uint32_t hidden : 1;
+
+ /** Make the object clickable by the input devices */
+ uint32_t clickable : 1;
+
+ /** Add focused state to the object when clicked */
+ uint32_t click_focusable : 1;
+
+ /** Toggle checked state when the object is clicked */
+ uint32_t checkable : 1;
+
+ /** Make the object scrollable */
+ uint32_t scrollable : 1;
+
+ /** Allow scrolling inside but with slower speed */
+ uint32_t scroll_elastic : 1;
+
+ /** Make the object scroll further when "thrown" */
+ uint32_t scroll_momentum : 1;
+
+ /** Allow scrolling only one snappable child */
+ uint32_t scroll_one : 1;
+
+ /** Allow propagating the horizontal scroll to a parent */
+ uint32_t scroll_chain_hor : 1;
+
+ /** Allow propagating the vertical scroll to a parent */
+ uint32_t scroll_chain_ver : 1;
+
+ /** Automatically scroll object to make it visible when focused */
+ uint32_t scroll_on_focus : 1;
+
+ /** Allow scrolling the focused object with arrow keys */
+ uint32_t scroll_with_arrow : 1;
+
+ /** If scroll snap is enabled on the parent it can snap to this object */
+ uint32_t snappable : 1;
+
+ /** Keep the object pressed even if the press slid from the object */
+ uint32_t press_lock : 1;
+
+ /** Propagate the events to the parent too */
+ uint32_t event_bubble : 1;
+
+ /** Propagate the gestures to the parent */
+ uint32_t gesture_bubble : 1;
+
+ /** Allow performing more accurate hit (click) test */
+ uint32_t adv_hittest : 1;
+
+ /** Make the object not positioned by the layouts */
+ uint32_t ignore_layout : 1;
+
+ /** Do not scroll the object when the parent scrolls and ignore layout */
+ uint32_t floating : 1;
+
+ /** Send LV_EVENT_DRAW_TASK_ADDED events */
+ uint32_t send_draw_task_events : 1;
+
+ /** Do not clip the children to the parent's ext draw size */
+ uint32_t overflow_visible : 1;
+
+ /** Propagate the events to the children too */
+ uint32_t event_trickle : 1;
+
+ /** Propagate the states to the children too */
+ uint32_t state_trickle : 1;
+
+ /** Allow only one RADIO_BUTTON sibling to be checked */
+ uint32_t radio_button : 1;
+
uint16_t state;
uint16_t layout_inv : 1;
uint16_t readjust_scroll_after_layout : 1;
@@ -83,7 +154,6 @@ struct _lv_obj_t {
uint16_t h_ignore_size : 1; /* ignore this obj when calculating content height of parent */
uint16_t w_ignore_size : 1; /* ignore this obj when calculating content width of parent */
uint16_t is_deleting : 1;
- uint16_t radio_button : 1; /**< Allow only one RADIO_BUTTON sibling to be checked*/
/** The widget is rendered at least once already.
* It's used to skip initial animations and transitions. */
diff --git a/src/core/lv_obj_scroll.c b/src/core/lv_obj_scroll.c
index d1ec0fcac0..322c81b516 100644
--- a/src/core/lv_obj_scroll.c
+++ b/src/core/lv_obj_scroll.c
@@ -172,7 +172,7 @@ int32_t lv_obj_get_scroll_bottom(const lv_obj_t * obj)
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
const lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if((lv_obj_is_hidden(child) || lv_obj_is_floating(child))) continue;
int32_t tmp_y = child->coords.y2 + lv_obj_get_style_margin_bottom(child, LV_PART_MAIN);
child_res = LV_MAX(child_res, tmp_y);
@@ -213,7 +213,7 @@ int32_t lv_obj_get_scroll_left(const lv_obj_t * obj)
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
const lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if((lv_obj_is_hidden(child) || lv_obj_is_floating(child))) continue;
int32_t tmp_x = child->coords.x1 - lv_obj_get_style_margin_left(child, LV_PART_MAIN);
x1 = LV_MIN(x1, tmp_x);
@@ -251,7 +251,7 @@ int32_t lv_obj_get_scroll_right(const lv_obj_t * obj)
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
const lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if((lv_obj_is_hidden(child) || lv_obj_is_floating(child))) continue;
int32_t tmp_x = child->coords.x2 + lv_obj_get_style_margin_right(child, LV_PART_MAIN);
child_res = LV_MAX(child_res, tmp_x);
@@ -524,7 +524,7 @@ void lv_obj_get_scrollbar_area(lv_obj_t * obj, lv_area_t * hor_area, lv_area_t *
lv_area_set(hor_area, 0, 0, -1, -1);
lv_area_set(ver_area, 0, 0, -1, -1);
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLLABLE) == false) return;
+ if(lv_obj_is_scrollable(obj) == false) return;
lv_scrollbar_mode_t sm = lv_obj_get_scrollbar_mode(obj);
if(sm == LV_SCROLLBAR_MODE_OFF) return;
@@ -768,7 +768,7 @@ static void scroll_area_into_view(const lv_area_t * area, lv_obj_t * child, lv_p
lv_anim_enable_t anim_en)
{
lv_obj_t * parent = lv_obj_get_parent(child);
- if(!lv_obj_has_flag(parent, LV_OBJ_FLAG_SCROLLABLE)) return;
+ if(!lv_obj_is_scrollable(parent)) return;
lv_dir_t scroll_dir = lv_obj_get_scroll_dir(parent);
int32_t snap_goal = 0;
diff --git a/src/core/lv_obj_tree.c b/src/core/lv_obj_tree.c
index f13c680b7a..c34ec8bbf3 100644
--- a/src/core/lv_obj_tree.c
+++ b/src/core/lv_obj_tree.c
@@ -580,9 +580,9 @@ int32_t lv_obj_get_index(const lv_obj_t * obj)
lv_obj_t * parent = lv_obj_get_parent(obj);
if(parent == NULL) return -1;
- int32_t i = 0;
+ uint32_t i = 0;
for(i = 0; i < parent->spec_attr->child_cnt; i++) {
- if(parent->spec_attr->children[i] == obj) return i;
+ if(parent->spec_attr->children[i] == obj) return (int32_t)i;
}
/*Shouldn't reach this point*/
diff --git a/src/core/lv_observer.c b/src/core/lv_observer.c
index 4e5b5d9489..e2e2b75c3d 100644
--- a/src/core/lv_observer.c
+++ b/src/core/lv_observer.c
@@ -1014,12 +1014,15 @@ static void obj_flag_observer_cb(lv_observer_t * observer, lv_subject_t * subjec
}
if(p->inv) res = !res;
+ /*TODO: the flag binding API is deprecated separately; suppress the warning until then*/
+ LV_DEPRECATIONS_IGNORE_BEGIN
if(res) {
lv_obj_add_flag(observer->target, p->flag);
}
else {
lv_obj_remove_flag(observer->target, p->flag);
}
+ LV_DEPRECATIONS_IGNORE_END
}
static void obj_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c
index 1bb8360774..8454f208f0 100644
--- a/src/core/lv_refr.c
+++ b/src/core/lv_refr.c
@@ -140,7 +140,7 @@ void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj)
#endif
const lv_area_t * obj_coords;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+ if(lv_obj_is_overflow_visible(obj)) {
obj_coords = &obj_coords_ext;
}
else {
@@ -463,7 +463,7 @@ lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
lv_obj_t * found_p = NULL;
if(lv_area_is_in(area_p, &obj->coords, 0) == false) return NULL;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
+ if(lv_obj_is_hidden(obj)) return NULL;
if(lv_obj_get_layer_type(obj) != LV_LAYER_TYPE_NONE) return NULL;
if(lv_obj_get_style_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) return NULL;
@@ -500,7 +500,7 @@ void lv_obj_refr(lv_layer_t * layer, lv_obj_t * obj)
LV_CHECK_ARG(layer != NULL, return);
LV_CHECK_ARG(obj != NULL, return);
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return;
+ if(lv_obj_is_hidden(obj)) return;
/*If `opa_layered != LV_OPA_COVER` draw the widget on a new layer and blend that layer with the given opacity.*/
const lv_opa_t opa_layered = lv_obj_get_style_opa_layered(obj, LV_PART_MAIN);
diff --git a/src/debugging/sysmon/lv_sysmon.c b/src/debugging/sysmon/lv_sysmon.c
index f438d55d3c..07892691bb 100644
--- a/src/debugging/sysmon/lv_sysmon.c
+++ b/src/debugging/sysmon/lv_sysmon.c
@@ -118,11 +118,7 @@ void lv_sysmon_show_performance(lv_display_t * disp)
lv_display_add_event_cb(disp, perf_monitor_disp_event_cb, LV_EVENT_ALL, NULL);
}
-#if LV_USE_PERF_MONITOR_LOG_MODE
- lv_obj_add_flag(disp->perf_label, LV_OBJ_FLAG_HIDDEN);
-#else
- lv_obj_remove_flag(disp->perf_label, LV_OBJ_FLAG_HIDDEN);
-#endif
+ lv_obj_set_hidden(disp->perf_label, LV_USE_PERF_MONITOR_LOG_MODE);
}
void lv_sysmon_hide_performance(lv_display_t * disp)
@@ -133,7 +129,7 @@ void lv_sysmon_hide_performance(lv_display_t * disp)
return;
}
- lv_obj_add_flag(disp->perf_label, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(disp->perf_label, true);
}
void lv_sysmon_performance_dump(lv_display_t * disp)
@@ -179,7 +175,7 @@ void lv_sysmon_show_memory(lv_display_t * disp)
lv_subject_add_observer_obj(&sysmon_mem.subject, mem_observer_cb, disp->mem_label, NULL);
}
- lv_obj_remove_flag(disp->mem_label, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(disp->mem_label, false);
}
void lv_sysmon_hide_memory(lv_display_t * disp)
@@ -190,7 +186,7 @@ void lv_sysmon_hide_memory(lv_display_t * disp)
return;
}
- lv_obj_add_flag(disp->mem_label, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(disp->mem_label, true);
}
#endif
diff --git a/src/display/lv_display.c b/src/display/lv_display.c
index 2089338f12..3b4e116590 100644
--- a/src/display/lv_display.c
+++ b/src/display/lv_display.c
@@ -150,8 +150,8 @@ lv_display_t * lv_display_create(int32_t hor_res, int32_t ver_res)
lv_obj_remove_style_all(disp->bottom_layer);
lv_obj_remove_style_all(disp->top_layer);
lv_obj_remove_style_all(disp->sys_layer);
- lv_obj_remove_flag(disp->top_layer, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_remove_flag(disp->sys_layer, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(disp->top_layer, false);
+ lv_obj_set_clickable(disp->sys_layer, false);
if(lv_color_format_has_alpha(disp->color_format)) {
lv_obj_remove_local_style_prop(disp->bottom_layer, LV_STYLE_BG_OPA, 0);
diff --git a/src/draw/lv_draw.c b/src/draw/lv_draw.c
index 0dcdfecf1b..f57e767f5f 100644
--- a/src/draw/lv_draw.c
+++ b/src/draw/lv_draw.c
@@ -141,7 +141,7 @@ void lv_draw_finalize_task_creation(lv_layer_t * layer, lv_draw_task_t * t)
*dispatching might remove the "main" draw task while it's still being used in the event*/
if(info->task_running == false) {
- if(base_dsc->obj && lv_obj_has_flag(base_dsc->obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS)) {
+ if(base_dsc->obj && lv_obj_is_send_draw_task_events(base_dsc->obj)) {
info->task_running = true;
lv_obj_send_event(base_dsc->obj, LV_EVENT_DRAW_TASK_ADDED, t);
info->task_running = false;
diff --git a/src/draw/lv_draw_label.c b/src/draw/lv_draw_label.c
index e91a0d68f6..036fe369e6 100644
--- a/src/draw/lv_draw_label.c
+++ b/src/draw/lv_draw_label.c
@@ -229,7 +229,7 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
}
else {
/*If EXPAND is enabled then not limit the text's width to the object's width*/
- if(base_dsc->obj && !lv_obj_has_flag(base_dsc->obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS)) {
+ if(base_dsc->obj && !lv_obj_is_send_draw_task_events(base_dsc->obj)) {
w = dsc->text_size.x;
}
else {
diff --git a/src/draw/lv_draw_mask.c b/src/draw/lv_draw_mask.c
index 0779412865..9fbef4bb00 100644
--- a/src/draw/lv_draw_mask.c
+++ b/src/draw/lv_draw_mask.c
@@ -59,12 +59,12 @@ void LV_ATTRIBUTE_FAST_MEM lv_draw_mask_rect(lv_layer_t * layer, const lv_draw_m
lv_draw_dsc_base_t * base_dsc = t->draw_dsc;
base_dsc->layer = layer;
- if(base_dsc->obj && lv_obj_has_flag(base_dsc->obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS)) {
+ if(base_dsc->obj && lv_obj_is_send_draw_task_events(base_dsc->obj)) {
/*Disable sending LV_EVENT_DRAW_TASK_ADDED first to avoid triggering recursive
*event calls due draw task adds in the event*/
- lv_obj_remove_flag(base_dsc->obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(base_dsc->obj, false);
lv_obj_send_event(dsc->base.obj, LV_EVENT_DRAW_TASK_ADDED, t);
- lv_obj_add_flag(base_dsc->obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(base_dsc->obj, true);
}
lv_draw_finalize_task_creation(layer, t);
diff --git a/src/draw/opengles/lv_draw_opengles.c b/src/draw/opengles/lv_draw_opengles.c
index c801e46905..05af684df7 100644
--- a/src/draw/opengles/lv_draw_opengles.c
+++ b/src/draw/opengles/lv_draw_opengles.c
@@ -307,8 +307,8 @@ static unsigned int draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t *
lv_obj_t * obj = ((lv_draw_dsc_base_t *)task->draw_dsc)->obj;
bool original_send_draw_task_event = false;
if(obj) {
- original_send_draw_task_event = lv_obj_has_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ original_send_draw_task_event = lv_obj_is_send_draw_task_events(obj);
+ lv_obj_set_send_draw_task_events(obj, false);
}
if(cache_data != NULL) {
@@ -317,7 +317,7 @@ static unsigned int draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t *
LV_ASSERT_MALLOC(cache_data->draw_dsc);
if(cache_data->draw_dsc == NULL) {
if(obj) {
- lv_obj_set_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS, original_send_draw_task_event);
+ lv_obj_set_send_draw_task_events(obj, original_send_draw_task_event);
}
LV_PROFILER_DRAW_END;
return 0;
@@ -408,7 +408,7 @@ static unsigned int draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t *
*in opengles_texture_cache_free_cb*/
LV_LOG_ERROR("OpenGLES draw unit does not support tasks of type %d", task->type);
if(obj) {
- lv_obj_set_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS, original_send_draw_task_event);
+ lv_obj_set_send_draw_task_events(obj, original_send_draw_task_event);
}
LV_PROFILER_DRAW_END;
return 0;
@@ -430,7 +430,7 @@ static unsigned int draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t *
}
if(obj) {
- lv_obj_set_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS, original_send_draw_task_event);
+ lv_obj_set_send_draw_task_events(obj, original_send_draw_task_event);
}
LV_PROFILER_DRAW_END;
diff --git a/src/draw/sdl/lv_draw_sdl.c b/src/draw/sdl/lv_draw_sdl.c
index 70262de0f6..ec92d030b5 100644
--- a/src/draw/sdl/lv_draw_sdl.c
+++ b/src/draw/sdl/lv_draw_sdl.c
@@ -230,8 +230,8 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * cache_data)
lv_obj_t * obj = ((lv_draw_dsc_base_t *)task->draw_dsc)->obj;
bool original_send_draw_task_event = false;
if(obj) {
- original_send_draw_task_event = lv_obj_has_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ original_send_draw_task_event = lv_obj_is_send_draw_task_events(obj);
+ lv_obj_set_send_draw_task_events(obj, false);
}
switch(task->type) {
@@ -338,7 +338,7 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * cache_data)
cache_data->texture = texture;
if(obj) {
- lv_obj_set_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS, original_send_draw_task_event);
+ lv_obj_set_send_draw_task_events(obj, original_send_draw_task_event);
}
return true;
diff --git a/src/indev/lv_gridnav.c b/src/indev/lv_gridnav.c
index efb454c9d8..e4a446574c 100644
--- a/src/indev/lv_gridnav.c
+++ b/src/indev/lv_gridnav.c
@@ -67,7 +67,7 @@ void lv_gridnav_add(lv_obj_t * obj, lv_gridnav_ctrl_t ctrl)
dsc->focused_obj = NULL;
lv_obj_add_event_cb(obj, gridnav_event_cb, LV_EVENT_ALL, dsc);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_WITH_ARROW);
+ lv_obj_set_scroll_with_arrow(obj, false);
}
void lv_gridnav_remove(lv_obj_t * obj)
@@ -142,7 +142,7 @@ static void gridnav_event_cb(lv_event_t * e)
lv_obj_t * guess = NULL;
if(key == LV_KEY_RIGHT && !(dsc->ctrl & LV_GRIDNAV_CTRL_VERTICAL_MOVE_ONLY)) {
- if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_has_flag(dsc->focused_obj, LV_OBJ_FLAG_SCROLLABLE) &&
+ if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_is_scrollable(dsc->focused_obj) &&
lv_obj_get_scroll_right(dsc->focused_obj) > 0) {
int32_t d = lv_obj_get_width(dsc->focused_obj) / 4;
if(d <= 0) d = 1;
@@ -162,7 +162,7 @@ static void gridnav_event_cb(lv_event_t * e)
}
}
else if(key == LV_KEY_LEFT && !(dsc->ctrl & LV_GRIDNAV_CTRL_VERTICAL_MOVE_ONLY)) {
- if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_has_flag(dsc->focused_obj, LV_OBJ_FLAG_SCROLLABLE) &&
+ if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_is_scrollable(dsc->focused_obj) &&
lv_obj_get_scroll_left(dsc->focused_obj) > 0) {
int32_t d = lv_obj_get_width(dsc->focused_obj) / 4;
if(d <= 0) d = 1;
@@ -182,7 +182,7 @@ static void gridnav_event_cb(lv_event_t * e)
}
}
else if(key == LV_KEY_DOWN && !(dsc->ctrl & LV_GRIDNAV_CTRL_HORIZONTAL_MOVE_ONLY)) {
- if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_has_flag(dsc->focused_obj, LV_OBJ_FLAG_SCROLLABLE) &&
+ if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_is_scrollable(dsc->focused_obj) &&
lv_obj_get_scroll_bottom(dsc->focused_obj) > 0) {
int32_t d = lv_obj_get_height(dsc->focused_obj) / 4;
if(d <= 0) d = 1;
@@ -201,7 +201,7 @@ static void gridnav_event_cb(lv_event_t * e)
}
}
else if(key == LV_KEY_UP && !(dsc->ctrl & LV_GRIDNAV_CTRL_HORIZONTAL_MOVE_ONLY)) {
- if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_has_flag(dsc->focused_obj, LV_OBJ_FLAG_SCROLLABLE) &&
+ if((dsc->ctrl & LV_GRIDNAV_CTRL_SCROLL_FIRST) && lv_obj_is_scrollable(dsc->focused_obj) &&
lv_obj_get_scroll_top(dsc->focused_obj) > 0) {
int32_t d = lv_obj_get_height(dsc->focused_obj) / 4;
if(d <= 0) d = 1;
@@ -379,8 +379,9 @@ static lv_obj_t * find_last_focusable(lv_obj_t * obj)
static bool obj_is_focusable(lv_obj_t * obj)
{
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return false;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_CLICK_FOCUSABLE)) return true;
+ if(lv_obj_is_hidden(obj)) return false;
+
+ if(lv_obj_is_clickable(obj) && lv_obj_is_click_focusable(obj)) return true;
else return false;
}
diff --git a/src/indev/lv_indev.c b/src/indev/lv_indev.c
index 81aadb0d2b..68e138a1d5 100644
--- a/src/indev/lv_indev.c
+++ b/src/indev/lv_indev.c
@@ -473,8 +473,10 @@ void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj)
indev->cursor = cur_obj;
lv_obj_set_parent(indev->cursor, lv_display_get_layer_sys(indev->disp));
lv_obj_set_pos(indev->cursor, indev->pointer.act_point.x, indev->pointer.act_point.y);
- lv_obj_remove_flag(indev->cursor, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_add_flag(indev->cursor, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_FLOATING);
+ lv_obj_set_clickable(indev->cursor, false);
+
+ lv_obj_set_ignore_layout(indev->cursor, true);
+ lv_obj_set_floating(indev->cursor, true);
}
void lv_indev_set_group(lv_indev_t * indev, lv_group_t * group)
@@ -610,7 +612,7 @@ lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point)
lv_obj_t * found_p = NULL;
/*If this obj is hidden the children are hidden too so return immediately*/
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
+ if(lv_obj_is_hidden(obj)) return NULL;
lv_point_t p_trans = *point;
lv_obj_transform_point(obj, &p_trans, LV_OBJ_POINT_TRANSFORM_FLAG_INVERSE);
@@ -619,7 +621,7 @@ lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point)
/*If the point is on this object check its children too*/
lv_area_t obj_coords = obj->coords;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_OVERFLOW_VISIBLE)) {
+ if(lv_obj_is_overflow_visible(obj)) {
int32_t ext_draw_size = lv_obj_get_ext_draw_size(obj);
lv_area_increase(&obj_coords, ext_draw_size, ext_draw_size);
}
@@ -986,7 +988,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
if(data->key == LV_KEY_ENTER) {
bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) ||
- lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_is_scrollable(indev_obj_act);
if(lv_group_get_editing(g) == true || editable_or_scrollable == false) {
if(is_enabled) {
@@ -1031,7 +1033,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
if(indev_reset_check(indev_act)) return;
bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) ||
- lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_is_scrollable(indev_obj_act);
/*On enter long press toggle edit mode.*/
if(editable_or_scrollable) {
@@ -1085,7 +1087,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
if(data->key == LV_KEY_ENTER) {
bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) ||
- lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_is_scrollable(indev_obj_act);
/*The button was released on a non-editable object. Just send enter*/
if(editable_or_scrollable == false) {
@@ -1262,7 +1264,7 @@ static void indev_proc_press(lv_indev_t * indev)
}
/*If there is an active object it's not scrolled and not press locked also search*/
else if(indev->pointer.scroll_obj == NULL &&
- lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_PRESS_LOCK) == false) {
+ lv_obj_is_press_lock(indev_obj_act) == false) {
indev_obj_act = pointer_search_obj(disp, &indev->pointer.act_point);
new_obj_searched = true;
}
@@ -1716,7 +1718,7 @@ static void indev_proc_reset_query_handler(lv_indev_t * indev)
static void indev_click_focus(lv_indev_t * indev)
{
/*Handle click focus*/
- if(lv_obj_has_flag(indev_obj_act, LV_OBJ_FLAG_CLICK_FOCUSABLE) == false) {
+ if(lv_obj_is_click_focusable(indev_obj_act) == false) {
return;
}
@@ -1791,7 +1793,7 @@ static void indev_gesture(lv_indev_t * indev)
lv_obj_t * gesture_obj = indev->pointer.act_obj;
/*If gesture parent is active check recursively the gesture attribute*/
- while(gesture_obj && lv_obj_has_flag(gesture_obj, LV_OBJ_FLAG_GESTURE_BUBBLE)) {
+ while(gesture_obj && lv_obj_is_gesture_bubble(gesture_obj)) {
gesture_obj = lv_obj_get_parent(gesture_obj);
}
diff --git a/src/indev/lv_indev_scroll.c b/src/indev/lv_indev_scroll.c
index b34540a9f4..e9b1ed637c 100644
--- a/src/indev/lv_indev_scroll.c
+++ b/src/indev/lv_indev_scroll.c
@@ -129,7 +129,7 @@ void lv_indev_scroll_throw_handler(lv_indev_t * indev)
int32_t scroll_throw = indev->scroll_throw;
- if(lv_obj_has_flag(scroll_obj, LV_OBJ_FLAG_SCROLL_MOMENTUM) == false) {
+ if(lv_obj_is_scroll_momentum(scroll_obj) == false) {
indev->pointer.scroll_throw_vect.y = 0;
indev->pointer.scroll_throw_vect.x = 0;
}
@@ -329,10 +329,10 @@ lv_obj_t * lv_indev_find_scroll_obj(lv_indev_t * indev)
hor_en = false;
}
- if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLLABLE) == false) {
+ if(lv_obj_is_scrollable(obj_act) == false) {
/*If this object don't want to chain the scroll to the parent stop searching*/
- if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break;
- if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break;
+ if(lv_obj_is_scroll_chain_hor(obj_act) == false && hor_en) break;
+ if(lv_obj_is_scroll_chain_ver(obj_act) == false && ver_en) break;
obj_act = lv_obj_get_parent(obj_act);
continue;
@@ -422,8 +422,8 @@ lv_obj_t * lv_indev_find_scroll_obj(lv_indev_t * indev)
}
/*If this object don't want to chain the scroll to the parent stop searching*/
- if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_HOR) == false && hor_en) break;
- if(lv_obj_has_flag(obj_act, LV_OBJ_FLAG_SCROLL_CHAIN_VER) == false && ver_en) break;
+ if(lv_obj_is_scroll_chain_hor(obj_act) == false && hor_en) break;
+ if(lv_obj_is_scroll_chain_ver(obj_act) == false && ver_en) break;
/*Try the parent*/
obj_act = lv_obj_get_parent(obj_act);
@@ -448,7 +448,7 @@ static void init_scroll_limits(lv_indev_t * indev)
{
lv_obj_t * obj = indev->pointer.scroll_obj;
/*If there no STOP allow scrolling anywhere*/
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_SCROLL_ONE) == false) {
+ if(lv_obj_is_scroll_one(obj) == false) {
lv_area_set(&indev->pointer.scroll_area, LV_COORD_MIN, LV_COORD_MIN, LV_COORD_MAX, LV_COORD_MAX);
}
/*With STOP limit the scrolling to the perv and next snap point*/
@@ -532,8 +532,8 @@ static int32_t find_snap_point_x(const lv_obj_t * obj, int32_t min, int32_t max,
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
- if(lv_obj_has_flag(child, LV_OBJ_FLAG_SNAPPABLE)) {
+ if((lv_obj_is_hidden(child) || lv_obj_is_floating(child))) continue;
+ if(lv_obj_is_snappable(child)) {
int32_t x_child = 0;
int32_t x_parent = 0;
switch(align) {
@@ -588,8 +588,8 @@ static int32_t find_snap_point_y(const lv_obj_t * obj, int32_t min, int32_t max,
uint32_t child_cnt = lv_obj_get_child_count(obj);
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
- if(lv_obj_has_flag(child, LV_OBJ_FLAG_SNAPPABLE)) {
+ if((lv_obj_is_hidden(child) || lv_obj_is_floating(child))) continue;
+ if(lv_obj_is_snappable(child)) {
int32_t y_child = 0;
int32_t y_parent = 0;
switch(align) {
@@ -649,7 +649,7 @@ static int32_t elastic_diff(lv_obj_t * scroll_obj, int32_t diff, int32_t scroll_
if(diff == 0) return 0;
/*Scroll back to the edge if required*/
- if(!lv_obj_has_flag(scroll_obj, LV_OBJ_FLAG_SCROLL_ELASTIC)) {
+ if(!lv_obj_is_scroll_elastic(scroll_obj)) {
/*
* If the scrolling object does not set the `LV_OBJ_FLAG_SCROLL_ELASTIC` flag,
* make sure that `diff` will not cause the scroll to exceed the `start` or `end` boundary of the content.
diff --git a/src/layouts/flex/lv_flex.c b/src/layouts/flex/lv_flex.c
index 24a2dc5f5b..71329562d9 100644
--- a/src/layouts/flex/lv_flex.c
+++ b/src/layouts/flex/lv_flex.c
@@ -333,8 +333,8 @@ static int32_t find_track_end(lv_obj_t * cont, flex_t * f, int32_t item_start_id
lv_obj_t * item = lv_obj_get_child(cont, item_id);
bool first_item = true;
while(item) {
- if(!lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) {
- if(!first_item && lv_obj_has_flag(item, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK))
+ if(!(lv_obj_is_ignore_layout(item) || lv_obj_is_hidden(item) || lv_obj_is_floating(item))) {
+ if(!first_item && lv_obj_is_flex_in_new_track(item))
break;
uint8_t grow_value = lv_obj_get_style_flex_grow(item, LV_PART_MAIN);
if(grow_value) {
@@ -472,7 +472,7 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
lv_obj_t * item = lv_obj_get_child(cont, item_first_id);
/*Reposition the children*/
while(item && item_first_id != item_last_id) {
- if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) {
+ if((lv_obj_is_ignore_layout(item) || lv_obj_is_hidden(item) || lv_obj_is_floating(item))) {
item = get_next_item(cont, f->rev, &item_first_id);
continue;
}
diff --git a/src/layouts/grid/lv_grid.c b/src/layouts/grid/lv_grid.c
index a7c7fef593..8640f28391 100644
--- a/src/layouts/grid/lv_grid.c
+++ b/src/layouts/grid/lv_grid.c
@@ -326,7 +326,7 @@ static lv_result_t calc_cols(lv_obj_t * cont, lv_grid_calc_t * c)
uint32_t ci;
for(ci = 0; ci < lv_obj_get_child_count(cont); ci++) {
lv_obj_t * item = lv_obj_get_child(cont, ci);
- if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if((lv_obj_is_ignore_layout(item) || lv_obj_is_hidden(item) || lv_obj_is_floating(item))) continue;
uint32_t col_span = get_col_span(item);
if(col_span != 1) continue;
@@ -423,7 +423,7 @@ static lv_result_t calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
uint32_t ci;
for(ci = 0; ci < lv_obj_get_child_count(cont); ci++) {
lv_obj_t * item = lv_obj_get_child(cont, ci);
- if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
+ if((lv_obj_is_ignore_layout(item) || lv_obj_is_hidden(item) || lv_obj_is_floating(item))) continue;
uint32_t row_span = get_row_span(item);
if(row_span != 1) continue;
@@ -487,7 +487,7 @@ static lv_result_t calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
*/
static void item_repos(lv_obj_t * item, lv_grid_calc_t * c, item_repos_hint_t * hint)
{
- if(lv_obj_has_flag_any(item, LV_OBJ_FLAG_IGNORE_LAYOUT | LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) return;
+ if(lv_obj_is_ignore_layout(item) || lv_obj_is_hidden(item) || lv_obj_is_floating(item)) return;
int32_t col_span = get_col_span(item);
if(col_span <= 0) {
diff --git a/src/others/file_explorer/lv_file_explorer.c b/src/others/file_explorer/lv_file_explorer.c
index 61c8ac0b67..b7b5a0fed5 100644
--- a/src/others/file_explorer/lv_file_explorer.c
+++ b/src/others/file_explorer/lv_file_explorer.c
@@ -306,7 +306,7 @@ static void lv_file_explorer_constructor(const lv_obj_class_t * class_p, lv_obj_
/*The area displayed above the file browse list(head)*/
explorer->head_area = lv_obj_create(explorer->browser_area);
lv_obj_set_size(explorer->head_area, LV_PCT(100), LV_PCT(14));
- lv_obj_remove_flag(explorer->head_area, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(explorer->head_area, false);
#if LV_FILE_EXPLORER_QUICK_ACCESS
/*Two lists of quick access bar*/
@@ -503,7 +503,7 @@ static void quick_access_area_event_handler(lv_event_t * e)
lv_file_explorer_t * explorer = (lv_file_explorer_t *)obj;
if(code == LV_EVENT_LAYOUT_CHANGED) {
- if(lv_obj_has_flag(area, LV_OBJ_FLAG_HIDDEN))
+ if(lv_obj_is_hidden(area))
lv_obj_set_size(explorer->browser_area, LV_PCT(100), LV_PCT(100));
else
lv_obj_set_size(explorer->browser_area, LV_PCT(FILE_EXPLORER_BROWSER_AREA_WIDTH), LV_PCT(100));
diff --git a/src/widgets/arc/lv_arc.c b/src/widgets/arc/lv_arc.c
index 094e9d0f91..67cd45451a 100644
--- a/src/widgets/arc/lv_arc.c
+++ b/src/widgets/arc/lv_arc.c
@@ -546,8 +546,9 @@ static void lv_arc_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
arc->last_angle = arc->indic_angle_end;
arc->in_out = CLICK_OUTSIDE_BG_ANGLES;
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN | LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_clickable(obj, true);
+ lv_obj_set_scroll_chain(obj, false);
+ lv_obj_set_scrollable(obj, false);
lv_obj_set_ext_click_area(obj, LV_DPI_DEF / 10);
LV_TRACE_OBJ_CREATE("finished");
@@ -591,7 +592,7 @@ static void lv_arc_event(const lv_obj_class_t * class_p, lv_event_t * e)
r -= indic_width;
/*Add some more sensitive area if there is no advanced hit testing.
* (Advanced hit testing is more precise)*/
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_ADV_HITTEST)) {
+ if(lv_obj_is_adv_hittest(obj)) {
r -= indic_width;
}
else {
diff --git a/src/widgets/arclabel/lv_arclabel.c b/src/widgets/arclabel/lv_arclabel.c
index b256fb71eb..863f1f6e7c 100644
--- a/src/widgets/arclabel/lv_arclabel.c
+++ b/src/widgets/arclabel/lv_arclabel.c
@@ -389,7 +389,9 @@ static void lv_arclabel_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
lv_arclabel_set_text_static(obj, LV_ARCLABEL_DEFAULT_TEXT);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLL_CHAIN | LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_clickable(obj, false);
+ lv_obj_set_scroll_chain(obj, false);
+ lv_obj_set_scrollable(obj, false);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/bar/lv_bar.c b/src/widgets/bar/lv_bar.c
index 818a757afb..eae78e10e3 100644
--- a/src/widgets/bar/lv_bar.c
+++ b/src/widgets/bar/lv_bar.c
@@ -336,8 +336,8 @@ static void lv_bar_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_bar_init_anim(obj, &bar->cur_value_anim);
lv_bar_init_anim(obj, &bar->start_value_anim);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CHECKABLE);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_checkable(obj, false);
+ lv_obj_set_scrollable(obj, false);
lv_bar_set_value(obj, 0, LV_ANIM_OFF);
LV_TRACE_OBJ_CREATE("finished");
diff --git a/src/widgets/button/lv_button.c b/src/widgets/button/lv_button.c
index 497a34ce82..8960b62c8a 100644
--- a/src/widgets/button/lv_button.c
+++ b/src/widgets/button/lv_button.c
@@ -64,8 +64,8 @@ static void lv_button_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
LV_UNUSED(class_p);
LV_TRACE_OBJ_CREATE("begin");
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scrollable(obj, false);
+ lv_obj_set_scroll_on_focus(obj, true);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/calendar/lv_calendar.c b/src/widgets/calendar/lv_calendar.c
index 7241265637..d6700675ba 100644
--- a/src/widgets/calendar/lv_calendar.c
+++ b/src/widgets/calendar/lv_calendar.c
@@ -356,7 +356,9 @@ static void lv_calendar_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
lv_buttonmatrix_set_button_ctrl_all(calendar->btnm, LV_BUTTONMATRIX_CTRL_CLICK_TRIG | LV_BUTTONMATRIX_CTRL_NO_REPEAT);
lv_obj_add_event_cb(calendar->btnm, draw_task_added_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
lv_obj_set_width(calendar->btnm, lv_pct(100));
- lv_obj_add_flag(calendar->btnm, LV_OBJ_FLAG_EVENT_BUBBLE | LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+
+ lv_obj_set_event_bubble(calendar->btnm, true);
+ lv_obj_set_send_draw_task_events(calendar->btnm, true);
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_grow(calendar->btnm, 1);
diff --git a/src/widgets/calendar/lv_calendar_header_arrow.c b/src/widgets/calendar/lv_calendar_header_arrow.c
index 352d7d3c33..4a81a8d119 100644
--- a/src/widgets/calendar/lv_calendar_header_arrow.c
+++ b/src/widgets/calendar/lv_calendar_header_arrow.c
@@ -79,7 +79,7 @@ static void my_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_obj_set_width(mo_prev, btn_size);
lv_obj_add_event_cb(mo_prev, month_event_cb, LV_EVENT_CLICKED, NULL);
- lv_obj_remove_flag(mo_prev, LV_OBJ_FLAG_CLICK_FOCUSABLE);
+ lv_obj_set_click_focusable(mo_prev, false);
lv_obj_t * label = lv_label_create(obj);
lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_SCROLL_CIRCULAR);
@@ -91,7 +91,7 @@ static void my_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_obj_set_size(mo_next, btn_size, btn_size);
lv_obj_add_event_cb(mo_next, month_event_cb, LV_EVENT_CLICKED, NULL);
- lv_obj_remove_flag(mo_next, LV_OBJ_FLAG_CLICK_FOCUSABLE);
+ lv_obj_set_click_focusable(mo_next, false);
lv_obj_add_event_cb(obj, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
/*Refresh the drop downs*/
diff --git a/src/widgets/checkbox/lv_checkbox.c b/src/widgets/checkbox/lv_checkbox.c
index 333b3585a0..7b40337553 100644
--- a/src/widgets/checkbox/lv_checkbox.c
+++ b/src/widgets/checkbox/lv_checkbox.c
@@ -154,10 +154,10 @@ static void lv_checkbox_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
cb->static_txt = 1;
#endif
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_clickable(obj, true);
+ lv_obj_set_checkable(obj, true);
+ lv_obj_set_scroll_on_focus(obj, true);
+ lv_obj_set_scrollable(obj, false);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/dropdown/lv_dropdown.c b/src/widgets/dropdown/lv_dropdown.c
index 014d48aeba..2c406d6424 100644
--- a/src/widgets/dropdown/lv_dropdown.c
+++ b/src/widgets/dropdown/lv_dropdown.c
@@ -548,7 +548,7 @@ void lv_dropdown_open(lv_obj_t * dropdown_obj)
lv_obj_add_state(dropdown_obj, LV_STATE_CHECKED);
lv_obj_set_parent(dropdown->list, lv_obj_get_screen(dropdown_obj));
lv_obj_move_to_index(dropdown->list, -1);
- lv_obj_remove_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(dropdown->list, false);
/*To allow styling the list*/
lv_obj_send_event(dropdown_obj, LV_EVENT_READY, NULL);
@@ -645,7 +645,7 @@ void lv_dropdown_close(lv_obj_t * obj)
lv_dropdown_t * dropdown = (lv_dropdown_t *)obj;
dropdown->pr_opt_id = LV_DROPDOWN_PR_NONE;
- lv_obj_add_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(dropdown->list, true);
lv_obj_send_event(obj, LV_EVENT_CANCEL, NULL);
}
@@ -655,7 +655,7 @@ bool lv_dropdown_is_open(lv_obj_t * obj)
LV_CHECK_OBJ(obj, MY_CLASS, return false);
lv_dropdown_t * dropdown = (lv_dropdown_t *)obj;
- return lv_obj_has_flag(dropdown->list, LV_OBJ_FLAG_HIDDEN) ? false : true;
+ return lv_obj_is_hidden(dropdown->list) ? false : true;
}
#if LV_USE_OBSERVER
@@ -712,7 +712,7 @@ static void lv_dropdown_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
dropdown->option_cnt = 0;
dropdown->dir = LV_DIR_BOTTOM;
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(obj, true);
#if LV_WIDGETS_HAS_DEFAULT_VALUE
lv_dropdown_set_options_static(obj, "Option 1\nOption 2\nOption 3");
#endif
@@ -746,10 +746,10 @@ static void lv_dropdownlist_constructor(const lv_obj_class_t * class_p, lv_obj_t
LV_UNUSED(class_p);
LV_TRACE_OBJ_CREATE("begin");
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_IGNORE_LAYOUT);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_scroll_on_focus(obj, false);
+ lv_obj_set_click_focusable(obj, false);
+ lv_obj_set_ignore_layout(obj, true);
+ lv_obj_set_hidden(obj, true);
lv_label_create(obj);
diff --git a/src/widgets/image/lv_image.c b/src/widgets/image/lv_image.c
index e669fee303..3c49823e1c 100644
--- a/src/widgets/image/lv_image.c
+++ b/src/widgets/image/lv_image.c
@@ -689,8 +689,8 @@ static void lv_image_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_point_set(&img->pivot, LV_PCT(50), LV_PCT(50)); /*Default pivot to image center*/
img->align = LV_IMAGE_ALIGN_CENTER;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_ADV_HITTEST);
+ lv_obj_set_clickable(obj, false);
+ lv_obj_set_adv_hittest(obj, true);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/ime/lv_ime_pinyin.c b/src/widgets/ime/lv_ime_pinyin.c
index eb3395dd1c..49c373d6b9 100644
--- a/src/widgets/ime/lv_ime_pinyin.c
+++ b/src/widgets/ime/lv_ime_pinyin.c
@@ -538,7 +538,7 @@ static void lv_ime_pinyin_constructor(const lv_obj_class_t * class_p, lv_obj_t *
lv_memzero(pinyin_ime->py_num, sizeof(pinyin_ime->py_num));
lv_memzero(pinyin_ime->py_pos, sizeof(pinyin_ime->py_pos));
- lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(obj, true);
#if LV_IME_PINYIN_USE_DEFAULT_DICT
init_pinyin_dict(obj, lv_ime_pinyin_def_dict);
@@ -548,10 +548,10 @@ static void lv_ime_pinyin_constructor(const lv_obj_class_t * class_p, lv_obj_t *
pinyin_ime->cand_panel = lv_buttonmatrix_create(lv_obj_get_parent(obj));
lv_buttonmatrix_set_map(pinyin_ime->cand_panel, (const char **)lv_btnm_def_pinyin_sel_map);
lv_obj_set_size(pinyin_ime->cand_panel, LV_PCT(100), LV_PCT(5));
- lv_obj_add_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, true);
lv_buttonmatrix_set_one_checked(pinyin_ime->cand_panel, true);
- lv_obj_remove_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_CLICK_FOCUSABLE);
+ lv_obj_set_click_focusable(pinyin_ime->cand_panel, false);
/* Set cand_panel style*/
// Default style
@@ -651,7 +651,7 @@ static void lv_ime_pinyin_kb_event(lv_event_t * e)
if(lv_strcmp(txt, "Enter") == 0 || lv_strcmp(txt, LV_SYMBOL_NEW_LINE) == 0) {
pinyin_ime_clear_data(obj);
- lv_obj_add_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, true);
}
else if(lv_strcmp(txt, LV_SYMBOL_BACKSPACE) == 0) {
// del input char
@@ -666,7 +666,7 @@ static void lv_ime_pinyin_kb_event(lv_event_t * e)
pinyin_ime->ta_count--;
if(pinyin_ime->ta_count <= 0) {
pinyin_ime_clear_data(obj);
- lv_obj_add_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, true);
}
else if(pinyin_ime->mode == LV_IME_PINYIN_MODE_K26) {
pinyin_input_proc(obj);
@@ -695,7 +695,7 @@ static void lv_ime_pinyin_kb_event(lv_event_t * e)
lv_textarea_set_cursor_pos(ta, LV_TEXTAREA_CURSOR_LAST);
lv_ime_pinyin_set_mode(obj, LV_IME_PINYIN_MODE_K9_NUMBER);
lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);
- lv_obj_add_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, true);
}
else if(lv_strcmp(txt, LV_SYMBOL_KEYBOARD) == 0) {
if(pinyin_ime->mode == LV_IME_PINYIN_MODE_K26) {
@@ -801,7 +801,7 @@ static void pinyin_input_proc(lv_obj_t * obj)
}
}
- lv_obj_remove_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, false);
lv_obj_invalidate(pinyin_ime->cand_panel);
}
@@ -959,7 +959,7 @@ static void pinyin_ime_clear_data(lv_obj_t * obj)
}
lv_memzero(pinyin_ime->input_char, sizeof(pinyin_ime->input_char));
- lv_obj_add_flag(pinyin_ime->cand_panel, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(pinyin_ime->cand_panel, true);
}
#if LV_IME_PINYIN_USE_K9_MODE
diff --git a/src/widgets/keyboard/lv_keyboard.c b/src/widgets/keyboard/lv_keyboard.c
index fd3db0724c..f058cac776 100644
--- a/src/widgets/keyboard/lv_keyboard.c
+++ b/src/widgets/keyboard/lv_keyboard.c
@@ -441,7 +441,7 @@ const char * lv_keyboard_get_button_text(const lv_obj_t * obj, uint32_t btn_id)
static void lv_keyboard_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
{
LV_UNUSED(class_p);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICK_FOCUSABLE);
+ lv_obj_set_click_focusable(obj, false);
lv_keyboard_t * keyboard = (lv_keyboard_t *)obj;
keyboard->ta = NULL;
diff --git a/src/widgets/label/lv_label.c b/src/widgets/label/lv_label.c
index 08732d6be1..0648fd8eea 100644
--- a/src/widgets/label/lv_label.c
+++ b/src/widgets/label/lv_label.c
@@ -786,7 +786,7 @@ static void lv_label_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
label->sel_end = LV_DRAW_LABEL_NO_TXT_SEL;
#endif
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(obj, false);
lv_label_set_long_mode(obj, LV_LABEL_LONG_MODE_WRAP);
lv_label_set_text(obj, LV_LABEL_DEFAULT_TEXT);
diff --git a/src/widgets/line/lv_line.c b/src/widgets/line/lv_line.c
index c84244f645..2d0fbe3e66 100644
--- a/src/widgets/line/lv_line.c
+++ b/src/widgets/line/lv_line.c
@@ -159,7 +159,7 @@ static void lv_line_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
line->y_inv = 0;
line->point_array_is_mutable = 0;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(obj, false);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/menu/lv_menu.c b/src/widgets/menu/lv_menu.c
index ebae254a2f..7cc3feeb3f 100644
--- a/src/widgets/menu/lv_menu.c
+++ b/src/widgets/menu/lv_menu.c
@@ -264,33 +264,33 @@ void lv_menu_set_page(lv_obj_t * obj, lv_obj_t * page)
if(menu->sidebar_generated) {
if(menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BUTTON_ENABLED) {
/* Root back btn is always shown if enabled*/
- lv_obj_remove_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->sidebar_header_back_btn, false);
+ lv_obj_set_clickable(menu->sidebar_header_back_btn, true);
}
else {
- lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_remove_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->sidebar_header_back_btn, true);
+ lv_obj_set_clickable(menu->sidebar_header_back_btn, false);
}
}
if(menu->cur_depth >= 2) {
- lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->main_header_back_btn, false);
+ lv_obj_set_clickable(menu->main_header_back_btn, true);
}
else {
- lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->main_header_back_btn, true);
+ lv_obj_set_clickable(menu->main_header_back_btn, false);
}
}
else {
/* With sidebar disabled */
if(menu->cur_depth >= 2 || menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BUTTON_ENABLED) {
- lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->main_header_back_btn, false);
+ lv_obj_set_clickable(menu->main_header_back_btn, true);
}
else {
- lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN);
- lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_hidden(menu->main_header_back_btn, true);
+ lv_obj_set_clickable(menu->main_header_back_btn, false);
}
}
@@ -315,8 +315,8 @@ void lv_menu_set_sidebar_page(lv_obj_t * obj, lv_obj_t * page)
lv_obj_move_to_index(sidebar_cont, 1);
lv_obj_set_size(sidebar_cont, LV_PCT(30), LV_PCT(100));
lv_obj_set_flex_flow(sidebar_cont, LV_FLEX_FLOW_COLUMN);
- lv_obj_add_flag(sidebar_cont, LV_OBJ_FLAG_EVENT_BUBBLE);
- lv_obj_remove_flag(sidebar_cont, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_event_bubble(sidebar_cont, true);
+ lv_obj_set_clickable(sidebar_cont, false);
menu->sidebar = sidebar_cont;
lv_obj_t * sidebar_header = lv_obj_class_create_obj(&lv_menu_sidebar_header_cont_class, sidebar_cont);
@@ -324,13 +324,13 @@ void lv_menu_set_sidebar_page(lv_obj_t * obj, lv_obj_t * page)
lv_obj_set_size(sidebar_header, LV_PCT(100), LV_SIZE_CONTENT);
lv_obj_set_flex_flow(sidebar_header, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(sidebar_header, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_remove_flag(sidebar_header, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_add_flag(sidebar_header, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_clickable(sidebar_header, false);
+ lv_obj_set_event_bubble(sidebar_header, true);
menu->sidebar_header = sidebar_header;
lv_obj_t * sidebar_header_back_btn = lv_button_create(menu->sidebar_header);
lv_obj_add_event_cb(sidebar_header_back_btn, lv_menu_back_event_cb, LV_EVENT_CLICKED, menu);
- lv_obj_add_flag(sidebar_header_back_btn, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(sidebar_header_back_btn, true);
lv_obj_set_flex_flow(sidebar_header_back_btn, LV_FLEX_FLOW_ROW);
menu->sidebar_header_back_btn = sidebar_header_back_btn;
@@ -338,7 +338,7 @@ void lv_menu_set_sidebar_page(lv_obj_t * obj, lv_obj_t * page)
lv_image_set_src(sidebar_header_back_icon, LV_SYMBOL_LEFT);
lv_obj_t * sidebar_header_title = lv_label_create(menu->sidebar_header);
- lv_obj_add_flag(sidebar_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(sidebar_header_title, true);
menu->sidebar_header_title = sidebar_header_title;
menu->sidebar_generated = true;
@@ -391,9 +391,9 @@ void lv_menu_set_load_page_event(lv_obj_t * menu, lv_obj_t * obj, lv_obj_t * pag
{
LV_CHECK_OBJ(menu, MY_CLASS, return);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_clickable(obj, true);
+ lv_obj_set_scrollable(obj, false);
+ lv_obj_set_scroll_on_focus(obj, true);
/* Remove old event */
uint32_t i;
@@ -593,7 +593,7 @@ static void lv_menu_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_ll_init(&(menu->history_ll), sizeof(lv_menu_history_t));
menu->storage = lv_obj_create(obj);
- lv_obj_add_flag(menu->storage, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->storage, true);
menu->sidebar = NULL;
menu->sidebar_header = NULL;
@@ -606,8 +606,8 @@ static void lv_menu_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_obj_set_height(main_cont, LV_PCT(100));
lv_obj_set_flex_grow(main_cont, 1);
lv_obj_set_flex_flow(main_cont, LV_FLEX_FLOW_COLUMN);
- lv_obj_add_flag(main_cont, LV_OBJ_FLAG_EVENT_BUBBLE);
- lv_obj_remove_flag(main_cont, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_event_bubble(main_cont, true);
+ lv_obj_set_clickable(main_cont, false);
menu->main = main_cont;
lv_obj_t * main_header = lv_obj_class_create_obj(&lv_menu_main_header_cont_class, main_cont);
@@ -615,14 +615,14 @@ static void lv_menu_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_obj_set_size(main_header, LV_PCT(100), LV_SIZE_CONTENT);
lv_obj_set_flex_flow(main_header, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(main_header, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_remove_flag(main_header, LV_OBJ_FLAG_CLICKABLE);
- lv_obj_add_flag(main_header, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_clickable(main_header, false);
+ lv_obj_set_event_bubble(main_header, true);
menu->main_header = main_header;
/* Create the default simple back btn and title */
lv_obj_t * main_header_back_btn = lv_button_create(menu->main_header);
lv_obj_add_event_cb(main_header_back_btn, lv_menu_back_event_cb, LV_EVENT_CLICKED, menu);
- lv_obj_add_flag(main_header_back_btn, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(main_header_back_btn, true);
lv_obj_set_flex_flow(main_header_back_btn, LV_FLEX_FLOW_ROW);
menu->main_header_back_btn = main_header_back_btn;
@@ -630,7 +630,7 @@ static void lv_menu_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_image_set_src(main_header_back_icon, LV_SYMBOL_LEFT);
lv_obj_t * main_header_title = lv_label_create(menu->main_header);
- lv_obj_add_flag(main_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(main_header_title, true);
menu->main_header_title = main_header_title;
menu->main_page = NULL;
@@ -663,7 +663,7 @@ static void lv_menu_page_constructor(const lv_obj_class_t * class_p, lv_obj_t *
lv_obj_set_parent(obj, ((lv_menu_t *)menu)->storage);
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(obj, true);
}
static void lv_menu_page_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
@@ -684,14 +684,14 @@ static void lv_menu_cont_constructor(const lv_obj_class_t * class_p, lv_obj_t *
LV_UNUSED(class_p);
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(obj, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(obj, false);
}
static void lv_menu_section_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
{
LV_UNUSED(class_p);
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(obj, false);
}
static void lv_menu_refr_sidebar_header_mode(lv_obj_t * obj)
@@ -722,10 +722,10 @@ static void lv_menu_refr_sidebar_header_mode(lv_obj_t * obj)
lv_obj_refr_size(menu->sidebar_page);
if(lv_obj_get_content_height(menu->sidebar_header) == 0) {
- lv_obj_add_flag(menu->sidebar_header, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->sidebar_header, true);
}
else {
- lv_obj_remove_flag(menu->sidebar_header, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->sidebar_header, false);
}
}
@@ -758,10 +758,10 @@ static void lv_menu_refr_main_header_mode(lv_obj_t * obj)
lv_obj_update_layout(menu->main_header);
if(lv_obj_get_content_height(menu->main_header) == 0) {
- lv_obj_add_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->main_header, true);
}
else {
- lv_obj_remove_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->main_header, false);
}
}
@@ -860,10 +860,10 @@ static void lv_menu_value_changed_event_cb(lv_event_t * e)
if(main_page != NULL && menu->main_header_title != NULL) {
if(main_page->title != NULL) {
lv_label_set_text(menu->main_header_title, main_page->title);
- lv_obj_remove_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->main_header_title, false);
}
else {
- lv_obj_add_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->main_header_title, true);
}
}
@@ -871,10 +871,10 @@ static void lv_menu_value_changed_event_cb(lv_event_t * e)
if(sidebar_page != NULL && menu->sidebar_header_title != NULL) {
if(sidebar_page->title != NULL) {
lv_label_set_text(menu->sidebar_header_title, sidebar_page->title);
- lv_obj_remove_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->sidebar_header_title, false);
}
else {
- lv_obj_add_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(menu->sidebar_header_title, true);
}
}
}
diff --git a/src/widgets/msgbox/lv_msgbox.c b/src/widgets/msgbox/lv_msgbox.c
index a28ddc59d9..ca1931e166 100644
--- a/src/widgets/msgbox/lv_msgbox.c
+++ b/src/widgets/msgbox/lv_msgbox.c
@@ -23,7 +23,6 @@
/*********************
* DEFINES
*********************/
-#define LV_MSGBOX_FLAG_AUTO_PARENT LV_OBJ_FLAG_WIDGET_1 /*Mark that the parent was automatically created*/
#define MY_CLASS (&lv_msgbox_class)
/**********************
@@ -114,7 +113,7 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent)
parent = lv_obj_class_create_obj(&lv_msgbox_backdrop_class, lv_layer_top());
LV_ASSERT_MALLOC(parent);
lv_obj_class_init_obj(parent);
- lv_obj_remove_flag(parent, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(parent, false);
lv_obj_set_size(parent, LV_PCT(100), LV_PCT(100));
}
@@ -125,7 +124,7 @@ lv_obj_t * lv_msgbox_create(lv_obj_t * parent)
lv_msgbox_t * mbox = (lv_msgbox_t *)obj;
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
- if(auto_parent) lv_obj_add_flag(obj, LV_MSGBOX_FLAG_AUTO_PARENT);
+ mbox->auto_parent = auto_parent;
mbox->content = lv_obj_class_create_obj(&lv_msgbox_content_class, obj);
LV_ASSERT_MALLOC(mbox->content);
@@ -153,7 +152,7 @@ lv_obj_t * lv_msgbox_add_title(lv_obj_t * obj, const char * title)
lv_obj_set_size(mbox->header, lv_pct(100), lv_display_get_dpi(lv_obj_get_display(obj)) / 3);
lv_obj_set_flex_flow(mbox->header, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(mbox->header, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_remove_flag(mbox->header, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(mbox->header, false);
lv_obj_move_to_index(mbox->header, 0);
}
@@ -178,7 +177,7 @@ lv_obj_t * lv_msgbox_add_header_button(lv_obj_t * obj, const void * icon)
LV_ASSERT_MALLOC(btn);
if(btn == NULL) return NULL;
lv_obj_class_init_obj(btn);
- lv_obj_remove_flag(btn, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(btn, false);
if(icon) {
lv_obj_t * img = lv_image_create(btn);
@@ -225,14 +224,14 @@ lv_obj_t * lv_msgbox_add_footer_button(lv_obj_t * obj, const char * text)
lv_obj_set_flex_flow(mbox->footer, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(mbox->footer, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
- lv_obj_remove_flag(mbox->footer, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(mbox->footer, false);
}
lv_obj_t * btn = lv_obj_class_create_obj(&lv_msgbox_footer_button_class, mbox->footer);
LV_ASSERT_MALLOC(btn);
if(btn == NULL) return NULL;
lv_obj_class_init_obj(btn);
- lv_obj_remove_flag(btn, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(btn, false);
if(text) {
lv_obj_t * label = lv_label_create(btn);
@@ -280,13 +279,17 @@ lv_obj_t * lv_msgbox_get_title(lv_obj_t * obj)
void lv_msgbox_close(lv_obj_t * obj)
{
- if(lv_obj_has_flag(obj, LV_MSGBOX_FLAG_AUTO_PARENT)) lv_obj_delete(lv_obj_get_parent(obj));
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ lv_msgbox_t * mbox = (lv_msgbox_t *)obj;
+ if(mbox->auto_parent) lv_obj_delete(lv_obj_get_parent(obj));
else lv_obj_delete(obj);
}
void lv_msgbox_close_async(lv_obj_t * obj)
{
- if(lv_obj_has_flag(obj, LV_MSGBOX_FLAG_AUTO_PARENT)) lv_obj_delete_async(lv_obj_get_parent(obj));
+ LV_CHECK_OBJ(obj, MY_CLASS, return);
+ lv_msgbox_t * mbox = (lv_msgbox_t *)obj;
+ if(mbox->auto_parent) lv_obj_delete_async(lv_obj_get_parent(obj));
else lv_obj_delete_async(obj);
}
diff --git a/src/widgets/msgbox/lv_msgbox_private.h b/src/widgets/msgbox/lv_msgbox_private.h
index 448a0d300f..0b75c8e1d7 100644
--- a/src/widgets/msgbox/lv_msgbox_private.h
+++ b/src/widgets/msgbox/lv_msgbox_private.h
@@ -37,6 +37,7 @@ struct _lv_msgbox_t {
lv_obj_t * content;
lv_obj_t * footer;
lv_obj_t * title;
+ uint32_t auto_parent : 1; /**< Mark that the parent was automatically created*/
};
diff --git a/src/widgets/property/lv_obj_properties.c b/src/widgets/property/lv_obj_properties.c
index 01300797d5..1fde789789 100644
--- a/src/widgets/property/lv_obj_properties.c
+++ b/src/widgets/property/lv_obj_properties.c
@@ -14,13 +14,19 @@
* Generated code from properties.py
*/
/* *INDENT-OFF* */
-const lv_property_name_t lv_obj_property_names[76] = {
+const lv_property_name_t lv_obj_property_names[100] = {
+ {"adv_hittest", LV_PROPERTY_OBJ_ADV_HITTEST,},
{"align", LV_PROPERTY_OBJ_ALIGN,},
+ {"checkable", LV_PROPERTY_OBJ_CHECKABLE,},
{"child_count", LV_PROPERTY_OBJ_CHILD_COUNT,},
+ {"click_focusable", LV_PROPERTY_OBJ_CLICK_FOCUSABLE,},
+ {"clickable", LV_PROPERTY_OBJ_CLICKABLE,},
{"content_height", LV_PROPERTY_OBJ_CONTENT_HEIGHT,},
{"content_width", LV_PROPERTY_OBJ_CONTENT_WIDTH,},
{"display", LV_PROPERTY_OBJ_DISPLAY,},
+ {"event_bubble", LV_PROPERTY_OBJ_EVENT_BUBBLE,},
{"event_count", LV_PROPERTY_OBJ_EVENT_COUNT,},
+ {"event_trickle", LV_PROPERTY_OBJ_EVENT_TRICKLE,},
{"ext_draw_size", LV_PROPERTY_OBJ_EXT_DRAW_SIZE,},
{"flag_adv_hittest", LV_PROPERTY_OBJ_FLAG_ADV_HITTEST,},
{"flag_checkable", LV_PROPERTY_OBJ_FLAG_CHECKABLE,},
@@ -56,22 +62,39 @@ const lv_property_name_t lv_obj_property_names[76] = {
{"flag_user_4", LV_PROPERTY_OBJ_FLAG_USER_4,},
{"flag_widget_1", LV_PROPERTY_OBJ_FLAG_WIDGET_1,},
{"flag_widget_2", LV_PROPERTY_OBJ_FLAG_WIDGET_2,},
+ {"flex_in_new_track", LV_PROPERTY_OBJ_FLEX_IN_NEW_TRACK,},
+ {"floating", LV_PROPERTY_OBJ_FLOATING,},
+ {"gesture_bubble", LV_PROPERTY_OBJ_GESTURE_BUBBLE,},
{"h", LV_PROPERTY_OBJ_H,},
+ {"hidden", LV_PROPERTY_OBJ_HIDDEN,},
+ {"ignore_layout", LV_PROPERTY_OBJ_IGNORE_LAYOUT,},
{"index", LV_PROPERTY_OBJ_INDEX,},
{"layout", LV_PROPERTY_OBJ_LAYOUT,},
+ {"overflow_visible", LV_PROPERTY_OBJ_OVERFLOW_VISIBLE,},
{"parent", LV_PROPERTY_OBJ_PARENT,},
+ {"press_lock", LV_PROPERTY_OBJ_PRESS_LOCK,},
{"screen", LV_PROPERTY_OBJ_SCREEN,},
{"scroll_bottom", LV_PROPERTY_OBJ_SCROLL_BOTTOM,},
+ {"scroll_chain_hor", LV_PROPERTY_OBJ_SCROLL_CHAIN_HOR,},
+ {"scroll_chain_ver", LV_PROPERTY_OBJ_SCROLL_CHAIN_VER,},
{"scroll_dir", LV_PROPERTY_OBJ_SCROLL_DIR,},
+ {"scroll_elastic", LV_PROPERTY_OBJ_SCROLL_ELASTIC,},
{"scroll_end", LV_PROPERTY_OBJ_SCROLL_END,},
{"scroll_left", LV_PROPERTY_OBJ_SCROLL_LEFT,},
+ {"scroll_momentum", LV_PROPERTY_OBJ_SCROLL_MOMENTUM,},
+ {"scroll_on_focus", LV_PROPERTY_OBJ_SCROLL_ON_FOCUS,},
+ {"scroll_one", LV_PROPERTY_OBJ_SCROLL_ONE,},
{"scroll_right", LV_PROPERTY_OBJ_SCROLL_RIGHT,},
{"scroll_snap_x", LV_PROPERTY_OBJ_SCROLL_SNAP_X,},
{"scroll_snap_y", LV_PROPERTY_OBJ_SCROLL_SNAP_Y,},
{"scroll_top", LV_PROPERTY_OBJ_SCROLL_TOP,},
+ {"scroll_with_arrow", LV_PROPERTY_OBJ_SCROLL_WITH_ARROW,},
{"scroll_x", LV_PROPERTY_OBJ_SCROLL_X,},
{"scroll_y", LV_PROPERTY_OBJ_SCROLL_Y,},
+ {"scrollable", LV_PROPERTY_OBJ_SCROLLABLE,},
{"scrollbar_mode", LV_PROPERTY_OBJ_SCROLLBAR_MODE,},
+ {"send_draw_task_events", LV_PROPERTY_OBJ_SEND_DRAW_TASK_EVENTS,},
+ {"snappable", LV_PROPERTY_OBJ_SNAPPABLE,},
{"state_alt", LV_PROPERTY_OBJ_STATE_ALT,},
{"state_any", LV_PROPERTY_OBJ_STATE_ANY,},
{"state_checked", LV_PROPERTY_OBJ_STATE_CHECKED,},
@@ -84,6 +107,7 @@ const lv_property_name_t lv_obj_property_names[76] = {
{"state_pressed", LV_PROPERTY_OBJ_STATE_PRESSED,},
{"state_scrolled", LV_PROPERTY_OBJ_STATE_SCROLLED,},
{"state_start", LV_PROPERTY_OBJ_STATE_START,},
+ {"state_trickle", LV_PROPERTY_OBJ_STATE_TRICKLE,},
{"state_user_1", LV_PROPERTY_OBJ_STATE_USER_1,},
{"state_user_2", LV_PROPERTY_OBJ_STATE_USER_2,},
{"state_user_3", LV_PROPERTY_OBJ_STATE_USER_3,},
diff --git a/src/widgets/roller/lv_roller.c b/src/widgets/roller/lv_roller.c
index 44d9696873..f30d824fec 100644
--- a/src/widgets/roller/lv_roller.c
+++ b/src/widgets/roller/lv_roller.c
@@ -366,8 +366,8 @@ static void lv_roller_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
roller->sel_opt_id = 0;
roller->sel_opt_id_ori = 0;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
+ lv_obj_set_scrollable(obj, false);
+ lv_obj_set_scroll_chain_ver(obj, false);
LV_LOG_INFO("begin");
lv_obj_t * label = lv_obj_class_create_obj(&lv_roller_label_class, obj);
diff --git a/src/widgets/scale/lv_scale.c b/src/widgets/scale/lv_scale.c
index c8d3513929..5ef082feb6 100644
--- a/src/widgets/scale/lv_scale.c
+++ b/src/widgets/scale/lv_scale.c
@@ -694,7 +694,7 @@ static void lv_scale_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
scale->txt_src = NULL;
lv_array_init(&scale->needles, 0, sizeof(lv_scale_needle_t));
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(obj, false);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/slider/lv_slider.c b/src/widgets/slider/lv_slider.c
index 86e69328cb..5cd2565e5d 100644
--- a/src/widgets/slider/lv_slider.c
+++ b/src/widgets/slider/lv_slider.c
@@ -243,9 +243,9 @@ static void lv_slider_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
slider->dragging = 0U;
slider->left_knob_focus = 0U;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_chain_hor(obj, false);
+ lv_obj_set_scrollable(obj, false);
+ lv_obj_set_scroll_on_focus(obj, true);
lv_obj_set_ext_click_area(obj, LV_DPX(8));
}
@@ -316,8 +316,8 @@ static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e)
}
}
else if(indev_type == LV_INDEV_TYPE_POINTER) {
- if(is_slider_horizontal(obj)) lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
- else lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
+ if(is_slider_horizontal(obj)) lv_obj_set_scroll_chain_ver(obj, true);
+ else lv_obj_set_scroll_chain_hor(obj, true);
}
}
else if(code == LV_EVENT_FOCUSED) {
@@ -328,12 +328,12 @@ static void lv_slider_event(const lv_obj_class_t * class_p, lv_event_t * e)
}
else if(code == LV_EVENT_SIZE_CHANGED) {
if(is_slider_horizontal(obj)) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
+ lv_obj_set_scroll_chain_ver(obj, true);
+ lv_obj_set_scroll_chain_hor(obj, false);
}
else {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
+ lv_obj_set_scroll_chain_hor(obj, true);
+ lv_obj_set_scroll_chain_ver(obj, false);
}
lv_obj_refresh_ext_draw_size(obj);
}
@@ -639,9 +639,9 @@ static void update_knob_pos(lv_obj_t * obj, bool check_drag)
if(*slider->value_to_set != new_value) {
*slider->value_to_set = new_value;
if(is_hor)
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
+ lv_obj_set_scroll_chain_ver(obj, false);
else
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
+ lv_obj_set_scroll_chain_hor(obj, false);
lv_obj_invalidate(obj);
lv_result_t res = lv_obj_send_event(obj, LV_EVENT_VALUE_CHANGED, NULL);
diff --git a/src/widgets/spinner/lv_spinner.c b/src/widgets/spinner/lv_spinner.c
index e68bc6d352..2671820423 100644
--- a/src/widgets/spinner/lv_spinner.c
+++ b/src/widgets/spinner/lv_spinner.c
@@ -147,7 +147,7 @@ static void lv_spinner_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
LV_UNUSED(class_p);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(obj, false);
lv_spinner_set_anim_params(obj, DEF_TIME, DEF_ARC_ANGLE);
}
diff --git a/src/widgets/switch/lv_switch.c b/src/widgets/switch/lv_switch.c
index c63af4c58a..0a69d432e2 100644
--- a/src/widgets/switch/lv_switch.c
+++ b/src/widgets/switch/lv_switch.c
@@ -128,9 +128,9 @@ static void lv_switch_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj
sw->anim_state = LV_SWITCH_ANIM_STATE_INV;
sw->orientation = LV_SWITCH_ORIENTATION_AUTO;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scrollable(obj, false);
+ lv_obj_set_checkable(obj, true);
+ lv_obj_set_scroll_on_focus(obj, true);
LV_TRACE_OBJ_CREATE("finished");
}
diff --git a/src/widgets/tabview/lv_tabview.c b/src/widgets/tabview/lv_tabview.c
index 43dee9a594..f89d5d8aeb 100644
--- a/src/widgets/tabview/lv_tabview.c
+++ b/src/widgets/tabview/lv_tabview.c
@@ -346,8 +346,8 @@ static void lv_tabview_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
}
lv_tabview_set_tab_bar_position(obj, default_direction);
- lv_obj_add_flag(cont, LV_OBJ_FLAG_SCROLL_ONE);
- lv_obj_remove_flag(cont, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_one(cont, true);
+ lv_obj_set_scroll_on_focus(cont, false);
}
static void lv_tabview_event(const lv_obj_class_t * class_p, lv_event_t * e)
diff --git a/src/widgets/textarea/lv_textarea.c b/src/widgets/textarea/lv_textarea.c
index 9a3b4a004e..2a733ebe7c 100644
--- a/src/widgets/textarea/lv_textarea.c
+++ b/src/widgets/textarea/lv_textarea.c
@@ -848,8 +848,8 @@ static void lv_textarea_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
lv_label_set_text(ta->label, "");
lv_obj_add_event_cb(ta->label, label_event_cb, LV_EVENT_STYLE_CHANGED, NULL);
lv_obj_add_event_cb(ta->label, label_event_cb, LV_EVENT_SIZE_CHANGED, NULL);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_WITH_ARROW);
+ lv_obj_set_scroll_on_focus(obj, true);
+ lv_obj_set_scroll_with_arrow(obj, false);
lv_textarea_set_cursor_pos(obj, 0);
@@ -1211,7 +1211,7 @@ static void update_cursor_position_on_click(lv_event_t * e)
ta->sel_start = char_id_at_click;
ta->sel_end = LV_LABEL_TEXT_SELECTION_OFF;
ta->text_sel_in_prog = 1;
- lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
+ lv_obj_set_scroll_chain(obj, false);
}
else if(ta->text_sel_in_prog && code == LV_EVENT_PRESSING) {
/*Input device may be moving. Store the end position*/
@@ -1219,7 +1219,7 @@ static void update_cursor_position_on_click(lv_event_t * e)
}
else if(ta->text_sel_in_prog && (code == LV_EVENT_PRESS_LOST || code == LV_EVENT_RELEASED)) {
/*Input device is released. Check if anything was selected.*/
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_CHAIN);
+ lv_obj_set_scroll_chain(obj, true);
}
}
diff --git a/src/widgets/tileview/lv_tileview.c b/src/widgets/tileview/lv_tileview.c
index c2dd2453d6..65602dabb3 100644
--- a/src/widgets/tileview/lv_tileview.c
+++ b/src/widgets/tileview/lv_tileview.c
@@ -136,7 +136,7 @@ static void lv_tileview_constructor(const lv_obj_class_t * class_p, lv_obj_t * o
LV_UNUSED(class_p);
lv_obj_set_size(obj, LV_PCT(100), LV_PCT(100));
lv_obj_add_event_cb(obj, tileview_event_cb, LV_EVENT_SCROLL_END, NULL);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_SCROLL_ONE);
+ lv_obj_set_scroll_one(obj, true);
lv_obj_set_scroll_snap_x(obj, LV_SCROLL_SNAP_CENTER);
lv_obj_set_scroll_snap_y(obj, LV_SCROLL_SNAP_CENTER);
}
diff --git a/tests/src/test_cases/draw/test_clip_corner.c b/tests/src/test_cases/draw/test_clip_corner.c
index e839be83c8..afeb4383fa 100644
--- a/tests/src/test_cases/draw/test_clip_corner.c
+++ b/tests/src/test_cases/draw/test_clip_corner.c
@@ -54,7 +54,7 @@ void test_clip_corner_1(void)
create_panel(100, false);
lv_obj_t * cont = create_panel(0, true);
- lv_obj_add_flag(cont, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(cont, true);
create_panel(10, true);
create_panel(30, true);
create_panel(100, true);
diff --git a/tests/src/test_cases/draw/test_draw_label.c b/tests/src/test_cases/draw/test_draw_label.c
index 05d81b5a68..aecd26da79 100644
--- a/tests/src/test_cases/draw/test_draw_label.c
+++ b/tests/src/test_cases/draw/test_draw_label.c
@@ -103,7 +103,7 @@ static void all_decor_labels_create(lv_text_decor_t decor)
lv_obj_t * label;
label = decor_label_create(decor, LV_TEXT_ALIGN_LEFT, LV_OPA_COVER);
- lv_obj_add_flag(label, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(label, true);
label = decor_label_create(decor, LV_TEXT_ALIGN_CENTER, LV_OPA_COVER);
label = decor_label_create(decor, LV_TEXT_ALIGN_RIGHT, LV_OPA_COVER);
diff --git a/tests/src/test_cases/libs/test_gif.c b/tests/src/test_cases/libs/test_gif.c
index 42ae8b81c4..a9faf96c51 100644
--- a/tests/src/test_cases/libs/test_gif.c
+++ b/tests/src/test_cases/libs/test_gif.c
@@ -75,7 +75,7 @@ void test_gif_decode_ignore_invisible(void)
lv_gif_set_auto_pause_invisible(gif, true);
- lv_obj_add_flag(gif, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(gif, true);
lv_gif_set_src(gif, "A:src/test_assets/totoro_transparent.gif");
@@ -83,7 +83,7 @@ void test_gif_decode_ignore_invisible(void)
lv_gif_set_auto_pause_invisible(gif, false);
- lv_obj_remove_flag(gif, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(gif, false);
lv_gif_set_src(gif, "A:src/test_assets/totoro_transparent.gif");
diff --git a/tests/src/test_cases/libs/test_libjpeg_turbo.c b/tests/src/test_cases/libs/test_libjpeg_turbo.c
index 7d410fd816..fecbace395 100644
--- a/tests/src/test_cases/libs/test_libjpeg_turbo.c
+++ b/tests/src/test_cases/libs/test_libjpeg_turbo.c
@@ -69,7 +69,7 @@ void test_jpg_2(void)
TEST_ASSERT_EQUAL_SCREENSHOT("libs/jpg_2.png");
size_t mem_before = lv_test_get_free_mem();
- for(uint32_t i = 0; i < 20; i++) {
+ for(uint32_t i = 0; i < 40; i++) {
create_images();
lv_obj_invalidate(lv_screen_active());
@@ -78,7 +78,7 @@ void test_jpg_2(void)
TEST_ASSERT_EQUAL_SCREENSHOT("libs/jpg_2.png");
- TEST_ASSERT_MEM_LEAK_LESS_THAN(mem_before, 64);
+ TEST_ASSERT_MEM_LEAK_LESS_THAN(mem_before, 128);
}
void test_jpg_cmyk(void)
diff --git a/tests/src/test_cases/libs/test_svg_decoder.c b/tests/src/test_cases/libs/test_svg_decoder.c
index 3780d6711f..ca0f77e3d6 100644
--- a/tests/src/test_cases/libs/test_svg_decoder.c
+++ b/tests/src/test_cases/libs/test_svg_decoder.c
@@ -79,7 +79,7 @@ void svg_snapshot(void)
lv_obj_center(img);
lv_draw_buf_t * draw_buf = lv_snapshot_take(img, LV_COLOR_FORMAT_ARGB8888);
- lv_obj_add_flag(img, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(img, true);
lv_obj_t * img2 = lv_image_create(lv_screen_active());
lv_image_set_src(img2, draw_buf);
lv_obj_set_style_outline_width(img2, 2, 0);
diff --git a/tests/src/test_cases/test_align_flex.c b/tests/src/test_cases/test_align_flex.c
index 095914a28b..26605bf374 100644
--- a/tests/src/test_cases/test_align_flex.c
+++ b/tests/src/test_cases/test_align_flex.c
@@ -94,7 +94,7 @@ void test_wrap_grow_min_width(void)
lv_obj_set_flex_grow(obj, grow);
if(i == 9) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(obj, true);
}
lv_obj_t * label = lv_label_create(obj);
@@ -124,7 +124,7 @@ void test_wrap_grow_min_width_content(void)
}
if(i == 12) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(obj, true);
}
lv_obj_t * label = lv_label_create(obj);
@@ -149,7 +149,7 @@ void test_wrap_grow_min_width_pct(void)
lv_obj_set_flex_grow(obj, grow);
if(i == 9) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(obj, true);
}
lv_obj_t * label = lv_label_create(obj);
@@ -174,7 +174,7 @@ void test_wrap_grow_max_width_content(void)
lv_obj_set_flex_grow(obj, grow);
if(i == 9) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(obj, true);
}
lv_obj_t * label = lv_label_create(obj);
@@ -199,7 +199,7 @@ void test_wrap_grow_max_width_pct(void)
lv_obj_set_flex_grow(obj, grow);
if(i == 9) {
- lv_obj_add_flag(obj, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(obj, true);
}
lv_obj_t * label = lv_label_create(obj);
@@ -704,7 +704,7 @@ static lv_obj_t * cont_row_5_create(void)
static void hide(lv_obj_t * cont, uint32_t idx)
{
- lv_obj_add_flag(lv_obj_get_child(cont, idx), LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(lv_obj_get_child(cont, idx), true);
}
void test_flex_hide_items(void)
@@ -756,7 +756,7 @@ void test_flex_hide_item_first_grow(void)
lv_obj_t * label1 = lv_label_create(cont);
lv_label_set_text(label1, "Hidden");
- lv_obj_set_flag(label1, LV_OBJ_FLAG_HIDDEN, true);
+ lv_obj_set_hidden(label1, true);
lv_obj_set_style_bg_color(label1, lv_color_hex3(0xf00), 0);
lv_obj_set_style_bg_opa(label1, LV_OPA_30, 0);
diff --git a/tests/src/test_cases/test_bindings.c b/tests/src/test_cases/test_bindings.c
index 746dc1640c..0cad1e1b94 100644
--- a/tests/src/test_cases/test_bindings.c
+++ b/tests/src/test_cases/test_bindings.c
@@ -142,7 +142,7 @@ static void create_ui(void)
}
if(i == 1) {
/*Use flags*/
- lv_obj_add_flag(btn, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(btn, true);
}
if(i == 2) {
lv_obj_t * btn_label = lv_obj_get_child(btn, 0);
@@ -182,12 +182,12 @@ static void create_ui(void)
img = lv_image_create(scr);
lv_image_set_src(img, &test_img_lvgl_logo_jpg);
lv_obj_align(img, LV_ALIGN_BOTTOM_RIGHT, -20, -20);
- lv_obj_add_flag(img, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(img, true);
img = lv_image_create(scr);
lv_image_set_src(img, "A:src/test_assets/test_img_lvgl_logo.png");
lv_obj_set_pos(img, 500, 420);
- lv_obj_add_flag(img, LV_OBJ_FLAG_IGNORE_LAYOUT);
+ lv_obj_set_ignore_layout(img, true);
lv_image_set_rotation(img, 200);
lv_image_set_scale_x(img, 400);
}
diff --git a/tests/src/test_cases/test_event_trickle.c b/tests/src/test_cases/test_event_trickle.c
index 09ebccd76e..2a027f9ede 100644
--- a/tests/src/test_cases/test_event_trickle.c
+++ b/tests/src/test_cases/test_event_trickle.c
@@ -17,7 +17,7 @@ void test_event_trickle_basic(void)
{
/*Create a parent container*/
lv_obj_t * parent = lv_obj_create(lv_screen_active());
- lv_obj_add_flag(parent, LV_OBJ_FLAG_EVENT_TRICKLE);
+ lv_obj_set_event_trickle(parent, true);
lv_obj_add_event_cb(parent, test_event_cb, LV_EVENT_CLICKED, NULL);
/*Create children*/
@@ -45,7 +45,7 @@ void test_event_trickle_stop(void)
{
/*Create a parent container*/
lv_obj_t * parent = lv_obj_create(lv_screen_active());
- lv_obj_add_flag(parent, LV_OBJ_FLAG_EVENT_TRICKLE);
+ lv_obj_set_event_trickle(parent, true);
/*Add event handler that stops trickle down*/
lv_obj_add_event_cb(parent, test_event_cb, LV_EVENT_CLICKED, NULL);
diff --git a/tests/src/test_cases/test_flex_grow.c b/tests/src/test_cases/test_flex_grow.c
index bc1bc8949e..4a5eb96d5e 100644
--- a/tests/src/test_cases/test_flex_grow.c
+++ b/tests/src/test_cases/test_flex_grow.c
@@ -47,7 +47,7 @@ void test_grid_fr(void)
lv_obj_set_style_bg_color(child_grow_1, lv_palette_main(LV_PALETTE_BLUE), LV_PART_MAIN);
lv_obj_set_size(child_grow_1, 1, 10);
lv_obj_set_flex_grow(child_grow_1, grow_1);
- lv_obj_add_flag(child_grow_1, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK);
+ lv_obj_set_flex_in_new_track(child_grow_1, true);
lv_obj_t * child_grow_2 = lv_obj_create(container);
simple_style(child_grow_2);
diff --git a/tests/src/test_cases/test_gesture_pinch.c b/tests/src/test_cases/test_gesture_pinch.c
index 076cd9e642..00d7618b12 100644
--- a/tests/src/test_cases/test_gesture_pinch.c
+++ b/tests/src/test_cases/test_gesture_pinch.c
@@ -33,7 +33,7 @@ void test_gesture_pinch(void)
lv_memzero(&counts, sizeof(counts));
lv_obj_t * label = lv_label_create(lv_screen_active());
- lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(label, true);
lv_obj_set_size(label, 320, 320);
lv_obj_add_event_cb(label, gesture_event_cb, LV_EVENT_GESTURE, &counts);
diff --git a/tests/src/test_cases/test_group.c b/tests/src/test_cases/test_group.c
index 4f9fd279e2..0bdd6a70d1 100644
--- a/tests/src/test_cases/test_group.c
+++ b/tests/src/test_cases/test_group.c
@@ -159,7 +159,7 @@ void test_group_remove_focused_obj_sends_defocused_when_others_unfocusable(void)
lv_group_add_obj(group, obj_disabled);
lv_group_add_obj(group, obj_focused);
- lv_obj_add_flag(obj_hidden, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(obj_hidden, true);
lv_obj_add_state(obj_disabled, LV_STATE_DISABLED);
lv_group_focus_obj(obj_focused);
diff --git a/tests/src/test_cases/test_hover.c b/tests/src/test_cases/test_hover.c
index 899977ac59..eed4c72327 100644
--- a/tests/src/test_cases/test_hover.c
+++ b/tests/src/test_cases/test_hover.c
@@ -56,7 +56,7 @@ void test_hover_basic(void)
lv_obj_set_size(label, 200, 20);
lv_label_set_text(label, "Clickable text can be hovered!");
lv_obj_set_pos(label, 100, 20);
- lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_clickable(label, true);
lv_obj_set_style_text_color(label, lv_color_hex(0x5be1b6), LV_PART_MAIN | LV_STATE_HOVERED);
/*Set hover callback*/
diff --git a/tests/src/test_cases/test_indev.c b/tests/src/test_cases/test_indev.c
index 5cc73c64ef..0aef2c855c 100644
--- a/tests/src/test_cases/test_indev.c
+++ b/tests/src/test_cases/test_indev.c
@@ -156,7 +156,7 @@ void test_indev_scroll_between_two_buttons_with_and_without_press_lock(void)
uint32_t pressed_lost_count_2 = 0;
lv_obj_t * btn1 = lv_button_create(lv_screen_active());
- lv_obj_remove_flag(btn1, LV_OBJ_FLAG_PRESS_LOCK);
+ lv_obj_set_press_lock(btn1, false);
lv_obj_set_size(btn1, 120, 100);
lv_obj_set_pos(btn1, 300, 200);
lv_obj_add_event_cb(btn1, indev_scroll_press_event_cb, LV_EVENT_PRESSED,
diff --git a/tests/src/test_cases/test_indev_scroll_rotation.c b/tests/src/test_cases/test_indev_scroll_rotation.c
index b301cb06a5..7d62ef66af 100644
--- a/tests/src/test_cases/test_indev_scroll_rotation.c
+++ b/tests/src/test_cases/test_indev_scroll_rotation.c
@@ -45,7 +45,7 @@ void setUp(void)
container = lv_obj_create(lv_screen_active());
lv_obj_set_size(container, 200, 200);
lv_obj_center(container);
- lv_obj_add_flag(container, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(container, true);
lv_obj_set_scroll_dir(container, LV_DIR_HOR);
lv_obj_add_event_cb(container, scroll_begin_cb, LV_EVENT_SCROLL_BEGIN, NULL);
@@ -56,22 +56,22 @@ void setUp(void)
/* List: vertical scrollable, remove SCROLL_CHAIN_VER (like widget_list) */
list_obj = lv_obj_create(container);
lv_obj_set_size(list_obj, 200, 200);
- lv_obj_add_flag(list_obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(list_obj, true);
lv_obj_set_scroll_dir(list_obj, LV_DIR_VER);
- lv_obj_remove_flag(list_obj, LV_OBJ_FLAG_SCROLL_CHAIN_VER);
+ lv_obj_set_scroll_chain_ver(list_obj, false);
/* Rotated container (like barcode div with rotate 90deg) */
rotated_obj = lv_obj_create(list_obj);
lv_obj_set_size(rotated_obj, 100, 50);
lv_obj_center(rotated_obj);
lv_obj_set_style_transform_rotation(rotated_obj, 900, LV_PART_MAIN);
- lv_obj_remove_flag(rotated_obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(rotated_obj, false);
/* Inner touch target (like barcode obj) */
inner_obj = lv_obj_create(rotated_obj);
lv_obj_set_size(inner_obj, 80, 30);
lv_obj_center(inner_obj);
- lv_obj_remove_flag(inner_obj, LV_OBJ_FLAG_SCROLLABLE);
+ lv_obj_set_scrollable(inner_obj, false);
lv_test_wait(50);
}
diff --git a/tests/src/test_cases/test_observer.c b/tests/src/test_cases/test_observer.c
index 4fe8065fba..dfc4577a9f 100644
--- a/tests/src/test_cases/test_observer.c
+++ b/tests/src/test_cases/test_observer.c
@@ -68,14 +68,14 @@ void test_object_observer_add_remove(void)
lv_observer_t * observer = lv_obj_bind_flag_if_eq(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_observer_remove(observer);
lv_subject_set_int(&subject, 1);
/* This shouldn't get updated */
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_obj_delete(obj);
/* We shouldn't crash here */
}
@@ -526,20 +526,20 @@ void test_observer_obj_flag_eq(void)
lv_obj_bind_flag_if_eq(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_obj_bind_flag_if_not_eq(obj, &subject, LV_OBJ_FLAG_CHECKABLE, 10);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_checkable(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_checkable(obj));
lv_subject_set_int(&subject, 10);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_CHECKABLE));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_checkable(obj));
}
void test_observer_obj_flag_ge(void)
@@ -550,16 +550,16 @@ void test_observer_obj_flag_ge(void)
lv_obj_bind_flag_if_ge(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 4);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 6);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
}
void test_observer_obj_flag_gt(void)
@@ -570,16 +570,16 @@ void test_observer_obj_flag_gt(void)
lv_obj_bind_flag_if_gt(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 6);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 4);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
}
void test_observer_obj_flag_le(void)
@@ -590,16 +590,16 @@ void test_observer_obj_flag_le(void)
lv_obj_bind_flag_if_le(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 6);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 4);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
}
void test_observer_obj_flag_lt(void)
@@ -610,16 +610,16 @@ void test_observer_obj_flag_lt(void)
lv_obj_bind_flag_if_lt(obj, &subject, LV_OBJ_FLAG_HIDDEN, 5);
/*Should be applied immediately*/
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 4);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 5);
- TEST_ASSERT_EQUAL(false, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(false, lv_obj_is_hidden(obj));
lv_subject_set_int(&subject, 3);
- TEST_ASSERT_EQUAL(true, lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_EQUAL(true, lv_obj_is_hidden(obj));
}
void test_observer_obj_state_invalid_subject(void)
@@ -761,7 +761,7 @@ void test_observer_button_checked(void)
{
lv_obj_t * obj = lv_button_create(lv_screen_active());
lv_obj_set_size(obj, 100, 100);
- lv_obj_add_flag(obj, LV_OBJ_FLAG_CHECKABLE);
+ lv_obj_set_checkable(obj, true);
lv_obj_update_layout(obj);
/*Can bind only to int*/
diff --git a/tests/src/test_cases/test_snapshot.c b/tests/src/test_cases/test_snapshot.c
index af9da6504f..417657d083 100644
--- a/tests/src/test_cases/test_snapshot.c
+++ b/tests/src/test_cases/test_snapshot.c
@@ -176,7 +176,7 @@ void test_snapshot_take_snapshot_multiple_widgets(void)
lv_obj_set_style_border_width(obj_4, 0, 0);
lv_obj_set_style_bg_color(obj_4, lv_color_hex3(0x0ff), 0);
lv_obj_align(obj_4, LV_ALIGN_BOTTOM_MID, 0, 0);
- lv_obj_add_flag(obj_4, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(obj_4, true);
lv_obj_t * obj_5 = lv_obj_create(lv_screen_active());
lv_obj_set_size(obj_5, 100, 100);
diff --git a/tests/src/test_cases/widgets/test_arc.c b/tests/src/test_cases/widgets/test_arc.c
index 8caa6d3cd7..9408249f64 100644
--- a/tests/src/test_cases/widgets/test_arc.c
+++ b/tests/src/test_cases/widgets/test_arc.c
@@ -165,7 +165,7 @@ void test_arc_click_area_with_adv_hittest(void)
arc = lv_arc_create(lv_screen_active());
lv_obj_set_size(arc, 100, 100);
lv_obj_set_style_arc_width(arc, 10, 0);
- lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST);
+ lv_obj_set_adv_hittest(arc, true);
lv_obj_add_event_cb(arc, dummy_event_cb, LV_EVENT_PRESSED, NULL);
lv_obj_set_ext_click_area(arc, 5);
@@ -249,8 +249,8 @@ void test_two_overlapping_arcs_can_be_interacted_independently(void)
lv_obj_set_size(arc2, 100, 100);
lv_arc_set_bg_angles(arc, 20, 160);
lv_arc_set_bg_angles(arc2, 200, 340);
- lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST);
- lv_obj_add_flag(arc2, LV_OBJ_FLAG_ADV_HITTEST);
+ lv_obj_set_adv_hittest(arc, true);
+ lv_obj_set_adv_hittest(arc2, true);
lv_arc_set_value(arc, 10);
lv_arc_set_value(arc2, 10);
lv_arc_set_rotation(arc, 355);
diff --git a/tests/src/test_cases/widgets/test_btn.c b/tests/src/test_cases/widgets/test_btn.c
index c904af143d..3a8a479d79 100644
--- a/tests/src/test_cases/widgets/test_btn.c
+++ b/tests/src/test_cases/widgets/test_btn.c
@@ -22,8 +22,8 @@ void test_button_creation(void)
btn = lv_button_create(active_screen);
TEST_ASSERT_NOT_NULL(btn);
/* These flags are set in the object's constructor. */
- TEST_ASSERT_TRUE(lv_obj_has_flag(btn, LV_OBJ_FLAG_SCROLL_ON_FOCUS));
- TEST_ASSERT_FALSE(lv_obj_has_flag(btn, LV_OBJ_FLAG_SCROLLABLE));
+ TEST_ASSERT_TRUE(lv_obj_is_scroll_on_focus(btn));
+ TEST_ASSERT_FALSE(lv_obj_is_scrollable(btn));
}
#endif
diff --git a/tests/src/test_cases/widgets/test_chart.c b/tests/src/test_cases/widgets/test_chart.c
index e151569cc4..484d74e766 100644
--- a/tests/src/test_cases/widgets/test_chart.c
+++ b/tests/src/test_cases/widgets/test_chart.c
@@ -179,7 +179,7 @@ void test_draw_task_hooking(void)
lv_obj_set_parent(chart, chart_wrapper);
lv_obj_set_size(chart, lv_pct(200), lv_pct(100));
- lv_obj_add_flag(chart, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(chart, true);
lv_chart_set_div_line_count(chart, 0, 21);
lv_chart_set_point_count(chart, 21);
lv_obj_add_event_cb(chart, chart_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
diff --git a/tests/src/test_cases/widgets/test_ime_pinyin.c b/tests/src/test_cases/widgets/test_ime_pinyin.c
index 9a19666d33..f19f4220a2 100644
--- a/tests/src/test_cases/widgets/test_ime_pinyin.c
+++ b/tests/src/test_cases/widgets/test_ime_pinyin.c
@@ -108,7 +108,7 @@ void test_ime_pinyin_get_cand_panel(void)
lv_ime_pinyin_set_keyboard(g_pinyin_ime, g_kb);
lv_obj_t * cand_panel = lv_ime_pinyin_get_cand_panel(g_pinyin_ime);
TEST_ASSERT_NOT_NULL(cand_panel);
- TEST_ASSERT_TRUE(lv_obj_has_flag(cand_panel, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(cand_panel));
}
/* Test mode switching */
@@ -177,7 +177,7 @@ void test_ime_pinyin_kb_event(void)
TEST_ASSERT_NOT_NULL(cand_panel);
/* Verify cand_panel is initially hidden */
- TEST_ASSERT_TRUE(lv_obj_has_flag(cand_panel, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(cand_panel));
/* Simulate keyboard button click for 'n' */
lv_buttonmatrix_set_selected_button(g_kb, 26); /* 'n' key position */
@@ -374,7 +374,7 @@ void test_ime_pinyin_cand_panel_visibility(void)
lv_obj_t * cand_panel = lv_ime_pinyin_get_cand_panel(g_pinyin_ime);
/* Initially hidden */
- TEST_ASSERT_TRUE(lv_obj_has_flag(cand_panel, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(cand_panel));
/* After entering some text, it should be visible (if valid pinyin) */
/* This is tested indirectly by verifying the structure */
@@ -773,7 +773,7 @@ void test_ime_pinyin_cand_selection(void)
lv_obj_send_event(g_kb, LV_EVENT_VALUE_CHANGED, NULL);
/* If candidates exist, simulate selection */
- if(ime->cand_num > 0 && !lv_obj_has_flag(ime->cand_panel, LV_OBJ_FLAG_HIDDEN)) {
+ if(ime->cand_num > 0 && !lv_obj_is_hidden(ime->cand_panel)) {
/* Select first candidate (button id 1, 0 is left arrow) */
lv_buttonmatrix_set_selected_button(ime->cand_panel, 1);
lv_obj_send_event(ime->cand_panel, LV_EVENT_VALUE_CHANGED, NULL);
@@ -957,7 +957,7 @@ void test_ime_pinyin_cand_page_buttons(void)
press_button_by_text(g_kb, "n");
/* If candidate panel is visible, test navigation */
- if(!lv_obj_has_flag(cand_panel, LV_OBJ_FLAG_HIDDEN) && ime->cand_num > 0) {
+ if(!lv_obj_is_hidden(cand_panel) && ime->cand_num > 0) {
/* Try to click left/right buttons on candidate panel */
lv_buttonmatrix_set_selected_button(cand_panel, 0); /* Left button */
lv_obj_send_event(cand_panel, LV_EVENT_VALUE_CHANGED, NULL);
diff --git a/tests/src/test_cases/widgets/test_line.c b/tests/src/test_cases/widgets/test_line.c
index 9ff158d628..ca9f8e27fd 100644
--- a/tests/src/test_cases/widgets/test_line.c
+++ b/tests/src/test_cases/widgets/test_line.c
@@ -27,7 +27,7 @@ void test_line_should_have_valid_documented_default_values(void)
TEST_ASSERT_EQUAL_UINT16(default_point_num, lv_line_get_point_count(line));
TEST_ASSERT_NULL(lv_line_get_points(line));
TEST_ASSERT_FALSE(lv_line_get_y_invert(line));
- TEST_ASSERT_FALSE(lv_obj_has_flag(line, LV_OBJ_FLAG_CLICKABLE));
+ TEST_ASSERT_FALSE(lv_obj_is_clickable(line));
/* line doesn't have any points, so it's 0,0 in size */
TEST_ASSERT_EQUAL_UINT16(0U, lv_obj_get_self_width(line));
TEST_ASSERT_EQUAL_UINT16(0U, lv_obj_get_self_height(line));
diff --git a/tests/src/test_cases/widgets/test_lottie.c b/tests/src/test_cases/widgets/test_lottie.c
index 8bf4df1de1..8d7adbc32b 100644
--- a/tests/src/test_cases/widgets/test_lottie.c
+++ b/tests/src/test_cases/widgets/test_lottie.c
@@ -158,12 +158,12 @@ void test_lottie_no_jump_when_visible_again(void)
lv_test_fast_forward(200);
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/lottie_2.png");
- lv_obj_add_flag(lottie, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(lottie, true);
lv_test_fast_forward(300);
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/lottie_1.png"); /*Empty screen*/
/*Should be on the same frame*/
- lv_obj_remove_flag(lottie, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(lottie, false);
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/lottie_2.png");
lv_test_fast_forward(750);
diff --git a/tests/src/test_cases/widgets/test_menu.c b/tests/src/test_cases/widgets/test_menu.c
index 4cf993e4c9..2e4fdaf10c 100644
--- a/tests/src/test_cases/widgets/test_menu.c
+++ b/tests/src/test_cases/widgets/test_menu.c
@@ -594,7 +594,7 @@ void test_menu_header_hidden_when_empty(void)
lv_obj_t * header = lv_menu_get_main_header(menu);
lv_refr_now(NULL);
- TEST_ASSERT_TRUE(lv_obj_has_flag(header, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(header));
}
void test_menu_group_focus(void)
@@ -680,7 +680,7 @@ void test_menu_sidebar_root_back_disabled(void)
lv_refr_now(NULL);
lv_obj_t * sidebar_back_btn = lv_menu_get_sidebar_header_back_button(menu);
- TEST_ASSERT_TRUE(lv_obj_has_flag(sidebar_back_btn, LV_OBJ_FLAG_HIDDEN));
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(sidebar_back_btn));
}
void test_menu_selected_tab_clear_without_sidebar(void)
diff --git a/tests/src/test_cases/widgets/test_obj_flags.c b/tests/src/test_cases/widgets/test_obj_flags.c
index d2715bc2e8..c2d7e9cf6e 100644
--- a/tests/src/test_cases/widgets/test_obj_flags.c
+++ b/tests/src/test_cases/widgets/test_obj_flags.c
@@ -26,7 +26,7 @@ void test_obj_flag_overflow_visible_1(void)
lv_obj_t * obj_main = lv_obj_create(lv_screen_active());
lv_obj_set_size(obj_main, 400, 300);
lv_obj_set_style_bg_color(obj_main, lv_palette_main(LV_PALETTE_RED), 0);
- lv_obj_add_flag(obj_main, LV_OBJ_FLAG_OVERFLOW_VISIBLE);
+ lv_obj_set_overflow_visible(obj_main, true);
lv_obj_center(obj_main);
lv_obj_set_ext_draw_size(obj_main, 100);
@@ -38,7 +38,7 @@ void test_obj_flag_overflow_visible_1(void)
lv_obj_t * btn_1 = lv_button_create(obj_child_1);
lv_obj_set_size(btn_1, 100, 100);
lv_obj_align(btn_1, LV_ALIGN_LEFT_MID, -75, 0);
- lv_obj_remove_flag(btn_1, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(btn_1, false);
uint32_t cnt_1;
lv_obj_add_event_cb(btn_1, btn_clicked_event_cb, LV_EVENT_CLICKED, &cnt_1);
@@ -49,14 +49,14 @@ void test_obj_flag_overflow_visible_1(void)
lv_obj_t * obj_child_2 = lv_obj_create(obj_main);
lv_obj_set_size(obj_child_2, 200, 200);
lv_obj_set_style_bg_color(obj_child_2, lv_palette_main(LV_PALETTE_ORANGE), 0);
- lv_obj_add_flag(obj_child_2, LV_OBJ_FLAG_OVERFLOW_VISIBLE);
+ lv_obj_set_overflow_visible(obj_child_2, true);
lv_obj_align(obj_child_2, LV_ALIGN_RIGHT_MID, 100, 0);
lv_obj_set_ext_draw_size(obj_child_2, 100);
lv_obj_t * btn_2 = lv_button_create(obj_child_2);
lv_obj_set_size(btn_2, 100, 100);
lv_obj_align(btn_2, LV_ALIGN_RIGHT_MID, 75, 0);
- lv_obj_remove_flag(btn_2, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
+ lv_obj_set_scroll_on_focus(btn_2, false);
uint32_t cnt_2;
lv_obj_add_event_cb(btn_2, btn_clicked_event_cb, LV_EVENT_CLICKED, &cnt_2);
@@ -235,10 +235,10 @@ void test_obj_flag_radio_button(void)
void test_obj_flag_parent_hidden(void)
{
/* #10083: Ensure that adding and removing screen flags don't make lvgl crash*/
- lv_obj_add_flag(lv_screen_active(), LV_OBJ_FLAG_HIDDEN);
- TEST_ASSERT_TRUE(lv_obj_has_flag(lv_screen_active(), LV_OBJ_FLAG_HIDDEN));
- lv_obj_remove_flag(lv_screen_active(), LV_OBJ_FLAG_HIDDEN);
- TEST_ASSERT_FALSE(lv_obj_has_flag(lv_screen_active(), LV_OBJ_FLAG_HIDDEN));
+ lv_obj_set_hidden(lv_screen_active(), true);
+ TEST_ASSERT_TRUE(lv_obj_is_hidden(lv_screen_active()));
+ lv_obj_set_hidden(lv_screen_active(), false);
+ TEST_ASSERT_FALSE(lv_obj_is_hidden(lv_screen_active()));
TEST_PASS();
}
diff --git a/tests/src/test_cases/widgets/test_obj_property.c b/tests/src/test_cases/widgets/test_obj_property.c
index c3381e3c5b..5dab22d92b 100644
--- a/tests/src/test_cases/widgets/test_obj_property.c
+++ b/tests/src/test_cases/widgets/test_obj_property.c
@@ -58,7 +58,8 @@ void test_obj_property_set_get_should_match(void)
TEST_ASSERT_EQUAL_PTR(&lv_font_montserrat_26, lv_obj_get_style_text_font(obj, LV_PART_MAIN));
TEST_ASSERT_EQUAL_PTR(&lv_font_montserrat_26, lv_obj_get_property(obj, LV_PROPERTY_STYLE_TEXT_FONT).ptr);
- /* Object flags */
+ /* Object flags (deprecated flag API kept for backward compatibility) */
+ LV_DEPRECATIONS_IGNORE_BEGIN
prop.id = LV_PROPERTY_OBJ_FLAG_HIDDEN ;
prop.num = 1;
TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
@@ -70,6 +71,7 @@ void test_obj_property_set_get_should_match(void)
TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK);
TEST_ASSERT_FALSE(lv_obj_has_flag(obj, LV_OBJ_FLAG_CLICKABLE));
TEST_ASSERT_FALSE(lv_obj_get_property(obj, LV_PROPERTY_OBJ_FLAG_CLICKABLE).num);
+ LV_DEPRECATIONS_IGNORE_END
/* Obj property */
prop.id = LV_PROPERTY_OBJ_PARENT;
@@ -159,10 +161,10 @@ void test_obj_property_flag(void)
};
lv_obj_t * obj = lv_obj_create(lv_screen_active());
- obj->flags = 0;
+ /*This test intentionally exercises the deprecated flag API kept for backward compatibility.*/
+ LV_DEPRECATIONS_IGNORE_BEGIN
for(unsigned long i = 0; i < sizeof(properties) / sizeof(properties[0]); i++) {
- TEST_ASSERT_FALSE(lv_obj_get_property(obj, properties[i].id).num);
lv_obj_add_flag(obj, properties[i].flag);
TEST_ASSERT_TRUE(lv_obj_get_property(obj, properties[i].id).num);
@@ -182,6 +184,7 @@ void test_obj_property_flag(void)
TEST_ASSERT_FALSE(lv_obj_get_property(obj, properties[i].id).num);
TEST_ASSERT_FALSE(lv_obj_has_flag(obj, properties[i].flag));
}
+ LV_DEPRECATIONS_IGNORE_END
#endif
}
diff --git a/tests/src/test_cases/widgets/test_roller.c b/tests/src/test_cases/widgets/test_roller.c
index 18cbcc6824..a5044106dd 100644
--- a/tests/src/test_cases/widgets/test_roller.c
+++ b/tests/src/test_cases/widgets/test_roller.c
@@ -207,7 +207,7 @@ void test_roller_keypad_events(void)
void test_roller_with_overlay_and_bubble_events_enabled(void)
{
lv_obj_t * overlay = lv_obj_create(roller);
- lv_obj_add_flag(overlay, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(overlay, true);
lv_obj_send_event(overlay, LV_EVENT_PRESSED, NULL);
}
@@ -296,8 +296,8 @@ void test_roller_transformed_click(void)
lv_obj_set_parent(roller_mouse, rotated);
lv_obj_t * click_dot = lv_obj_create(active_screen);
- lv_obj_add_flag(click_dot, LV_OBJ_FLAG_FLOATING);
- lv_obj_remove_flag(click_dot, LV_OBJ_FLAG_CLICKABLE);
+ lv_obj_set_floating(click_dot, true);
+ lv_obj_set_clickable(click_dot, false);
lv_obj_set_size(click_dot, 10, 10);
lv_obj_set_style_border_width(click_dot, 0, 0);
lv_obj_set_style_radius(click_dot, LV_RADIUS_CIRCLE, 0);
@@ -316,7 +316,7 @@ void test_roller_appearance(void)
const char * opts =
"0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg\n0@Tg";
- lv_obj_add_flag(roller_mouse, LV_OBJ_FLAG_HIDDEN);
+ lv_obj_set_hidden(roller_mouse, true);
lv_obj_t * rollers[10] = {roller, roller_infinite};
uint32_t i = 2;
diff --git a/tests/src/test_cases/widgets/test_scale.c b/tests/src/test_cases/widgets/test_scale.c
index a552f55c8c..8475bcb319 100644
--- a/tests/src/test_cases/widgets/test_scale.c
+++ b/tests/src/test_cases/widgets/test_scale.c
@@ -333,7 +333,7 @@ void test_scale_render_example_7(void)
lv_scale_set_range(scale, 10, 40);
lv_obj_add_event_cb(scale, draw_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(scale, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(scale, true);
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/scale_5.png");
}
diff --git a/tests/src/test_cases/widgets/test_slider.c b/tests/src/test_cases/widgets/test_slider.c
index 08e37b5952..faf4e7762d 100644
--- a/tests/src/test_cases/widgets/test_slider.c
+++ b/tests/src/test_cases/widgets/test_slider.c
@@ -39,8 +39,8 @@ void test_textarea_should_have_valid_documented_default_values(void)
/* Horizontal slider */
TEST_ASSERT_TRUE(objw >= objh);
- TEST_ASSERT_FALSE(lv_obj_has_flag(slider, LV_OBJ_FLAG_SCROLL_CHAIN));
- TEST_ASSERT_FALSE(lv_obj_has_flag(slider, LV_OBJ_FLAG_SCROLLABLE));
+ TEST_ASSERT_FALSE((lv_obj_is_scroll_chain_hor(slider) && lv_obj_is_scroll_chain_ver(slider)));
+ TEST_ASSERT_FALSE(lv_obj_is_scrollable(slider));
}
void test_slider_event_keys_right_and_up_increment_value_by_one(void)
@@ -322,7 +322,7 @@ void test_slider_scroll_chain_horizontal(void)
lv_obj_send_event(slider, LV_EVENT_RELEASED, NULL);
/* Horizontal ptr should allow vertical scroll chain */
- TEST_ASSERT_TRUE(lv_obj_has_flag(slider, LV_OBJ_FLAG_SCROLL_CHAIN_VER));
+ TEST_ASSERT_TRUE(lv_obj_is_scroll_chain_ver(slider));
}
void test_slider_scroll_chain_vertical(void)
@@ -335,7 +335,7 @@ void test_slider_scroll_chain_vertical(void)
lv_obj_send_event(slider, LV_EVENT_RELEASED, NULL);
/* Vertical ptr should allow horizontal scroll chain */
- TEST_ASSERT_TRUE(lv_obj_has_flag(slider, LV_OBJ_FLAG_SCROLL_CHAIN_HOR));
+ TEST_ASSERT_TRUE(lv_obj_is_scroll_chain_hor(slider));
}
void test_slider_range_mode_key_decrement_left_value(void)
diff --git a/tests/src/test_cases/widgets/test_switch.c b/tests/src/test_cases/widgets/test_switch.c
index 1a10eb1f89..5fbc149a54 100644
--- a/tests/src/test_cases/widgets/test_switch.c
+++ b/tests/src/test_cases/widgets/test_switch.c
@@ -124,7 +124,7 @@ void test_switch_should_trigger_value_changed_event_only_once(void)
/* See #2785 for context */
void test_switch_should_state_change_when_event_bubbling_is_enabled(void)
{
- lv_obj_add_flag(sw, LV_OBJ_FLAG_EVENT_BUBBLE);
+ lv_obj_set_event_bubble(sw, true);
mouse_click_on_switch();
TEST_ASSERT(lv_obj_has_state(sw, LV_STATE_CHECKED));
diff --git a/tests/src/test_cases/widgets/test_table.c b/tests/src/test_cases/widgets/test_table.c
index 21231ddeae..4011638f91 100644
--- a/tests/src/test_cases/widgets/test_table.c
+++ b/tests/src/test_cases/widgets/test_table.c
@@ -189,7 +189,7 @@ void test_table_rendering(void)
{
lv_obj_center(table);
lv_obj_add_event_cb(table, draw_part_event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);
- lv_obj_add_flag(table, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS);
+ lv_obj_set_send_draw_task_events(table, true);
lv_obj_set_style_border_side(table, LV_BORDER_SIDE_FULL, LV_PART_ITEMS);
lv_obj_set_style_pad_all(table, 10, LV_PART_ITEMS);
lv_obj_set_style_border_width(table, 5, LV_PART_ITEMS);