Lines Matching +full:- +full:y

93     if(text == NULL) text = label->text;  in lv_label_set_text()
95 if(label->text == text && label->static_txt == 0) { in lv_label_set_text()
101 label->text = lv_mem_realloc(label->text, len); in lv_label_set_text()
102 LV_ASSERT_MALLOC(label->text); in lv_label_set_text()
103 if(label->text == NULL) return; in lv_label_set_text()
105 _lv_txt_ap_proc(label->text, label->text); in lv_label_set_text()
107 label->text = lv_mem_realloc(label->text, strlen(label->text) + 1); in lv_label_set_text()
110 LV_ASSERT_MALLOC(label->text); in lv_label_set_text()
111 if(label->text == NULL) return; in lv_label_set_text()
115 if(label->text != NULL && label->static_txt == 0) { in lv_label_set_text()
116 lv_mem_free(label->text); in lv_label_set_text()
117 label->text = NULL; in lv_label_set_text()
124 label->text = lv_mem_alloc(len); in lv_label_set_text()
125 LV_ASSERT_MALLOC(label->text); in lv_label_set_text()
126 if(label->text == NULL) return; in lv_label_set_text()
128 _lv_txt_ap_proc(text, label->text); in lv_label_set_text()
134 label->text = lv_mem_alloc(len); in lv_label_set_text()
135 LV_ASSERT_MALLOC(label->text); in lv_label_set_text()
136 if(label->text == NULL) return; in lv_label_set_text()
137 strcpy(label->text, text); in lv_label_set_text()
141 label->static_txt = 0; in lv_label_set_text()
161 if(label->text != NULL && label->static_txt == 0) { in lv_label_set_text_fmt()
162 lv_mem_free(label->text); in lv_label_set_text_fmt()
163 label->text = NULL; in lv_label_set_text_fmt()
168 label->text = _lv_txt_set_text_vfmt(fmt, args); in lv_label_set_text_fmt()
170 label->static_txt = 0; /*Now the text is dynamically allocated*/ in lv_label_set_text_fmt()
180 if(label->static_txt == 0 && label->text != NULL) { in lv_label_set_text_static()
181 lv_mem_free(label->text); in lv_label_set_text_static()
182 label->text = NULL; in lv_label_set_text_static()
186 label->static_txt = 1; in lv_label_set_text_static()
187 label->text = (char *)text; in lv_label_set_text_static()
202 label->offset.x = 0; in lv_label_set_long_mode()
203 label->offset.y = 0; in lv_label_set_long_mode()
206 label->expand = 1; in lv_label_set_long_mode()
208 label->expand = 0; in lv_label_set_long_mode()
211 if(label->long_mode == LV_LABEL_LONG_DOT && label->dot_end != LV_LABEL_DOT_END_INV) { in lv_label_set_long_mode()
215 label->long_mode = long_mode; in lv_label_set_long_mode()
224 if(label->recolor == en) return; in lv_label_set_recolor()
226 label->recolor = en == false ? 0 : 1; in lv_label_set_recolor()
238 label->sel_start = index; in lv_label_set_text_sel_start()
252 label->sel_end = index; in lv_label_set_text_sel_end()
268 return label->text; in lv_label_get_text()
275 return label->long_mode; in lv_label_get_long_mode()
283 return label->recolor == 0 ? false : true; in lv_label_get_recolor()
296 pos->y = 0; in lv_label_get_letter_pos()
299 pos->x = 0; in lv_label_get_letter_pos()
302 pos->x = lv_obj_get_content_width(obj); in lv_label_get_letter_pos()
305 pos->x = lv_obj_get_content_width(obj) / 2; in lv_label_get_letter_pos()
321 lv_coord_t y = 0; in lv_label_get_letter_pos() local
324 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in lv_label_get_letter_pos()
325 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in lv_label_get_letter_pos()
326 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT… in lv_label_get_letter_pos()
336 y += letter_height + line_space; in lv_label_get_letter_pos()
342 if((txt[byte_id - 1] == '\n' || txt[byte_id - 1] == '\r') && txt[byte_id] == '\0') { in lv_label_get_letter_pos()
343 y += letter_height + line_space; in lv_label_get_letter_pos()
357 visual_byte_pos = base_dir == LV_BASE_DIR_RTL ? 0 : byte_id - line_start; in lv_label_get_letter_pos()
361 uint32_t line_char_id = _lv_txt_encoded_get_char_id(&txt[line_start], byte_id - line_start); in lv_label_get_letter_pos()
364 …har_pos = _lv_bidi_get_visual_pos(&txt[line_start], &mutable_bidi_txt, new_line_start - line_start, in lv_label_get_letter_pos()
373 visual_byte_pos = byte_id - line_start; in lv_label_get_letter_pos()
382 line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); in lv_label_get_letter_pos()
383 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; in lv_label_get_letter_pos()
388 line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); in lv_label_get_letter_pos()
390 x += lv_area_get_width(&txt_coords) - line_w; in lv_label_get_letter_pos()
392 pos->x = x; in lv_label_get_letter_pos()
393 pos->y = y; in lv_label_get_letter_pos()
407 pos.x = pos_in->x - lv_obj_get_style_pad_left(obj, LV_PART_MAIN); in lv_label_get_letter_on()
408 pos.y = pos_in->y - lv_obj_get_style_pad_top(obj, LV_PART_MAIN); in lv_label_get_letter_on()
420 lv_coord_t y = 0; in lv_label_get_letter_on() local
425 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in lv_label_get_letter_on()
426 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in lv_label_get_letter_on()
427 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT… in lv_label_get_letter_on()
429 lv_text_align_t align = lv_obj_calculate_style_text_align(obj, LV_PART_MAIN, label->text); in lv_label_get_letter_on()
435 if(pos.y <= y + letter_height) { in lv_label_get_letter_on()
444 y += letter_height + line_space; in lv_label_get_letter_on()
450 bidi_txt = lv_mem_buf_get(new_line_start - line_start + 1); in lv_label_get_letter_on()
451 uint32_t txt_len = new_line_start - line_start; in lv_label_get_letter_on()
452 if(new_line_start > 0 && txt[new_line_start - 1] == '\0' && txt_len > 0) txt_len--; in lv_label_get_letter_on()
462 line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); in lv_label_get_letter_on()
463 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; in lv_label_get_letter_on()
467 line_w = lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); in lv_label_get_letter_on()
468 x += lv_area_get_width(&txt_coords) - line_w; in lv_label_get_letter_on()
540 lv_text_align_t align = lv_obj_calculate_style_text_align(obj, LV_PART_MAIN, label->text); in lv_label_is_char_under_pos()
542 lv_coord_t y = 0; in lv_label_is_char_under_pos() local
545 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in lv_label_is_char_under_pos()
546 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in lv_label_is_char_under_pos()
547 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT… in lv_label_is_char_under_pos()
553 if(pos->y <= y + letter_height) break; /*The line is found (stored in 'line_start')*/ in lv_label_is_char_under_pos()
554 y += letter_height + line_space; in lv_label_is_char_under_pos()
564 …line_w = lv_txt_get_width(&txt[line_start], new_line_start - line_start, font, letter_space, flag); in lv_label_is_char_under_pos()
565 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; in lv_label_is_char_under_pos()
569 …line_w = lv_txt_get_width(&txt[line_start], new_line_start - line_start, font, letter_space, flag); in lv_label_is_char_under_pos()
570 x += lv_area_get_width(&txt_coords) - line_w; in lv_label_is_char_under_pos()
581 while(i <= new_line_start - 1) { in lv_label_is_char_under_pos()
594 if(pos->x < x) { in lv_label_is_char_under_pos()
604 return (pos->x >= (last_x - letter_space) && pos->x <= (last_x + max_diff)); in lv_label_is_char_under_pos()
613 return label->sel_start; in lv_label_get_text_selection_start()
627 return label->sel_end; in lv_label_get_text_selection_end()
646 if(label->static_txt != 0) return; in lv_label_ins_text()
651 size_t old_len = strlen(label->text); in lv_label_ins_text()
654 label->text = lv_mem_realloc(label->text, new_len + 1); in lv_label_ins_text()
655 LV_ASSERT_MALLOC(label->text); in lv_label_ins_text()
656 if(label->text == NULL) return; in lv_label_ins_text()
659 pos = _lv_txt_get_encoded_length(label->text); in lv_label_ins_text()
662 _lv_txt_ins(label->text, pos, txt); in lv_label_ins_text()
672 if(label->static_txt != 0) return; in lv_label_cut_text()
695 label->text = NULL; in lv_label_constructor()
696 label->static_txt = 0; in lv_label_constructor()
697 label->recolor = 0; in lv_label_constructor()
698 label->dot_end = LV_LABEL_DOT_END_INV; in lv_label_constructor()
699 label->long_mode = LV_LABEL_LONG_WRAP; in lv_label_constructor()
700 label->offset.x = 0; in lv_label_constructor()
701 label->offset.y = 0; in lv_label_constructor()
704 label->hint.line_start = -1; in lv_label_constructor()
705 label->hint.coord_y = 0; in lv_label_constructor()
706 label->hint.y = 0; in lv_label_constructor()
710 label->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; in lv_label_constructor()
711 label->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; in lv_label_constructor()
713 label->dot.tmp_ptr = NULL; in lv_label_constructor()
714 label->dot_tmp_alloc = 0; in lv_label_constructor()
729 if(!label->static_txt) lv_mem_free(label->text); in lv_label_destructor()
730 label->text = NULL; in lv_label_destructor()
752 /* Italic or other non-typical letters can be drawn of out of the object. in lv_label_event()
771 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in lv_label_event()
772 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in lv_label_event()
775 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) w = LV_COORD_MA… in lv_label_event()
778 lv_txt_get_size(&size, label->text, font, letter_space, line_space, w, flag); in lv_label_event()
781 self_size->x = LV_MAX(self_size->x, size.x); in lv_label_event()
782 self_size->y = LV_MAX(self_size->y, size.y); in lv_label_event()
799 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in draw_main()
800 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in draw_main()
801 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT… in draw_main()
806 label_draw_dsc.ofs_x = label->offset.x; in draw_main()
807 label_draw_dsc.ofs_y = label->offset.y; in draw_main()
811 lv_bidi_calculate_align(&label_draw_dsc.align, &label_draw_dsc.bidi_dir, label->text); in draw_main()
822 …if((label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR)… in draw_main()
825 …lv_txt_get_size(&size, label->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_d… in draw_main()
832 lv_draw_label_hint_t * hint = &label->hint; in draw_main()
833 …if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR || lv_area_get_height(&txt_coords) < LV_LABEL… in draw_main()
842 bool is_common = _lv_area_intersect(&txt_clip, &txt_coords, draw_ctx->clip_area); in draw_main()
845 if(label->long_mode == LV_LABEL_LONG_WRAP) { in draw_main()
847 lv_area_move(&txt_coords, 0, -s); in draw_main()
848 txt_coords.y2 = obj->coords.y2; in draw_main()
850 …if(label->long_mode == LV_LABEL_LONG_SCROLL || label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { in draw_main()
851 const lv_area_t * clip_area_ori = draw_ctx->clip_area; in draw_main()
852 draw_ctx->clip_area = &txt_clip; in draw_main()
853 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); in draw_main()
854 draw_ctx->clip_area = clip_area_ori; in draw_main()
857 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); in draw_main()
860 const lv_area_t * clip_area_ori = draw_ctx->clip_area; in draw_main()
861 draw_ctx->clip_area = &txt_clip; in draw_main()
863 if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { in draw_main()
865 …lv_txt_get_size(&size, label->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_d… in draw_main()
870 label_draw_dsc.ofs_x = label->offset.x + size.x + in draw_main()
872 label_draw_dsc.ofs_y = label->offset.y; in draw_main()
874 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); in draw_main()
878 if(size.y > lv_area_get_height(&txt_coords)) { in draw_main()
879 label_draw_dsc.ofs_x = label->offset.x; in draw_main()
880 … label_draw_dsc.ofs_y = label->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font); in draw_main()
882 lv_draw_label(draw_ctx, &label_draw_dsc, &txt_coords, label->text, hint); in draw_main()
886 draw_ctx->clip_area = clip_area_ori; in draw_main()
896 if(label->text == NULL) return; in lv_label_refr_text()
898 label->hint.line_start = -1; /*The hint is invalid if the text changes*/ in lv_label_refr_text()
911 if(label->recolor != 0) flag |= LV_TEXT_FLAG_RECOLOR; in lv_label_refr_text()
912 if(label->expand != 0) flag |= LV_TEXT_FLAG_EXPAND; in lv_label_refr_text()
913 …if(lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT && !obj->w_layout) flag |= LV_TEXT… in lv_label_refr_text()
915 lv_txt_get_size(&size, label->text, font, letter_space, line_space, max_w, flag); in lv_label_refr_text()
920 if(label->long_mode == LV_LABEL_LONG_SCROLL) { in lv_label_refr_text()
937 base_dir = _lv_bidi_detect_base_dir(label->text); in lv_label_refr_text()
940 start = lv_area_get_width(&txt_coords) - size.x; in lv_label_refr_text()
945 end = lv_area_get_width(&txt_coords) - size.x; in lv_label_refr_text()
950 lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); in lv_label_refr_text()
959 act_time = anim_cur->act_time; in lv_label_refr_text()
960 playback_now = anim_cur->playback_now; in lv_label_refr_text()
983 label->offset.x = 0; in lv_label_refr_text()
986 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { in lv_label_refr_text()
987 …lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font… in lv_label_refr_text()
994 act_time = anim_cur->act_time; in lv_label_refr_text()
995 playback_now = anim_cur->playback_now; in lv_label_refr_text()
1017 label->offset.y = 0; in lv_label_refr_text()
1021 else if(label->long_mode == LV_LABEL_LONG_SCROLL_CIRCULAR) { in lv_label_refr_text()
1037 base_dir = _lv_bidi_detect_base_dir(label->text); in lv_label_refr_text()
1040 … start = -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; in lv_label_refr_text()
1045 end = -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; in lv_label_refr_text()
1050 …lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_C… in lv_label_refr_text()
1056 int32_t act_time = anim_cur ? anim_cur->act_time : 0; in lv_label_refr_text()
1060 a.act_time = anim_template->act_time; in lv_label_refr_text()
1061 a.repeat_delay = anim_template->repeat_delay; in lv_label_refr_text()
1064 …act_time = act_time; /*To keep the old position when the label text is updated mid-scrolling*/ in lv_label_refr_text()
1074 label->offset.x = 0; in lv_label_refr_text()
1077 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { in lv_label_refr_text()
1078 lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); in lv_label_refr_text()
1083 int32_t act_time = anim_cur ? anim_cur->act_time : 0; in lv_label_refr_text()
1087 a.act_time = anim_template->act_time; in lv_label_refr_text()
1088 a.repeat_delay = anim_template->repeat_delay; in lv_label_refr_text()
1091 …act_time = act_time; /*To keep the old position when the label text is updated mid-scrolling*/ in lv_label_refr_text()
1100 label->offset.y = 0; in lv_label_refr_text()
1103 else if(label->long_mode == LV_LABEL_LONG_DOT) { in lv_label_refr_text()
1104 … if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/ in lv_label_refr_text()
1105 label->dot_end = LV_LABEL_DOT_END_INV; in lv_label_refr_text()
1107 … else if(size.y <= lv_font_get_line_height(font)) { /*No dots are required for one-line texts*/ in lv_label_refr_text()
1108 label->dot_end = LV_LABEL_DOT_END_INV; in lv_label_refr_text()
1110 …else if(_lv_txt_get_encoded_length(label->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all … in lv_label_refr_text()
1111 label->dot_end = LV_LABEL_DOT_END_INV; in lv_label_refr_text()
1116 p.x = lv_area_get_width(&txt_coords) - in lv_label_refr_text()
1119 p.y = lv_area_get_height(&txt_coords); in lv_label_refr_text()
1120 y_overed = p.y % in lv_label_refr_text()
1123 p.y -= y_overed; in lv_label_refr_text()
1124 p.y += lv_font_get_line_height(font); in lv_label_refr_text()
1127 p.y -= y_overed; in lv_label_refr_text()
1128 p.y -= line_space; in lv_label_refr_text()
1134 size_t txt_len = strlen(label->text); in lv_label_refr_text()
1135 uint32_t byte_id = _lv_txt_encoded_get_byte_id(label->text, letter_id); in lv_label_refr_text()
1137 _lv_txt_encoded_prev(label->text, &byte_id); in lv_label_refr_text()
1138 letter_id--; in lv_label_refr_text()
1146 len += _lv_txt_encoded_size(&label->text[byte_id]); in lv_label_refr_text()
1147 _lv_txt_encoded_next(label->text, &byte_id); in lv_label_refr_text()
1153 if(lv_label_set_dot_tmp(obj, &label->text[byte_id_ori], len)) { in lv_label_refr_text()
1155 label->text[byte_id_ori + i] = '.'; in lv_label_refr_text()
1157 label->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0'; in lv_label_refr_text()
1158 label->dot_end = letter_id + LV_LABEL_DOT_NUM; in lv_label_refr_text()
1162 else if(label->long_mode == LV_LABEL_LONG_CLIP) { in lv_label_refr_text()
1174 if(label->long_mode != LV_LABEL_LONG_DOT) return; in lv_label_revert_dots()
1175 if(label->dot_end == LV_LABEL_DOT_END_INV) return; in lv_label_revert_dots()
1176 uint32_t letter_i = label->dot_end - LV_LABEL_DOT_NUM; in lv_label_revert_dots()
1177 uint32_t byte_i = _lv_txt_encoded_get_byte_id(label->text, letter_i); in lv_label_revert_dots()
1182 while(label->text[byte_i + i] != '\0') { in lv_label_revert_dots()
1183 label->text[byte_i + i] = dot_tmp[i]; in lv_label_revert_dots()
1186 label->text[byte_i + i] = dot_tmp[i]; in lv_label_revert_dots()
1189 label->dot_end = LV_LABEL_DOT_END_INV; in lv_label_revert_dots()
1206 *for a NULL-terminator so it can be copied.*/ in lv_label_set_dot_tmp()
1207 label->dot.tmp_ptr = lv_mem_alloc(len + 1); in lv_label_set_dot_tmp()
1208 if(label->dot.tmp_ptr == NULL) { in lv_label_set_dot_tmp()
1212 lv_memcpy(label->dot.tmp_ptr, data, len); in lv_label_set_dot_tmp()
1213 label->dot.tmp_ptr[len] = '\0'; in lv_label_set_dot_tmp()
1214 label->dot_tmp_alloc = true; in lv_label_set_dot_tmp()
1218 label->dot_tmp_alloc = false; in lv_label_set_dot_tmp()
1219 lv_memcpy(label->dot.tmp, data, len); in lv_label_set_dot_tmp()
1227 * @return char pointer to a stored characters. Is *not* necessarily NULL-terminated.
1232 if(label->dot_tmp_alloc) { in lv_label_get_dot_tmp()
1233 return label->dot.tmp_ptr; in lv_label_get_dot_tmp()
1236 return label->dot.tmp; in lv_label_get_dot_tmp()
1248 if(label->dot_tmp_alloc && label->dot.tmp_ptr) { in lv_label_dot_tmp_free()
1249 lv_mem_free(label->dot.tmp_ptr); in lv_label_dot_tmp_free()
1251 label->dot_tmp_alloc = false; in lv_label_dot_tmp_free()
1252 label->dot.tmp_ptr = NULL; in lv_label_dot_tmp_free()
1258 label->offset.x = v; in set_ofs_x_anim()
1265 label->offset.y = v; in set_ofs_y_anim()