BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lvgl
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
lvgl
Commits
b23b9866
Commit
b23b9866
authored
Jan 02, 2017
by
Gabor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Compatibility with malloc/free/realloc wrappers
parent
3d399ad8
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
293 additions
and
143 deletions
+293
-143
lv_app_sysmon.c
lv_appx/lv_app_sysmon.c
+29
-10
lv_app_terminal.c
lv_appx/lv_app_terminal.c
+1
-0
lv_draw.c
lv_draw/lv_draw.c
+2
-2
anim.c
lv_misc/anim.c
+1
-1
lv_dispi.c
lv_obj/lv_dispi.c
+2
-2
lv_obj.c
lv_obj/lv_obj.c
+29
-9
lv_obj.h
lv_obj/lv_obj.h
+1
-0
lv_btn.c
lv_objx/lv_btn.c
+31
-25
lv_btnm.c
lv_objx/lv_btnm.c
+13
-3
lv_cb.c
lv_objx/lv_cb.c
+9
-1
lv_chart.c
lv_objx/lv_chart.c
+19
-14
lv_img.c
lv_objx/lv_img.c
+21
-15
lv_label.c
lv_objx/lv_label.c
+15
-4
lv_led.c
lv_objx/lv_led.c
+9
-1
lv_line.c
lv_objx/lv_line.c
+8
-6
lv_list.c
lv_objx/lv_list.c
+10
-1
lv_mbox.c
lv_objx/lv_mbox.c
+17
-7
lv_page.c
lv_objx/lv_page.c
+14
-4
lv_pb.c
lv_objx/lv_pb.c
+17
-12
lv_rect.c
lv_objx/lv_rect.c
+18
-6
lv_ta.c
lv_objx/lv_ta.c
+13
-12
lv_win.c
lv_objx/lv_win.c
+14
-8
No files found.
lv_appx/lv_app_sysmon.c
View file @
b23b9866
...
...
@@ -83,7 +83,9 @@ static uint8_t mem_pct[LV_APP_SYSMON_PNUM];
static
uint8_t
cpu_pct
[
LV_APP_SYSMON_PNUM
];
static
lv_pbs_t
cpu_pbs
;
static
lv_pbs_t
mem_pbs
;
#if USE_DYN_MEM != 0
static
dm_mon_t
mem_mon
;
#endif
/**********************
* MACROS
...
...
@@ -281,16 +283,21 @@ static void sysmon_task(void)
cpu_busy
=
100
-
idle_get
();
#endif
uint8_t
mem_used_pct
=
0
;
#if USE_DYN_MEM != 0
dm_monitor
(
&
mem_mon
);
uint8_t
mem_free_pct
=
(
uint32_t
)
((
DM_MEM_SIZE
-
mem_mon
.
size_free
)
*
100
)
/
DM_MEM_SIZE
;
mem_used_pct
=
(
uint32_t
)
((
DM_MEM_SIZE
-
mem_mon
.
size_free
)
*
100
)
/
DM_MEM_SIZE
;
#endif
/*Add the CPU and memory data*/
cpu_pct
[
LV_APP_SYSMON_PNUM
-
1
]
=
cpu_busy
;
mem_pct
[
LV_APP_SYSMON_PNUM
-
1
]
=
mem_
free
_pct
;
mem_pct
[
LV_APP_SYSMON_PNUM
-
1
]
=
mem_
used
_pct
;
/*Refresh the shortcuts and windows*/
lv_app_sysmon_refr
();
#if USE_DYN_MEM != 0
/*Handle periodic defrag. if enabled*/
#if LV_APP_SYSMON_DEFRAG_PERIOD != 0
static
uint32_t
last_defrag
=
0
;
...
...
@@ -320,6 +327,7 @@ static void sysmon_task(void)
}
if
(
mem_mon
.
pct_frag
<
LV_APP_SYSMON_FRAG_WARN
)
frag_warn_report
=
false
;
#endif
}
/**
...
...
@@ -327,19 +335,30 @@ static void sysmon_task(void)
*/
static
void
lv_app_sysmon_refr
(
void
)
{
/*Create a long detailed string*/
char
buf_long
[
256
];
sprintf
(
buf_long
,
"CPU: %d %%
\n\n
MEMORY: %d %%
\n
Total: %d bytes
\n
Used: %d bytes
\n
Free: %d bytes
\n
Frag: %d %%"
,
cpu_pct
[
LV_APP_SYSMON_PNUM
-
1
],
char
buf_short
[
128
];
#if USE_IDLE != 0
sprintf
(
buf_long
,
"CPU: %d %%
\n\n
"
,
cpu_pct
[
LV_APP_SYSMON_PNUM
-
1
]);
sprintf
(
buf_short
,
"CPU: %d %%
\n
"
,
cpu_pct
[
LV_APP_SYSMON_PNUM
-
1
]);
#else
strcpy
(
buf_long
,
"CPU: N/A
\n\n
"
);
strcpy
(
buf_short
,
"CPU: N/A
\n
"
);
#endif
#if USE_DYN_MEM != 0
sprintf
(
buf_long
,
"%sMEMORY: %d %%
\n
Total: %d bytes
\n
Used: %d bytes
\n
Free: %d bytes
\n
Frag: %d %%"
,
buf_long
,
mem_pct
[
LV_APP_SYSMON_PNUM
-
1
],
DM_MEM_SIZE
,
DM_MEM_SIZE
-
mem_mon
.
size_free
,
mem_mon
.
size_free
,
mem_mon
.
pct_frag
);
/*Create a short string*/
char
buf_short
[
128
];
sprintf
(
buf_short
,
"CPU: %d %%
\n
Mem: %d %%
\n
Frag: %d %%"
,
cpu_pct
[
LV_APP_SYSMON_PNUM
-
1
],
mem_pct
[
LV_APP_SYSMON_PNUM
-
1
],
mem_mon
.
pct_frag
);
sprintf
(
buf_short
,
"%sMem: %d %%
\n
Frag: %d %%"
,
buf_short
,
mem_pct
[
LV_APP_SYSMON_PNUM
-
1
],
mem_mon
.
pct_frag
);
#else
sprintf
(
buf_long
,
"%sMEMORY: N/A"
,
buf_long
);
sprintf
(
buf_short
,
"%sMem: N/A
\n
Frag: N/A"
,
buf_short
);
#endif
lv_app_style_t
*
app_style
=
lv_app_style_get
();
cord_t
opad
=
app_style
->
win_style
.
content
.
scrl_rects
.
opad
;
lv_app_inst_t
*
app
;
...
...
lv_appx/lv_app_terminal.c
View file @
b23b9866
...
...
@@ -129,6 +129,7 @@ static void my_app_run(lv_app_inst_t * app, const char * cstr, void * conf)
/*Initialize the application*/
my_app_data_t
*
app_data
=
app
->
app_data
;
app_data
->
com_type
=
LV_APP_COM_TYPE_CHAR
;
memset
(
app_data
->
txt
,
0
,
sizeof
(
app_data
->
txt
));;
}
/**
...
...
lv_draw/lv_draw.c
View file @
b23b9866
...
...
@@ -261,9 +261,9 @@ void lv_draw_line(const point_t * p1, const point_t * p2, const area_t * mask_p,
if
(
p1
->
x
==
p2
->
x
&&
p1
->
y
==
p2
->
y
)
return
;
cord_t
dx
=
abs
(
p2
->
x
-
p1
->
x
);
cord_t
dx
=
MATH_ABS
(
p2
->
x
-
p1
->
x
);
cord_t
sx
=
p1
->
x
<
p2
->
x
?
1
:
-
1
;
cord_t
dy
=
abs
(
p2
->
y
-
p1
->
y
);
cord_t
dy
=
MATH_ABS
(
p2
->
y
-
p1
->
y
);
cord_t
sy
=
p1
->
y
<
p2
->
y
?
1
:
-
1
;
cord_t
err
=
(
dx
>
dy
?
dx
:
-
dy
)
/
2
;
cord_t
e2
;
...
...
lv_misc/anim.c
View file @
b23b9866
...
...
@@ -125,7 +125,7 @@ bool anim_del(void * var, anim_fp_t fp)
*/
uint16_t
anim_speed_to_time
(
uint16_t
speed
,
int32_t
start
,
int32_t
end
)
{
int32_t
d
=
abs
((
int32_t
)
start
-
end
);
int32_t
d
=
MATH_ABS
((
int32_t
)
start
-
end
);
uint16_t
time
=
(
int32_t
)((
int32_t
)(
d
*
1000
)
/
speed
);
if
(
time
==
0
)
{
...
...
lv_obj/lv_dispi.c
View file @
b23b9866
...
...
@@ -376,8 +376,8 @@ static void dispi_drag(lv_dispi_t * dispi_p)
dispi_p
->
vect_sum
.
y
+=
dispi_p
->
vect
.
y
;
/*If a move is greater then LV_DRAG_LIMIT then begin the drag*/
if
(
abs
(
dispi_p
->
vect_sum
.
x
)
>=
LV_DISPI_DRAG_LIMIT
||
abs
(
dispi_p
->
vect_sum
.
y
)
>=
LV_DISPI_DRAG_LIMIT
)
if
(
MATH_ABS
(
dispi_p
->
vect_sum
.
x
)
>=
LV_DISPI_DRAG_LIMIT
||
MATH_ABS
(
dispi_p
->
vect_sum
.
y
)
>=
LV_DISPI_DRAG_LIMIT
)
{
dispi_p
->
drag_in_prog
=
1
;
drag_obj
->
signal_f
(
drag_obj
,
...
...
lv_obj/lv_obj.c
View file @
b23b9866
...
...
@@ -138,7 +138,7 @@ void lv_obj_inv(lv_obj_t * obj)
}
/**
* Notify an object
if
its style is modified
* Notify an object
about
its style is modified
* @param obj pointer to an object
*/
void
lv_obj_refr_style
(
lv_obj_t
*
obj
)
...
...
@@ -206,6 +206,9 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, lv_obj_t * copy)
new_obj
->
style_iso
=
0
;
new_obj
->
hidden
=
0
;
new_obj
->
top_en
=
0
;
new_obj
->
child_chg_off
=
0
;
new_obj
->
opa_protect
=
0
;
new_obj
->
ext
=
NULL
;
}
/*parent != NULL create normal obj. on a parent*/
...
...
@@ -241,6 +244,8 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, lv_obj_t * copy)
new_obj
->
style_iso
=
0
;
new_obj
->
hidden
=
0
;
new_obj
->
top_en
=
0
;
new_obj
->
child_chg_off
=
0
;
new_obj
->
opa_protect
=
0
;
new_obj
->
ext
=
NULL
;
...
...
@@ -249,23 +254,27 @@ lv_obj_t * lv_obj_create(lv_obj_t * parent, lv_obj_t * copy)
if
(
copy
!=
NULL
)
{
area_cpy
(
&
new_obj
->
cords
,
&
copy
->
cords
);
new_obj
->
ext_size
=
copy
->
ext_size
;
/*Set attributes*/
new_obj
->
opa
=
copy
->
opa
;
/*Set attributes*/
new_obj
->
click_en
=
copy
->
click_en
;
new_obj
->
drag_en
=
copy
->
drag_en
;
new_obj
->
drag_throw_en
=
copy
->
drag_throw_en
;
new_obj
->
drag_parent
=
copy
->
drag_parent
;
new_obj
->
hidden
=
copy
->
hidden
;
new_obj
->
style_iso
=
copy
->
style_iso
;
new_obj
->
top_en
=
copy
->
top_en
;
new_obj
->
opa_protect
=
copy
->
opa_protect
;
new_obj
->
style_p
=
copy
->
style_p
;
if
(
copy
->
style_iso
!=
0
)
{
lv_obj_iso_style
(
new_obj
,
dm_get_size
(
copy
->
style_p
));
if
(
copy
->
style_iso
==
0
)
{
new_obj
->
style_p
=
copy
->
style_p
;
}
else
{
new_obj
->
style_p
=
dm_alloc
(
sizeof
(
lv_objs_t
));
memcpy
(
new_obj
->
style_p
,
copy
->
style_p
,
sizeof
(
lv_objs_t
));
}
lv_obj_set_pos
(
new_obj
,
lv_obj_get_x
(
copy
),
lv_obj_get_y
(
copy
));
new_obj
->
opa
=
copy
->
opa
;
}
...
...
@@ -814,7 +823,8 @@ void lv_obj_set_style(lv_obj_t * obj, void * style)
obj
->
style_p
=
style
;
/*Send a style change signal to the object*/
obj
->
signal_f
(
obj
,
LV_SIGNAL_STYLE_CHG
,
NULL
);
lv_obj_refr_style
(
obj
);
lv_obj_inv
(
obj
);
}
...
...
@@ -1353,6 +1363,16 @@ bool lv_obj_get_drag_parent(lv_obj_t * obj)
}
/**
* Get the style isolation attribute of an object
* @param obj pointer to an object
* @return pointer to a style
*/
bool
lv_obj_get_style_iso
(
lv_obj_t
*
obj
)
{
return
obj
->
style_iso
==
0
?
false
:
true
;
}
/**
* Get the opa_protect attribute of an object
* @param obj pointer to an object
* @return true: opa_protect is enabled
...
...
lv_obj/lv_obj.h
View file @
b23b9866
...
...
@@ -241,6 +241,7 @@ bool lv_obj_get_top(lv_obj_t * obj);
bool
lv_obj_get_drag
(
lv_obj_t
*
obj
);
bool
lv_obj_get_drag_throw
(
lv_obj_t
*
obj
);
bool
lv_obj_get_drag_parent
(
lv_obj_t
*
obj
);
bool
lv_obj_get_style_iso
(
lv_obj_t
*
obj
);
bool
lv_obj_get_opa_potect
(
lv_obj_t
*
obj
);
/*Virtual functions get*/
...
...
lv_objx/lv_btn.c
View file @
b23b9866
...
...
@@ -61,42 +61,47 @@ lv_obj_t * lv_btn_create(lv_obj_t * par, lv_obj_t * copy)
lv_obj_t
*
new_btn
;
new_btn
=
lv_rect_create
(
par
,
copy
);
dm_assert
(
new_btn
);
/*Allocate the extended data*/
lv_obj_alloc_ext
(
new_btn
,
sizeof
(
lv_btn_ext_t
));
lv_btn_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_btn
,
sizeof
(
lv_btn_ext_t
));
dm_assert
(
ext
);
ext
->
state
=
LV_BTN_STATE_REL
;
ext
->
pr_action
=
NULL
;
ext
->
rel_action
=
NULL
;
ext
->
lpr_action
=
NULL
;
ext
->
lpr_rep_action
=
NULL
;
ext
->
lpr_exec
=
0
;
ext
->
tgl
=
0
;
if
(
ancestor_design_f
==
NULL
)
{
ancestor_design_f
=
lv_obj_get_design_f
(
new_btn
);
}
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_btn
);
lv_obj_set_signal_f
(
new_btn
,
lv_btn_signal
);
lv_obj_set_design_f
(
new_btn
,
lv_btn_design
);
lv_btn_ext_t
*
ext
=
lv_obj_get_ext
(
new_btn
);
ext
->
lpr_exec
=
0
;
/*If no copy do the basic initialization*/
if
(
copy
==
NULL
)
{
ext
->
state
=
LV_BTN_STATE_REL
;
ext
->
pr_action
=
NULL
;
ext
->
rel_action
=
NULL
;
ext
->
lpr_action
=
NULL
;
ext
->
tgl
=
0
;
if
(
copy
==
NULL
)
{
lv_rect_set_layout
(
new_btn
,
LV_RECT_LAYOUT_CENTER
);
lv_obj_set_style
(
new_btn
,
lv_btns_get
(
LV_BTNS_DEF
,
NULL
));
}
/*Copy 'copy'*/
else
{
lv_btn_ext_t
*
ori_btn_ext
=
lv_obj_get_ext
(
copy
);
ext
->
state
=
ori_btn_ext
->
state
;
ext
->
pr_action
=
ori_btn_ext
->
pr_action
;
ext
->
rel_action
=
ori_btn_ext
->
rel_action
;
ext
->
lpr_action
=
ori_btn_ext
->
lpr_action
;
ext
->
tgl
=
ori_btn_ext
->
tgl
;
else
{
lv_btn_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
ext
->
state
=
copy_ext
->
state
;
ext
->
pr_action
=
copy_ext
->
pr_action
;
ext
->
rel_action
=
copy_ext
->
rel_action
;
ext
->
lpr_action
=
copy_ext
->
lpr_action
;
ext
->
lpr_rep_action
=
copy_ext
->
lpr_action
;
ext
->
tgl
=
copy_ext
->
tgl
;
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_btn
)
==
false
)
{
lv_obj_set_style
(
new_btn
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_btn
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_btn
,
sizeof
(
lv_btns_t
));
}
}
lv_obj_set_style
(
new_btn
,
lv_btns_get
(
LV_BTNS_DEF
,
NULL
));
return
new_btn
;
}
...
...
@@ -106,7 +111,7 @@ lv_obj_t * lv_btn_create(lv_obj_t * par, lv_obj_t * copy)
* @param sign a signal type from lv_signal_t enum
* @param param pointer to a signal specific variable
*/
bool
lv_btn_signal
(
lv_obj_t
*
btn
,
lv_signal_t
sign
,
void
*
param
)
bool
lv_btn_signal
(
lv_obj_t
*
btn
,
lv_signal_t
sign
,
void
*
param
)
{
bool
valid
;
...
...
@@ -144,6 +149,7 @@ bool lv_btn_signal(lv_obj_t * btn, lv_signal_t sign, void* param)
lv_obj_inv
(
btn
);
break
;
case
LV_SIGNAL_PRESSING
:
/*When the button begins to drag revert pressed states to released*/
if
(
lv_dispi_is_dragging
(
param
)
!=
false
)
{
if
(
ext
->
state
==
LV_BTN_STATE_PR
)
lv_btn_set_state
(
btn
,
LV_BTN_STATE_REL
);
else
if
(
ext
->
state
==
LV_BTN_STATE_TGL_PR
)
lv_btn_set_state
(
btn
,
LV_BTN_STATE_TGL_REL
);
...
...
lv_objx/lv_btnm.c
View file @
b23b9866
...
...
@@ -68,14 +68,17 @@ lv_obj_t * lv_btnm_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_btnm_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_btnm
,
sizeof
(
lv_btnm_ext_t
));
dm_assert
(
ext
);
ext
->
btn_cnt
=
0
;
ext
->
btn_pr
=
LV_BTNM_BTN_PR_INVALID
;
ext
->
btn_areas
=
NULL
;
ext
->
cb
=
NULL
;
ext
->
map_p
=
NULL
;
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_btnm
);
lv_obj_set_signal_f
(
new_btnm
,
lv_btnm_signal
);
lv_obj_set_design_f
(
new_btnm
,
lv_btnm_design
);
ext
->
btn_cnt
=
0
;
ext
->
btn_pr
=
LV_BTNM_BTN_PR_INVALID
;
/*Init the new button matrix object*/
if
(
copy
==
NULL
)
{
...
...
@@ -85,7 +88,14 @@ lv_obj_t * lv_btnm_create(lv_obj_t * par, lv_obj_t * copy)
}
/*Copy an existing object*/
else
{
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_btnm
)
==
false
)
{
lv_obj_set_style
(
new_btnm
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_btnm
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_btnm
,
sizeof
(
lv_btnms_t
));
}
lv_btnm_set_map
(
new_btnm
,
lv_btnm_get_map
(
copy
));
}
return
new_btnm
;
...
...
lv_objx/lv_cb.c
View file @
b23b9866
...
...
@@ -58,6 +58,8 @@ lv_obj_t * lv_cb_create(lv_obj_t * par, lv_obj_t * copy)
lv_cb_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_cb
,
sizeof
(
lv_cb_ext_t
));
dm_assert
(
ext
);
ext
->
bullet
=
NULL
;
ext
->
label
=
NULL
;
lv_obj_set_signal_f
(
new_cb
,
lv_cb_signal
);
...
...
@@ -79,7 +81,13 @@ lv_obj_t * lv_cb_create(lv_obj_t * par, lv_obj_t * copy)
ext
->
bullet
=
lv_btn_create
(
new_cb
,
copy_ext
->
bullet
);
ext
->
label
=
lv_label_create
(
new_cb
,
copy_ext
->
label
);
lv_obj_set_style
(
new_cb
,
lv_obj_get_style
(
copy
));
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_cb
)
==
false
)
{
lv_obj_set_style
(
new_cb
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_cb
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_cb
,
sizeof
(
lv_cbs_t
));
}
}
lv_obj_align_us
(
new_cb
,
NULL
,
LV_ALIGN_CENTER
,
0
,
0
);
...
...
lv_objx/lv_chart.c
View file @
b23b9866
...
...
@@ -41,7 +41,7 @@ static void lv_chart_draw_cols(lv_obj_t * chart, const area_t * mask);
**********************/
static
lv_charts_t
lv_charts_def
;
static
lv_charts_t
lv_charts_transp
;
static
lv_design_f_t
ancestor_design_f
p
;
static
lv_design_f_t
ancestor_design_f
;
/**********************
* MACROS
...
...
@@ -70,26 +70,23 @@ lv_obj_t * lv_chart_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_chart_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_chart
,
sizeof
(
lv_chart_ext_t
));
dm_assert
(
ext
);
if
(
ancestor_design_fp
==
NULL
)
{
ancestor_design_fp
=
lv_obj_get_design_f
(
new_chart
);
}
ll_init
(
&
ext
->
dl_ll
,
sizeof
(
cord_t
*
));
ext
->
dl_num
=
0
;
ext
->
ymin
=
LV_CHART_YMIN_DEF
;
ext
->
ymax
=
LV_CHART_YMAX_DEF
;
ext
->
hdiv_num
=
LV_CHART_HDIV_DEF
;
ext
->
vdiv_num
=
LV_CHART_VDIV_DEF
;
ext
->
pnum
=
LV_CHART_PNUM_DEF
;
ext
->
type
=
LV_CHART_LINE
;
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_chart
);
lv_obj_set_signal_f
(
new_chart
,
lv_chart_signal
);
lv_obj_set_design_f
(
new_chart
,
lv_chart_design
);
/*Init the new chart background object*/
if
(
copy
==
NULL
)
{
ext
->
type
=
LV_CHART_LINE
;
lv_obj_set_style
(
new_chart
,
lv_charts_get
(
LV_CHARTS_DEF
,
NULL
));
ext
->
ymin
=
LV_CHART_YMIN_DEF
;
ext
->
ymax
=
LV_CHART_YMAX_DEF
;
ext
->
hdiv_num
=
LV_CHART_HDIV_DEF
;
ext
->
vdiv_num
=
LV_CHART_VDIV_DEF
;
ext
->
pnum
=
LV_CHART_PNUM_DEF
;
}
else
{
lv_chart_ext_t
*
ext_copy
=
lv_obj_get_ext
(
copy
);
ext
->
type
=
ext_copy
->
type
;
...
...
@@ -98,6 +95,14 @@ lv_obj_t * lv_chart_create(lv_obj_t * par, lv_obj_t * copy)
ext
->
hdiv_num
=
ext_copy
->
hdiv_num
;
ext
->
vdiv_num
=
ext_copy
->
vdiv_num
;
ext
->
pnum
=
ext_copy
->
pnum
;
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_chart
)
==
false
)
{
lv_obj_set_style
(
new_chart
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_chart
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_chart
,
sizeof
(
lv_charts_t
));
}
}
return
new_chart
;
...
...
@@ -348,10 +353,10 @@ static bool lv_chart_design(lv_obj_t * chart, const area_t * mask, lv_design_mod
{
if
(
mode
==
LV_DESIGN_COVER_CHK
)
{
/*Return false if the object is not covers the mask_p area*/
return
ancestor_design_f
p
(
chart
,
mask
,
mode
);
return
ancestor_design_f
(
chart
,
mask
,
mode
);
}
else
if
(
mode
==
LV_DESIGN_DRAW_MAIN
)
{
/*Draw the rectangle ancient*/
ancestor_design_f
p
(
chart
,
mask
,
mode
);
ancestor_design_f
(
chart
,
mask
,
mode
);
/*Draw the object*/
...
...
lv_objx/lv_img.c
View file @
b23b9866
...
...
@@ -56,32 +56,38 @@ lv_obj_t * lv_img_create(lv_obj_t * par, lv_obj_t * copy)
/*Create a basic object*/
new_img
=
lv_obj_create
(
par
,
copy
);
dm_assert
(
new_img
);
/*Extend the basic object to image object*/
lv_obj_alloc_ext
(
new_img
,
sizeof
(
lv_img_ext_t
));
lv_img_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_img
,
sizeof
(
lv_img_ext_t
));
dm_assert
(
ext
);
ext
->
fn
=
NULL
;
ext
->
w
=
lv_obj_get_width
(
new_img
);
ext
->
h
=
lv_obj_get_height
(
new_img
);
ext
->
transp
=
0
;
/*Init the new object*/
lv_obj_set_signal_f
(
new_img
,
lv_img_signal
);
lv_obj_set_design_f
(
new_img
,
lv_img_design
);
lv_img_ext_t
*
img_ext
=
lv_obj_get_ext
(
new_img
);
if
(
copy
==
NULL
)
{
img_ext
->
fn
=
NULL
;
img_ext
->
w
=
lv_obj_get_width
(
new_img
);
img_ext
->
h
=
lv_obj_get_height
(
new_img
);
img_ext
->
transp
=
0
;
/*Enable auto size for non screens*/
if
(
par
!=
NULL
)
{
img_ext
->
auto_size
=
1
;
}
else
{
img_ext
->
auto_size
=
0
;
}
/* Enable auto size for non screens
* because image screens are wallpapers
* and must be screen sized*/
if
(
par
!=
NULL
)
ext
->
auto_size
=
1
;
else
ext
->
auto_size
=
0
;
lv_obj_set_style
(
new_img
,
lv_imgs_get
(
LV_IMGS_DEF
,
NULL
));
}
else
{
img_ext
->
auto_size
=
LV_EA
(
copy
,
lv_img_ext_t
)
->
auto_size
;
ext
->
auto_size
=
lv_img_get_auto_size
(
copy
)
;
lv_img_set_file
(
new_img
,
LV_EA
(
copy
,
lv_img_ext_t
)
->
fn
);
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_img
)
==
false
)
{
lv_obj_set_style
(
new_img
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_img
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_img
,
sizeof
(
lv_imgs_t
));
}
}
return
new_img
;
...
...
lv_objx/lv_label.c
View file @
b23b9866
...
...
@@ -66,14 +66,17 @@ lv_obj_t * lv_label_create(lv_obj_t * par, lv_obj_t * copy)
lv_obj_alloc_ext
(
new_label
,
sizeof
(
lv_label_ext_t
));
lv_label_ext_t
*
ext
=
lv_obj_get_ext
(
new_label
);
dm_assert
(
ext
);
ext
->
txt
=
NULL
;
ext
->
static_txt
=
0
;
ext
->
dot_end
=
LV_LABEL_DOT_END_INV
;
ext
->
long_mode
=
LV_LABEL_LONG_EXPAND
;
lv_obj_set_design_f
(
new_label
,
lv_label_design
);
lv_obj_set_signal_f
(
new_label
,
lv_label_signal
);
/*Init the new label*/
if
(
copy
==
NULL
)
{
ext
->
dot_end
=
LV_LABEL_DOT_END_INV
;
lv_obj_set_opa
(
new_label
,
OPA_COVER
);
lv_obj_set_click
(
new_label
,
false
);
lv_obj_set_style
(
new_label
,
lv_labels_get
(
LV_LABELS_DEF
,
NULL
));
...
...
@@ -83,9 +86,17 @@ lv_obj_t * lv_label_create(lv_obj_t * par, lv_obj_t * copy)
/*Copy 'copy' if not NULL*/
else
{
lv_label_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
lv_label_set_long_mode
(
new_label
,
lv_label_get_long_mode
(
copy
));
if
(
copy_ext
->
static_txt
==
0
)
lv_label_set_text
(
new_label
,
lv_label_get_text
(
copy
));
else
lv_label_set_text_static
(
new_label
,
lv_label_get_text
(
copy
));
lv_label_set_long_mode
(
new_label
,
lv_label_get_long_mode
(
copy
));
if
(
copy_ext
->
static_txt
==
0
)
lv_label_set_text
(
new_label
,
lv_label_get_text
(
copy
));
else
lv_label_set_text_static
(
new_label
,
lv_label_get_text
(
copy
));
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_label
)
==
false
)
{
lv_obj_set_style
(
new_label
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_label
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_label
,
sizeof
(
lv_labels_t
));
}
}
return
new_label
;
}
...
...
lv_objx/lv_led.c
View file @
b23b9866
...
...
@@ -64,13 +64,13 @@ lv_obj_t * lv_led_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_led_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_led
,
sizeof
(
lv_led_ext_t
));
dm_assert
(
ext
);
ext
->
bright
=
LV_LED_BRIGHTNESS_DEF
;
lv_obj_set_signal_f
(
new_led
,
lv_led_signal
);
lv_obj_set_design_f
(
new_led
,
lv_led_design
);
/*Init the new led object*/
if
(
copy
==
NULL
)
{
ext
->
bright
=
LV_LED_BRIGHTNESS_DEF
;
lv_obj_set_style
(
new_led
,
lv_leds_get
(
LV_LEDS_DEF
,
NULL
));
lv_obj_set_size_us
(
new_led
,
40
,
40
);
}
...
...
@@ -78,6 +78,14 @@ lv_obj_t * lv_led_create(lv_obj_t * par, lv_obj_t * copy)
else
{
lv_led_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
ext
->
bright
=
copy_ext
->
bright
;
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_led
)
==
false
)
{
lv_obj_set_style
(
new_led
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_led
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_led
,
sizeof
(
lv_leds_t
));
}
}
return
new_led
;
...
...
lv_objx/lv_line.c
View file @
b23b9866
...
...
@@ -64,16 +64,18 @@ lv_obj_t * lv_line_create(lv_obj_t * par, lv_obj_t * copy)
/*Extend the basic object to rectangle object*/
lv_line_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_line
,
sizeof
(
lv_line_ext_t
));
dm_assert
(
ext
);
ext
->
point_num
=
0
;
ext
->
point_array
=
NULL
;
ext
->
auto_size
=
1
;
ext
->
y_inv
=
0
;
ext
->
upscale
=
0
;
lv_obj_set_design_f
(
new_line
,
lv_line_design
);
lv_obj_set_signal_f
(
new_line
,
lv_line_signal
);
/*Init the new rectangle*/
if
(
copy
==
NULL
)
{
ext
->
point_num
=
0
;
ext
->
point_array
=
NULL
;
ext
->
auto_size
=
1
;
ext
->
y_inv
=
0
;
ext
->
upscale
=
0
;
lv_obj_set_style
(
new_line
,
lv_lines_get
(
LV_LINES_DEF
,
NULL
));
}
/*Copy an existing object*/
...
...
@@ -84,9 +86,9 @@ lv_obj_t * lv_line_create(lv_obj_t * par, lv_obj_t * copy)
lv_line_set_upscale
(
new_line
,
lv_line_get_upscale
(
copy
));
lv_line_set_points
(
new_line
,
LV_EA
(
copy
,
lv_line_ext_t
)
->
point_array
,
LV_EA
(
copy
,
lv_line_ext_t
)
->
point_num
);
lv_obj_set_style
(
new_line
,
lv_obj_get_style
(
copy
));
}
return
new_line
;
}
...
...
lv_objx/lv_list.c
View file @
b23b9866
...
...
@@ -61,18 +61,27 @@ lv_obj_t * lv_list_create(lv_obj_t * par, lv_obj_t * copy)
lv_obj_t
*
new_list
=
lv_page_create
(
par
,
copy
);
dm_assert
(
new_list
);
lv_list_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_list
,
sizeof
(
lv_list_ext_t
));
dm_assert
(
ext
);
ext
->
fit
=
LV_LIST_FIT_WIDTH
;
lv_obj_set_signal_f
(
new_list
,
lv_list_signal
);
/*Init the new list object*/
if
(
copy
==
NULL
)
{
ext
->
fit
=
LV_LIST_FIT_WIDTH
;
lv_obj_set_size_us
(
new_list
,
120
,
150
);
lv_obj_set_style
(
new_list
,
lv_lists_get
(
LV_LISTS_DEF
,
NULL
));
lv_rect_set_layout
(
LV_EA
(
new_list
,
lv_list_ext_t
)
->
page_ext
.
scrl
,
LV_LIST_LAYOUT_DEF
);
}
else
{
lv_list_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
ext
->
fit
=
copy_ext
->
fit
;
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_list
)
==
false
)
{
lv_obj_set_style
(
new_list
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_list
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_list
,
sizeof
(
lv_lists_t
));
}
}
return
new_list
;
...
...
lv_objx/lv_mbox.c
View file @
b23b9866
...
...
@@ -62,13 +62,13 @@ lv_obj_t * lv_mbox_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the message box type specific extended data*/
lv_mbox_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_mbox
,
sizeof
(
lv_mbox_ext_t
));
dm_assert
(
ext
);
ext
->
txt
=
NULL
;
ext
->
title
=
NULL
;
ext
->
btnh
=
NULL
;
/*The signal and design functions are not copied so set them here*/
lv_obj_set_signal_f
(
new_mbox
,
lv_mbox_signal
);
/* Let the design function of rect
lv_obj_set_design_f(new_mbox, lv_mbox_design); */
/*Init the new message box message box*/
if
(
copy
==
NULL
)
{
lv_rect_set_layout
(
new_mbox
,
LV_RECT_LAYOUT_COL_L
);
...
...
@@ -85,15 +85,25 @@ lv_obj_t * lv_mbox_create(lv_obj_t * par, lv_obj_t * copy)
lv_rect_set_layout
(
ext
->
btnh
,
LV_RECT_LAYOUT_PRETTY
);
lv_obj_set_style
(
new_mbox
,
lv_mboxs_get
(
LV_MBOXS_DEF
,
NULL
));
lv_mbox_realign
(
new_mbox
);
}
/*Copy an existing message box*/
else
{
// lv_mbox_ext_t * copy_ext = lv_obj_get_ext(copy);
/*TODO*/
lv_mbox_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
ext
->
title
=
lv_label_create
(
new_mbox
,
copy_ext
->
title
);
ext
->
txt
=
lv_label_create
(
new_mbox
,
copy_ext
->
txt
);
ext
->
btnh
=
lv_rect_create
(
new_mbox
,
copy_ext
->
btnh
);
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_mbox
)
==
false
)
{
lv_obj_set_style
(
new_mbox
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_mbox
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_mbox
,
sizeof
(
lv_mboxs_t
));
}
}
lv_mbox_realign
(
new_mbox
);
return
new_mbox
;
}
...
...
lv_objx/lv_page.c
View file @
b23b9866
...
...
@@ -67,10 +67,13 @@ lv_obj_t * lv_page_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_page_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_page
,
sizeof
(
lv_page_ext_t
));
dm_assert
(
ext
);
ext
->
scrl
=
NULL
;
ext
->
pr_action
=
NULL
;
ext
->
rel_action
=
NULL
;
ext
->
sbh_draw
=
0
;
ext
->
sbv_draw
=
0
;
if
(
ancestor_design_f
==
NULL
)
{
ancestor_design_f
=
lv_obj_get_design_f
(
new_page
);
}
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_page
);
/*Init the new page object*/
if
(
copy
==
NULL
)
{
...
...
@@ -96,7 +99,14 @@ lv_obj_t * lv_page_create(lv_obj_t * par, lv_obj_t * copy)
* because everything has to be ready before any signal is received*/
lv_obj_set_signal_f
(
new_page
,
lv_page_signal
);
lv_obj_set_design_f
(
new_page
,
lv_page_design
);
lv_obj_set_style
(
new_page
,
lv_obj_get_style
(
copy
));
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_page
)
==
false
)
{
lv_obj_set_style
(
new_page
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_page
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_page
,
sizeof
(
lv_pages_t
));
}
}
lv_page_sb_refresh
(
new_page
);
...
...
lv_objx/lv_pb.c
View file @
b23b9866
...
...
@@ -35,7 +35,7 @@ static void lv_pbs_init(void);
* STATIC VARIABLES
**********************/
static
lv_pbs_t
lv_pbs_def
;
static
lv_design_f_t
ancestor_design_f
p
;
static
lv_design_f_t
ancestor_design_f
;
/**********************
* MACROS
...
...
@@ -64,12 +64,15 @@ lv_obj_t * lv_pb_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_pb_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_pb
,
sizeof
(
lv_pb_ext_t
));
dm_assert
(
ext
);
ext
->
min_value
=
0
;
ext
->
max_value
=
100
;
ext
->
act_value
=
0
;
ext
->
format_str
=
NULL
;
ext
->
label
=
NULL
;
/* Save the rectangle design function.
* It will be used in the progress bar design function*/
if
(
ancestor_design_fp
==
NULL
)
{
ancestor_design_fp
=
lv_obj_get_design_f
(
new_pb
);
}
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_pb
);
lv_obj_set_signal_f
(
new_pb
,
lv_pb_signal
);
lv_obj_set_design_f
(
new_pb
,
lv_pb_design
);
...
...
@@ -78,9 +81,6 @@ lv_obj_t * lv_pb_create(lv_obj_t * par, lv_obj_t * copy)
if
(
copy
==
NULL
)
{
ext
->
format_str
=
dm_alloc
(
strlen
(
LV_PB_DEF_FORMAT
)
+
1
);
strcpy
(
ext
->
format_str
,
LV_PB_DEF_FORMAT
);
ext
->
min_value
=
0
;
ext
->
max_value
=
100
;
ext
->
act_value
=
0
;
ext
->
label
=
lv_label_create
(
new_pb
,
NULL
);
...
...
@@ -95,10 +95,15 @@ lv_obj_t * lv_pb_create(lv_obj_t * par, lv_obj_t * copy)
ext
->
min_value
=
ext_copy
->
min_value
;
ext
->
max_value
=
ext_copy
->
max_value
;
ext
->
act_value
=
ext_copy
->
act_value
;
ext
->
label
=
lv_label_create
(
new_pb
,
ext_copy
->
label
);
lv_obj_set_style
(
new_pb
,
lv_obj_get_style
(
copy
));
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_pb
)
==
false
)
{
lv_obj_set_style
(
new_pb
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_pb
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_pb
,
sizeof
(
lv_pbs_t
));
}
lv_pb_set_value
(
new_pb
,
ext
->
act_value
);
...
...
@@ -264,13 +269,13 @@ lv_pbs_t * lv_pbs_get(lv_pbs_builtin_t style, lv_pbs_t * copy)
*/
static
bool
lv_pb_design
(
lv_obj_t
*
pb
,
const
area_t
*
mask
,
lv_design_mode_t
mode
)
{
if
(
ancestor_design_f
p
==
NULL
)
return
false
;
if
(
ancestor_design_f
==
NULL
)
return
false
;
if
(
mode
==
LV_DESIGN_COVER_CHK
)
{
/*Return false if the object is not covers the mask_p area*/
return
ancestor_design_f
p
(
pb
,
mask
,
mode
);
return
ancestor_design_f
(
pb
,
mask
,
mode
);
}
else
if
(
mode
==
LV_DESIGN_DRAW_MAIN
)
{
ancestor_design_f
p
(
pb
,
mask
,
mode
);
ancestor_design_f
(
pb
,
mask
,
mode
);
lv_pb_ext_t
*
ext
=
lv_obj_get_ext
(
pb
);
area_t
bar_area
;
...
...
lv_objx/lv_rect.c
View file @
b23b9866
...
...
@@ -77,22 +77,34 @@ lv_obj_t * lv_rect_create(lv_obj_t * par, lv_obj_t * copy)
lv_obj_t
*
new_rect
=
lv_obj_create
(
par
,
copy
);
dm_assert
(
new_rect
);
lv_obj_alloc_ext
(
new_rect
,
sizeof
(
lv_rect_ext_t
));
lv_rect_ext_t
*
rect_ext
=
lv_obj_get_ext
(
new_rect
);
lv_rect_ext_t
*
ext
=
lv_obj_get_ext
(
new_rect
);
dm_assert
(
ext
);
ext
->
hfit_en
=
0
;
ext
->
vfit_en
=
0
;
ext
->
layout
=
LV_RECT_LAYOUT_OFF
;
lv_obj_set_design_f
(
new_rect
,
lv_rect_design
);
lv_obj_set_signal_f
(
new_rect
,
lv_rect_signal
);
/*Init the new rectangle*/
if
(
copy
==
NULL
)
{
lv_obj_set_style
(
new_rect
,
lv_rects_get
(
LV_RECTS_DEF
,
NULL
));
rect_ext
->
hfit_en
=
0
;
rect_ext
->
vfit_en
=
0
;
}
/*Copy an existing object*/
else
{
lv_rect_ext_t
*
copy_ext
=
lv_obj_get_ext
(
copy
);
rect_ext
->
hfit_en
=
copy_ext
->
hfit_en
;
rect_ext
->
vfit_en
=
copy_ext
->
vfit_en
;
rect_ext
->
layout
=
copy_ext
->
layout
;
ext
->
hfit_en
=
copy_ext
->
hfit_en
;
ext
->
vfit_en
=
copy_ext
->
vfit_en
;
ext
->
layout
=
copy_ext
->
layout
;
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_rect
)
==
false
)
{
lv_obj_set_style
(
new_rect
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_rect
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_rect
,
sizeof
(
lv_rects_t
));
}
}
return
new_rect
;
...
...
lv_objx/lv_ta.c
View file @
b23b9866
...
...
@@ -68,24 +68,20 @@ lv_obj_t * lv_ta_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_ta_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_ta
,
sizeof
(
lv_ta_ext_t
));
dm_assert
(
ext
);
ext
->
cur_hide
=
0
;
ext
->
cursor_pos
=
0
;
ext
->
cursor_valid_x
=
0
;
ext
->
label
=
NULL
;
if
(
ancestor_design_f
==
NULL
)
{
ancestor_design_f
=
lv_obj_get_design_f
(
new_ta
);
}
if
(
ancestor_design_f
==
NULL
)
ancestor_design_f
=
lv_obj_get_design_f
(
new_ta
);
if
(
scrl_design_f
==
NULL
)
scrl_design_f
=
lv_obj_get_design_f
(
ext
->
page
.
scrl
);
lv_obj_set_signal_f
(
new_ta
,
lv_ta_signal
);
lv_obj_set_design_f
(
new_ta
,
lv_ta_design
);
ext
->
cursor_valid_x
=
0
;
ext
->
cursor_pos
=
0
;
ext
->
cur_hide
=
0
;
/*Init the new text area object*/
if
(
copy
==
NULL
)
{
ext
->
label
=
lv_label_create
(
new_ta
,
NULL
);
if
(
scrl_design_f
==
NULL
)
{
scrl_design_f
=
lv_obj_get_design_f
(
ext
->
page
.
scrl
);
}
lv_obj_set_design_f
(
ext
->
page
.
scrl
,
lv_ta_scrling_design
);
lv_label_set_long_mode
(
ext
->
label
,
LV_LABEL_LONG_BREAK
);
...
...
@@ -102,8 +98,13 @@ lv_obj_t * lv_ta_create(lv_obj_t * par, lv_obj_t * copy)
ext
->
label
=
lv_label_create
(
new_ta
,
copy_ext
->
label
);
lv_page_glue_obj
(
ext
->
label
,
true
);
/*Refresh the style when everything is ready*/
lv_obj_set_style
(
new_ta
,
lv_obj_get_style
(
copy
));
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_ta
)
==
false
)
{
lv_obj_set_style
(
new_ta
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_ta
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_ta
,
sizeof
(
lv_rects_t
));
}
}
/*Create a cursor blinker animation*/
...
...
lv_objx/lv_win.c
View file @
b23b9866
...
...
@@ -63,13 +63,13 @@ lv_obj_t * lv_win_create(lv_obj_t * par, lv_obj_t * copy)
/*Allocate the object type specific extended data*/
lv_win_ext_t
*
ext
=
lv_obj_alloc_ext
(
new_win
,
sizeof
(
lv_win_ext_t
));
dm_assert
(
ext
);
ext
->
content
=
NULL
;
ext
->
ctrl_holder
=
NULL
;
ext
->
header
=
NULL
;
ext
->
title
=
NULL
;
/*The signal and design functions are not copied so set them here*/
lv_obj_set_signal_f
(
new_win
,
lv_win_signal
);
/* The design function is not changed
lv_obj_set_design_f(new_obj, lv_win_design); */
lv_obj_set_size
(
new_win
,
LV_HOR_RES
,
LV_VER_RES
);
/*Init the new window object*/
if
(
copy
==
NULL
)
{
...
...
@@ -91,7 +91,7 @@ lv_obj_t * lv_win_create(lv_obj_t * par, lv_obj_t * copy)
lv_obj_set_style
(
new_win
,
lv_wins_get
(
LV_WINS_DEF
,
NULL
));
lv_win_realign
(
new_win
);
lv_obj_set_size
(
new_win
,
LV_HOR_RES
,
LV_VER_RES
);
}
/*Copy an existing object*/
else
{
...
...
@@ -112,11 +112,17 @@ lv_obj_t * lv_win_create(lv_obj_t * par, lv_obj_t * copy)
child
=
lv_obj_get_child
(
copy_ext
->
ctrl_holder
,
child
);
}
lv_obj_set_style
(
new_win
,
lv_obj_get_style
(
copy
));
lv_win_realign
(
new_win
);
/*Set the style of 'copy' and isolate it if it is necessary*/
if
(
lv_obj_get_style_iso
(
new_win
)
==
false
)
{
lv_obj_set_style
(
new_win
,
lv_obj_get_style
(
copy
));
}
else
{
lv_obj_set_style
(
new_win
,
lv_obj_get_style
(
copy
));
lv_obj_iso_style
(
new_win
,
sizeof
(
lv_wins_t
));
}
}
lv_win_realign
(
new_win
);
return
new_win
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment