refactor: scr -> screen, act->active, del->delete, remove in obj_clear_flag/state

This commit is contained in:
Gabor Kiss-Vamosi
2023-10-12 20:37:27 +02:00
parent 0ff2d1c2e4
commit 9ec5417dd3
468 changed files with 1330 additions and 1288 deletions

View File

@@ -749,7 +749,7 @@ static void benchmark_init(void)
lv_timer_set_period(anim_timer, 2); lv_timer_set_period(anim_timer, 2);
} }
lv_obj_t * scr = lv_scr_act(); lv_obj_t * scr = lv_screen_active();
lv_obj_remove_style_all(scr); lv_obj_remove_style_all(scr);
lv_obj_set_style_bg_opa(scr, LV_OPA_COVER, 0); lv_obj_set_style_bg_opa(scr, LV_OPA_COVER, 0);
lv_obj_set_style_bg_color(scr, lv_palette_lighten(LV_PALETTE_GREY, 4), 0); lv_obj_set_style_bg_color(scr, lv_palette_lighten(LV_PALETTE_GREY, 4), 0);
@@ -859,7 +859,7 @@ static void next_scene_timer_cb(lv_timer_t * timer)
lv_result_t res = load_next_scene(); lv_result_t res = load_next_scene();
if(res == LV_RESULT_INVALID) { if(res == LV_RESULT_INVALID) {
lv_timer_del(timer); lv_timer_delete(timer);
generate_report(); generate_report();
} }
} }
@@ -882,7 +882,7 @@ static void single_scene_finsih_timer_cb(lv_timer_t * timer)
benchmark_event_remove(); benchmark_event_remove();
show_scene_report(); show_scene_report();
lv_obj_clean(scene_bg); lv_obj_clean(scene_bg);
lv_obj_invalidate(lv_scr_act()); lv_obj_invalidate(lv_screen_active());
} }
static void dummy_flush_cb(lv_display_t * drv, const lv_area_t * area, uint8_t * pxmap) static void dummy_flush_cb(lv_display_t * drv, const lv_area_t * area, uint8_t * pxmap)
@@ -987,19 +987,19 @@ static void generate_report(void)
uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted; uint32_t opa_speed_pct = (fps_opa_unweighted * 100) / fps_normal_unweighted;
lv_obj_clean(lv_scr_act()); lv_obj_clean(lv_screen_active());
scene_bg = NULL; scene_bg = NULL;
lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_COLUMN);
title = lv_label_create(lv_scr_act()); title = lv_label_create(lv_screen_active());
lv_label_set_text_fmt(title, "Weighted FPS: %"LV_PRIu32, fps_weighted); lv_label_set_text_fmt(title, "Weighted FPS: %"LV_PRIu32, fps_weighted);
subtitle = lv_label_create(lv_scr_act()); subtitle = lv_label_create(lv_screen_active());
lv_label_set_text_fmt(subtitle, "Opa. speed: %"LV_PRIu32"%%", opa_speed_pct); lv_label_set_text_fmt(subtitle, "Opa. speed: %"LV_PRIu32"%%", opa_speed_pct);
lv_coord_t w = lv_obj_get_content_width(lv_scr_act()); lv_coord_t w = lv_obj_get_content_width(lv_screen_active());
lv_obj_t * table = lv_table_create(lv_scr_act()); lv_obj_t * table = lv_table_create(lv_screen_active());
// lv_obj_clean_style_list(table, LV_PART_MAIN); // lv_obj_clean_style_list(table, LV_PART_MAIN);
lv_table_set_col_cnt(table, 2); lv_table_set_col_cnt(table, 2);

View File

@@ -85,7 +85,7 @@ static void ctrl_pad_btn_remove_event_handler(lv_event_t * e)
lv_obj_clean(ui->root); lv_obj_clean(ui->root);
} }
else { else {
lv_obj_del(ui->obj_cur); lv_obj_delete(ui->obj_cur);
ui->obj_cur = NULL; ui->obj_cur = NULL;
} }
} }
@@ -114,7 +114,7 @@ void ctrl_pad_obj_update(lv_obj_t * obj, view_t * ui)
lv_obj_add_state(checkbox, LV_STATE_CHECKED); lv_obj_add_state(checkbox, LV_STATE_CHECKED);
} }
else { else {
lv_obj_clear_state(checkbox, LV_STATE_CHECKED); lv_obj_remove_state(checkbox, LV_STATE_CHECKED);
} }
} }
@@ -144,7 +144,8 @@ static void ctrl_pad_checkbox_event_handler(lv_event_t * e)
view_t * ui = lv_event_get_user_data(e); view_t * ui = lv_event_get_user_data(e);
if(ui->obj_cur) { if(ui->obj_cur) {
bool checked = lv_obj_has_state(lv_event_get_target(e), LV_STATE_CHECKED); bool checked = lv_obj_has_state(lv_event_get_target(e), LV_STATE_CHECKED);
checked ? lv_obj_add_flag(ui->obj_cur, LV_OBJ_FLAG_SCROLLABLE) : lv_obj_clear_flag(ui->obj_cur, LV_OBJ_FLAG_SCROLLABLE); checked ? lv_obj_add_flag(ui->obj_cur, LV_OBJ_FLAG_SCROLLABLE) : lv_obj_remove_flag(ui->obj_cur,
LV_OBJ_FLAG_SCROLLABLE);
} }
} }

View File

@@ -40,7 +40,7 @@ static view_t view;
void lv_demo_flex_layout(void) void lv_demo_flex_layout(void)
{ {
view_create(lv_scr_act(), &view); view_create(lv_screen_active(), &view);
ctrl_pad_attach(&view); ctrl_pad_attach(&view);
} }

View File

@@ -69,7 +69,7 @@ void view_create(lv_obj_t * par, view_t * ui)
lv_obj_set_style_shadow_color(obj, lv_color_hex3(0xaaa), 0); lv_obj_set_style_shadow_color(obj, lv_color_hex3(0xaaa), 0);
lv_obj_set_style_shadow_width(obj, 20, 0); lv_obj_set_style_shadow_width(obj, 20, 0);
lv_obj_set_style_shadow_ofs_y(obj, 2, 0); lv_obj_set_style_shadow_ofs_y(obj, 2, 0);
lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
lv_obj_set_flex_align( lv_obj_set_flex_align(
obj, obj,

View File

@@ -69,7 +69,7 @@ static void obj_child_node_event_handler(lv_event_t * e)
lv_obj_t * obj = lv_event_get_target(e); lv_obj_t * obj = lv_event_get_target(e);
if(ui->obj_cur) { if(ui->obj_cur) {
lv_obj_clear_state(ui->obj_cur, LV_STATE_CHECKED); lv_obj_remove_state(ui->obj_cur, LV_STATE_CHECKED);
} }
lv_obj_add_state(obj, LV_STATE_CHECKED); lv_obj_add_state(obj, LV_STATE_CHECKED);

View File

@@ -66,7 +66,7 @@ void lv_demo_keypad_encoder(void)
} }
} }
tv = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, LV_DPI_DEF / 3); tv = lv_tabview_create(lv_screen_active(), LV_DIR_TOP, LV_DPI_DEF / 3);
t1 = lv_tabview_add_tab(tv, "Selectors"); t1 = lv_tabview_add_tab(tv, "Selectors");
t2 = lv_tabview_add_tab(tv, "Text input"); t2 = lv_tabview_add_tab(tv, "Text input");
@@ -153,7 +153,7 @@ static void text_input_create(lv_obj_t * parent)
lv_textarea_set_one_line(ta2, true); lv_textarea_set_one_line(ta2, true);
lv_textarea_set_placeholder_text(ta2, "Type something"); lv_textarea_set_placeholder_text(ta2, "Type something");
lv_obj_t * kb = lv_keyboard_create(lv_scr_act()); lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
lv_obj_add_event(ta1, ta_event_cb, LV_EVENT_ALL, kb); lv_obj_add_event(ta1, ta_event_cb, LV_EVENT_ALL, kb);
@@ -205,7 +205,7 @@ static void ta_event_cb(lv_event_t * e)
if(code == LV_EVENT_CLICKED && indev_type == LV_INDEV_TYPE_ENCODER) { if(code == LV_EVENT_CLICKED && indev_type == LV_INDEV_TYPE_ENCODER) {
lv_keyboard_set_textarea(kb, ta); lv_keyboard_set_textarea(kb, ta);
lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
lv_group_focus_obj(kb); lv_group_focus_obj(kb);
lv_group_set_editing(lv_obj_get_group(kb), kb); lv_group_set_editing(lv_obj_get_group(kb), kb);
lv_obj_set_height(tv, LV_VER_RES / 2); lv_obj_set_height(tv, LV_VER_RES / 2);

View File

@@ -17,7 +17,7 @@ class KeyboardEncoder:
cur_drv = cur_drv.get_next() cur_drv = cur_drv.get_next()
self.tv = lv.tabview(lv.scr_act(), lv.DIR.TOP, lv.DPI_DEF // 3) self.tv = lv.tabview(lv.screen_active(), lv.DIR.TOP, lv.DPI_DEF // 3)
self.t1 = self.tv.add_tab("Selectors") self.t1 = self.tv.add_tab("Selectors")
self.t2 = self.tv.add_tab("Text input") self.t2 = self.tv.add_tab("Text input")
@@ -93,7 +93,7 @@ class KeyboardEncoder:
ta2.set_one_line(True) ta2.set_one_line(True)
ta2.set_placeholder_text("Type something") ta2.set_placeholder_text("Type something")
self.kb = lv.keyboard(lv.scr_act()) self.kb = lv.keyboard(lv.screen_active())
self.kb.add_flag(lv.obj.FLAG.HIDDEN) self.kb.add_flag(lv.obj.FLAG.HIDDEN)
ta1.add_event(self.ta_event_cb, lv.EVENT.ALL, None) ta1.add_event(self.ta_event_cb, lv.EVENT.ALL, None)
@@ -141,7 +141,7 @@ class KeyboardEncoder:
if code == lv.EVENT.CLICKED and indev_type == lv.INDEV_TYPE.ENCODER: if code == lv.EVENT.CLICKED and indev_type == lv.INDEV_TYPE.ENCODER:
self.kb.set_textarea(ta) self.kb.set_textarea(ta)
self.kb.clear_flag(lv.obj.FLAG.HIDDEN) self.kb.remove_flag(lv.obj.FLAG.HIDDEN)
self.kb.group_focus_obj() self.kb.group_focus_obj()
self.kb.get_group().set_editing() self.kb.get_group().set_editing()
self.tv.set_height(lv.pct(50)) self.tv.set_height(lv.pct(50))

View File

@@ -158,11 +158,11 @@ void lv_demo_multilang(void)
emoji_font = lv_imgfont_create(20, get_imgfont_path, NULL); emoji_font = lv_imgfont_create(20, get_imgfont_path, NULL);
font_multilang_small.fallback = emoji_font; font_multilang_small.fallback = emoji_font;
lv_obj_set_flex_flow(lv_scr_act(), LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_COLUMN);
lv_obj_set_style_pad_row(lv_scr_act(), 0, 0); lv_obj_set_style_pad_row(lv_screen_active(), 0, 0);
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0xececec), 0); lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0xececec), 0);
lv_obj_set_style_bg_grad_color(lv_scr_act(), lv_color_hex(0xf9f9f9), 0); lv_obj_set_style_bg_grad_color(lv_screen_active(), lv_color_hex(0xf9f9f9), 0);
lv_obj_set_style_bg_grad_dir(lv_scr_act(), LV_GRAD_DIR_HOR, 0); lv_obj_set_style_bg_grad_dir(lv_screen_active(), LV_GRAD_DIR_HOR, 0);
static const lv_coord_t grid_cols[] = {LV_GRID_CONTENT, 4, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST}; static const lv_coord_t grid_cols[] = {LV_GRID_CONTENT, 4, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
static const lv_coord_t grid_rows[] = {LV_GRID_CONTENT, -10, LV_GRID_FR(1), LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST}; static const lv_coord_t grid_rows[] = {LV_GRID_CONTENT, -10, LV_GRID_FR(1), LV_GRID_CONTENT, LV_GRID_TEMPLATE_LAST};
@@ -224,7 +224,7 @@ void lv_demo_multilang(void)
uint32_t i; uint32_t i;
for(i = 0; card_info[i].image; i++) { for(i = 0; card_info[i].image; i++) {
card_create(lv_scr_act(), &card_info[i]); card_create(lv_screen_active(), &card_info[i]);
} }
lv_timer_create(inactive_timer_cb, 1000, NULL); lv_timer_create(inactive_timer_cb, 1000, NULL);
@@ -239,12 +239,12 @@ static void inactive_timer_cb(lv_timer_t * t)
LV_UNUSED(t); LV_UNUSED(t);
static bool scrolled = false; static bool scrolled = false;
lv_obj_t * cont = lv_obj_get_child(lv_scr_act(), 0); lv_obj_t * cont = lv_obj_get_child(lv_screen_active(), 0);
if(cont == NULL) return; if(cont == NULL) return;
if(scrolled) { if(scrolled) {
lv_obj_scroll_by(cont, -100, 0, LV_ANIM_ON); lv_obj_scroll_by(cont, -100, 0, LV_ANIM_ON);
lv_obj_clear_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
scrolled = false; scrolled = false;
return; return;
} }
@@ -275,14 +275,14 @@ static void scroll_event_cb(lv_event_t * e)
if(scroll_x < w / 2) { if(scroll_x < w / 2) {
lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_NONE); lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_NONE);
lv_obj_clear_flag(cont, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(cont, LV_OBJ_FLAG_CLICKABLE);
lv_indev_wait_release(indev); lv_indev_wait_release(indev);
lv_obj_scroll_to_view(lv_obj_get_child(cont, 0), LV_ANIM_ON); lv_obj_scroll_to_view(lv_obj_get_child(cont, 0), LV_ANIM_ON);
lv_anim_t a; lv_anim_t a;
lv_anim_init(&a); lv_anim_init(&a);
lv_anim_set_exec_cb(&a, shrink_anim_cb); lv_anim_set_exec_cb(&a, shrink_anim_cb);
lv_anim_set_ready_cb(&a, lv_obj_del_anim_ready_cb); lv_anim_set_ready_cb(&a, lv_obj_delete_anim_ready_cb);
lv_anim_set_values(&a, 255, 0); lv_anim_set_values(&a, 255, 0);
lv_anim_set_time(&a, 400); lv_anim_set_time(&a, 400);
lv_anim_set_var(&a, cont); lv_anim_set_var(&a, cont);
@@ -296,14 +296,14 @@ static void card_create(lv_obj_t * parent, card_info_t * info)
lv_obj_add_style(cont, &style_card_cont, 0); lv_obj_add_style(cont, &style_card_cont, 0);
lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_CENTER); lv_obj_set_scroll_snap_x(cont, LV_SCROLL_SNAP_CENTER);
lv_obj_add_event(cont, scroll_event_cb, LV_EVENT_RELEASED, NULL); lv_obj_add_event(cont, scroll_event_cb, LV_EVENT_RELEASED, NULL);
lv_obj_clear_flag(cont, LV_OBJ_FLAG_SCROLL_ELASTIC); lv_obj_remove_flag(cont, LV_OBJ_FLAG_SCROLL_ELASTIC);
lv_obj_set_scrollbar_mode(cont, LV_SCROLLBAR_MODE_OFF); lv_obj_set_scrollbar_mode(cont, LV_SCROLLBAR_MODE_OFF);
lv_obj_t * remove = lv_obj_create(cont); lv_obj_t * remove = lv_obj_create(cont);
lv_obj_add_style(remove, &style_hide, 0); lv_obj_add_style(remove, &style_hide, 0);
lv_obj_clear_flag(remove, LV_OBJ_FLAG_SNAPPABLE); lv_obj_remove_flag(remove, LV_OBJ_FLAG_SNAPPABLE);
lv_obj_add_flag(remove, LV_OBJ_FLAG_FLOATING); lv_obj_add_flag(remove, LV_OBJ_FLAG_FLOATING);
lv_obj_clear_flag(remove, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(remove, LV_OBJ_FLAG_CLICKABLE);
lv_obj_t * hide_label = lv_label_create(remove); lv_obj_t * hide_label = lv_label_create(remove);
lv_label_set_text(hide_label, "Hide"); lv_label_set_text(hide_label, "Hide");
@@ -314,7 +314,7 @@ static void card_create(lv_obj_t * parent, card_info_t * info)
lv_obj_t * card = lv_obj_create(cont); lv_obj_t * card = lv_obj_create(cont);
lv_obj_add_style(card, &style_card, 0); lv_obj_add_style(card, &style_card, 0);
lv_obj_clear_flag(card, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_CHAIN_HOR); lv_obj_remove_flag(card, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
lv_obj_t * avatar = lv_image_create(card); lv_obj_t * avatar = lv_image_create(card);
lv_image_set_src(avatar, info->image); lv_image_set_src(avatar, info->image);
@@ -333,7 +333,7 @@ static void card_create(lv_obj_t * parent, card_info_t * info)
lv_obj_set_style_text_line_space(description, -3, 0); lv_obj_set_style_text_line_space(description, -3, 0);
lv_obj_t * btn = lv_button_create(card); lv_obj_t * btn = lv_button_create(card);
lv_obj_clear_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR); lv_obj_remove_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
lv_obj_set_grid_cell(btn, LV_GRID_ALIGN_START, 2, 1, LV_GRID_ALIGN_CENTER, 3, 1); 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); lv_obj_add_style(btn, &style_btn, 0);

View File

@@ -113,10 +113,10 @@ static const uint32_t time_list[] = {
void lv_demo_music(void) void lv_demo_music(void)
{ {
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x343247), 0); lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x343247), 0);
list = _lv_demo_music_list_create(lv_scr_act()); list = _lv_demo_music_list_create(lv_screen_active());
ctrl = _lv_demo_music_main_create(lv_scr_act()); ctrl = _lv_demo_music_main_create(lv_screen_active());
#if LV_DEMO_MUSIC_AUTO_PLAY #if LV_DEMO_MUSIC_AUTO_PLAY
lv_timer_create(auto_step_cb, 1000, NULL); lv_timer_create(auto_step_cb, 1000, NULL);
@@ -241,7 +241,7 @@ static void auto_step_cb(lv_timer_t * t)
break; break;
} }
case 41: case 41:
lv_scr_load(lv_obj_create(NULL)); lv_screen_load(lv_obj_create(NULL));
_lv_demo_music_pause(); _lv_demo_music_pause();
break; break;
} }

View File

@@ -160,7 +160,7 @@ void _lv_demo_music_list_button_check(uint32_t track_id, bool state)
lv_obj_scroll_to_view(btn, LV_ANIM_ON); lv_obj_scroll_to_view(btn, LV_ANIM_ON);
} }
else { else {
lv_obj_clear_state(btn, LV_STATE_CHECKED); lv_obj_remove_state(btn, LV_STATE_CHECKED);
lv_image_set_src(icon, &img_lv_demo_music_btn_list_play); lv_image_set_src(icon, &img_lv_demo_music_btn_list_play);
} }
} }

View File

@@ -288,11 +288,11 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
/* Create an intro from a logo + label */ /* Create an intro from a logo + label */
LV_IMAGE_DECLARE(img_lv_demo_music_logo); LV_IMAGE_DECLARE(img_lv_demo_music_logo);
lv_obj_t * logo = lv_image_create(lv_scr_act()); lv_obj_t * logo = lv_image_create(lv_screen_active());
lv_image_set_src(logo, &img_lv_demo_music_logo); lv_image_set_src(logo, &img_lv_demo_music_logo);
lv_obj_move_foreground(logo); lv_obj_move_foreground(logo);
lv_obj_t * title = lv_label_create(lv_scr_act()); lv_obj_t * title = lv_label_create(lv_screen_active());
lv_label_set_text(title, "LVGL Demo\nMusic player"); lv_label_set_text(title, "LVGL Demo\nMusic player");
lv_obj_set_style_text_align(title, LV_TEXT_ALIGN_CENTER, 0); lv_obj_set_style_text_align(title, LV_TEXT_ALIGN_CENTER, 0);
lv_obj_set_style_text_font(title, font_large, 0); lv_obj_set_style_text_font(title, font_large, 0);
@@ -306,7 +306,7 @@ lv_obj_t * _lv_demo_music_main_create(lv_obj_t * parent)
lv_anim_set_time(&a, 400); lv_anim_set_time(&a, 400);
lv_anim_set_delay(&a, INTRO_TIME + 800); lv_anim_set_delay(&a, INTRO_TIME + 800);
lv_anim_set_values(&a, LV_SCALE_NONE, 10); lv_anim_set_values(&a, LV_SCALE_NONE, 10);
lv_anim_set_ready_cb(&a, lv_obj_del_anim_ready_cb); lv_anim_set_ready_cb(&a, lv_obj_delete_anim_ready_cb);
lv_anim_start(&a); lv_anim_start(&a);
lv_obj_update_layout(main_cont); lv_obj_update_layout(main_cont);
@@ -371,11 +371,11 @@ void _lv_demo_music_pause(void)
playing = false; playing = false;
spectrum_i_pause = spectrum_i; spectrum_i_pause = spectrum_i;
spectrum_i = 0; spectrum_i = 0;
lv_anim_del(spectrum_obj, spectrum_anim_cb); lv_anim_delete(spectrum_obj, spectrum_anim_cb);
lv_obj_invalidate(spectrum_obj); lv_obj_invalidate(spectrum_obj);
lv_image_set_zoom(album_image_obj, LV_SCALE_NONE); lv_image_set_zoom(album_image_obj, LV_SCALE_NONE);
if(sec_counter_timer) lv_timer_pause(sec_counter_timer); if(sec_counter_timer) lv_timer_pause(sec_counter_timer);
lv_obj_clear_state(play_obj, LV_STATE_CHECKED); lv_obj_remove_state(play_obj, LV_STATE_CHECKED);
} }
/********************** /**********************
@@ -386,8 +386,8 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
{ {
/*A transparent container in which the player section will be scrolled*/ /*A transparent container in which the player section will be scrolled*/
main_cont = lv_obj_create(parent); main_cont = lv_obj_create(parent);
lv_obj_clear_flag(main_cont, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(main_cont, LV_OBJ_FLAG_CLICKABLE);
lv_obj_clear_flag(main_cont, LV_OBJ_FLAG_SCROLL_ELASTIC); lv_obj_remove_flag(main_cont, LV_OBJ_FLAG_SCROLL_ELASTIC);
lv_obj_remove_style_all(main_cont); /*Make it transparent*/ 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_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*/ lv_obj_set_scroll_snap_y(main_cont, LV_SCROLL_SNAP_CENTER); /*Snap the children to the center*/
@@ -400,7 +400,7 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
#else #else
lv_obj_set_size(player, LV_HOR_RES, LV_VER_RES + LV_DEMO_MUSIC_HANDLE_SIZE * 2); lv_obj_set_size(player, LV_HOR_RES, LV_VER_RES + LV_DEMO_MUSIC_HANDLE_SIZE * 2);
#endif #endif
lv_obj_clear_flag(player, LV_OBJ_FLAG_SNAPPABLE); lv_obj_remove_flag(player, LV_OBJ_FLAG_SNAPPABLE);
lv_obj_set_style_bg_color(player, lv_color_hex(0xffffff), 0); lv_obj_set_style_bg_color(player, lv_color_hex(0xffffff), 0);
lv_obj_set_style_border_width(player, 0, 0); lv_obj_set_style_border_width(player, 0, 0);
@@ -411,16 +411,16 @@ static lv_obj_t * create_cont(lv_obj_t * parent)
* It is used only to snap it to center.*/ * It is used only to snap it to center.*/
lv_obj_t * placeholder1 = lv_obj_create(main_cont); lv_obj_t * placeholder1 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder1); lv_obj_remove_style_all(placeholder1);
lv_obj_clear_flag(placeholder1, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(placeholder1, LV_OBJ_FLAG_CLICKABLE);
lv_obj_t * placeholder2 = lv_obj_create(main_cont); lv_obj_t * placeholder2 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder2); lv_obj_remove_style_all(placeholder2);
lv_obj_clear_flag(placeholder2, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(placeholder2, LV_OBJ_FLAG_CLICKABLE);
#if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND #if LV_DEMO_MUSIC_SQUARE || LV_DEMO_MUSIC_ROUND
lv_obj_t * placeholder3 = lv_obj_create(main_cont); lv_obj_t * placeholder3 = lv_obj_create(main_cont);
lv_obj_remove_style_all(placeholder3); lv_obj_remove_style_all(placeholder3);
lv_obj_clear_flag(placeholder3, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(placeholder3, LV_OBJ_FLAG_CLICKABLE);
lv_obj_set_size(placeholder1, lv_pct(100), LV_VER_RES); lv_obj_set_size(placeholder1, lv_pct(100), LV_VER_RES);
lv_obj_set_y(placeholder1, 0); lv_obj_set_y(placeholder1, 0);
@@ -545,7 +545,7 @@ static lv_obj_t * create_spectrum_obj(lv_obj_t * parent)
#else #else
lv_obj_set_height(obj, 250); lv_obj_set_height(obj, 250);
#endif #endif
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE);
lv_obj_add_event(obj, spectrum_draw_event_cb, LV_EVENT_ALL, NULL); lv_obj_add_event(obj, spectrum_draw_event_cb, LV_EVENT_ALL, NULL);
lv_obj_refresh_ext_draw_size(obj); lv_obj_refresh_ext_draw_size(obj);
album_image_obj = album_image_create(obj); album_image_obj = album_image_create(obj);
@@ -714,7 +714,7 @@ static void track_load(uint32_t id)
} }
#endif #endif
lv_anim_set_exec_cb(&a, _obj_set_x_anim_cb); lv_anim_set_exec_cb(&a, _obj_set_x_anim_cb);
lv_anim_set_ready_cb(&a, lv_obj_del_anim_ready_cb); lv_anim_set_ready_cb(&a, lv_obj_delete_anim_ready_cb);
lv_anim_start(&a); lv_anim_start(&a);
lv_anim_set_path_cb(&a, lv_anim_path_linear); lv_anim_set_path_cb(&a, lv_anim_path_linear);
@@ -766,7 +766,7 @@ static void del_counter_timer_cb(lv_event_t * e)
{ {
lv_event_code_t code = lv_event_get_code(e); lv_event_code_t code = lv_event_get_code(e);
if(code == LV_EVENT_DELETE && sec_counter_timer) { if(code == LV_EVENT_DELETE && sec_counter_timer) {
lv_timer_del(sec_counter_timer); lv_timer_delete(sec_counter_timer);
sec_counter_timer = NULL; sec_counter_timer = NULL;
} }
} }
@@ -891,9 +891,9 @@ static void spectrum_draw_event_cb(lv_event_t * e)
} }
} }
else if(code == LV_EVENT_DELETE) { else if(code == LV_EVENT_DELETE) {
lv_anim_del(NULL, start_anim_cb); lv_anim_delete(NULL, start_anim_cb);
lv_anim_del(NULL, spectrum_anim_cb); lv_anim_delete(NULL, spectrum_anim_cb);
if(start_anim && stop_start_anim_timer) lv_timer_del(stop_start_anim_timer); if(start_anim && stop_start_anim_timer) lv_timer_delete(stop_start_anim_timer);
} }
} }
@@ -963,7 +963,7 @@ static lv_obj_t * album_image_create(lv_obj_t * parent)
lv_image_set_antialias(img, false); lv_image_set_antialias(img, false);
lv_obj_align(img, LV_ALIGN_CENTER, 0, 0); lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
lv_obj_add_event(img, album_gesture_event_cb, LV_EVENT_GESTURE, NULL); lv_obj_add_event(img, album_gesture_event_cb, LV_EVENT_GESTURE, NULL);
lv_obj_clear_flag(img, LV_OBJ_FLAG_GESTURE_BUBBLE); lv_obj_remove_flag(img, LV_OBJ_FLAG_GESTURE_BUBBLE);
lv_obj_add_flag(img, LV_OBJ_FLAG_CLICKABLE); lv_obj_add_flag(img, LV_OBJ_FLAG_CLICKABLE);
return img; return img;

View File

@@ -37,7 +37,7 @@ static lv_obj_t * list;
**********************/ **********************/
void lv_demo_scroll(void) void lv_demo_scroll(void)
{ {
lv_obj_t * panel = lv_obj_create(lv_scr_act()); lv_obj_t * panel = lv_obj_create(lv_screen_active());
lv_obj_set_style_shadow_width(panel, 16, 0); lv_obj_set_style_shadow_width(panel, 16, 0);
lv_obj_set_style_shadow_ofs_y(panel, 8, 0); lv_obj_set_style_shadow_ofs_y(panel, 8, 0);
lv_obj_set_style_shadow_ofs_x(panel, 4, 0); lv_obj_set_style_shadow_ofs_x(panel, 4, 0);
@@ -94,8 +94,8 @@ static lv_obj_t * switch_create(lv_obj_t * parent, const char * title, lv_obj_fl
lv_obj_add_flag(list, flag); lv_obj_add_flag(list, flag);
} }
else { else {
lv_obj_clear_state(sw, LV_STATE_CHECKED); lv_obj_remove_state(sw, LV_STATE_CHECKED);
lv_obj_clear_flag(list, flag); lv_obj_remove_flag(list, flag);
} }
return cont; return cont;
@@ -107,7 +107,7 @@ static void generic_swicth_event_cb(lv_event_t * e)
lv_obj_flag_t flag = (lv_obj_flag_t)((lv_uintptr_t)lv_event_get_user_data(e)); lv_obj_flag_t flag = (lv_obj_flag_t)((lv_uintptr_t)lv_event_get_user_data(e));
if(lv_obj_has_state(sw, LV_STATE_CHECKED)) lv_obj_add_flag(list, flag); if(lv_obj_has_state(sw, LV_STATE_CHECKED)) lv_obj_add_flag(list, flag);
else lv_obj_clear_flag(list, flag); else lv_obj_remove_flag(list, flag);
} }
#endif #endif

View File

@@ -20,8 +20,8 @@
/********************** /**********************
* STATIC PROTOTYPES * STATIC PROTOTYPES
**********************/ **********************/
static void auto_del(lv_obj_t * obj, uint32_t delay); static void auto_delete(lv_obj_t * obj, uint32_t delay);
static void msgbox_del(lv_timer_t * tmr); static void msgbox_delete(lv_timer_t * tmr);
static void set_y_anim(void * obj, int32_t v); static void set_y_anim(void * obj, int32_t v);
static void set_width_anim(void * obj, int32_t v); static void set_width_anim(void * obj, int32_t v);
static void arc_set_end_angle_anim(void * obj, int32_t v); static void arc_set_end_angle_anim(void * obj, int32_t v);
@@ -84,7 +84,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
break; break;
case 0: case 0:
/* Holder for all object types */ /* Holder for all object types */
main_page = lv_obj_create(lv_scr_act()); main_page = lv_obj_create(lv_screen_active());
lv_obj_set_size(main_page, LV_HOR_RES / 2, LV_VER_RES); lv_obj_set_size(main_page, LV_HOR_RES / 2, LV_VER_RES);
lv_obj_set_flex_flow(main_page, LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_flow(main_page, LV_FLEX_FLOW_COLUMN);
@@ -96,7 +96,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
break; break;
case 1: { case 1: {
obj = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, 50); obj = lv_tabview_create(lv_screen_active(), LV_DIR_TOP, 50);
lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2); lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0); lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
lv_obj_t * t = lv_tabview_add_tab(obj, "First"); lv_obj_t * t = lv_tabview_add_tab(obj, "First");
@@ -108,7 +108,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
t = lv_tabview_add_tab(obj, LV_SYMBOL_CLOSE); t = lv_tabview_add_tab(obj, LV_SYMBOL_CLOSE);
lv_tabview_set_act(obj, 1, LV_ANIM_ON); lv_tabview_set_act(obj, 1, LV_ANIM_ON);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 30); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 30);
} }
break; break;
@@ -130,14 +130,14 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_anim_start(&a); lv_anim_start(&a);
/*Delete the object a few sec later*/ /*Delete the object a few sec later*/
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 10); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 10);
obj = lv_label_create(obj); obj = lv_label_create(obj);
lv_label_set_text_fmt(obj, "Formatted:\n%d %s", 12, "Volt"); lv_label_set_text_fmt(obj, "Formatted:\n%d %s", 12, "Volt");
break; break;
case 3: case 3:
ta = lv_textarea_create(lv_scr_act()); ta = lv_textarea_create(lv_screen_active());
lv_obj_align_to(ta, main_page, LV_ALIGN_OUT_RIGHT_TOP, 10, 10); lv_obj_align_to(ta, main_page, LV_ALIGN_OUT_RIGHT_TOP, 10, 10);
lv_obj_set_size(ta, LV_HOR_RES / 3, LV_VER_RES / 4); lv_obj_set_size(ta, LV_HOR_RES / 3, LV_VER_RES / 4);
lv_textarea_set_placeholder_text(ta, "The placeholder"); lv_textarea_set_placeholder_text(ta, "The placeholder");
@@ -147,7 +147,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
obj = lv_button_create(main_page); obj = lv_button_create(main_page);
lv_obj_set_size(obj, 100, 70); lv_obj_set_size(obj, 100, 70);
lv_obj_set_style_bg_image_src(obj, LV_SYMBOL_DUMMY"Text from\nstyle", 0); lv_obj_set_style_bg_image_src(obj, LV_SYMBOL_DUMMY"Text from\nstyle", 0);
lv_obj_del_async(obj); /*Delete on next call of `lv_task_handler` (so not now)*/ lv_obj_delete_async(obj); /*Delete on next call of `lv_task_handler` (so not now)*/
break; break;
case 5: case 5:
@@ -163,29 +163,29 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_bar_set_value(obj, 1800, LV_ANIM_ON); lv_bar_set_value(obj, 1800, LV_ANIM_ON);
lv_bar_set_start_value(obj, -500, LV_ANIM_ON); lv_bar_set_start_value(obj, -500, LV_ANIM_ON);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 70); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 70);
obj = lv_slider_create(main_page); obj = lv_slider_create(main_page);
lv_obj_set_style_anim_time(obj, LV_DEMO_STRESS_TIME_STEP * 8, 0); lv_obj_set_style_anim_time(obj, LV_DEMO_STRESS_TIME_STEP * 8, 0);
lv_slider_set_value(obj, 5000, LV_ANIM_ON); /*Animate to out of range value*/ lv_slider_set_value(obj, 5000, LV_ANIM_ON); /*Animate to out of range value*/
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 22); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 22);
obj = lv_switch_create(main_page); obj = lv_switch_create(main_page);
obj = lv_switch_create(main_page); obj = lv_switch_create(main_page);
lv_obj_add_state(obj, LV_STATE_CHECKED); lv_obj_add_state(obj, LV_STATE_CHECKED);
auto_del(obj, 730); auto_delete(obj, 730);
break; break;
case 8: case 8:
obj = lv_win_create(lv_scr_act()); obj = lv_win_create(lv_screen_active());
lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2); lv_obj_set_size(obj, LV_HOR_RES / 2, LV_VER_RES / 2);
lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0); lv_obj_align(obj, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
lv_win_add_title(obj, "Window title"); lv_win_add_title(obj, "Window title");
lv_win_add_button(obj, LV_SYMBOL_CLOSE, 40); lv_win_add_button(obj, LV_SYMBOL_CLOSE, 40);
lv_win_add_button(obj, LV_SYMBOL_DOWN, 40); lv_win_add_button(obj, LV_SYMBOL_DOWN, 40);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 5); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 5);
obj = lv_calendar_create(lv_win_get_content(obj)); obj = lv_calendar_create(lv_win_get_content(obj));
break; break;
@@ -194,7 +194,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
"Here area some dummy sentences to be sure the text area will be really scrollable."); "Here area some dummy sentences to be sure the text area will be really scrollable.");
break; break;
case 10: case 10:
obj = lv_keyboard_create(lv_scr_act()); obj = lv_keyboard_create(lv_screen_active());
lv_keyboard_set_mode(obj, LV_KEYBOARD_MODE_TEXT_UPPER); lv_keyboard_set_mode(obj, LV_KEYBOARD_MODE_TEXT_UPPER);
lv_anim_init(&a); lv_anim_init(&a);
lv_anim_set_var(&a, obj); lv_anim_set_var(&a, obj);
@@ -203,7 +203,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_anim_set_exec_cb(&a, set_y_anim); lv_anim_set_exec_cb(&a, set_y_anim);
lv_anim_start(&a); lv_anim_start(&a);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 18); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 18);
break; break;
case 11: case 11:
@@ -211,14 +211,14 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_dropdown_set_options(obj, "Zero\nOne\nTwo\nThree\nFour\nFive\nSix\nSeven\nEight"); lv_dropdown_set_options(obj, "Zero\nOne\nTwo\nThree\nFour\nFive\nSix\nSeven\nEight");
lv_dropdown_open(obj); lv_dropdown_open(obj);
lv_dropdown_set_selected(obj, 2); lv_dropdown_set_selected(obj, 2);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 11); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 3 + 11);
break; break;
case 12: case 12:
obj = lv_roller_create(main_page); obj = lv_roller_create(main_page);
lv_roller_set_options(obj, "Zero\nOne\nTwo\nThree\nFour\nFive\nSix\nSeven\nEight", LV_ROLLER_MODE_INFINITE); lv_roller_set_options(obj, "Zero\nOne\nTwo\nThree\nFour\nFive\nSix\nSeven\nEight", LV_ROLLER_MODE_INFINITE);
lv_roller_set_selected(obj, 2, LV_ANIM_ON); lv_roller_set_selected(obj, 2, LV_ANIM_ON);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 20 + 22); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 20 + 22);
break; break;
case 13: case 13:
@@ -237,13 +237,13 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_scale_set_mode(obj, LV_SCALE_MODE_ROUND_INNER); lv_scale_set_mode(obj, LV_SCALE_MODE_ROUND_INNER);
lv_obj_scroll_to_view(obj, LV_ANIM_ON); lv_obj_scroll_to_view(obj, LV_ANIM_ON);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 6 + 30); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 6 + 30);
break; break;
case 14: case 14:
obj = lv_msgbox_create(NULL, "Title", "Some text on the message box with average length", mbox_buttons, true); obj = lv_msgbox_create(NULL, "Title", "Some text on the message box with average length", mbox_buttons, true);
lv_timer_t * msgbox_tmr = lv_timer_create(msgbox_del, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj); lv_timer_t * msgbox_tmr = lv_timer_create(msgbox_delete, LV_DEMO_STRESS_TIME_STEP * 5 + 30, obj);
lv_timer_set_repeat_count(msgbox_tmr, 1); lv_timer_set_repeat_count(msgbox_tmr, 1);
lv_obj_align(obj, LV_ALIGN_RIGHT_MID, -10, 0); lv_obj_align(obj, LV_ALIGN_RIGHT_MID, -10, 0);
break; break;
@@ -253,9 +253,9 @@ static void obj_test_task_cb(lv_timer_t * tmr)
break; break;
case 16: { case 16: {
lv_obj_t * tv = lv_tileview_create(lv_scr_act()); lv_obj_t * tv = lv_tileview_create(lv_screen_active());
lv_obj_set_size(tv, 200, 200); lv_obj_set_size(tv, 200, 200);
auto_del(tv, LV_DEMO_STRESS_TIME_STEP * 4 + 5); auto_delete(tv, LV_DEMO_STRESS_TIME_STEP * 4 + 5);
obj = lv_tileview_add_tile(tv, 0, 0, LV_DIR_ALL); obj = lv_tileview_add_tile(tv, 0, 0, LV_DIR_ALL);
obj = lv_label_create(obj); obj = lv_label_create(obj);
@@ -278,18 +278,18 @@ static void obj_test_task_cb(lv_timer_t * tmr)
{ {
lv_obj_t * b; lv_obj_t * b;
b = lv_list_add_button(obj, LV_SYMBOL_OK, "1. Some very long text to scroll"); b = lv_list_add_button(obj, LV_SYMBOL_OK, "1. Some very long text to scroll");
auto_del(b, 10); auto_delete(b, 10);
lv_list_add_button(obj, LV_SYMBOL_OK, "2. Some very long text to scroll"); lv_list_add_button(obj, LV_SYMBOL_OK, "2. Some very long text to scroll");
lv_list_add_button(obj, LV_SYMBOL_OK, "3. Some very long text to scroll"); lv_list_add_button(obj, LV_SYMBOL_OK, "3. Some very long text to scroll");
b = lv_list_add_button(obj, LV_SYMBOL_OK, "4. Some very long text to scroll"); b = lv_list_add_button(obj, LV_SYMBOL_OK, "4. Some very long text to scroll");
auto_del(b, LV_DEMO_STRESS_TIME_STEP); auto_delete(b, LV_DEMO_STRESS_TIME_STEP);
b = lv_list_add_button(obj, LV_SYMBOL_OK, "5. Some very long text to scroll"); b = lv_list_add_button(obj, LV_SYMBOL_OK, "5. Some very long text to scroll");
auto_del(b, LV_DEMO_STRESS_TIME_STEP + 90); auto_delete(b, LV_DEMO_STRESS_TIME_STEP + 90);
b = lv_list_add_button(obj, LV_SYMBOL_OK, "6. Some very long text to scroll"); b = lv_list_add_button(obj, LV_SYMBOL_OK, "6. Some very long text to scroll");
auto_del(b, LV_DEMO_STRESS_TIME_STEP + 10); auto_delete(b, LV_DEMO_STRESS_TIME_STEP + 10);
lv_obj_scroll_to_view(lv_obj_get_child(obj, -1), LV_ANIM_ON); lv_obj_scroll_to_view(lv_obj_get_child(obj, -1), LV_ANIM_ON);
} }
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 15); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 5 + 15);
obj = lv_table_create(main_page); obj = lv_table_create(main_page);
lv_table_set_cell_value(obj, 0, 0, "0,0"); lv_table_set_cell_value(obj, 0, 0, "0,0");
@@ -347,7 +347,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_spinbox_set_step(obj, 1); lv_spinbox_set_step(obj, 1);
lv_spinbox_increment(obj); lv_spinbox_increment(obj);
lv_spinbox_increment(obj); lv_spinbox_increment(obj);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 15); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 15);
lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON); lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON);
@@ -368,7 +368,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
lv_chart_set_next_value(obj, s1, 48); lv_chart_set_next_value(obj, s1, 48);
lv_chart_set_next_value(obj, s1, 72); lv_chart_set_next_value(obj, s1, 72);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 3); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 3);
} }
lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON); lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON);
@@ -377,14 +377,14 @@ static void obj_test_task_cb(lv_timer_t * tmr)
case 24: case 24:
obj = lv_checkbox_create(main_page); obj = lv_checkbox_create(main_page);
lv_checkbox_set_text(obj, "An option to select"); lv_checkbox_set_text(obj, "An option to select");
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 20); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 2 + 20);
obj = lv_checkbox_create(main_page); obj = lv_checkbox_create(main_page);
lv_obj_add_state(obj, LV_STATE_CHECKED); lv_obj_add_state(obj, LV_STATE_CHECKED);
obj = lv_checkbox_create(main_page); obj = lv_checkbox_create(main_page);
lv_obj_add_state(obj, LV_STATE_CHECKED | LV_STATE_DISABLED); lv_obj_add_state(obj, LV_STATE_CHECKED | LV_STATE_DISABLED);
auto_del(obj, LV_DEMO_STRESS_TIME_STEP * 1 + 60); auto_delete(obj, LV_DEMO_STRESS_TIME_STEP * 1 + 60);
lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON); lv_obj_scroll_by(main_page, 0, 20, LV_ANIM_ON);
@@ -395,7 +395,7 @@ static void obj_test_task_cb(lv_timer_t * tmr)
{ {
uint16_t i; uint16_t i;
for(i = 0; i < 64; i++) { for(i = 0; i < 64; i++) {
lv_textarea_del_char_forward(ta); lv_textarea_delete_char_forward(ta);
} }
} }
break; break;
@@ -405,11 +405,11 @@ static void obj_test_task_cb(lv_timer_t * tmr)
break; break;
case 29: case 29:
lv_obj_clean(main_page); lv_obj_clean(main_page);
lv_obj_del(ta); lv_obj_delete(ta);
ta = NULL; ta = NULL;
break; break;
case 31: case 31:
lv_obj_clean(lv_scr_act()); lv_obj_clean(lv_screen_active());
main_page = NULL; main_page = NULL;
g_state = -2; g_state = -2;
break; break;
@@ -420,19 +420,19 @@ static void obj_test_task_cb(lv_timer_t * tmr)
g_state++; g_state++;
} }
static void auto_del(lv_obj_t * obj, uint32_t delay) static void auto_delete(lv_obj_t * obj, uint32_t delay)
{ {
lv_anim_t a; lv_anim_t a;
lv_anim_init(&a); lv_anim_init(&a);
lv_anim_set_var(&a, obj); lv_anim_set_var(&a, obj);
lv_anim_set_time(&a, 0); lv_anim_set_time(&a, 0);
lv_anim_set_delay(&a, delay); lv_anim_set_delay(&a, delay);
lv_anim_set_ready_cb(&a, lv_obj_del_anim_ready_cb); lv_anim_set_ready_cb(&a, lv_obj_delete_anim_ready_cb);
lv_anim_start(&a); lv_anim_start(&a);
} }
static void msgbox_del(lv_timer_t * tmr) static void msgbox_delete(lv_timer_t * tmr)
{ {
lv_msgbox_close(tmr->user_data); lv_msgbox_close(tmr->user_data);
} }

View File

@@ -88,7 +88,7 @@ void lv_demo_transform(void)
lv_obj_center(card_to_transform); lv_obj_center(card_to_transform);
lv_coord_t disp_w = lv_display_get_horizontal_resolution(NULL); lv_coord_t disp_w = lv_display_get_horizontal_resolution(NULL);
lv_obj_t * arc = lv_arc_create(lv_scr_act()); lv_obj_t * arc = lv_arc_create(lv_screen_active());
lv_obj_set_size(arc, disp_w - 20, disp_w - 20); lv_obj_set_size(arc, disp_w - 20, disp_w - 20);
lv_arc_set_range(arc, 0, 270); lv_arc_set_range(arc, 0, 270);
lv_arc_set_value(arc, 225); lv_arc_set_value(arc, 225);
@@ -96,7 +96,7 @@ void lv_demo_transform(void)
lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST); lv_obj_add_flag(arc, LV_OBJ_FLAG_ADV_HITTEST);
lv_obj_center(arc); lv_obj_center(arc);
lv_obj_t * slider = lv_slider_create(lv_scr_act()); lv_obj_t * slider = lv_slider_create(lv_screen_active());
lv_obj_set_width(slider, lv_pct(70)); lv_obj_set_width(slider, lv_pct(70));
lv_obj_align(slider, LV_ALIGN_BOTTOM_MID, 0, -20); lv_obj_align(slider, LV_ALIGN_BOTTOM_MID, 0, -20);
lv_obj_add_event(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_add_event(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
@@ -110,9 +110,9 @@ void lv_demo_transform(void)
static lv_obj_t * card_create(void) static lv_obj_t * card_create(void)
{ {
lv_obj_t * card = lv_obj_create(lv_scr_act()); lv_obj_t * card = lv_obj_create(lv_screen_active());
lv_obj_add_style(card, &style_card, 0); lv_obj_add_style(card, &style_card, 0);
lv_obj_clear_flag(card, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_CHAIN_HOR); lv_obj_remove_flag(card, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE | LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
lv_obj_t * avatar = lv_image_create(card); lv_obj_t * avatar = lv_image_create(card);
lv_image_set_src(avatar, &img_transform_avatar_15); lv_image_set_src(avatar, &img_transform_avatar_15);
@@ -125,7 +125,7 @@ static lv_obj_t * card_create(void)
lv_obj_set_style_text_font(name, &lv_font_montserrat_18, 0); lv_obj_set_style_text_font(name, &lv_font_montserrat_18, 0);
lv_obj_t * btn = lv_button_create(card); lv_obj_t * btn = lv_button_create(card);
lv_obj_clear_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR); lv_obj_remove_flag(card, LV_OBJ_FLAG_SCROLL_CHAIN_HOR);
lv_obj_set_grid_cell(btn, LV_GRID_ALIGN_START, 2, 1, LV_GRID_ALIGN_CENTER, 3, 1); 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); lv_obj_add_style(btn, &style_btn, 0);

View File

@@ -162,9 +162,9 @@ void lv_demo_widgets(void)
lv_style_set_border_width(&style_bullet, 0); lv_style_set_border_width(&style_bullet, 0);
lv_style_set_radius(&style_bullet, LV_RADIUS_CIRCLE); lv_style_set_radius(&style_bullet, LV_RADIUS_CIRCLE);
tv = lv_tabview_create(lv_scr_act(), LV_DIR_TOP, tab_h); tv = lv_tabview_create(lv_screen_active(), LV_DIR_TOP, tab_h);
lv_obj_set_style_text_font(lv_scr_act(), font_normal, 0); lv_obj_set_style_text_font(lv_screen_active(), font_normal, 0);
if(disp_size == DISP_LARGE) { if(disp_size == DISP_LARGE) {
lv_obj_t * tab_buttons = lv_tabview_get_tab_buttons(tv); lv_obj_t * tab_buttons = lv_tabview_get_tab_buttons(tv);
@@ -247,7 +247,7 @@ static void profile_create(lv_obj_t * parent)
lv_obj_center(label); lv_obj_center(label);
/*Create a keyboard*/ /*Create a keyboard*/
lv_obj_t * kb = lv_keyboard_create(lv_scr_act()); lv_obj_t * kb = lv_keyboard_create(lv_screen_active());
lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(kb, LV_OBJ_FLAG_HIDDEN);
/*Create the second panel*/ /*Create the second panel*/
@@ -657,7 +657,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0); 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_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb); lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
lv_anim_set_var(&a, arc); lv_anim_set_var(&a, arc);
@@ -672,7 +672,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0); 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_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_center(arc); lv_obj_center(arc);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb); lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
@@ -688,7 +688,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_opa(arc, 0, 0); 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_width(arc, 15, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_center(arc); lv_obj_center(arc);
lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb); lv_anim_set_exec_cb(&a, scale1_indic1_anim_cb);
@@ -710,7 +710,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 10, LV_PART_INDICATOR); 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_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_center(arc); lv_obj_center(arc);
arc = lv_arc_create(scale2); arc = lv_arc_create(scale2);
@@ -721,7 +721,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 20, LV_PART_INDICATOR); 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_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_RED), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_center(arc); lv_obj_center(arc);
arc = lv_arc_create(scale2); arc = lv_arc_create(scale2);
@@ -731,7 +731,7 @@ static void analytics_create(lv_obj_t * parent)
lv_obj_set_style_arc_width(arc, 30, LV_PART_INDICATOR); 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_rounded(arc, false, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR); lv_obj_set_style_arc_color(arc, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
lv_obj_center(arc); lv_obj_center(arc);
lv_timer_t * scale2_timer = lv_timer_create(scale2_timer_cb, 100, scale2); lv_timer_t * scale2_timer = lv_timer_create(scale2_timer_cb, 100, scale2);
@@ -999,7 +999,7 @@ static void color_changer_create(lv_obj_t * parent)
lv_obj_set_style_opa(c, LV_OPA_TRANSP, 0); lv_obj_set_style_opa(c, LV_OPA_TRANSP, 0);
lv_obj_set_size(c, 20, 20); lv_obj_set_size(c, 20, 20);
lv_obj_add_event(c, color_event_cb, LV_EVENT_ALL, &palette[i]); lv_obj_add_event(c, color_event_cb, LV_EVENT_ALL, &palette[i]);
lv_obj_clear_flag(c, LV_OBJ_FLAG_SCROLL_ON_FOCUS); lv_obj_remove_flag(c, LV_OBJ_FLAG_SCROLL_ON_FOCUS);
} }
lv_obj_t * btn = lv_button_create(parent); lv_obj_t * btn = lv_button_create(parent);
@@ -1216,7 +1216,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_set_style_max_height(kb, LV_HOR_RES * 2 / 3, 0);
lv_obj_update_layout(tv); /*Be sure the sizes are recalculated*/ 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_set_height(tv, LV_VER_RES - lv_obj_get_height(kb));
lv_obj_clear_flag(kb, LV_OBJ_FLAG_HIDDEN); lv_obj_remove_flag(kb, LV_OBJ_FLAG_HIDDEN);
lv_obj_scroll_to_view_recursive(ta, LV_ANIM_OFF); lv_obj_scroll_to_view_recursive(ta, LV_ANIM_OFF);
lv_indev_wait_release(lv_event_get_param(e)); lv_indev_wait_release(lv_event_get_param(e));
} }
@@ -1272,9 +1272,9 @@ static void calendar_event_cb(lv_event_t * e)
lv_snprintf(buf, sizeof(buf), "%02d.%02d.%d", d.day, d.month, d.year); lv_snprintf(buf, sizeof(buf), "%02d.%02d.%d", d.day, d.month, d.year);
lv_textarea_set_text(ta, buf); lv_textarea_set_text(ta, buf);
lv_obj_del(calendar); lv_obj_delete(calendar);
calendar = NULL; calendar = NULL;
lv_obj_clear_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(lv_layer_top(), LV_OBJ_FLAG_CLICKABLE);
lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_TRANSP, 0); lv_obj_set_style_bg_opa(lv_layer_top(), LV_OPA_TRANSP, 0);
} }
} }
@@ -1494,7 +1494,7 @@ static void scale2_event_cb(lv_event_t * e)
lv_event_code_t code = lv_event_get_code(e); lv_event_code_t code = lv_event_get_code(e);
if(code == LV_EVENT_DELETE) { if(code == LV_EVENT_DELETE) {
lv_timer_t * scale2_timer = lv_event_get_user_data(e); lv_timer_t * scale2_timer = lv_event_get_user_data(e);
if(scale2_timer) lv_timer_del(scale2_timer); if(scale2_timer) lv_timer_delete(scale2_timer);
} }
} }

View File

@@ -675,7 +675,7 @@ Fixes
`25ce6e3 <https://github.com/lvgl/lvgl/commit/25ce6e3ae9e144e2df5dad34475dda3542015f6a>`__ `25ce6e3 <https://github.com/lvgl/lvgl/commit/25ce6e3ae9e144e2df5dad34475dda3542015f6a>`__
- fix(indev): do not send keys to objects in disabled state - fix(indev): do not send keys to objects in disabled state
`b0a46c4 <https://github.com/lvgl/lvgl/commit/b0a46c4837c922cb1303ef768da3209e7efa45ae>`__ `b0a46c4 <https://github.com/lvgl/lvgl/commit/b0a46c4837c922cb1303ef768da3209e7efa45ae>`__
- fix(disp): make lv_scr_load work better with lv_scr_load_anim and - fix(disp): make lv_screen_load work better with lv_screen_load_anim and
auto_del = true auto_del = true
`52287fd <https://github.com/lvgl/lvgl/commit/52287fd64ad59c35794d1f4486b777f4eb686abc>`__ `52287fd <https://github.com/lvgl/lvgl/commit/52287fd64ad59c35794d1f4486b777f4eb686abc>`__
- fix(draw): create intermediate layer for blend modes too - fix(draw): create intermediate layer for blend modes too
@@ -1084,7 +1084,7 @@ Fixes
`2944 <https://github.com/littlevgl/lvgl/pull/2944>`__ `2944 <https://github.com/littlevgl/lvgl/pull/2944>`__
- fix(rlottie): fix variable name - fix(rlottie): fix variable name
`2971 <https://github.com/littlevgl/lvgl/pull/2971>`__ `2971 <https://github.com/littlevgl/lvgl/pull/2971>`__
- fix(group): in lv_group_del() remove group from indev (lvgl#2963) - fix(group): in lv_group_delete() remove group from indev (lvgl#2963)
`2964 <https://github.com/littlevgl/lvgl/pull/2964>`__ `2964 <https://github.com/littlevgl/lvgl/pull/2964>`__
- fix(obj): old parent's scroll is not updated in lv_obj_set_parent() - fix(obj): old parent's scroll is not updated in lv_obj_set_parent()
`2965 <https://github.com/littlevgl/lvgl/pull/2965>`__ `2965 <https://github.com/littlevgl/lvgl/pull/2965>`__
@@ -1623,7 +1623,7 @@ New Features
- feat(event) add LV_SCREEN\_(UN)LOAD_START - feat(event) add LV_SCREEN\_(UN)LOAD_START
`7bae9e3 <https://github.com/lvgl/lvgl/commit/7bae9e3ddde9d6bdc06ae437f20a789cd330a556>`__ `7bae9e3 <https://github.com/lvgl/lvgl/commit/7bae9e3ddde9d6bdc06ae437f20a789cd330a556>`__
- feat(obj) add lv_obj_del_delayed() - feat(obj) add lv_obj_delete_delayed()
`c6a2e15 <https://github.com/lvgl/lvgl/commit/c6a2e15ec23c8e96f71bafa8e43ef67fc4a73d0a>`__ `c6a2e15 <https://github.com/lvgl/lvgl/commit/c6a2e15ec23c8e96f71bafa8e43ef67fc4a73d0a>`__
- feat(docs) add view on GitHub link - feat(docs) add view on GitHub link
@@ -1811,7 +1811,7 @@ Fixes
and lv_tick_inc() and lv_tick_inc()
`2675 <https://github.com/lvgl/lvgl/pull/2675>`__ `2675 <https://github.com/lvgl/lvgl/pull/2675>`__
- fix(anim_timeline) avoid calling lv_anim_del(NULL, NULL) - fix(anim_timeline) avoid calling lv_anim_delete(NULL, NULL)
`2628 <https://github.com/lvgl/lvgl/pull/2628>`__ `2628 <https://github.com/lvgl/lvgl/pull/2628>`__
- fix(kconfig) sync Kconfig with the latest lv_conf_template.h - fix(kconfig) sync Kconfig with the latest lv_conf_template.h
@@ -2245,7 +2245,7 @@ Fixes
`e41c507 <https://github.com/lvgl/lvgl/commit/e41c50780495c7d6ac6a2b0edf12fc98c9d85a6b>`__ `e41c507 <https://github.com/lvgl/lvgl/commit/e41c50780495c7d6ac6a2b0edf12fc98c9d85a6b>`__
- fix(disp) be sure the pending scr load animation is finished in - fix(disp) be sure the pending scr load animation is finished in
lv_scr_load_anim lv_screen_load_anim
`eb6ae52 <https://github.com/lvgl/lvgl/commit/eb6ae526432453e4b9dbc7a760cd65d164050548>`__ `eb6ae52 <https://github.com/lvgl/lvgl/commit/eb6ae526432453e4b9dbc7a760cd65d164050548>`__
- fix(color) fox color premult precision with 16-bit color depth - fix(color) fox color premult precision with 16-bit color depth
@@ -2999,7 +2999,7 @@ Others
- Fix typo in commands to build rlottie - Fix typo in commands to build rlottie
`2723 <https://github.com/lvgl/lvgl/pull/2723>`__ `2723 <https://github.com/lvgl/lvgl/pull/2723>`__
- del(.gitmodules): delete .gitmodules - delete(.gitmodules): delete .gitmodules
`2718 <https://github.com/lvgl/lvgl/pull/2718>`__ `2718 <https://github.com/lvgl/lvgl/pull/2718>`__
- lv_obj_draw_part_dsc_t.text_length added - lv_obj_draw_part_dsc_t.text_length added
@@ -3542,7 +3542,7 @@ v7.8.1 (15.12.2020)
Bugfixes Bugfixes
~~~~~~~~ ~~~~~~~~
- fix(lv_scr_load_anim) fix when multiple screens are loaded at the - fix(lv_screen_load_anim) fix when multiple screens are loaded at the
same time with delay same time with delay
- fix(page) fix LV_SCROLLBAR_MODE_DRAG - fix(page) fix LV_SCROLLBAR_MODE_DRAG
@@ -3822,7 +3822,7 @@ v7.2.0 (21.07.2020)
New features New features
~~~~~~~~~~~~ ~~~~~~~~~~~~
- Add screen transitions with lv_scr_load_anim() - Add screen transitions with lv_screen_load_anim()
- Add display background color, wallpaper and opacity. Shown when the - Add display background color, wallpaper and opacity. Shown when the
screen is transparent. Can be used with screen is transparent. Can be used with
lv_disp_set_bg_opa/color/image(). lv_disp_set_bg_opa/color/image().

View File

@@ -88,7 +88,7 @@ A simple example
btn.align(lv.ALIGN.CENTER, 0, 0) btn.align(lv.ALIGN.CENTER, 0, 0)
label = lv.label(btn) label = lv.label(btn)
label.set_text('Hello World!') label.set_text('Hello World!')
lv.scr_load(scr) lv.screen_load(scr)
How can I use it? How can I use it?

View File

@@ -59,7 +59,7 @@ LV_ARC
import PikaStdLib import PikaStdLib
mem = PikaStdLib.MemChecker() mem = PikaStdLib.MemChecker()
# Create an Arc # Create an Arc
arc = lv.arc(lv.scr_act()) arc = lv.arc(lv.screen_active())
arc.set_end_angle(200) arc.set_end_angle(200)
arc.set_size(150, 150) arc.set_size(150, 150)
arc.center() arc.center()
@@ -75,7 +75,7 @@ LV_BAR
import pika_lvgl as lv import pika_lvgl as lv
import PikaStdLib import PikaStdLib
mem = PikaStdLib.MemChecker() mem = PikaStdLib.MemChecker()
bar1 = lv.bar(lv.scr_act()) bar1 = lv.bar(lv.screen_active())
bar1.set_size(200, 20) bar1.set_size(200, 20)
bar1.center() bar1.center()
bar1.set_value(70, lv.ANIM.OFF) bar1.set_value(70, lv.ANIM.OFF)
@@ -97,9 +97,9 @@ LV_BTN
def event_cb_2(evt): def event_cb_2(evt):
print('in evt2') print('in evt2')
print('mem used now: %0.2f kB' % (mem.getNow())) print('mem used now: %0.2f kB' % (mem.getNow()))
btn1 = lv.btn(lv.scr_act()) btn1 = lv.btn(lv.screen_active())
btn1.align(lv.ALIGN.TOP_MID, 0, 10) btn1.align(lv.ALIGN.TOP_MID, 0, 10)
btn2 = lv.btn(lv.scr_act()) btn2 = lv.btn(lv.screen_active())
btn2.align(lv.ALIGN.TOP_MID, 0, 50) btn2.align(lv.ALIGN.TOP_MID, 0, 50)
btn1.add_event(event_cb_1, lv.EVENT.CLICKED, 0) btn1.add_event(event_cb_1, lv.EVENT.CLICKED, 0)
btn2.add_event(event_cb_2, lv.EVENT.CLICKED, 0) btn2.add_event(event_cb_2, lv.EVENT.CLICKED, 0)
@@ -115,18 +115,18 @@ LV_CHECKBOX
import pika_lvgl as lv import pika_lvgl as lv
import PikaStdLib import PikaStdLib
mem = PikaStdLib.MemChecker() mem = PikaStdLib.MemChecker()
cb = lv.checkbox(lv.scr_act()) cb = lv.checkbox(lv.screen_active())
cb.set_text("Apple") cb.set_text("Apple")
cb.align(lv.ALIGN.TOP_LEFT, 0 ,0) cb.align(lv.ALIGN.TOP_LEFT, 0 ,0)
cb = lv.checkbox(lv.scr_act()) cb = lv.checkbox(lv.screen_active())
cb.set_text("Banana") cb.set_text("Banana")
cb.add_state(lv.STATE.CHECKED) cb.add_state(lv.STATE.CHECKED)
cb.align(lv.ALIGN.TOP_LEFT, 0 ,30) cb.align(lv.ALIGN.TOP_LEFT, 0 ,30)
cb = lv.checkbox(lv.scr_act()) cb = lv.checkbox(lv.screen_active())
cb.set_text("Lemon") cb.set_text("Lemon")
cb.add_state(lv.STATE.DISABLED) cb.add_state(lv.STATE.DISABLED)
cb.align(lv.ALIGN.TOP_LEFT, 0 ,60) cb.align(lv.ALIGN.TOP_LEFT, 0 ,60)
cb = lv.checkbox(lv.scr_act()) cb = lv.checkbox(lv.screen_active())
cb.add_state(lv.STATE.CHECKED | lv.STATE.DISABLED) cb.add_state(lv.STATE.CHECKED | lv.STATE.DISABLED)
cb.set_text("Melon") cb.set_text("Melon")
cb.align(lv.ALIGN.TOP_LEFT, 0 ,90) cb.align(lv.ALIGN.TOP_LEFT, 0 ,90)

View File

@@ -74,7 +74,7 @@ Leveraging Zephyr Features
Shell Shell
~~~~~ ~~~~~
Zephyr includes a powerful shell implementation that can be enabled with the Kconfig symbols Zephyr includes a powerful shell implementation that can be enabled with the Kconfig symbols
:code:`CONFIG_SHELL` and :code:`CONFIG_LV_Z_SHELL` (the demos from above have it enabled by default). :code:`CONFIG_SHELL` and :code:`CONFIG_LV_Z_SHELL` (the demos from above have it enabled by default).
The shell offers enabling/disabling of LVGL monkeys: The shell offers enabling/disabling of LVGL monkeys:
@@ -130,7 +130,7 @@ Example with the encoder device to assign a :code:`lv_group_t`:
lv_obj_t *arc; lv_obj_t *arc;
lv_group_t *arc_group; lv_group_t *arc_group;
arc = lv_arc_create(lv_scr_act()); arc = lv_arc_create(lv_screen_active());
lv_obj_align(arc, LV_ALIGN_CENTER, 0, 0); lv_obj_align(arc, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_size(arc, 150, 150); lv_obj_set_size(arc, 150, 150);

View File

@@ -59,11 +59,11 @@ the *main.c* file. \* Create some frame buffer(s) as global variables:
.. code:: c .. code:: c
// Change the active screen's background color // Change the active screen's background color
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x003a57), LV_PART_MAIN); lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN);
lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); lv_obj_set_style_text_color(lv_screen_active(), lv_color_hex(0xffffff), LV_PART_MAIN);
/*Create a spinner*/ /*Create a spinner*/
lv_obj_t * spinner = lv_spinner_create(lv_scr_act(), 1000, 60); lv_obj_t * spinner = lv_spinner_create(lv_screen_active(), 1000, 60);
lv_obj_set_size(spinner, 64, 64); lv_obj_set_size(spinner, 64, 64);
lv_obj_align(spinner, LV_ALIGN_BOTTOM_MID, 0, 0); lv_obj_align(spinner, LV_ALIGN_BOTTOM_MID, 0, 0);
@@ -87,7 +87,7 @@ the *main.c* file. \* Create some frame buffer(s) as global variables:
void SysTick_Handler(void) void SysTick_Handler(void)
{ {
/* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE BEGIN SysTick_IRQn 0 */
HAL_SYSTICK_IRQHandler(); HAL_SYSTICK_IRQHandler();
lv_tick_inc(1); lv_tick_inc(1);
#ifdef USE_RTOS_SYSTICK #ifdef USE_RTOS_SYSTICK
@@ -183,11 +183,11 @@ variables:
.. code:: c .. code:: c
// Change the active screen's background color // Change the active screen's background color
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x003a57), LV_PART_MAIN); lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN);
lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); lv_obj_set_style_text_color(lv_screen_active(), lv_color_hex(0xffffff), LV_PART_MAIN);
/*Create a spinner*/ /*Create a spinner*/
lv_obj_t * spinner = lv_spinner_create(lv_scr_act(), 1000, 60); lv_obj_t * spinner = lv_spinner_create(lv_screen_active(), 1000, 60);
lv_obj_set_size(spinner, 64, 64); lv_obj_set_size(spinner, 64, 64);
lv_obj_align(spinner, LV_ALIGN_BOTTOM_MID, 0, 0); lv_obj_align(spinner, LV_ALIGN_BOTTOM_MID, 0, 0);

View File

@@ -85,7 +85,7 @@ A simple example
.. code:: python .. code:: python
lv.start() # start LVGL lv.start() # start LVGL
scr = lv.scr_act() # get default screen scr = lv.screen_active() # get default screen
btn = lv.btn(scr) # create button btn = lv.btn(scr) # create button
btn.center() btn.center()
label = lv.label(btn) # create a label in the button label = lv.label(btn) # create a label in the button

View File

@@ -16,8 +16,8 @@ Instead of porting LVGL to embedded hardware straight away, it's highly
recommended to get started in a simulator first. recommended to get started in a simulator first.
LVGL is ported to many IDEs to be sure you will find your favorite one. LVGL is ported to many IDEs to be sure you will find your favorite one.
Go to the :ref:`simulator` section to get ready-to-use projects that can be run Go to the :ref:`simulator` section to get ready-to-use projects that can be run
on your PC. This way you can save the time of porting for now and get some on your PC. This way you can save the time of porting for now and get some
experience with LVGL immediately. experience with LVGL immediately.
Add LVGL into your project Add LVGL into your project
@@ -126,8 +126,8 @@ other words, the parts of the children outside the parent are clipped.
A Screen is the "root" parent. You can have any number of screens. A Screen is the "root" parent. You can have any number of screens.
To get the current screen call :cpp:func:`lv_scr_act`, and to load a screen To get the current screen call :cpp:func:`lv_screen_active`, and to load a screen
use :cpp:expr:`lv_scr_load(scr1)`. use :cpp:expr:`lv_screen_load(scr1)`.
You can create a new object with ``lv_<type>_create(parent)``. It will You can create a new object with ``lv_<type>_create(parent)``. It will
return an :cpp:type:`lv_obj_t` ``*`` variable that can be used as a reference to the return an :cpp:type:`lv_obj_t` ``*`` variable that can be used as a reference to the
@@ -137,7 +137,7 @@ For example:
.. code:: c .. code:: c
lv_obj_t * slider1 = lv_slider_create(lv_scr_act()); lv_obj_t * slider1 = lv_slider_create(lv_screen_active());
To set some basic attributes ``lv_obj_set_<parameter_name>(obj, <value>)`` functions can be used. For To set some basic attributes ``lv_obj_set_<parameter_name>(obj, <value>)`` functions can be used. For
example: example:
@@ -239,7 +239,7 @@ To manually add or remove states use:
.. code:: c .. code:: c
lv_obj_add_state(obj, LV_STATE_...); lv_obj_add_state(obj, LV_STATE_...);
lv_obj_clear_state(obj, LV_STATE_...); lv_obj_remove_state(obj, LV_STATE_...);
Styles Styles
~~~~~~ ~~~~~~
@@ -342,9 +342,9 @@ Learn more about :ref:`micropython`.
# Create a Button and a Label # Create a Button and a Label
scr = lv.obj() scr = lv.obj()
btn = lv.btn(scr) btn = lv.btn(scr)
btn.align(lv.scr_act(), lv.ALIGN.CENTER, 0, 0) btn.align(lv.screen_active(), lv.ALIGN.CENTER, 0, 0)
label = lv.label(btn) label = lv.label(btn)
label.set_text("Button") label.set_text("Button")
# Load the screen # Load the screen
lv.scr_load(scr) lv.screen_load(scr)

View File

@@ -12,11 +12,11 @@ First, Download FreeType from `here <https://sourceforge.net/projects/freetype/f
There are two ways to use FreeType: ### For UNIX For UNIX systems, it is There are two ways to use FreeType: ### For UNIX For UNIX systems, it is
recommended to use the way of compiling and installing libraries. - recommended to use the way of compiling and installing libraries. -
Enter the FreeType source code directory. Enter the FreeType source code directory.
- ``make`` - ``make``
- ``sudo make install`` - ``sudo make install``
- Add include path: ``/usr/include/freetype2`` (for GCC: ``-I/usr/include/freetype2 -L/usr/local/lib``) - Add include path: ``/usr/include/freetype2`` (for GCC: ``-I/usr/include/freetype2 -L/usr/local/lib``)
- Link library: ``freetype`` (for GCC: ``-L/usr/local/lib -lfreetype``) - Link library: ``freetype`` (for GCC: ``-L/usr/local/lib -lfreetype``)
For Embedded Devices For Embedded Devices
@@ -58,11 +58,11 @@ Usage
Enable :c:macro:`LV_USE_FREETYPE` in ``lv_conf.h``. Enable :c:macro:`LV_USE_FREETYPE` in ``lv_conf.h``.
Cache configuration: Cache configuration:
- :c:macro:`LV_FREETYPE_CACHE_SIZE` Maximum memory(Bytes) used to cache font bitmap, outline, character maps, etc. - :c:macro:`LV_FREETYPE_CACHE_SIZE` Maximum memory(Bytes) used to cache font bitmap, outline, character maps, etc.
:Note: This value does not include the memory used by ``FT_Face`` and ``FT_Size`` objects :Note: This value does not include the memory used by ``FT_Face`` and ``FT_Size`` objects
- :c:macro:`LV_FREETYPE_CACHE_FT_FACES`: Maximum open number of ``FT_Face`` objects. - :c:macro:`LV_FREETYPE_CACHE_FT_FACES`: Maximum open number of ``FT_Face`` objects.
- :c:macro:`LV_FREETYPE_CACHE_FT_SIZES`: Maximum open number of ``FT_Size`` objects. - :c:macro:`LV_FREETYPE_CACHE_FT_SIZES`: Maximum open number of ``FT_Size`` objects.
When you are sure that all the used font sizes will not be greater than When you are sure that all the used font sizes will not be greater than
@@ -78,7 +78,7 @@ interface, you can enable :c:macro:`LV_FREETYPE_USE_LVGL_PORT` in
``lv_conf.h``, convenient for unified management. ``lv_conf.h``, convenient for unified management.
The font style supports *Italic* and **Bold** fonts processed by The font style supports *Italic* and **Bold** fonts processed by
software, and can be set with reference to the following values: software, and can be set with reference to the following values:
- :c:enumerator:`LV_FREETYPE_FONT_STYLE_NORMAL`: Default style. - :c:enumerator:`LV_FREETYPE_FONT_STYLE_NORMAL`: Default style.
- :c:enumerator:`LV_FREETYPE_FONT_STYLE_ITALIC`: Italic style. - :c:enumerator:`LV_FREETYPE_FONT_STYLE_ITALIC`: Italic style.
@@ -88,7 +88,7 @@ They can be combined.eg:
:c:expr:`LV_FREETYPE_FONT_STYLE_BOLD | LV_FREETYPE_FONT_STYLE_ITALIC`. :c:expr:`LV_FREETYPE_FONT_STYLE_BOLD | LV_FREETYPE_FONT_STYLE_ITALIC`.
Use the :c:expr:`lv_freetype_font_create()` function to create a font. To Use the :c:expr:`lv_freetype_font_create()` function to create a font. To
delete a font, use :c:expr:`lv_freetype_font_del()`. For more detailed usage, delete a font, use :c:expr:`lv_freetype_font_delete()`. For more detailed usage,
please refer to example code. please refer to example code.
Example Example

View File

@@ -56,7 +56,7 @@ Usage
Enable :c:macro:`LV_USE_FILE_EXPLORER` in ``lv_conf.h``. Enable :c:macro:`LV_USE_FILE_EXPLORER` in ``lv_conf.h``.
First use :c:expr:`lv_file_explorer_create(lv_scr_act())` to create a file First use :c:expr:`lv_file_explorer_create(lv_screen_active())` to create a file
explorer, The default size is the screen size. After that, you can explorer, The default size is the screen size. After that, you can
customize the style like widget. customize the style like widget.
@@ -80,7 +80,7 @@ customize the style like widget.
``lv_conf.h`` 中打开 :c:macro:`LV_USE_FILE_EXPLORER`\ 。 ``lv_conf.h`` 中打开 :c:macro:`LV_USE_FILE_EXPLORER`\ 。
首先,使用 :c:expr:`lv_file_explorer_create(lv_scr_act())` 首先,使用 :c:expr:`lv_file_explorer_create(lv_screen_active())`
函数创建一个文件浏览器,默认大小为屏幕大小,之后可以像组件那样自定义样式。 函数创建一个文件浏览器,默认大小为屏幕大小,之后可以像组件那样自定义样式。
.. raw:: html .. raw:: html

View File

@@ -48,7 +48,7 @@ Usage
Enable :c:macro:`LV_USE_IME_PINYIN` in ``lv_conf.h``. Enable :c:macro:`LV_USE_IME_PINYIN` in ``lv_conf.h``.
First use :c:expr:`lv_ime_pinyin_create(lv_scr_act())` to create a Pinyin First use :c:expr:`lv_ime_pinyin_create(lv_screen_active())` to create a Pinyin
input method plug-in, then use input method plug-in, then use
:c:expr:`lv_ime_pinyin_set_keyboard(pinyin_ime, kb)` to add the ``keyboard`` :c:expr:`lv_ime_pinyin_set_keyboard(pinyin_ime, kb)` to add the ``keyboard``
you created to the Pinyin input method plug-in. You can use you created to the Pinyin input method plug-in. You can use
@@ -85,7 +85,7 @@ the keyboard and dictionary at any time.
``lv_conf.h`` 中打开 :c:macro:`LV_USE_IME_PINYIN`\ 。 ``lv_conf.h`` 中打开 :c:macro:`LV_USE_IME_PINYIN`\ 。
首先,使用 :c:expr:`lv_ime_pinyin_create(lv_scr_act())` 首先,使用 :c:expr:`lv_ime_pinyin_create(lv_screen_active())`
函数创建一个拼音输入法插件, 然后使用 函数创建一个拼音输入法插件, 然后使用
:c:expr:`lv_ime_pinyin_set_keyboard(pinyin_ime, kb)` :c:expr:`lv_ime_pinyin_set_keyboard(pinyin_ime, kb)`
函数将您创建的键盘组件添加到插件中。 函数将您创建的键盘组件添加到插件中。
@@ -248,7 +248,7 @@ only need to call this function to set up and use your dictionary:
.. code:: c .. code:: c
lv_obj_t * pinyin_ime = lv_100ask_pinyin_ime_create(lv_scr_act()); lv_obj_t * pinyin_ime = lv_100ask_pinyin_ime_create(lv_screen_active());
lv_100ask_pinyin_ime_set_dict(pinyin_ime, your_pinyin_dict); lv_100ask_pinyin_ime_set_dict(pinyin_ime, your_pinyin_dict);
Modes Modes

View File

@@ -18,7 +18,7 @@ random operations at random times within this range. Call
If you want to pause the monkey, call If you want to pause the monkey, call
:c:expr:`lv_monkey_set_enable(monkey, false)`. To delete the monkey, call :c:expr:`lv_monkey_set_enable(monkey, false)`. To delete the monkey, call
:c:expr:`lv_monkey_del(monkey)`. :c:expr:`lv_monkey_delete(monkey)`.
Note that ``input_range`` has different meanings in different ``type``: Note that ``input_range`` has different meanings in different ``type``:

View File

@@ -123,7 +123,7 @@ pixels so *20* means *20 px/sec* speed.
Delete animations Delete animations
***************** *****************
You can delete an animation with :cpp:expr:`lv_anim_del(var, func)` if you You can delete an animation with :cpp:expr:`lv_anim_delete(var, func)` if you
provide the animated variable and its animator function. provide the animated variable and its animator function.
Timeline Timeline
@@ -159,7 +159,7 @@ duration of the entire animation timeline.
Call :cpp:expr:`lv_anim_timeline_get_reverse(at)` function to get whether to Call :cpp:expr:`lv_anim_timeline_get_reverse(at)` function to get whether to
reverse the animation timeline. reverse the animation timeline.
Call :cpp:expr:`lv_anim_timeline_del(at)` function to delete the animation Call :cpp:expr:`lv_anim_timeline_delete(at)` function to delete the animation
timeline. timeline.
.. image:: /misc/anim-timeline.png .. image:: /misc/anim-timeline.png

View File

@@ -11,11 +11,11 @@ implementation of CSS but a comparable subset is implemented (sometimes
with minor adjustments). with minor adjustments).
In short this means: - Explicitly set coordinates are stored in styles In short this means: - Explicitly set coordinates are stored in styles
(size, position, layouts, etc.) (size, position, layouts, etc.)
- support min-width, max-width, min-height, max-height - support min-width, max-width, min-height, max-height
- have pixel, percentage, and "content" units - have pixel, percentage, and "content" units
- x=0; y=0 coordinate means the top-left corner of the parent plus the left/top padding plus border width - x=0; y=0 coordinate means the top-left corner of the parent plus the left/top padding plus border width
- width/height means the full size, the "content area" is smaller with padding and border width - a subset - width/height means the full size, the "content area" is smaller with padding and border width - a subset
of flexbox and grid layouts are supported of flexbox and grid layouts are supported
@@ -290,7 +290,7 @@ Here are some examples to set an object's size using a style:
lv_style_init(&style); lv_style_init(&style);
lv_style_set_width(&style, 100); lv_style_set_width(&style, 100);
lv_obj_t * btn = lv_btn_create(lv_scr_act()); lv_obj_t * btn = lv_btn_create(lv_screen_active());
lv_obj_add_style(btn, &style, LV_PART_MAIN); lv_obj_add_style(btn, &style, LV_PART_MAIN);
As you will see below there are some other great features of size and As you will see below there are some other great features of size and
@@ -453,7 +453,7 @@ behave with layouts:
- :cpp:enumerator:`LV_OBJ_FLAG_IGNORE_LAYOUT` The object is simply ignored by the layouts. Its coordinates can be set as usual. - :cpp:enumerator:`LV_OBJ_FLAG_IGNORE_LAYOUT` The object is simply ignored by the layouts. Its coordinates can be set as usual.
- :cpp:enumerator:`LV_OBJ_FLAG_FLOATING` Same as :cpp:enumerator:`LV_OBJ_FLAG_IGNORE_LAYOUT` but the object with :cpp:enumerator:`LV_OBJ_FLAG_FLOATING` will be ignored in :c:macro:`LV_SIZE_CONTENT` calculations. - :cpp:enumerator:`LV_OBJ_FLAG_FLOATING` Same as :cpp:enumerator:`LV_OBJ_FLAG_IGNORE_LAYOUT` but the object with :cpp:enumerator:`LV_OBJ_FLAG_FLOATING` will be ignored in :c:macro:`LV_SIZE_CONTENT` calculations.
These flags can be added/removed with :cpp:expr:`lv_obj_add_flag(obj, FLAG)` and :cpp:expr:`lv_obj_clear_flag(obj, FLAG)` These flags can be added/removed with :cpp:expr:`lv_obj_add_flag(obj, FLAG)` and :cpp:expr:`lv_obj_remove_flag(obj, FLAG)`
Adding new layouts Adding new layouts
------------------ ------------------
@@ -472,7 +472,7 @@ LVGL can be freely extended by a custom layout like this:
void my_layout_update(lv_obj_t * obj, void * user_data) void my_layout_update(lv_obj_t * obj, void * user_data)
{ {
/*Will be called automatically if it's required to reposition/resize the children of "obj" */ /*Will be called automatically if it's required to reposition/resize the children of "obj" */
} }
Custom style properties can be added which can be retrieved and used in Custom style properties can be added which can be retrieved and used in

View File

@@ -34,7 +34,7 @@ Therefore, the whole concept of multi-display handling is completely
hidden if you register only one display. By default, the last created hidden if you register only one display. By default, the last created
(and only) display is used. (and only) display is used.
:cpp:func:`lv_scr_act`, :cpp:func:`lv_scr_load`, :cpp:func:`lv_layer_top`, :cpp:func:`lv_screen_active`, :cpp:func:`lv_screen_load`, :cpp:func:`lv_layer_top`,
:cpp:func:`lv_layer_sys`, :c:macro:`LV_HOR_RES` and :c:macro:`LV_VER_RES` are always applied :cpp:func:`lv_layer_sys`, :c:macro:`LV_HOR_RES` and :c:macro:`LV_VER_RES` are always applied
on the most recently created (default) display. If you pass ``NULL`` as on the most recently created (default) display. If you pass ``NULL`` as
``disp`` parameter to display related functions the default display will ``disp`` parameter to display related functions the default display will
@@ -84,14 +84,14 @@ To create a screen, use
``lv_obj_t * scr = lv_<type>_create(NULL, copy)``. ``copy`` can be an ``lv_obj_t * scr = lv_<type>_create(NULL, copy)``. ``copy`` can be an
existing screen copied into the new screen. existing screen copied into the new screen.
To load a screen, use :cpp:expr:`lv_scr_load(scr)`. To get the active screen, To load a screen, use :cpp:expr:`lv_screen_load(scr)`. To get the active screen,
use :cpp:expr:`lv_scr_act()`. These functions work on the default display. If use :cpp:expr:`lv_screen_active()`. These functions work on the default display. If
you want to specify which display to work on, use you want to specify which display to work on, use
:cpp:expr:`lv_disp_get_scr_act(disp)` and :cpp:expr:`lv_disp_load_scr(disp, scr)`. A :cpp:expr:`lv_disp_get_screen_act(disp)` and :cpp:expr:`lv_disp_load_scr(disp, scr)`. A
screen can be loaded with animations too. Read more screen can be loaded with animations too. Read more
`here <object.html#load-screens>`__. `here <object.html#load-screens>`__.
Screens can be deleted with :cpp:expr:`lv_obj_del(scr)`, but ensure that you do Screens can be deleted with :cpp:expr:`lv_obj_delete(scr)`, but ensure that you do
not delete the currently loaded screen. not delete the currently loaded screen.
Transparent screens Transparent screens
@@ -114,9 +114,9 @@ In summary, to enable transparent screens and displays for OSD menu-like
UIs: UIs:
- Set the screen's ``bg_opa`` to transparent: - Set the screen's ``bg_opa`` to transparent:
:cpp:expr:`lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_TRANSP, 0)` :cpp:expr:`lv_obj_set_style_bg_opa(lv_screen_active(), LV_OPA_TRANSP, 0)`
- Set the bottom layer's ``bg_opa`` to transparent: - Set the bottom layer's ``bg_opa`` to transparent:
:cpp:expr:`lv_obj_set_style_bg_opa(lv_scr_act(), LV_OPA_TRANSP, 0)` :cpp:expr:`lv_obj_set_style_bg_opa(lv_screen_active(), LV_OPA_TRANSP, 0)`
- Set the screen's bg_opa to 0: - Set the screen's bg_opa to 0:
:cpp:expr:`lv_obj_set_style_bg_opa(lv_layer_bottom(), LV_OPA_TRANSP, 0)` :cpp:expr:`lv_obj_set_style_bg_opa(lv_layer_bottom(), LV_OPA_TRANSP, 0)`
- Set a color format with alpha channel. E.g. - Set a color format with alpha channel. E.g.

View File

@@ -5,11 +5,11 @@ Events
====== ======
Events are triggered in LVGL when something happens which might be Events are triggered in LVGL when something happens which might be
interesting to the user, e.g. when an object: interesting to the user, e.g. when an object:
- is clicked - is clicked
- is scrolled - is scrolled
- has its value changed - has its value changed
- is redrawn, etc. - is redrawn, etc.
Add events to the object Add events to the object
@@ -20,7 +20,7 @@ In practice, it looks like this:
.. code:: c .. code:: c
lv_obj_t * btn = lv_btn_create(lv_scr_act()); lv_obj_t * btn = lv_btn_create(lv_screen_active());
lv_obj_add_event(btn, my_event_cb, LV_EVENT_CLICKED, NULL); /*Assign an event callback*/ lv_obj_add_event(btn, my_event_cb, LV_EVENT_CLICKED, NULL); /*Assign an event callback*/
... ...
@@ -132,7 +132,7 @@ Other events
- :cpp:enumerator:`LV_EVENT_STYLE_CHANGED`: Object's style has changed - :cpp:enumerator:`LV_EVENT_STYLE_CHANGED`: Object's style has changed
- :cpp:enumerator:`LV_EVENT_BASE_DIR_CHANGED`: The base dir has changed - :cpp:enumerator:`LV_EVENT_BASE_DIR_CHANGED`: The base dir has changed
- :cpp:enumerator:`LV_EVENT_GET_SELF_SIZE`: Get the internal size of a widget - :cpp:enumerator:`LV_EVENT_GET_SELF_SIZE`: Get the internal size of a widget
- :cpp:enumerator:`LV_EVENT_SCREEN_UNLOAD_START`: A screen unload started, fired immediately when lv_scr_load/lv_scr_load_anim is called - :cpp:enumerator:`LV_EVENT_SCREEN_UNLOAD_START`: A screen unload started, fired immediately when lv_screen_load/lv_screen_load_anim is called
- :cpp:enumerator:`LV_EVENT_SCREEN_LOAD_START`: A screen load started, fired when the screen change delay is expired - :cpp:enumerator:`LV_EVENT_SCREEN_LOAD_START`: A screen load started, fired when the screen change delay is expired
- :cpp:enumerator:`LV_EVENT_SCREEN_LOADED`: A screen was loaded, called when all animations are finished - :cpp:enumerator:`LV_EVENT_SCREEN_LOADED`: A screen was loaded, called when all animations are finished
- :cpp:enumerator:`LV_EVENT_SCREEN_UNLOADED`: A screen was unloaded, called when all animations are finished - :cpp:enumerator:`LV_EVENT_SCREEN_UNLOADED`: A screen was unloaded, called when all animations are finished
@@ -174,18 +174,18 @@ Refresh event
------------- -------------
:cpp:enumerator:`LV_EVENT_REFRESH` is a special event because it's designed to let the :cpp:enumerator:`LV_EVENT_REFRESH` is a special event because it's designed to let the
user notify an object to refresh itself. Some examples: user notify an object to refresh itself. Some examples:
- notify a label to refresh its text according to one or more variables (e.g. current time) - notify a label to refresh its text according to one or more variables (e.g. current time)
- refresh a label when the language changes - refresh a label when the language changes
- enable a button if some conditions are met (e.g. the correct PIN is entered) - enable a button if some conditions are met (e.g. the correct PIN is entered)
- add/remove styles to/from an object if a limit is exceeded, etc - add/remove styles to/from an object if a limit is exceeded, etc
Fields of lv_event_t Fields of lv_event_t
******************** ********************
:cpp:type:`lv_event_t` is the only parameter passed to the event callback and it :cpp:type:`lv_event_t` is the only parameter passed to the event callback and it
contains all data about the event. The following values can be gotten from it: contains all data about the event. The following values can be gotten from it:
- :cpp:expr:`lv_event_get_code(e)`: get the event code - :cpp:expr:`lv_event_get_code(e)`: get the event code
- :cpp:expr:`lv_event_get_current_target(e)`: get the object to which an event was sent. I.e. the object whose event handler is being called. - :cpp:expr:`lv_event_get_current_target(e)`: get the object to which an event was sent. I.e. the object whose event handler is being called.

View File

@@ -33,7 +33,7 @@ To test it try
.. code:: c .. code:: c
lv_obj_t * label1 = lv_label_create(lv_scr_act(), NULL); lv_obj_t * label1 = lv_label_create(lv_screen_active(), NULL);
lv_label_set_text(label1, LV_SYMBOL_OK); lv_label_set_text(label1, LV_SYMBOL_OK);
If all works well, a ✓ character should be displayed. If all works well, a ✓ character should be displayed.
@@ -135,20 +135,20 @@ The default base direction for screens can be set by
base direction from their parent. base direction from their parent.
To set an object's base direction use :cpp:expr:`lv_obj_set_base_dir(obj, base_dir)`. To set an object's base direction use :cpp:expr:`lv_obj_set_base_dir(obj, base_dir)`.
The possible base directions are: The possible base directions are:
- :cpp:enumerator:`LV_BASE_DIR_LTR`: Left to Right base direction - :cpp:enumerator:`LV_BASE_DIR_LTR`: Left to Right base direction
- :cpp:enumerator:`LV_BASE_DIR_RTL`: Right to Left base direction - :cpp:enumerator:`LV_BASE_DIR_RTL`: Right to Left base direction
- :cpp:enumerator:`LV_BASE_DIR_AUTO`: Auto detect base direction - :cpp:enumerator:`LV_BASE_DIR_AUTO`: Auto detect base direction
This list summarizes the effect of RTL base direction on objects: This list summarizes the effect of RTL base direction on objects:
- Create objects by default on the right - Create objects by default on the right
- ``lv_tabview``: Displays tabs from right to left - ``lv_tabview``: Displays tabs from right to left
- ``lv_checkbox``: Shows the box on the right - ``lv_checkbox``: Shows the box on the right
- ``lv_btnmatrix``: Shows buttons from right to left - ``lv_btnmatrix``: Shows buttons from right to left
- ``lv_list``: Shows icons on the right - ``lv_list``: Shows icons on the right
- ``lv_dropdown``: Aligns options to the right - ``lv_dropdown``: Aligns options to the right
- The texts in ``lv_table``, ``lv_btnmatrix``, ``lv_keyboard``, ``lv_tabview``, ``lv_dropdown``, ``lv_roller`` are "BiDi processed" to be displayed correctly - The texts in ``lv_table``, ``lv_btnmatrix``, ``lv_keyboard``, ``lv_tabview``, ``lv_dropdown``, ``lv_roller`` are "BiDi processed" to be displayed correctly
Arabic and Persian support Arabic and Persian support
@@ -162,9 +162,9 @@ should also be taken into account.
LVGL supports these rules if :c:macro:`LV_USE_ARABIC_PERSIAN_CHARS` is enabled. LVGL supports these rules if :c:macro:`LV_USE_ARABIC_PERSIAN_CHARS` is enabled.
However, there are some limitations: However, there are some limitations:
- Only displaying text is supported (e.g. on labels), text inputs (e.g. text area) don't support this feature. - Only displaying text is supported (e.g. on labels), text inputs (e.g. text area) don't support this feature.
- Static text (i.e. const) is not processed. E.g. texts set by :cpp:func:`lv_label_set_text` will be "Arabic processed" but :cpp:func:`lv_label_set_text_static` won't. - Static text (i.e. const) is not processed. E.g. texts set by :cpp:func:`lv_label_set_text` will be "Arabic processed" but :cpp:func:`lv_label_set_text_static` won't.
- Text get functions (e.g. :cpp:func:`lv_label_get_text`) will return the processed text. - Text get functions (e.g. :cpp:func:`lv_label_get_text`) will return the processed text.
@@ -179,9 +179,9 @@ letter anti-aliasing. Learn more
`here <https://en.wikipedia.org/wiki/Subpixel_rendering>`__. `here <https://en.wikipedia.org/wiki/Subpixel_rendering>`__.
For subpixel rendering, the fonts need to be generated with special For subpixel rendering, the fonts need to be generated with special
settings: settings:
- In the online converter tick the ``Subpixel`` box - In the online converter tick the ``Subpixel`` box
- In the command line tool use ``--lcd`` flag. Note that the generated font needs about three times more memory. - In the command line tool use ``--lcd`` flag. Note that the generated font needs about three times more memory.
Subpixel rendering works only if the color channels of the pixels have a Subpixel rendering works only if the color channels of the pixels have a
@@ -194,18 +194,18 @@ however this can be swapped by setting :c:macro:`LV_SUBPX_BGR` ``1`` in
Compressed fonts Compressed fonts
---------------- ----------------
The bitmaps of fonts can be compressed by The bitmaps of fonts can be compressed by
- ticking the ``Compressed`` check box in the online converter - ticking the ``Compressed`` check box in the online converter
- not passing the ``--no-compress`` flag to the offline converter (compression is applied by default) - not passing the ``--no-compress`` flag to the offline converter (compression is applied by default)
Compression is more effective with larger fonts and higher bpp. However, Compression is more effective with larger fonts and higher bpp. However,
it's about 30% slower to render compressed fonts. Therefore, it's it's about 30% slower to render compressed fonts. Therefore, it's
recommended to compress only the largest fonts of a user interface, recommended to compress only the largest fonts of a user interface,
because because
- they need the most memory - they need the most memory
- they can be compressed better - they can be compressed better
- and probably they are used less frequently then the medium-sized fonts, so the performance cost is smaller. - and probably they are used less frequently then the medium-sized fonts, so the performance cost is smaller.
.. _add_font: .. _add_font:
@@ -213,13 +213,13 @@ because
Add a new font Add a new font
************** **************
There are several ways to add a new font to your project: There are several ways to add a new font to your project:
1. The simplest method is to use the `Online font converter <https://lvgl.io/tools/fontconverter>`__. 1. The simplest method is to use the `Online font converter <https://lvgl.io/tools/fontconverter>`__.
Just set the parameters, click the *Convert* button, copy the font to your project Just set the parameters, click the *Convert* button, copy the font to your project
and use it. **Be sure to carefully read the steps provided on that site and use it. **Be sure to carefully read the steps provided on that site
or you will get an error while converting.** or you will get an error while converting.**
2. Use the `Offline font converter <https://github.com/lvgl/lv_font_conv>`__. 2. Use the `Offline font converter <https://github.com/lvgl/lv_font_conv>`__.
(Requires Node.js to be installed) (Requires Node.js to be installed)
3. If you want to create something like the built-in 3. If you want to create something like the built-in
fonts (Montserrat font and symbols) but in a different size and/or fonts (Montserrat font and symbols) but in a different size and/or
@@ -237,10 +237,10 @@ Add new symbols
The built-in symbols are created from the `FontAwesome <https://fontawesome.com/>`__ font. The built-in symbols are created from the `FontAwesome <https://fontawesome.com/>`__ font.
1. Search for a symbol on https://fontawesome.com. For example the 1. Search for a symbol on https://fontawesome.com. For example the
`USB symbol <https://fontawesome.com/icons/usb?style=brands>`__. Copy its `USB symbol <https://fontawesome.com/icons/usb?style=brands>`__. Copy its
Unicode ID which is ``0xf287`` in this case. Unicode ID which is ``0xf287`` in this case.
2. Open the `Online font converter <https://lvgl.io/tools/fontconverter>`__. 2. Open the `Online font converter <https://lvgl.io/tools/fontconverter>`__.
Add `FontAwesome.woff <https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff>`__. Add `FontAwesome.woff <https://lvgl.io/assets/others/FontAwesome5-Solid+Brands+Regular.woff>`__.
3. Set the parameters such as Name, Size, BPP. You'll use this name to 3. Set the parameters such as Name, Size, BPP. You'll use this name to
declare and use the font in your code. declare and use the font in your code.
@@ -251,9 +251,9 @@ The built-in symbols are created from the `FontAwesome <https://fontawesome.com/
6. Declare the font using ``extern lv_font_t my_font_name;`` or simply 6. Declare the font using ``extern lv_font_t my_font_name;`` or simply
use :cpp:expr:`LV_FONT_DECLARE(my_font_name)`. use :cpp:expr:`LV_FONT_DECLARE(my_font_name)`.
**Using the symbol** **Using the symbol**
1. Convert the Unicode value to UTF8, for example on 1. Convert the Unicode value to UTF8, for example on
`this site <http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f287&mode=hex>`__. `this site <http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=f287&mode=hex>`__.
For ``0xf287`` the *Hex UTF-8 bytes* are ``EF 8A 87``. For ``0xf287`` the *Hex UTF-8 bytes* are ``EF 8A 87``.
2. Create a ``define`` string from the UTF8 values: ``#define MY_USB_SYMBOL "\xEF\x8A\x87"`` 2. Create a ``define`` string from the UTF8 values: ``#define MY_USB_SYMBOL "\xEF\x8A\x87"``

View File

@@ -8,7 +8,7 @@ some metadata.
Store images Store images
************ ************
You can store images in two places You can store images in two places
- as a variable in internal memory (RAM or ROM) - as a variable in internal memory (RAM or ROM)
- as a file - as a file
@@ -21,12 +21,12 @@ Images stored internally in a variable are composed mainly of an
- **header**: - **header**:
- *cf*: Color format. See `below <#color-format>`__ - *cf*: Color format. See `below <#color-format>`__
- *w*: width in pixels (<= 2048) - *w*: width in pixels (<= 2048)
- *h*: height in pixels (<= 2048) - *h*: height in pixels (<= 2048)
- *always zero*: 3 bits which need to be always zero - *always zero*: 3 bits which need to be always zero
- *reserved*: reserved for future use - *reserved*: reserved for future use
- **data**: pointer to an array where the image itself is stored - **data**: pointer to an array where the image itself is stored
- **data_size**: length of ``data`` in bytes - **data_size**: length of ``data`` in bytes
These are usually stored within a project as C files. They are linked These are usually stored within a project as C files. They are linked
@@ -51,7 +51,7 @@ easier to replace without needing to rebuild the main program.
Color formats Color formats
************* *************
Various built-in color formats are supported: Various built-in color formats are supported:
- :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE`: Simply stores the RGB colors (in whatever color depth LVGL is configured for). - :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE`: Simply stores the RGB colors (in whatever color depth LVGL is configured for).
- :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE_WITH_ALPHA`: Like :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE` but it also adds an alpha (transparency) byte for every pixel. - :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE_WITH_ALPHA`: Like :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE` but it also adds an alpha (transparency) byte for every pixel.
@@ -79,8 +79,8 @@ The bytes of :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE` images are stored in the f
- **Byte 2**: Alpha byte (only with :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE_WITH_ALPHA`) - **Byte 2**: Alpha byte (only with :cpp:enumerator:`LV_COLOR_FORMAT_NATIVE_WITH_ALPHA`)
You can store images in a *Raw* format to indicate that it's not encoded You can store images in a *Raw* format to indicate that it's not encoded
with one of the built-in color formats and an external `Image decoder <#image-decoder>`__ with one of the built-in color formats and an external `Image decoder <#image-decoder>`__
needs to be used to decode the image. needs to be used to decode the image.
- :cpp:enumerator:`LV_COLOR_FORMAT_RAW`: Indicates a basic raw image (e.g. a PNG or JPG image). - :cpp:enumerator:`LV_COLOR_FORMAT_RAW`: Indicates a basic raw image (e.g. a PNG or JPG image).
- :cpp:enumerator:`LV_COLOR_FORMAT_RAW_ALPHA`: Indicates that an image has alpha and an alpha byte is added for every pixel. - :cpp:enumerator:`LV_COLOR_FORMAT_RAW_ALPHA`: Indicates that an image has alpha and an alpha byte is added for every pixel.
@@ -116,11 +116,11 @@ that matches :c:macro:`LV_COLOR_DEPTH` in *lv_conf.h* will actually be linked
into the resulting executable. into the resulting executable.
In the case of binary files, you need to specify the color format you In the case of binary files, you need to specify the color format you
want: want:
- RGB332 for 8-bit color depth - RGB332 for 8-bit color depth
- RGB565 for 16-bit color depth - RGB565 for 16-bit color depth
- RGB565 Swap for 16-bit color depth (two bytes are swapped) - RGB565 Swap for 16-bit color depth (two bytes are swapped)
- RGB888 for 32-bit color depth - RGB888 for 32-bit color depth
Manually create an image Manually create an image
@@ -153,7 +153,7 @@ The simplest way to use an image in LVGL is to display it with an
.. code:: c .. code:: c
lv_obj_t * icon = lv_image_create(lv_scr_act(), NULL); lv_obj_t * icon = lv_image_create(lv_screen_active(), NULL);
/*From variable*/ /*From variable*/
lv_image_set_src(icon, &my_icon_dsc); lv_image_set_src(icon, &my_icon_dsc);
@@ -176,12 +176,12 @@ formats like PNG or JPG.
To handle non-built-in image formats, you need to use external libraries To handle non-built-in image formats, you need to use external libraries
and attach them to LVGL via the *Image decoder* interface. and attach them to LVGL via the *Image decoder* interface.
An image decoder consists of 4 callbacks: An image decoder consists of 4 callbacks:
- **info** get some basic info about the image (width, height and color format). - **info** get some basic info about the image (width, height and color format).
- **open** open an image: - **open** open an image:
- store a decoded image - store a decoded image
- set it to ``NULL`` to indicate the image can be read line-by-line. - set it to ``NULL`` to indicate the image can be read line-by-line.
- **get_area** if *open* didn't fully open an image this function should give back part of image as decoded data. - **get_area** if *open* didn't fully open an image this function should give back part of image as decoded data.
- **close** close an opened image, free the allocated resources. - **close** close an opened image, free the allocated resources.
@@ -205,14 +205,14 @@ Custom image formats
-------------------- --------------------
The easiest way to create a custom image is to use the online image The easiest way to create a custom image is to use the online image
converter and select ``Raw`` or ``Raw with alpha`` format. converter and select ``Raw`` or ``Raw with alpha`` format.
It will just take every byte of the It will just take every byte of the
binary file you uploaded and write it as an image "bitmap". You then binary file you uploaded and write it as an image "bitmap". You then
need to attach an image decoder that will parse that bitmap and generate need to attach an image decoder that will parse that bitmap and generate
the real, renderable bitmap. the real, renderable bitmap.
``header.cf`` will be :cpp:enumerator:`LV_COLOR_FORMAT_RAW`, :cpp:enumerator:`LV_COLOR_FORMAT_RAW_ALPHA` ``header.cf`` will be :cpp:enumerator:`LV_COLOR_FORMAT_RAW`, :cpp:enumerator:`LV_COLOR_FORMAT_RAW_ALPHA`
accordingly. You should choose the correct format according to your needs: accordingly. You should choose the correct format according to your needs:
a fully opaque image, using an alpha channel. a fully opaque image, using an alpha channel.
After decoding, the *raw* formats are considered *True color* by the After decoding, the *raw* formats are considered *True color* by the
@@ -374,11 +374,11 @@ Cache size
---------- ----------
The size of cache (in bytes) can be defined with The size of cache (in bytes) can be defined with
:c:macro:`LV_CACHE_DEF_SIZE` in *lv_conf.h*. The default value is 0, so :c:macro:`LV_CACHE_DEF_SIZE` in *lv_conf.h*. The default value is 0, so
no image is cached. no image is cached.
The size of cache can be changed at run-time with The size of cache can be changed at run-time with
:cpp:expr:`lv_cache_set_max_size(size_t size)`, :cpp:expr:`lv_cache_set_max_size(size_t size)`,
and get with :cpp:expr:`lv_cache_get_max_size()`. and get with :cpp:expr:`lv_cache_get_max_size()`.
Value of images Value of images
@@ -399,9 +399,9 @@ the *weight* value in the cache entry in
it unchanged to let LVGL control it.) it unchanged to let LVGL control it.)
Every cache entry has a *"life"* value. Every time an image is opened Every cache entry has a *"life"* value. Every time an image is opened
through the cache, the *life* value of all entries is increased by their through the cache, the *life* value of all entries is increased by their
*weight* values to make them older. *weight* values to make them older.
When a cached image is used, its *usage_count* value is increased When a cached image is used, its *usage_count* value is increased
to make it more alive. to make it more alive.
If there is no more space in the cache, the entry with *usage_count == 0* If there is no more space in the cache, the entry with *usage_count == 0*

View File

@@ -25,12 +25,12 @@ Pointer input devices (like a mouse) can have a cursor.
lv_indev_t * mouse_indev = lv_indev_create(); lv_indev_t * mouse_indev = lv_indev_create();
... ...
LV_IMG_DECLARE(mouse_cursor_icon); /*Declare the image source.*/ LV_IMG_DECLARE(mouse_cursor_icon); /*Declare the image source.*/
lv_obj_t * cursor_obj = lv_image_create(lv_scr_act()); /*Create an image object for the cursor */ lv_obj_t * cursor_obj = lv_image_create(lv_screen_active()); /*Create an image object for the cursor */
lv_image_set_src(cursor_obj, &mouse_cursor_icon); /*Set the image source*/ lv_image_set_src(cursor_obj, &mouse_cursor_icon); /*Set the image source*/
lv_indev_set_cursor(mouse_indev, cursor_obj); /*Connect the image object to the driver*/ lv_indev_set_cursor(mouse_indev, cursor_obj); /*Connect the image object to the driver*/
Note that the cursor object should have Note that the cursor object should have
:cpp:expr:`lv_obj_clear_flag(cursor_obj, LV_OBJ_FLAG_CLICKABLE)`. For images, :cpp:expr:`lv_obj_remove_flag(cursor_obj, LV_OBJ_FLAG_CLICKABLE)`. For images,
*clicking* is disabled by default. *clicking* is disabled by default.
Gestures Gestures
@@ -68,7 +68,7 @@ event. For example:
lv_obj_add_event(screen1, my_event, LV_EVENT_GESTURE, NULL); lv_obj_add_event(screen1, my_event, LV_EVENT_GESTURE, NULL);
To prevent passing the gesture event to the parent from an object use To prevent passing the gesture event to the parent from an object use
:cpp:expr:`lv_obj_clear_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE)`. :cpp:expr:`lv_obj_remove_flag(obj, LV_OBJ_FLAG_GESTURE_BUBBLE)`.
Note that, gestures are not triggered if an object is being scrolled. Note that, gestures are not triggered if an object is being scrolled.
@@ -109,7 +109,7 @@ To associate a group with an input device use
Keys Keys
^^^^ ^^^^
There are some predefined keys which have special meaning: There are some predefined keys which have special meaning:
- :cpp:enumerator:`LV_KEY_NEXT`: Focus on the next object - :cpp:enumerator:`LV_KEY_NEXT`: Focus on the next object
- :cpp:enumerator:`LV_KEY_PREV`: Focus on the previous object - :cpp:enumerator:`LV_KEY_PREV`: Focus on the previous object
@@ -134,7 +134,7 @@ The most important special keys In your ``read_cb`` function
- :cpp:enumerator:`LV_KEY_LEFT` - :cpp:enumerator:`LV_KEY_LEFT`
- :cpp:enumerator:`LV_KEY_RIGHT` - :cpp:enumerator:`LV_KEY_RIGHT`
You should translate some of your keys to these special keys to support navigation You should translate some of your keys to these special keys to support navigation
in a group and interact with selected objects. in a group and interact with selected objects.
Usually, it's enough to use only :cpp:enumerator:`LV_KEY_LEFT` and :cpp:enumerator:`LV_KEY_RIGHT` because most Usually, it's enough to use only :cpp:enumerator:`LV_KEY_LEFT` and :cpp:enumerator:`LV_KEY_RIGHT` because most

View File

@@ -18,7 +18,7 @@ its children.
/*Create a screen*/ /*Create a screen*/
lv_obj_t * scr = lv_obj_create(NULL, NULL); lv_obj_t * scr = lv_obj_create(NULL, NULL);
lv_scr_load(scr); /*Load the screen*/ lv_screen_load(scr); /*Load the screen*/
/*Create 2 buttons*/ /*Create 2 buttons*/
lv_obj_t * btn1 = lv_btn_create(scr, NULL); /*Create a button on the screen*/ lv_obj_t * btn1 = lv_btn_create(scr, NULL); /*Create a button on the screen*/
@@ -36,7 +36,7 @@ its children.
lv_label_set_text(label2, "Button 2"); /*Set the text of the label*/ lv_label_set_text(label2, "Button 2"); /*Set the text of the label*/
/*Delete the second label*/ /*Delete the second label*/
lv_obj_del(label2); lv_obj_delete(label2);
Change order Change order
************ ************
@@ -60,7 +60,7 @@ Top and sys layers
LVGL uses two special layers named ``layer_top`` and ``layer_sys``. Both LVGL uses two special layers named ``layer_top`` and ``layer_sys``. Both
are visible and common on all screens of a display. **They are not, are visible and common on all screens of a display. **They are not,
however, shared among multiple physical displays.** The ``layer_top`` is however, shared among multiple physical displays.** The ``layer_top`` is
always on top of the default screen (:cpp:func:`lv_scr_act`), and always on top of the default screen (:cpp:func:`lv_screen_active`), and
``layer_sys`` is on top of ``layer_top``. ``layer_sys`` is on top of ``layer_top``.
The ``layer_top`` can be used by the user to create some content visible The ``layer_top`` can be used by the user to create some content visible

View File

@@ -83,7 +83,7 @@ it. Therefore, all positions are relative to the parent.
.. code:: c .. code:: c
lv_obj_t * parent = lv_obj_create(lv_scr_act()); /*Create a parent object on the current screen*/ lv_obj_t * parent = lv_obj_create(lv_screen_active()); /*Create a parent object on the current screen*/
lv_obj_set_size(parent, 100, 80); /*Set the size of the parent*/ lv_obj_set_size(parent, 100, 80); /*Set the size of the parent*/
lv_obj_t * obj1 = lv_obj_create(parent); /*Create an object on the previously created parent object*/ lv_obj_t * obj1 = lv_obj_create(parent); /*Create an object on the previously created parent object*/
@@ -146,11 +146,11 @@ the object and all of its children.
.. code:: c .. code:: c
void lv_obj_del(lv_obj_t * obj); void lv_obj_delete(lv_obj_t * obj);
:cpp:func:`lv_obj_del` will delete the object immediately. If for any reason you :cpp:func:`lv_obj_del` will delete the object immediately. If for any reason you
can't delete the object immediately you can use can't delete the object immediately you can use
:cpp:expr:`lv_obj_del_async(obj)` which will perform the deletion on the next :cpp:expr:`lv_obj_delete_async(obj)` which will perform the deletion on the next
call of :cpp:func:`lv_timer_handler`. This is useful e.g. if you want to call of :cpp:func:`lv_timer_handler`. This is useful e.g. if you want to
delete the parent of an object in the child's :cpp:enumerator:`LV_EVENT_DELETE` delete the parent of an object in the child's :cpp:enumerator:`LV_EVENT_DELETE`
handler. handler.
@@ -158,7 +158,7 @@ handler.
You can remove all the children of an object (but not the object itself) You can remove all the children of an object (but not the object itself)
using :cpp:expr:`lv_obj_clean(obj)`. using :cpp:expr:`lv_obj_clean(obj)`.
You can use :cpp:expr:`lv_obj_del_delayed(obj, 1000)` to delete an object after You can use :cpp:expr:`lv_obj_delete_delayed(obj, 1000)` to delete an object after
some time. The delay is expressed in milliseconds. some time. The delay is expressed in milliseconds.
Screens Screens
@@ -183,12 +183,12 @@ Get the active screen
There is always an active screen on each display. By default, the There is always an active screen on each display. By default, the
library creates and loads a "Base object" as a screen for each display. library creates and loads a "Base object" as a screen for each display.
To get the currently active screen use the :cpp:func:`lv_scr_act` function. To get the currently active screen use the :cpp:func:`lv_screen_active` function.
Load screens Load screens
------------ ------------
To load a new screen, use :cpp:expr:`lv_scr_load(scr1)`. To load a new screen, use :cpp:expr:`lv_screen_load(scr1)`.
Layers Layers
------ ------
@@ -215,7 +215,7 @@ Load screen with animation
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
A new screen can be loaded with animation by using A new screen can be loaded with animation by using
:cpp:expr:`lv_scr_load_anim(scr, transition_type, time, delay, auto_del)`. The :cpp:expr:`lv_screen_load_anim(scr, transition_type, time, delay, auto_del)`. The
following transition types exist: following transition types exist:
- :cpp:enumerator:`LV_SCR_LOAD_ANIM_NONE`: Switch immediately after ``delay`` milliseconds - :cpp:enumerator:`LV_SCR_LOAD_ANIM_NONE`: Switch immediately after ``delay`` milliseconds
@@ -227,7 +227,7 @@ following transition types exist:
Setting ``auto_del`` to ``true`` will automatically delete the old Setting ``auto_del`` to ``true`` will automatically delete the old
screen when the animation is finished. screen when the animation is finished.
The new screen will become active (returned by :cpp:func:`lv_scr_act`) when The new screen will become active (returned by :cpp:func:`lv_screen_active`) when
the animation starts after ``delay`` time. All inputs are disabled the animation starts after ``delay`` time. All inputs are disabled
during the screen animation. during the screen animation.
@@ -239,7 +239,7 @@ Screens are created on the currently selected *default display*. The
:cpp:func:`lv_disp_drv_register`. You can also explicitly select a new default :cpp:func:`lv_disp_drv_register`. You can also explicitly select a new default
display using :cpp:expr:`lv_disp_set_default(disp)`. display using :cpp:expr:`lv_disp_set_default(disp)`.
:cpp:func:`lv_scr_act`, :cpp:func:`lv_scr_load` and :cpp:func:`lv_scr_load_anim` operate :cpp:func:`lv_screen_active`, :cpp:func:`lv_screen_load` and :cpp:func:`lv_screen_load_anim` operate
on the default display. on the default display.
Visit `Multi-display support </overview/display>`__ to learn more. Visit `Multi-display support </overview/display>`__ to learn more.
@@ -291,7 +291,7 @@ The states are usually automatically changed by the library as the user
interacts with an object (presses, releases, focuses, etc.). However, interacts with an object (presses, releases, focuses, etc.). However,
the states can be changed manually too. To set or clear given state (but the states can be changed manually too. To set or clear given state (but
leave the other states untouched) use leave the other states untouched) use
``lv_obj_add/clear_state(obj, LV_STATE_...)`` In both cases OR-ed state ``lv_obj_add/remove_state(obj, LV_STATE_...)`` In both cases OR-ed state
values can be used as well. E.g. values can be used as well. E.g.
:cpp:expr:`lv_obj_add_state(obj, part, LV_STATE_PRESSED | LV_PRESSED_CHECKED)`. :cpp:expr:`lv_obj_add_state(obj, part, LV_STATE_PRESSED | LV_PRESSED_CHECKED)`.

View File

@@ -98,7 +98,7 @@ Scrollable
---------- ----------
It's possible to make an object non-scrollable with It's possible to make an object non-scrollable with
:cpp:expr:`lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE)`. :cpp:expr:`lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE)`.
Non-scrollable objects can still propagate the scrolling (chain) to Non-scrollable objects can still propagate the scrolling (chain) to
their parents. their parents.

View File

@@ -336,7 +336,7 @@ notified. There are 3 options to do this:
1. If you know that the changed properties can be applied by a simple redraw 1. If you know that the changed properties can be applied by a simple redraw
(e.g. color or opacity changes) just call :cpp:expr:`lv_obj_invalidate(obj)` (e.g. color or opacity changes) just call :cpp:expr:`lv_obj_invalidate(obj)`
or :cpp:expr:`lv_obj_invalidate(lv_scr_act())`. or :cpp:expr:`lv_obj_invalidate(lv_screen_active())`.
2. If more complex style properties were changed or added, and you know which 2. If more complex style properties were changed or added, and you know which
object(s) are affected by that style call :cpp:expr:`lv_obj_refresh_style(obj, part, property)`. object(s) are affected by that style call :cpp:expr:`lv_obj_refresh_style(obj, part, property)`.
To refresh all parts and properties use :cpp:expr:`lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY)`. To refresh all parts and properties use :cpp:expr:`lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY)`.

View File

@@ -35,7 +35,7 @@ For example:
/*Do something with LVGL*/ /*Do something with LVGL*/
if(something_happened) { if(something_happened) {
something_happened = false; something_happened = false;
lv_btn_create(lv_scr_act(), NULL); lv_btn_create(lv_screen_active(), NULL);
} }
} }
@@ -102,7 +102,7 @@ For example:
/*Free some resources related to `scr`*/ /*Free some resources related to `scr`*/
/*Finally delete the screen*/ /*Finally delete the screen*/
lv_obj_del(scr); lv_obj_delete(scr);
} }
... ...
@@ -110,12 +110,12 @@ For example:
/*Do something with the object on the current screen*/ /*Do something with the object on the current screen*/
/*Delete screen on next call of `lv_timer_handler`, not right now.*/ /*Delete screen on next call of `lv_timer_handler`, not right now.*/
lv_async_call(my_screen_clean_up, lv_scr_act()); lv_async_call(my_screen_clean_up, lv_screen_active());
/*The screen is still valid so you can do other things with it*/ /*The screen is still valid so you can do other things with it*/
If you just want to delete an object and don't need to clean anything up If you just want to delete an object and don't need to clean anything up
in ``my_screen_cleanup`` you could just use :cpp:func:`lv_obj_del_async` which in ``my_screen_cleanup`` you could just use :cpp:func:`lv_obj_delete_async` which
will delete the object on the next call to :cpp:func:`lv_timer_handler`. will delete the object on the next call to :cpp:func:`lv_timer_handler`.
API API

View File

@@ -229,7 +229,7 @@ You can do this in the following way:
.. code:: c .. code:: c
/*Delete the original display refresh timer*/ /*Delete the original display refresh timer*/
lv_timer_del(disp->refr_timer); lv_timer_delete(disp->refr_timer);
disp->refr_timer = NULL; disp->refr_timer = NULL;

View File

@@ -245,7 +245,7 @@ You can do this in the following way:
.. code:: c .. code:: c
/*Delete the original input device read timer*/ /*Delete the original input device read timer*/
lv_timer_del(indev->read_timer); lv_timer_delete(indev->read_timer);
indev->read_timer = NULL; indev->read_timer = NULL;

View File

@@ -41,7 +41,7 @@ Here is some pseudocode to illustrate the concept:
{ {
/* You must always hold the mutex while using LVGL APIs */ /* You must always hold the mutex while using LVGL APIs */
mutex_lock(&lvgl_mutex); mutex_lock(&lvgl_mutex);
lv_obj_t *img = lv_image_create(lv_scr_act()); lv_obj_t *img = lv_image_create(lv_screen_active());
mutex_unlock(&lvgl_mutex); mutex_unlock(&lvgl_mutex);
while(1) { while(1) {

View File

@@ -96,7 +96,7 @@ the object non-clickable:
.. code:: c .. code:: c
lv_obj_remove_style(arc, NULL, LV_PART_KNOB); lv_obj_remove_style(arc, NULL, LV_PART_KNOB);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(arc, LV_OBJ_FLAG_CLICKABLE);
Advanced hit test Advanced hit test
----------------- -----------------

View File

@@ -43,7 +43,7 @@ common state add/clear function:
.. code:: c .. code:: c
lv_obj_add_state(cb, LV_STATE_CHECKED); /*Make the checkbox checked*/ lv_obj_add_state(cb, LV_STATE_CHECKED); /*Make the checkbox checked*/
lv_obj_clear_state(cb, LV_STATE_CHECKED); /*MAke the checkbox unchecked*/ lv_obj_remove_state(cb, LV_STATE_CHECKED); /*MAke the checkbox unchecked*/
lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED); /*Make the checkbox checked and disabled*/ lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED); /*Make the checkbox checked and disabled*/
To get whether the checkbox is checked or not use: To get whether the checkbox is checked or not use:

View File

@@ -46,7 +46,7 @@ they will be used in pressed state instead of the released images.
States States
------ ------
Instead of the regular ``lv_obj_add/clear_state()`` functions the Instead of the regular ``lv_obj_add/remove_state()`` functions the
:cpp:expr:`lv_imgbtn_set_state(imgbtn, LV_IMGBTN_STATE_...)` functions should be :cpp:expr:`lv_imgbtn_set_state(imgbtn, LV_IMGBTN_STATE_...)` functions should be
used to manually set a state. used to manually set a state.

View File

@@ -115,7 +115,7 @@ representing a layout that covers the entire display.
When you have created a screen like When you have created a screen like
``lv_obj_t * screen = lv_obj_create(NULL)``, you can make it active with ``lv_obj_t * screen = lv_obj_create(NULL)``, you can make it active with
:cpp:expr:`lv_scr_load(screen)`. The :cpp:func:`lv_scr_act` function gives you a :cpp:expr:`lv_screen_load(screen)`. The :cpp:func:`lv_screen_active` function gives you a
pointer to the active screen. pointer to the active screen.
If you have multiple displays, it's important to know that the screen If you have multiple displays, it's important to know that the screen
@@ -154,7 +154,7 @@ Flags
----- -----
There are some attributes which can be enabled/disabled by There are some attributes which can be enabled/disabled by
``lv_obj_add/clear_flag(obj, LV_OBJ_FLAG_...)``: ``lv_obj_add/remove_flag(obj, LV_OBJ_FLAG_...)``:
- :cpp:enumerator:`LV_OBJ_FLAG_HIDDEN` Make the object hidden. (Like it wasn't there at all) - :cpp:enumerator:`LV_OBJ_FLAG_HIDDEN` Make the object hidden. (Like it wasn't there at all)
- :cpp:enumerator:`LV_OBJ_FLAG_CLICKABLE` Make the object clickable by input devices - :cpp:enumerator:`LV_OBJ_FLAG_CLICKABLE` Make the object clickable by input devices
@@ -194,7 +194,7 @@ Some examples:
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
/*Make an object non-clickable*/ /*Make an object non-clickable*/
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE); lv_obj_remove_flag(obj, LV_OBJ_FLAG_CLICKABLE);
Groups Groups
------ ------

View File

@@ -34,7 +34,7 @@ To get the current state of the switch (with ``true`` being on), use
:cpp:expr:`lv_obj_has_state(obj, LV_STATE_CHECKED)`. :cpp:expr:`lv_obj_has_state(obj, LV_STATE_CHECKED)`.
Call :cpp:expr:`lv_obj_add_state(obj, LV_STATE_CHECKED)` to turn it on, or Call :cpp:expr:`lv_obj_add_state(obj, LV_STATE_CHECKED)` to turn it on, or
:cpp:expr:`lv_obj_clear_state(obj, LV_STATE_CHECKED)` to turn it off. :cpp:expr:`lv_obj_remove_state(obj, LV_STATE_CHECKED)` to turn it off.
Events Events
****** ******

View File

@@ -61,8 +61,8 @@ Delete character
---------------- ----------------
To delete a character from the left of the current cursor position use To delete a character from the left of the current cursor position use
:cpp:expr:`lv_textarea_del_char(textarea)`. To delete from the right use :cpp:expr:`lv_textarea_delete_char(textarea)`. To delete from the right use
:cpp:expr:`lv_textarea_del_char_forward(textarea)` :cpp:expr:`lv_textarea_delete_char_forward(textarea)`
Move the cursor Move the cursor
--------------- ---------------

View File

@@ -37,8 +37,8 @@ void pika_lvgl_lv_timer_t_set_cb(PikaObj* self, Arg* cb) {
} }
void pika_lvgl_lv_timer_t__del(PikaObj* self) { void pika_lvgl_lv_timer_t__delete(PikaObj* self) {
lv_timer_t* lv_timer = obj_getPtr(self, "lv_timer"); lv_timer_t* lv_timer = obj_getPtr(self, "lv_timer");
lv_timer_del(lv_timer); lv_timer_delete(lv_timer);
} }
#endif #endif

View File

@@ -145,9 +145,9 @@ void pika_lvgl_PALETTE___init__(PikaObj* self) {
obj_setInt(self, "NONE", LV_PALETTE_NONE); obj_setInt(self, "NONE", LV_PALETTE_NONE);
} }
PikaObj* pika_lvgl_scr_act(PikaObj* self) { PikaObj* pika_lvgl_screen_act(PikaObj* self) {
PikaObj* new_obj = newNormalObj(New_TinyObj); PikaObj* new_obj = newNormalObj(New_TinyObj);
lv_obj_t* lv_obj = lv_scr_act(); lv_obj_t* lv_obj = lv_screen_active();
obj_setPtr(new_obj, "lv_obj", lv_obj); obj_setPtr(new_obj, "lv_obj", lv_obj);
return new_obj; return new_obj;
} }

View File

@@ -39,12 +39,12 @@ static void sw_event_cb(lv_event_t * e)
*/ */
void lv_example_anim_1(void) void lv_example_anim_1(void)
{ {
lv_obj_t * label = lv_label_create(lv_scr_act()); lv_obj_t * label = lv_label_create(lv_screen_active());
lv_label_set_text(label, "Hello animations!"); lv_label_set_text(label, "Hello animations!");
lv_obj_set_pos(label, 100, 10); lv_obj_set_pos(label, 100, 10);
lv_obj_t * sw = lv_switch_create(lv_scr_act()); lv_obj_t * sw = lv_switch_create(lv_screen_active());
lv_obj_center(sw); lv_obj_center(sw);
lv_obj_add_state(sw, LV_STATE_CHECKED); lv_obj_add_state(sw, LV_STATE_CHECKED);
lv_obj_add_event(sw, sw_event_cb, LV_EVENT_VALUE_CHANGED, label); lv_obj_add_event(sw, sw_event_cb, LV_EVENT_VALUE_CHANGED, label);

View File

@@ -27,12 +27,12 @@ def sw_event_cb(e,label):
# Start animation on an event # Start animation on an event
# #
label = lv.label(lv.scr_act()) label = lv.label(lv.screen_active())
label.set_text("Hello animations!") label.set_text("Hello animations!")
label.set_pos(100, 10) label.set_pos(100, 10)
sw = lv.switch(lv.scr_act()) sw = lv.switch(lv.screen_active())
sw.center() sw.center()
sw.add_state(lv.STATE.CHECKED) sw.add_state(lv.STATE.CHECKED)
sw.add_event(lambda e: sw_event_cb(e,label), lv.EVENT.VALUE_CHANGED, None) sw.add_event(lambda e: sw_event_cb(e,label), lv.EVENT.VALUE_CHANGED, None)

View File

@@ -18,7 +18,7 @@ static void anim_size_cb(void * var, int32_t v)
void lv_example_anim_2(void) void lv_example_anim_2(void)
{ {
lv_obj_t * obj = lv_obj_create(lv_scr_act()); lv_obj_t * obj = lv_obj_create(lv_screen_active());
lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0); lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0);
lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0); lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0);

View File

@@ -8,7 +8,7 @@ def anim_size_cb(obj, v):
# #
# Create a playback animation # Create a playback animation
# #
obj = lv.obj(lv.scr_act()) obj = lv.obj(lv.screen_active())
obj.set_style_bg_color(lv.palette_main(lv.PALETTE.RED), 0) obj.set_style_bg_color(lv.palette_main(lv.PALETTE.RED), 0)
obj.set_style_radius(lv.RADIUS_CIRCLE, 0) obj.set_style_radius(lv.RADIUS_CIRCLE, 0)

View File

@@ -40,7 +40,7 @@ void lv_example_anim_3(void)
static lv_coord_t row_dsc[] = {30, 10, 10, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {30, 10, 10, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_style_pad_all(cont, 2, LV_PART_MAIN); lv_obj_set_style_pad_all(cont, 2, LV_PART_MAIN);
lv_obj_set_style_pad_column(cont, 10, LV_PART_MAIN); lv_obj_set_style_pad_column(cont, 10, LV_PART_MAIN);
lv_obj_set_style_pad_row(cont, 10, LV_PART_MAIN); lv_obj_set_style_pad_row(cont, 10, LV_PART_MAIN);
@@ -122,7 +122,7 @@ static void page_obj_init(lv_obj_t * par)
ginfo.anim_obj = lv_obj_create(par); ginfo.anim_obj = lv_obj_create(par);
lv_obj_set_size(ginfo.anim_obj, 30, 30); lv_obj_set_size(ginfo.anim_obj, 30, 30);
lv_obj_set_align(ginfo.anim_obj, LV_ALIGN_TOP_LEFT); lv_obj_set_align(ginfo.anim_obj, LV_ALIGN_TOP_LEFT);
lv_obj_clear_flag(ginfo.anim_obj, LV_OBJ_FLAG_SCROLLABLE); lv_obj_remove_flag(ginfo.anim_obj, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_style_bg_color(ginfo.anim_obj, lv_palette_main(LV_PALETTE_RED), LV_PART_MAIN); 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); lv_obj_set_grid_cell(ginfo.anim_obj, LV_GRID_ALIGN_START, 0, 1, LV_GRID_ALIGN_START, 0, 1);

View File

@@ -19,7 +19,7 @@ class LvExampleAnim_3():
self.p1 = 0 self.p1 = 0
self.p2 = 0 self.p2 = 0
self.cont = lv.obj(lv.scr_act()) self.cont = lv.obj(lv.screen_active())
self.cont.set_style_pad_all(2, lv.PART.MAIN) self.cont.set_style_pad_all(2, lv.PART.MAIN)
self.cont.set_style_pad_column(10, lv.PART.MAIN) self.cont.set_style_pad_column(10, lv.PART.MAIN)
self.cont.set_style_pad_row(10, lv.PART.MAIN) self.cont.set_style_pad_row(10, lv.PART.MAIN)
@@ -42,7 +42,7 @@ class LvExampleAnim_3():
self.anim_obj = lv.obj(par) self.anim_obj = lv.obj(par)
self.anim_obj.set_size(30, 30) self.anim_obj.set_size(30, 30)
self.anim_obj.set_align(lv.ALIGN.TOP_LEFT) self.anim_obj.set_align(lv.ALIGN.TOP_LEFT)
self.anim_obj.clear_flag(lv.obj.FLAG.SCROLLABLE) self.anim_obj.remove_flag(lv.obj.FLAG.SCROLLABLE)
self.anim_obj.set_style_bg_color(lv.palette_main(lv.PALETTE.RED), lv.PART.MAIN) self.anim_obj.set_style_bg_color(lv.palette_main(lv.PALETTE.RED), lv.PART.MAIN)
self.anim_obj.set_grid_cell(lv.GRID_ALIGN.START, 0, 1,lv.GRID_ALIGN.START, 0, 1) self.anim_obj.set_grid_cell(lv.GRID_ALIGN.START, 0, 1,lv.GRID_ALIGN.START, 0, 1)

View File

@@ -102,11 +102,11 @@ static void btn_start_event_handler(lv_event_t * e)
lv_anim_timeline_start(anim_timeline); lv_anim_timeline_start(anim_timeline);
} }
static void btn_del_event_handler(lv_event_t * e) static void btn_delete_event_handler(lv_event_t * e)
{ {
LV_UNUSED(e); LV_UNUSED(e);
if(anim_timeline) { if(anim_timeline) {
lv_anim_timeline_del(anim_timeline); lv_anim_timeline_delete(anim_timeline);
anim_timeline = NULL; anim_timeline = NULL;
} }
} }
@@ -136,7 +136,7 @@ static void slider_prg_event_handler(lv_event_t * e)
*/ */
void lv_example_anim_timeline_1(void) void lv_example_anim_timeline_1(void)
{ {
lv_obj_t * par = lv_scr_act(); lv_obj_t * par = lv_screen_active();
lv_obj_set_flex_flow(par, LV_FLEX_FLOW_ROW); lv_obj_set_flex_flow(par, LV_FLEX_FLOW_ROW);
lv_obj_set_flex_align(par, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); lv_obj_set_flex_align(par, LV_FLEX_ALIGN_SPACE_AROUND, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
@@ -153,7 +153,7 @@ void lv_example_anim_timeline_1(void)
/* create btn_del */ /* create btn_del */
lv_obj_t * btn_del = lv_button_create(par); lv_obj_t * btn_del = lv_button_create(par);
lv_obj_add_event(btn_del, btn_del_event_handler, LV_EVENT_CLICKED, NULL); lv_obj_add_event(btn_del, btn_delete_event_handler, LV_EVENT_CLICKED, NULL);
lv_obj_add_flag(btn_del, LV_OBJ_FLAG_IGNORE_LAYOUT); lv_obj_add_flag(btn_del, LV_OBJ_FLAG_IGNORE_LAYOUT);
lv_obj_align(btn_del, LV_ALIGN_TOP_MID, 0, 20); lv_obj_align(btn_del, LV_ALIGN_TOP_MID, 0, 20);

View File

@@ -7,7 +7,7 @@ class LV_ExampleAnimTimeline_1(object):
# Create an animation timeline # Create an animation timeline
# #
self.par = lv.scr_act() self.par = lv.screen_active()
self.par.set_flex_flow(lv.FLEX_FLOW.ROW) self.par.set_flex_flow(lv.FLEX_FLOW.ROW)
self.par.set_flex_align(lv.FLEX_ALIGN.SPACE_AROUND, lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.CENTER) self.par.set_flex_align(lv.FLEX_ALIGN.SPACE_AROUND, lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.CENTER)
@@ -22,7 +22,7 @@ class LV_ExampleAnimTimeline_1(object):
self.label_run.center() self.label_run.center()
self.button_del = lv.button(self.par) self.button_del = lv.button(self.par)
self.button_del.add_event(self.button_del_event_handler, lv.EVENT.CLICKED, None) self.button_del.add_event(self.button_delete_event_handler, lv.EVENT.CLICKED, None)
self.button_del.add_flag(lv.obj.FLAG.IGNORE_LAYOUT) self.button_del.add_flag(lv.obj.FLAG.IGNORE_LAYOUT)
self.button_del.align(lv.ALIGN.TOP_MID, 50, 20) self.button_del.align(lv.ALIGN.TOP_MID, 50, 20)
@@ -134,9 +134,9 @@ class LV_ExampleAnimTimeline_1(object):
self.anim_timeline.set_reverse(reverse) self.anim_timeline.set_reverse(reverse)
self.anim_timeline.start() self.anim_timeline.start()
def button_del_event_handler(self,e): def button_delete_event_handler(self,e):
if self.anim_timeline: if self.anim_timeline:
self.anim_timeline._del() self.anim_timeline._delete()
self.anim_timeline = None self.anim_timeline = None

View File

@@ -17,7 +17,7 @@ static void event_cb(lv_event_t * e)
*/ */
void lv_example_event_1(void) void lv_example_event_1(void)
{ {
lv_obj_t * btn = lv_button_create(lv_scr_act()); lv_obj_t * btn = lv_button_create(lv_screen_active());
lv_obj_set_size(btn, 100, 50); lv_obj_set_size(btn, 100, 50);
lv_obj_center(btn); lv_obj_center(btn);
lv_obj_add_event(btn, event_cb, LV_EVENT_CLICKED, NULL); lv_obj_add_event(btn, event_cb, LV_EVENT_CLICKED, NULL);

View File

@@ -5,7 +5,7 @@ class Event_1():
# Add click event to a button # Add click event to a button
# #
button = lv.button(lv.scr_act()) button = lv.button(lv.screen_active())
button.set_size(100, 50) button.set_size(100, 50)
button.center() button.center()
button.add_event(self.event_cb, lv.EVENT.CLICKED, None) button.add_event(self.event_cb, lv.EVENT.CLICKED, None)

View File

@@ -29,7 +29,7 @@ static void event_cb(lv_event_t * e)
*/ */
void lv_example_event_2(void) void lv_example_event_2(void)
{ {
lv_obj_t * btn = lv_button_create(lv_scr_act()); lv_obj_t * btn = lv_button_create(lv_screen_active());
lv_obj_set_size(btn, 100, 50); lv_obj_set_size(btn, 100, 50);
lv_obj_center(btn); lv_obj_center(btn);
@@ -37,7 +37,7 @@ void lv_example_event_2(void)
lv_label_set_text(btn_label, "Click me!"); lv_label_set_text(btn_label, "Click me!");
lv_obj_center(btn_label); lv_obj_center(btn_label);
lv_obj_t * info_label = lv_label_create(lv_scr_act()); lv_obj_t * info_label = lv_label_create(lv_screen_active());
lv_label_set_text(info_label, "The last button event:\nNone"); lv_label_set_text(info_label, "The last button event:\nNone");
lv_obj_add_event(btn, event_cb, LV_EVENT_ALL, info_label); lv_obj_add_event(btn, event_cb, LV_EVENT_ALL, info_label);

View File

@@ -8,7 +8,7 @@ def event_cb(e,label):
label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED") label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED")
elif code == lv.EVENT.LONG_PRESSED_REPEAT: elif code == lv.EVENT.LONG_PRESSED_REPEAT:
label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT") label.set_text("The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT")
button = lv.button(lv.scr_act()) button = lv.button(lv.screen_active())
button.set_size(100, 50) button.set_size(100, 50)
button.center() button.center()
@@ -16,7 +16,7 @@ button_label = lv.label(button)
button_label.set_text("Click me!") button_label.set_text("Click me!")
button_label.center() button_label.center()
info_label = lv.label(lv.scr_act()) info_label = lv.label(lv.screen_active())
info_label.set_text("The last button event:\nNone") info_label.set_text("The last button event:\nNone")
button.add_event(lambda e: event_cb(e,info_label), lv.EVENT.ALL, None) button.add_event(lambda e: event_cb(e,info_label), lv.EVENT.ALL, None)

View File

@@ -22,7 +22,7 @@ static void event_cb(lv_event_t * e)
void lv_example_event_3(void) void lv_example_event_3(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 290, 200); lv_obj_set_size(cont, 290, 200);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW_WRAP); lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW_WRAP);

View File

@@ -17,7 +17,7 @@ def event_cb(e):
# Demonstrate event bubbling # Demonstrate event bubbling
# #
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(290, 200) cont.set_size(290, 200)
cont.center() cont.center()
cont.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP) cont.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP)

View File

@@ -47,7 +47,7 @@ static void event_cb(lv_event_t * e)
*/ */
void lv_example_event_4(void) void lv_example_event_4(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 200, 200); lv_obj_set_size(cont, 200, 200);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_add_event(cont, event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL); lv_obj_add_event(cont, event_cb, LV_EVENT_DRAW_TASK_ADDED, NULL);

View File

@@ -6,7 +6,7 @@ class LV_Example_Event_4:
# #
self.size = 0 self.size = 0
self.size_dec = False self.size_dec = False
self.cont = lv.obj(lv.scr_act()) self.cont = lv.obj(lv.screen_active())
self.cont.set_size(200, 200) self.cont.set_size(200, 200)
self.cont.center() self.cont.center()
self.cont.add_event(self.event_cb, lv.EVENT.DRAW_TASK_ADDED, None) self.cont.add_event(self.event_cb, lv.EVENT.DRAW_TASK_ADDED, None)

View File

@@ -7,12 +7,12 @@
void lv_example_get_started_1(void) void lv_example_get_started_1(void)
{ {
/*Change the active screen's background color*/ /*Change the active screen's background color*/
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x003a57), LV_PART_MAIN); lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN);
/*Create a white label, set its text and align it to the center*/ /*Create a white label, set its text and align it to the center*/
lv_obj_t * label = lv_label_create(lv_scr_act()); lv_obj_t * label = lv_label_create(lv_screen_active());
lv_label_set_text(label, "Hello world"); lv_label_set_text(label, "Hello world");
lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); lv_obj_set_style_text_color(lv_screen_active(), lv_color_hex(0xffffff), LV_PART_MAIN);
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0); lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
} }

View File

@@ -1,9 +1,9 @@
# Change the active screen's background color # Change the active screen's background color
scr = lv.scr_act() scr = lv.screen_active()
scr.set_style_bg_color(lv.color_hex(0x003a57), lv.PART.MAIN) scr.set_style_bg_color(lv.color_hex(0x003a57), lv.PART.MAIN)
# Create a white label, set its text and align it to the center # Create a white label, set its text and align it to the center
label = lv.label(lv.scr_act()) label = lv.label(lv.screen_active())
label.set_text("Hello world") label.set_text("Hello world")
label.set_style_text_color(lv.color_hex(0xffffff), lv.PART.MAIN) label.set_style_text_color(lv.color_hex(0xffffff), lv.PART.MAIN)
label.align(lv.ALIGN.CENTER, 0, 0) label.align(lv.ALIGN.CENTER, 0, 0)

View File

@@ -20,7 +20,7 @@ static void btn_event_cb(lv_event_t * e)
*/ */
void lv_example_get_started_2(void) void lv_example_get_started_2(void)
{ {
lv_obj_t * btn = lv_button_create(lv_scr_act()); /*Add a button the current screen*/ lv_obj_t * btn = lv_button_create(lv_screen_active()); /*Add a button the current screen*/
lv_obj_set_pos(btn, 10, 10); /*Set its position*/ lv_obj_set_pos(btn, 10, 10); /*Set its position*/
lv_obj_set_size(btn, 120, 50); /*Set its size*/ lv_obj_set_size(btn, 120, 50); /*Set its size*/
lv_obj_add_event(btn, btn_event_cb, LV_EVENT_ALL, NULL); /*Assign a callback to the button*/ lv_obj_add_event(btn, btn_event_cb, LV_EVENT_ALL, NULL); /*Assign a callback to the button*/

View File

@@ -5,7 +5,7 @@ class CounterBtn():
# Create a button with a label and react on click event. # Create a button with a label and react on click event.
# #
button = lv.button(lv.scr_act()) # Add a button the current screen button = lv.button(lv.screen_active()) # Add a button the current screen
button.set_pos(10, 10) # Set its position button.set_pos(10, 10) # Set its position
button.set_size(120, 50) # Set its size button.set_size(120, 50) # Set its size
button.align(lv.ALIGN.CENTER,0,0) button.align(lv.ALIGN.CENTER,0,0)

View File

@@ -50,7 +50,7 @@ void lv_example_get_started_3(void)
style_init(); style_init();
/*Create a button and use the new styles*/ /*Create a button and use the new styles*/
lv_obj_t * btn = lv_button_create(lv_scr_act()); lv_obj_t * btn = lv_button_create(lv_screen_active());
/* Remove the styles coming from the theme /* Remove the styles coming from the theme
* Note that size and position are also stored as style properties * Note that size and position are also stored as style properties
* so lv_obj_remove_style_all will remove the set size and position too */ * so lv_obj_remove_style_all will remove the set size and position too */
@@ -66,7 +66,7 @@ void lv_example_get_started_3(void)
lv_obj_center(label); lv_obj_center(label);
/*Create another button and use the red style too*/ /*Create another button and use the red style too*/
lv_obj_t * btn2 = lv_button_create(lv_scr_act()); lv_obj_t * btn2 = lv_button_create(lv_screen_active());
lv_obj_remove_style_all(btn2); /*Remove the styles coming from the theme*/ lv_obj_remove_style_all(btn2); /*Remove the styles coming from the theme*/
lv_obj_set_pos(btn2, 10, 80); lv_obj_set_pos(btn2, 10, 80);
lv_obj_set_size(btn2, 120, 50); lv_obj_set_size(btn2, 120, 50);

View File

@@ -32,7 +32,7 @@ style_button_pressed.set_bg_color(lv.palette_main(lv.PALETTE.BLUE))
style_button_pressed.set_bg_grad_color(lv.palette_darken(lv.PALETTE.RED, 3)) style_button_pressed.set_bg_grad_color(lv.palette_darken(lv.PALETTE.RED, 3))
# Create a button and use the new styles # Create a button and use the new styles
button = lv.button(lv.scr_act()) # Add a button the current screen button = lv.button(lv.screen_active()) # Add a button the current screen
# Remove the styles coming from the theme # Remove the styles coming from the theme
# Note that size and position are also stored as style properties # Note that size and position are also stored as style properties
# so lv_obj_remove_style_all will remove the set size and position too # so lv_obj_remove_style_all will remove the set size and position too
@@ -47,12 +47,12 @@ label.set_text("Button") # Set the labels text
label.center() label.center()
# Create a slider in the center of the display # Create a slider in the center of the display
slider = lv.slider(lv.scr_act()) slider = lv.slider(lv.screen_active())
slider.set_width(200) # Set the width slider.set_width(200) # Set the width
slider.center() # Align to the center of the parent (screen) slider.center() # Align to the center of the parent (screen)
# Create another button and use the red style too # Create another button and use the red style too
button2 = lv.button(lv.scr_act()) button2 = lv.button(lv.screen_active())
button2.remove_style_all() # Remove the styles coming from the theme button2.remove_style_all() # Remove the styles coming from the theme
button2.set_pos(10, 80) # Set its position button2.set_pos(10, 80) # Set its position
button2.set_size(120, 50) # Set its size button2.set_size(120, 50) # Set its size

View File

@@ -18,13 +18,13 @@ static void slider_event_cb(lv_event_t * e)
void lv_example_get_started_4(void) void lv_example_get_started_4(void)
{ {
/*Create a slider in the center of the display*/ /*Create a slider in the center of the display*/
lv_obj_t * slider = lv_slider_create(lv_scr_act()); lv_obj_t * slider = lv_slider_create(lv_screen_active());
lv_obj_set_width(slider, 200); /*Set the width*/ lv_obj_set_width(slider, 200); /*Set the width*/
lv_obj_center(slider); /*Align to the center of the parent (screen)*/ lv_obj_center(slider); /*Align to the center of the parent (screen)*/
lv_obj_add_event(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL); /*Assign an event function*/ lv_obj_add_event(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL); /*Assign an event function*/
/*Create a label above the slider*/ /*Create a label above the slider*/
label = lv_label_create(lv_scr_act()); label = lv_label_create(lv_screen_active());
lv_label_set_text(label, "0"); lv_label_set_text(label, "0");
lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); /*Align top of the slider*/ lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); /*Align top of the slider*/
} }

View File

@@ -9,13 +9,13 @@ def slider_event_cb(e):
# #
# Create a slider in the center of the display # Create a slider in the center of the display
slider = lv.slider(lv.scr_act()) slider = lv.slider(lv.screen_active())
slider.set_width(200) # Set the width slider.set_width(200) # Set the width
slider.center() # Align to the center of the parent (screen) slider.center() # Align to the center of the parent (screen)
slider.add_event(slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # Assign an event function slider.add_event(slider_event_cb, lv.EVENT.VALUE_CHANGED, None) # Assign an event function
# Create a label above the slider # Create a label above the slider
label = lv.label(lv.scr_act()) label = lv.label(lv.screen_active())
label.set_text("0") label.set_text("0")
label.align_to(slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # Align below the slider label.align_to(slider, lv.ALIGN.OUT_TOP_MID, 0, -15) # Align below the slider

View File

@@ -7,13 +7,13 @@
void lv_example_flex_1(void) void lv_example_flex_1(void)
{ {
/*Create a container with ROW flex direction*/ /*Create a container with ROW flex direction*/
lv_obj_t * cont_row = lv_obj_create(lv_scr_act()); lv_obj_t * cont_row = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont_row, 300, 75); lv_obj_set_size(cont_row, 300, 75);
lv_obj_align(cont_row, LV_ALIGN_TOP_MID, 0, 5); lv_obj_align(cont_row, LV_ALIGN_TOP_MID, 0, 5);
lv_obj_set_flex_flow(cont_row, LV_FLEX_FLOW_ROW); lv_obj_set_flex_flow(cont_row, LV_FLEX_FLOW_ROW);
/*Create a container with COLUMN flex direction*/ /*Create a container with COLUMN flex direction*/
lv_obj_t * cont_col = lv_obj_create(lv_scr_act()); lv_obj_t * cont_col = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont_col, 200, 150); lv_obj_set_size(cont_col, 200, 150);
lv_obj_align_to(cont_col, cont_row, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); lv_obj_align_to(cont_col, cont_row, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
lv_obj_set_flex_flow(cont_col, LV_FLEX_FLOW_COLUMN); lv_obj_set_flex_flow(cont_col, LV_FLEX_FLOW_COLUMN);

View File

@@ -3,13 +3,13 @@
# #
# Create a container with ROW flex direction # Create a container with ROW flex direction
cont_row = lv.obj(lv.scr_act()) cont_row = lv.obj(lv.screen_active())
cont_row.set_size(300, 75) cont_row.set_size(300, 75)
cont_row.align(lv.ALIGN.TOP_MID, 0, 5) cont_row.align(lv.ALIGN.TOP_MID, 0, 5)
cont_row.set_flex_flow(lv.FLEX_FLOW.ROW) cont_row.set_flex_flow(lv.FLEX_FLOW.ROW)
# Create a container with COLUMN flex direction # Create a container with COLUMN flex direction
cont_col = lv.obj(lv.scr_act()) cont_col = lv.obj(lv.screen_active())
cont_col.set_size(200, 150) cont_col.set_size(200, 150)
cont_col.align_to(cont_row, lv.ALIGN.OUT_BOTTOM_MID, 0, 5) cont_col.align_to(cont_row, lv.ALIGN.OUT_BOTTOM_MID, 0, 5)
cont_col.set_flex_flow(lv.FLEX_FLOW.COLUMN) cont_col.set_flex_flow(lv.FLEX_FLOW.COLUMN)

View File

@@ -12,7 +12,7 @@ void lv_example_flex_2(void)
lv_style_set_flex_main_place(&style, LV_FLEX_ALIGN_SPACE_EVENLY); lv_style_set_flex_main_place(&style, LV_FLEX_ALIGN_SPACE_EVENLY);
lv_style_set_layout(&style, LV_LAYOUT_FLEX); lv_style_set_layout(&style, LV_LAYOUT_FLEX);
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_add_style(cont, &style, 0); lv_obj_add_style(cont, &style, 0);

View File

@@ -7,7 +7,7 @@ style.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP)
style.set_flex_main_place(lv.FLEX_ALIGN.SPACE_EVENLY) style.set_flex_main_place(lv.FLEX_ALIGN.SPACE_EVENLY)
style.set_layout(lv.LAYOUT.FLEX) style.set_layout(lv.LAYOUT.FLEX)
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.add_style(style, 0) cont.add_style(style, 0)

View File

@@ -6,7 +6,7 @@
*/ */
void lv_example_flex_3(void) void lv_example_flex_3(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW); lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW);

View File

@@ -2,7 +2,7 @@
# Demonstrate flex grow. # Demonstrate flex grow.
# #
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_flex_flow(lv.FLEX_FLOW.ROW) cont.set_flex_flow(lv.FLEX_FLOW.ROW)

View File

@@ -7,7 +7,7 @@
void lv_example_flex_4(void) void lv_example_flex_4(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN_REVERSE); lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN_REVERSE);

View File

@@ -1,7 +1,7 @@
# #
# Reverse the order of flex items # Reverse the order of flex items
# #
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_flex_flow(lv.FLEX_FLOW.COLUMN_REVERSE) cont.set_flex_flow(lv.FLEX_FLOW.COLUMN_REVERSE)

View File

@@ -16,7 +16,7 @@ static void column_gap_anim(void * obj, int32_t v)
*/ */
void lv_example_flex_5(void) void lv_example_flex_5(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW_WRAP); lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW_WRAP);

View File

@@ -9,7 +9,7 @@ def column_gap_anim(obj, v):
# Demonstrate the effect of column and row gap style properties # Demonstrate the effect of column and row gap style properties
# #
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP) cont.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP)

View File

@@ -7,7 +7,7 @@
*/ */
void lv_example_flex_6(void) void lv_example_flex_6(void)
{ {
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_style_base_dir(cont, LV_BASE_DIR_RTL, 0); lv_obj_set_style_base_dir(cont, LV_BASE_DIR_RTL, 0);
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);

View File

@@ -3,7 +3,7 @@
# Also demonstrate how horizontal scrolling works with RTL. # Also demonstrate how horizontal scrolling works with RTL.
# #
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_style_base_dir(lv.BASE_DIR.RTL,0) cont.set_style_base_dir(lv.BASE_DIR.RTL,0)
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()

View File

@@ -10,7 +10,7 @@ void lv_example_grid_1(void)
static lv_coord_t row_dsc[] = {50, 50, 50, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {50, 50, 50, LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_style_grid_column_dsc_array(cont, col_dsc, 0); lv_obj_set_style_grid_column_dsc_array(cont, col_dsc, 0);
lv_obj_set_style_grid_row_dsc_array(cont, row_dsc, 0); lv_obj_set_style_grid_row_dsc_array(cont, row_dsc, 0);
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);

View File

@@ -6,7 +6,7 @@ col_dsc = [70, 70, 70, lv.GRID_TEMPLATE_LAST]
row_dsc = [50, 50, 50, lv.GRID_TEMPLATE_LAST] row_dsc = [50, 50, 50, lv.GRID_TEMPLATE_LAST]
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_style_grid_column_dsc_array(col_dsc, 0) cont.set_style_grid_column_dsc_array(col_dsc, 0)
cont.set_style_grid_row_dsc_array(row_dsc, 0) cont.set_style_grid_row_dsc_array(row_dsc, 0)
cont.set_size(300, 220) cont.set_size(300, 220)

View File

@@ -11,7 +11,7 @@ void lv_example_grid_2(void)
static lv_coord_t row_dsc[] = {50, 50, 50, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {50, 50, 50, LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc); lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc);
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);

View File

@@ -6,7 +6,7 @@ col_dsc = [70, 70, 70, lv.GRID_TEMPLATE_LAST]
row_dsc = [50, 50, 50, lv.GRID_TEMPLATE_LAST] row_dsc = [50, 50, 50, lv.GRID_TEMPLATE_LAST]
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_grid_dsc_array(col_dsc, row_dsc) cont.set_grid_dsc_array(col_dsc, row_dsc)
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()

View File

@@ -17,7 +17,7 @@ void lv_example_grid_3(void)
static lv_coord_t row_dsc[] = {50, LV_GRID_FR(1), 50, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {50, LV_GRID_FR(1), 50, LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc); lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc);

View File

@@ -15,7 +15,7 @@ col_dsc = [60, lv.grid_fr(1), lv.grid_fr(2), lv.GRID_TEMPLATE_LAST]
row_dsc = [40, lv.grid_fr(1), 40, lv.GRID_TEMPLATE_LAST] row_dsc = [40, lv.grid_fr(1), 40, lv.GRID_TEMPLATE_LAST]
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_grid_dsc_array(col_dsc, row_dsc) cont.set_grid_dsc_array(col_dsc, row_dsc)

View File

@@ -13,7 +13,7 @@ void lv_example_grid_4(void)
/*Add space between the columns and move the rows to the bottom (end)*/ /*Add space between the columns and move the rows to the bottom (end)*/
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_grid_align(cont, LV_GRID_ALIGN_SPACE_BETWEEN, LV_GRID_ALIGN_END); lv_obj_set_grid_align(cont, LV_GRID_ALIGN_SPACE_BETWEEN, LV_GRID_ALIGN_END);
lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc); lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc);
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);

View File

@@ -9,7 +9,7 @@ row_dsc = [40, 40, 40, lv.GRID_TEMPLATE_LAST]
# Add space between the columns and move the rows to the bottom (end) # Add space between the columns and move the rows to the bottom (end)
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_grid_align(lv.GRID_ALIGN.SPACE_BETWEEN, lv.GRID_ALIGN.END) cont.set_grid_align(lv.GRID_ALIGN.SPACE_BETWEEN, lv.GRID_ALIGN.END)
cont.set_grid_dsc_array(col_dsc, row_dsc) cont.set_grid_dsc_array(col_dsc, row_dsc)
cont.set_size(300, 220) cont.set_size(300, 220)

View File

@@ -22,7 +22,7 @@ void lv_example_grid_5(void)
static lv_coord_t row_dsc[] = {45, 45, 45, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {45, 45, 45, LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc); lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc);

View File

@@ -13,7 +13,7 @@ col_dsc = [60, 60, 60, lv.GRID_TEMPLATE_LAST]
row_dsc = [40, 40, 40, lv.GRID_TEMPLATE_LAST] row_dsc = [40, 40, 40, lv.GRID_TEMPLATE_LAST]
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_grid_dsc_array(col_dsc, row_dsc) cont.set_grid_dsc_array(col_dsc, row_dsc)

View File

@@ -11,7 +11,7 @@ void lv_example_grid_6(void)
static lv_coord_t row_dsc[] = {45, 45, 45, LV_GRID_TEMPLATE_LAST}; static lv_coord_t row_dsc[] = {45, 45, 45, LV_GRID_TEMPLATE_LAST};
/*Create a container with grid*/ /*Create a container with grid*/
lv_obj_t * cont = lv_obj_create(lv_scr_act()); lv_obj_t * cont = lv_obj_create(lv_screen_active());
lv_obj_set_size(cont, 300, 220); lv_obj_set_size(cont, 300, 220);
lv_obj_center(cont); lv_obj_center(cont);
lv_obj_set_style_base_dir(cont, LV_BASE_DIR_RTL, 0); lv_obj_set_style_base_dir(cont, LV_BASE_DIR_RTL, 0);

View File

@@ -5,7 +5,7 @@ col_dsc = [60, 60, 60, lv.GRID_TEMPLATE_LAST]
row_dsc = [40, 40, 40, lv.GRID_TEMPLATE_LAST] row_dsc = [40, 40, 40, lv.GRID_TEMPLATE_LAST]
# Create a container with grid # Create a container with grid
cont = lv.obj(lv.scr_act()) cont = lv.obj(lv.screen_active())
cont.set_size(300, 220) cont.set_size(300, 220)
cont.center() cont.center()
cont.set_style_base_dir(lv.BASE_DIR.RTL,0) cont.set_style_base_dir(lv.BASE_DIR.RTL,0)

View File

@@ -9,7 +9,7 @@ void lv_example_barcode_1(void)
lv_color_t bg_color = lv_palette_lighten(LV_PALETTE_LIGHT_BLUE, 5); lv_color_t bg_color = lv_palette_lighten(LV_PALETTE_LIGHT_BLUE, 5);
lv_color_t fg_color = lv_palette_darken(LV_PALETTE_BLUE, 4); lv_color_t fg_color = lv_palette_darken(LV_PALETTE_BLUE, 4);
lv_obj_t * barcode = lv_barcode_create(lv_scr_act()); lv_obj_t * barcode = lv_barcode_create(lv_screen_active());
lv_obj_set_height(barcode, 50); lv_obj_set_height(barcode, 50);
lv_obj_center(barcode); lv_obj_center(barcode);

View File

@@ -5,7 +5,7 @@ import display_driver
bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5) bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4) fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
barcode = lv.barcode(lv.scr_act()) barcode = lv.barcode(lv.screen_active())
barcode.set_height(50) barcode.set_height(50)
barcode.center() barcode.center()

View File

@@ -6,7 +6,7 @@
*/ */
void lv_example_bmp_1(void) void lv_example_bmp_1(void)
{ {
lv_obj_t * img = lv_image_create(lv_scr_act()); lv_obj_t * img = lv_image_create(lv_screen_active());
/* Assuming a File system is attached to letter 'A' /* Assuming a File system is attached to letter 'A'
* E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */ * E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
lv_image_set_src(img, "A:lvgl/examples/libs/bmp/example_32bit.bmp"); lv_image_set_src(img, "A:lvgl/examples/libs/bmp/example_32bit.bmp");

Some files were not shown because too many files have changed in this diff Show More