Updated the notification screen in the CodeBlocks LVGL simulator as work is in progress
This commit is contained in:
parent
a89e0db18a
commit
9e63ebd529
@ -2,373 +2,204 @@
|
|||||||
<CodeBlocks_layout_file>
|
<CodeBlocks_layout_file>
|
||||||
<FileVersion major="1" minor="0" />
|
<FileVersion major="1" minor="0" />
|
||||||
<ActiveTarget name="Debug" />
|
<ActiveTarget name="Debug" />
|
||||||
<File name="lvgl\lv_conf_template.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="0" topLine="56" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_timer.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="635" topLine="36" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\draw\lv_draw_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="5230" topLine="191" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="7126" topLine="230" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\layouts\flex\lv_flex.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3097" topLine="74" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="compass_assets.c" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="0" topLine="143" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="music_player_screen.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1263" topLine="24" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\examples\widgets\bar\lv_example_bar_6.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="181" topLine="0" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drv_conf.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="6602" topLine="208" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_indev_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="14405" topLine="323" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="firmware_version.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="160" topLine="0" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_area.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1789" topLine="74" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_class.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1857" topLine="35" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\chart\lv_chart.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="11658" topLine="336" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_log.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1509" topLine="59" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\label\lv_label.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="5648" topLine="194" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_scroll.h" open="0" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1988" topLine="67" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="menu_screen.c" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1107" topLine="0" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="compass_screen.c" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3567" topLine="72" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_timer.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="5053" topLine="144" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\libs\ffmpeg\lv_ffmpeg.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="5784" topLine="170" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="notification_screen.h" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="387" topLine="0" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\draw\lv_draw_rect.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="539" topLine="9" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="6135" topLine="182" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\lv_drv_conf_template.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="10670" topLine="390" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3034" topLine="107" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\win32drv\win32drv.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="524" topLine="954" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="altimeter_screen.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1028" topLine="30" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2638" topLine="87" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\menu\lv_menu.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3706" topLine="117" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="watch_face.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3688" topLine="16" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\hal\lv_hal_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="5065" topLine="123" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_conf.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="555" topLine="10" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\list\lv_list.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="721" topLine="16" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="7842" topLine="283" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\layouts\grid\lv_grid.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="579" topLine="17" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="find_my_phone_screen.c" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1081" topLine="138" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\indev\keyboard.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="440" topLine="14" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\tileview\lv_tileview.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1055" topLine="40" />
|
|
||||||
</Cursor>
|
|
||||||
<Folding>
|
|
||||||
<Collapse line="8" />
|
|
||||||
<Collapse line="995" />
|
|
||||||
</Folding>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\demos\widgets\lv_demo_widgets.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2825" topLine="122" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\font\lv_symbol_def.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1135" topLine="14" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_pos.c" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="10562" topLine="336" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\roller\lv_roller.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="715" topLine="26" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\hal\lv_hal_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="10233" topLine="226" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\lvgl.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="0" topLine="138" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="main.c" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3368" topLine="116" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\layouts\flex\lv_flex.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="950" topLine="43" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_types.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1759" topLine="61" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="watch_casio_assets.c" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2981397" topLine="949" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2184" topLine="61" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_pos.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="7730" topLine="167" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\label\lv_label.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1299" topLine="36" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\hal\lv_hal_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\hal\lv_hal_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="11123" topLine="327" />
|
<Cursor1 position="11123" topLine="327" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="altimeter_screen.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="13638" topLine="409" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_tree.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2082" topLine="62" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_style.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="7273" topLine="217" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="notification_screen.c" open="1" top="1" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2746" topLine="48" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_style_gen.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="13017" topLine="346" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="settings_screen.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1893" topLine="40" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_refr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2447" topLine="75" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\win_drv.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lv_drivers\win_drv.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="585" topLine="0" />
|
<Cursor1 position="585" topLine="0" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\font\lv_font.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\widgets\menu\lv_menu.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="5535" topLine="120" />
|
<Cursor1 position="3706" topLine="117" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="compass_screen.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="music_player_screen.c" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="1253" topLine="0" />
|
<Cursor1 position="22334" topLine="0" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\core\lv_obj_class.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\lv_conf_template.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="3011" topLine="100" />
|
<Cursor1 position="0" topLine="56" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="settings_screen.c" open="0" top="0" tabpos="5" split="0" active="1" splitpos="513" zoom_1="0" zoom_2="0">
|
<File name="find_my_phone_screen.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="37082" topLine="603" />
|
<Cursor1 position="1078" topLine="3" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lv_drivers\win32drv\win32drv.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\misc\lv_timer.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="0" topLine="15" />
|
<Cursor1 position="2886" topLine="90" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\demos\widgets\lv_demo_widgets.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lv_drivers\lv_drv_conf_template.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="456" topLine="6" />
|
<Cursor1 position="10670" topLine="390" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\widgets\img\lv_img.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\draw\lv_draw_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="4439" topLine="123" />
|
<Cursor1 position="5230" topLine="191" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\examples\widgets\bar\lv_example_bar_6.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="2129" topLine="53" />
|
<Cursor1 position="181" topLine="0" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\font\lv_font_montserrat_12.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\hal\lv_hal_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="0" topLine="22" />
|
<Cursor1 position="5065" topLine="123" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\misc\lv_color.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\widgets\list\lv_list.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="10782" topLine="316" />
|
<Cursor1 position="721" topLine="16" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\core\lv_event.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="compass_screen.c" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="5693" topLine="115" />
|
<Cursor1 position="1480" topLine="179" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_drivers\display\monitor.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="289" topLine="31" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\hal\lv_hal_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="10233" topLine="226" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_style.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="9059" topLine="242" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_drivers\display\SSD1963.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1563" topLine="27" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\layouts\flex\lv_flex.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="950" topLine="43" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\list\lv_list.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2391" topLine="53" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="menu_screen.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="8350" topLine="165" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="altimeter_screen.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1028" topLine="31" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\label\lv_label.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="969" topLine="39" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="settings_screen.c" open="1" top="0" tabpos="1" split="0" active="1" splitpos="513" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="6343" topLine="145" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="7842" topLine="283" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="watch_face.h" open="0" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="225" topLine="6" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\font\lv_font_fmt_txt.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="0" topLine="24" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\layouts\flex\lv_flex.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="3097" topLine="74" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="altimeter_screen_assets.c" open="0" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="96342" topLine="161" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\chart\lv_chart.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="11658" topLine="336" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_tree.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1234" topLine="30" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_drivers\win32drv\win32drv.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="524" topLine="954" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_class.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1857" topLine="35" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_event.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="5365" topLine="214" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="watch_face.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="702" zoom_1="0" zoom_2="-1">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="8554" topLine="425" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\draw\lv_img_buf.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="6210" topLine="113" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_style_gen.c" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="20039" topLine="604" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_event.h" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="11297" topLine="329" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_log.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2557" topLine="68" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\lvgl.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="0" topLine="138" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="watch_menu_icons.c" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="watch_menu_icons.c" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="869291" topLine="156" />
|
<Cursor1 position="965838" topLine="209" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
<Folding>
|
<Folding>
|
||||||
<Collapse line="2" />
|
<Collapse line="2" />
|
||||||
@ -391,124 +222,39 @@
|
|||||||
<Collapse line="1729" />
|
<Collapse line="1729" />
|
||||||
</Folding>
|
</Folding>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\widgets\menu\lv_menu.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3321" topLine="109" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_anim.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="3835" topLine="68" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_log.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2557" topLine="68" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\display\SSD1963.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1563" topLine="27" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\draw\lv_img_buf.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="6210" topLine="113" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\lv_api_map.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="722" topLine="32" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\demos\widgets\assets\img_demo_widgets_avatar.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1282774" topLine="472" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\font\lv_font_montserrat_30.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="869" topLine="0" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\img\lv_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1863" topLine="59" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="music_player_screen.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="4937" topLine="104" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lv_drivers\display\monitor.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="289" topLine="31" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\widgets\list\lv_list.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="2" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="2391" topLine="53" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_style_gen.c" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="6152" topLine="192" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\font\lv_font_fmt_txt.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="0" topLine="24" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\misc\lv_color.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="6812" topLine="189" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="12525" topLine="363" />
|
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\hal\lv_hal_indev.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\hal\lv_hal_indev.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="3566" topLine="102" />
|
<Cursor1 position="3566" topLine="102" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="altimeter_screen_assets.c" open="0" top="0" tabpos="19" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\demos\widgets\lv_demo_widgets.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="96342" topLine="161" />
|
<Cursor1 position="2825" topLine="122" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="watch_face.c" open="0" top="0" tabpos="1" split="0" active="1" splitpos="702" zoom_1="1" zoom_2="-1">
|
<File name="compass_screen.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="15425" topLine="414" />
|
<Cursor1 position="3981" topLine="81" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\widgets\spinbox\lv_spinbox.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lv_drv_conf.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="4262" topLine="120" />
|
<Cursor1 position="6602" topLine="208" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="find_my_phone_screen.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\misc\lv_log.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="1078" topLine="3" />
|
<Cursor1 position="1509" topLine="59" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="common_screen_components.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\core\lv_obj_scroll.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="517" topLine="0" />
|
<Cursor1 position="4372" topLine="104" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\src\misc\lv_style.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\src\libs\ffmpeg\lv_ffmpeg.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="3064" topLine="106" />
|
<Cursor1 position="5784" topLine="170" />
|
||||||
</Cursor>
|
|
||||||
</File>
|
|
||||||
<File name="lvgl\src\core\lv_obj_tree.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
|
||||||
<Cursor>
|
|
||||||
<Cursor1 position="1234" topLine="139" />
|
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="lvgl\examples\widgets\menu\lv_example_menu_5.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="lvgl\examples\widgets\menu\lv_example_menu_5.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
@ -516,14 +262,273 @@
|
|||||||
<Cursor1 position="7631" topLine="141" />
|
<Cursor1 position="7631" topLine="141" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
<File name="menu_screen.h" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="find_my_phone_screen.c" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1081" topLine="138" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\draw\lv_draw_rect.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="539" topLine="9" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\lv_api_map.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="722" topLine="32" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\spinbox\lv_spinbox.h" open="0" top="0" tabpos="18" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="4262" topLine="120" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="music_player_screen.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1263" topLine="38" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\font\lv_font.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="5535" topLine="120" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\font\lv_symbol_def.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1135" topLine="14" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="notification_screen.h" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2362" topLine="27" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\demos\widgets\lv_demo_widgets.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="456" topLine="6" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_conf.h" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="572" topLine="15" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_area.h" open="0" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="8525" topLine="257" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_types.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1759" topLine="61" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_pos.h" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="11878" topLine="258" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\menu\lv_menu.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="3321" topLine="109" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="menu_screen.h" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="48" topLine="0" />
|
<Cursor1 position="48" topLine="0" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_pos.c" open="0" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="10562" topLine="336" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\img\lv_img.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1863" topLine="59" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_disp.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="7126" topLine="230" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="firmware_version.h" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="160" topLine="0" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_style_gen.h" open="0" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="29532" topLine="611" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="compass_assets.c" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="0" topLine="143" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_anim.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="749" topLine="34" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\layouts\grid\lv_grid.h" open="0" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="579" topLine="17" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="common_screen_components.h" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="517" topLine="0" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\tileview\lv_tileview.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1055" topLine="40" />
|
||||||
|
</Cursor>
|
||||||
|
<Folding>
|
||||||
|
<Collapse line="8" />
|
||||||
|
<Collapse line="995" />
|
||||||
|
</Folding>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2129" topLine="53" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="9479" topLine="300" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="main.c" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1743" topLine="54" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_indev.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="3034" topLine="107" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_color.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="10782" topLine="316" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\imgbtn\lv_imgbtn.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2184" topLine="61" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_drivers\win32drv\win32drv.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="0" topLine="15" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="watch_casio_assets.c" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2981397" topLine="949" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_class.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="3011" topLine="100" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
<File name="common_screen_components.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
<File name="common_screen_components.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
<Cursor>
|
<Cursor>
|
||||||
<Cursor1 position="498" topLine="21" />
|
<Cursor1 position="498" topLine="21" />
|
||||||
</Cursor>
|
</Cursor>
|
||||||
</File>
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\roller\lv_roller.h" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="715" topLine="26" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\img\lv_img.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="4439" topLine="123" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_tree.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2082" topLine="62" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_refr.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="2447" topLine="75" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\font\lv_font_montserrat_30.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="869" topLine="0" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lv_drivers\indev\keyboard.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="440" topLine="14" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj_style.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="7273" topLine="217" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="settings_screen.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1893" topLine="6" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_timer.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="5053" topLine="144" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\widgets\label\lv_label.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="5010" topLine="164" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_disp.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="6135" topLine="182" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="notification_screen.c" open="1" top="1" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1528" topLine="15" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\font\lv_font_montserrat_12.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="0" topLine="22" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\misc\lv_color.h" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1102" topLine="35" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_indev_scroll.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="14405" topLine="323" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="altimeter_screen.c" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="9615" topLine="246" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\src\core\lv_obj.h" open="0" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="10255" topLine="265" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
|
<File name="lvgl\demos\widgets\assets\img_demo_widgets_avatar.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||||
|
<Cursor>
|
||||||
|
<Cursor1 position="1282774" topLine="472" />
|
||||||
|
</Cursor>
|
||||||
|
</File>
|
||||||
</CodeBlocks_layout_file>
|
</CodeBlocks_layout_file>
|
||||||
|
@ -1,15 +1,45 @@
|
|||||||
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "notification_screen.h"
|
#include "notification_screen.h"
|
||||||
|
|
||||||
bool _notification_list_is_empty(NotificationList_t notificationList);
|
/* Internal API to manage notification objects */
|
||||||
|
bool _notification_list_is_empty(NotificationDataList_t notificationList);
|
||||||
|
void _notification_list_add_head(NotificationDataList_t *notificationList, NotificationData_t *notification);
|
||||||
|
NotificationData_t *_notification_list_remove_tail(NotificationDataList_t *notificationList);
|
||||||
|
NotificationData_t *_notification_list_remove_by_handle(NotificationDataList_t *notificationList, uint32_t handle);
|
||||||
|
uint8_t _notification_list_count(NotificationDataList_t notificationList);
|
||||||
|
uint8_t _notification_list_unread_count(NotificationDataList_t notificationList);
|
||||||
|
|
||||||
void _notification_list_add_head(NotificationList_t *notificationList, Notification_t *notification);
|
void _notification_list_debug(NotificationDataList_t notificationList);
|
||||||
|
/* Internal UI API */
|
||||||
|
void _display_message_notification(NotificationScreen_t * const notificationScreen, NotificationData_t *notification);
|
||||||
|
void _notification_popup_destroy(NotificationScreen_t * const notificationScreen);
|
||||||
|
const char *_notification_type_to_char(NotificationType_e notificationType);
|
||||||
|
const char *_notification_timestamp_to_date(time_t timestamp);
|
||||||
|
|
||||||
Notification_t *_notification_list_remove_tail(NotificationList_t *notificationList);
|
static void notification_scrolled_event_cb(lv_event_t *e)
|
||||||
|
{
|
||||||
uint8_t _notification_list_count(NotificationList_t notificationList);
|
NotificationScreen_t *notificationScreen = lv_event_get_user_data(e);
|
||||||
|
NotificationData_t *notification = lv_obj_get_user_data(lv_event_get_target(e));
|
||||||
void _notification_list_debug(NotificationList_t notificationList);
|
//If we didn't scroll down enough, make the notif pop again
|
||||||
|
if(lv_obj_get_scroll_y(e->target) >= 83)
|
||||||
|
{
|
||||||
|
lv_obj_scroll_to_y(e->target, 166, LV_ANIM_ON);
|
||||||
|
}
|
||||||
|
//Else we know that the user wants to close the notification, so we do it with an animation to reach 0
|
||||||
|
else if(lv_obj_get_scroll_y(e->target) != 0)
|
||||||
|
{
|
||||||
|
lv_obj_scroll_to_y(e->target, 0, LV_ANIM_ON);
|
||||||
|
}
|
||||||
|
else //We scrolled enough to tell that we saw the notification and that we want to close it
|
||||||
|
{
|
||||||
|
LV_LOG_USER("Notification closed");
|
||||||
|
_notification_popup_destroy(notificationScreen);
|
||||||
|
notificationScreen->new_notification_available = false;
|
||||||
|
notification->read = true;
|
||||||
|
if(notificationScreen->notificationOnStateChangeCb) notificationScreen->notificationOnStateChangeCb(NOTIFICATION_STATE_CLEARED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void notification_screen_init(NotificationScreen_t * const notificationScreen)
|
void notification_screen_init(NotificationScreen_t * const notificationScreen)
|
||||||
{
|
{
|
||||||
@ -19,14 +49,14 @@ void notification_screen_init(NotificationScreen_t * const notificationScreen)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(notificationScreen, 0, sizeof(NotificationScreen_t));
|
||||||
|
|
||||||
//Let's initialize the list of free notifications from the pool
|
//Let's initialize the list of free notifications from the pool
|
||||||
for(uint8_t i = 0; i < MAX_NOTIFICATIONS_COUNT; i++)
|
for(uint8_t i = 0; i < MAX_NOTIFICATIONS_COUNT; i++)
|
||||||
_notification_list_add_head(¬ificationScreen->freeNotificationList, notificationScreen->notificationPool + i);
|
_notification_list_add_head(¬ificationScreen->freeNotificationList, notificationScreen->notificationPool + i);
|
||||||
|
|
||||||
notification_screen_notify(notificationScreen, 42, NOTIFICATION_TYPE_UNKNOWN, NULL, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void notification_screen_notify(NotificationScreen_t * const notificationScreen, uint32_t handle, NotificationType_e notificationType, char * title, char * body)
|
void notification_screen_register_on_state_change_cb(NotificationScreen_t * const notificationScreen, NotificationOnStateChangeCb_t notificationOnStateChangeCb)
|
||||||
{
|
{
|
||||||
if(!notificationScreen)
|
if(!notificationScreen)
|
||||||
{
|
{
|
||||||
@ -34,7 +64,18 @@ void notification_screen_notify(NotificationScreen_t * const notificationScreen,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Notification_t *notification = NULL;
|
notificationScreen->notificationOnStateChangeCb = notificationOnStateChangeCb;
|
||||||
|
}
|
||||||
|
|
||||||
|
void notification_screen_notify(NotificationScreen_t * const notificationScreen, uint32_t handle, time_t dateOfArrival, NotificationType_e notificationType, char * title, char * body)
|
||||||
|
{
|
||||||
|
if(!notificationScreen)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("NULL pointer given !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NotificationData_t *notification = NULL;
|
||||||
|
|
||||||
//We try to get a notification from the free list.
|
//We try to get a notification from the free list.
|
||||||
if((notification = _notification_list_remove_tail(¬ificationScreen->freeNotificationList)) == NULL)
|
if((notification = _notification_list_remove_tail(¬ificationScreen->freeNotificationList)) == NULL)
|
||||||
@ -53,32 +94,66 @@ void notification_screen_notify(NotificationScreen_t * const notificationScreen,
|
|||||||
}
|
}
|
||||||
|
|
||||||
notification->handle = handle;
|
notification->handle = handle;
|
||||||
|
notification->dateOfArrival = dateOfArrival;
|
||||||
notification->type = notificationType;
|
notification->type = notificationType;
|
||||||
notification->title = title;
|
notification->title = title;
|
||||||
notification->body = body;
|
notification->body = body;
|
||||||
|
notification->read = false;
|
||||||
|
|
||||||
_notification_list_add_head(¬ificationScreen->notificationList, notification);
|
_notification_list_add_head(¬ificationScreen->notificationList, notification);
|
||||||
|
notificationScreen->new_notification_available = true;
|
||||||
|
|
||||||
//Create and display a graphical widget containing the notification
|
switch(notificationType)
|
||||||
lv_obj_t *notification_display = lv_layer_sys();
|
|
||||||
|
|
||||||
if(!notification_display)
|
|
||||||
{
|
{
|
||||||
LV_LOG_ERROR("Could not retrieve sys layer !");
|
case NOTIFICATION_TYPE_CALL:
|
||||||
return;
|
break;
|
||||||
|
default:
|
||||||
|
_display_message_notification(notificationScreen, notification);
|
||||||
|
if(notificationScreen->notificationOnStateChangeCb) notificationScreen->notificationOnStateChangeCb(NOTIFICATION_STATE_DISPLAYED);
|
||||||
}
|
}
|
||||||
/*lv_obj_t *obj = lv_obj_create(notification_display);
|
|
||||||
lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), LV_PART_MAIN);
|
|
||||||
lv_obj_set_height(obj, lv_disp_get_hor_res(NULL)/2);
|
|
||||||
lv_obj_set_style_bg_opa(notification_display, 255, LV_PART_MAIN);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _notification_list_is_empty(NotificationList_t notificationList)
|
bool notification_screen_new_notification_available(NotificationScreen_t * const notificationScreen)
|
||||||
|
{
|
||||||
|
if(!notificationScreen)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("NULL pointer given !");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(notificationScreen->new_notification_available)
|
||||||
|
{
|
||||||
|
notificationScreen->new_notification_available = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t notification_screen_notification_count(NotificationScreen_t * const notificationScreen)
|
||||||
|
{
|
||||||
|
return _notification_list_count(notificationScreen->notificationList);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t notification_screen_unread_notification_count(NotificationScreen_t * const notificationScreen)
|
||||||
|
{
|
||||||
|
return _notification_list_unread_count(notificationScreen->notificationList);;
|
||||||
|
}
|
||||||
|
|
||||||
|
void notification_screen_destroy(NotificationScreen_t * const notificationScreen)
|
||||||
|
{
|
||||||
|
if(!notificationScreen)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("NULL pointer given !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool _notification_list_is_empty(NotificationDataList_t notificationList)
|
||||||
{
|
{
|
||||||
return notificationList == NULL;
|
return notificationList == NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _notification_list_add_head(NotificationList_t *notificationList, Notification_t *notification)
|
void _notification_list_add_head(NotificationDataList_t *notificationList, NotificationData_t *notification)
|
||||||
{
|
{
|
||||||
if(!notificationList || !notification) return;
|
if(!notificationList || !notification) return;
|
||||||
|
|
||||||
@ -91,13 +166,13 @@ void _notification_list_add_head(NotificationList_t *notificationList, Notificat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Notification_t *_notification_list_remove_tail(NotificationList_t *notificationList)
|
NotificationData_t *_notification_list_remove_tail(NotificationDataList_t *notificationList)
|
||||||
{
|
{
|
||||||
if(!notificationList) return NULL;
|
if(!notificationList) return NULL;
|
||||||
|
|
||||||
if(_notification_list_is_empty(*notificationList)) return NULL;
|
if(_notification_list_is_empty(*notificationList)) return NULL;
|
||||||
|
|
||||||
Notification_t *toReturn = NULL;
|
NotificationData_t *toReturn = NULL;
|
||||||
|
|
||||||
//There is only one item in the list
|
//There is only one item in the list
|
||||||
if((*notificationList)->next == NULL)
|
if((*notificationList)->next == NULL)
|
||||||
@ -107,7 +182,7 @@ Notification_t *_notification_list_remove_tail(NotificationList_t *notificationL
|
|||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
NotificationList_t cursor = *notificationList;
|
NotificationDataList_t cursor = *notificationList;
|
||||||
while(!_notification_list_is_empty(cursor->next->next))
|
while(!_notification_list_is_empty(cursor->next->next))
|
||||||
{
|
{
|
||||||
cursor = cursor->next;
|
cursor = cursor->next;
|
||||||
@ -118,7 +193,40 @@ Notification_t *_notification_list_remove_tail(NotificationList_t *notificationL
|
|||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t _notification_list_count(NotificationList_t notificationList)
|
NotificationData_t *_notification_list_remove_by_handle(NotificationDataList_t *notificationList, uint32_t handle)
|
||||||
|
{
|
||||||
|
if(!notificationList) return NULL;
|
||||||
|
|
||||||
|
if(_notification_list_is_empty(*notificationList)) return NULL;
|
||||||
|
|
||||||
|
NotificationData_t *toReturn = NULL;
|
||||||
|
|
||||||
|
//There is only one item in the list
|
||||||
|
if((*notificationList)->next == NULL)
|
||||||
|
{
|
||||||
|
if((*notificationList)->handle == handle)
|
||||||
|
{
|
||||||
|
toReturn = *notificationList;
|
||||||
|
*notificationList = NULL;
|
||||||
|
}
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
NotificationDataList_t cursor = *notificationList;
|
||||||
|
while(!_notification_list_is_empty(cursor->next))
|
||||||
|
{
|
||||||
|
if(cursor->next->handle == handle)
|
||||||
|
{
|
||||||
|
toReturn = cursor->next;
|
||||||
|
cursor->next = NULL;
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
cursor = cursor->next;
|
||||||
|
}
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t _notification_list_count(NotificationDataList_t notificationList)
|
||||||
{
|
{
|
||||||
uint8_t count = 0;
|
uint8_t count = 0;
|
||||||
while(!_notification_list_is_empty(notificationList))
|
while(!_notification_list_is_empty(notificationList))
|
||||||
@ -130,7 +238,169 @@ uint8_t _notification_list_count(NotificationList_t notificationList)
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _notification_list_debug(NotificationList_t notificationList)
|
uint8_t _notification_list_unread_count(NotificationDataList_t notificationList)
|
||||||
|
{
|
||||||
|
uint8_t count = 0;
|
||||||
|
while(!_notification_list_is_empty(notificationList))
|
||||||
|
{
|
||||||
|
if(!notificationList->read)count++;
|
||||||
|
notificationList = notificationList->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _display_message_notification(NotificationScreen_t * const notificationScreen, NotificationData_t *notification)
|
||||||
|
{
|
||||||
|
//Create and display a graphical widget containing the notification
|
||||||
|
lv_obj_t *notification_display = lv_layer_top();
|
||||||
|
|
||||||
|
if(!notification_display)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("Could not retrieve sys layer !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*We can have two cases :
|
||||||
|
1) No notification is currently being displayed, so we create the needed UI objects
|
||||||
|
2) A notification is currently being shown and all UI elements were already created / allocated
|
||||||
|
*/
|
||||||
|
|
||||||
|
lv_obj_set_user_data(notification_display, notification);
|
||||||
|
|
||||||
|
if(lv_obj_get_child_cnt(notification_display) == 0)
|
||||||
|
{
|
||||||
|
//Only allow to scroll down and not up (LV_DIR_TOP makes it, is it a bug ?)
|
||||||
|
lv_obj_set_scroll_dir(notification_display, LV_DIR_TOP);
|
||||||
|
lv_obj_add_event_cb(notification_display, &(notification_scrolled_event_cb), LV_EVENT_SCROLL_END, notificationScreen);
|
||||||
|
|
||||||
|
lv_obj_t *main_notification = lv_obj_create(notification_display);
|
||||||
|
lv_obj_set_size(main_notification, 202, 166);
|
||||||
|
lv_obj_set_style_pad_all(main_notification, 0, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_pad_top(main_notification, 10, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_border_width(main_notification, 0, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_radius(main_notification, 30, LV_PART_MAIN);
|
||||||
|
lv_obj_align(main_notification, LV_ALIGN_BOTTOM_MID,0,166);
|
||||||
|
lv_obj_set_style_bg_color(main_notification, lv_color_make(52, 93, 106), LV_PART_MAIN);
|
||||||
|
//lv_obj_set_style_opa(main_notification, 240, LV_PART_MAIN); //Opacity is too heavy on ram :-(
|
||||||
|
|
||||||
|
//Create the title, type and date labels
|
||||||
|
if(notificationScreen->type_label)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("type_label should be NULL here !");
|
||||||
|
lv_obj_del(notificationScreen->type_label);
|
||||||
|
notificationScreen->type_label = NULL;
|
||||||
|
}
|
||||||
|
notificationScreen->type_label = lv_label_create(main_notification);
|
||||||
|
lv_obj_set_style_text_color(notificationScreen->type_label, lv_color_white(), LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_pad_left(notificationScreen->type_label, 10, LV_PART_MAIN);
|
||||||
|
lv_label_set_long_mode(notificationScreen->type_label, LV_LABEL_LONG_SCROLL_CIRCULAR);
|
||||||
|
lv_obj_set_style_anim_speed(notificationScreen->type_label, 10, LV_PART_MAIN);
|
||||||
|
lv_obj_set_width(notificationScreen->type_label, lv_pct(27));
|
||||||
|
lv_label_set_text(notificationScreen->type_label, _notification_type_to_char(notification->type));
|
||||||
|
|
||||||
|
if(notificationScreen->title_label)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("title_label should be NULL here !");
|
||||||
|
lv_obj_del(notificationScreen->title_label);
|
||||||
|
notificationScreen->title_label = NULL;
|
||||||
|
}
|
||||||
|
notificationScreen->title_label = lv_label_create(main_notification);
|
||||||
|
lv_obj_set_style_text_color(notificationScreen->title_label, lv_color_white(), LV_PART_MAIN);
|
||||||
|
lv_obj_align(notificationScreen->title_label, LV_ALIGN_TOP_MID, 0, 0);
|
||||||
|
lv_obj_set_style_anim_speed(notificationScreen->title_label, 10, LV_PART_MAIN);
|
||||||
|
lv_label_set_long_mode(notificationScreen->title_label, LV_LABEL_LONG_SCROLL_CIRCULAR);
|
||||||
|
lv_obj_set_width(notificationScreen->title_label, lv_pct(40));
|
||||||
|
lv_label_set_text_static(notificationScreen->title_label, notification->title);
|
||||||
|
|
||||||
|
if(notificationScreen->date_label)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("date_label should be NULL here !");
|
||||||
|
lv_obj_del(notificationScreen->date_label);
|
||||||
|
notificationScreen->date_label = NULL;
|
||||||
|
}
|
||||||
|
notificationScreen->date_label = lv_label_create(main_notification);
|
||||||
|
lv_obj_set_style_pad_right(notificationScreen->date_label, 10, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_text_color(notificationScreen->date_label, lv_color_white(), LV_PART_MAIN);
|
||||||
|
lv_obj_align(notificationScreen->date_label, LV_ALIGN_TOP_RIGHT, 0, 0);
|
||||||
|
lv_label_set_text(notificationScreen->date_label, _notification_timestamp_to_date(notification->dateOfArrival));
|
||||||
|
|
||||||
|
//Create the sub-area in the notification
|
||||||
|
lv_obj_t *sub_area = lv_obj_create(main_notification);
|
||||||
|
lv_obj_set_style_pad_all(sub_area, 10, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_border_width(sub_area, 0, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_radius(sub_area, 0, LV_PART_MAIN);
|
||||||
|
lv_obj_set_width(sub_area, 202);
|
||||||
|
lv_obj_set_height(sub_area, 136);
|
||||||
|
lv_obj_align(sub_area, LV_ALIGN_BOTTOM_MID, 0, 0);
|
||||||
|
lv_obj_set_style_bg_color(sub_area, lv_color_make(22, 52, 62), LV_PART_MAIN);
|
||||||
|
//Create the main text
|
||||||
|
if(notificationScreen->body_label)
|
||||||
|
{
|
||||||
|
LV_LOG_ERROR("body_label should be NULL here !");
|
||||||
|
lv_obj_del(notificationScreen->body_label);
|
||||||
|
notificationScreen->body_label = NULL;
|
||||||
|
}
|
||||||
|
notificationScreen->body_label = lv_label_create(sub_area);
|
||||||
|
lv_obj_set_width(notificationScreen->body_label, 182);
|
||||||
|
lv_obj_set_style_text_color(notificationScreen->body_label, lv_color_white(), LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_pad_all(notificationScreen->body_label, 0, LV_PART_MAIN);
|
||||||
|
lv_obj_set_style_pad_bottom(notificationScreen->body_label, 40, LV_PART_MAIN);
|
||||||
|
lv_label_set_long_mode(notificationScreen->body_label, LV_LABEL_LONG_WRAP);
|
||||||
|
lv_label_set_text_static(notificationScreen->body_label, notification->body);
|
||||||
|
|
||||||
|
|
||||||
|
lv_obj_scroll_to_y(notification_display, 166, LV_ANIM_ON);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LV_LOG_USER("A notification is already being displayed, updating it's content !");
|
||||||
|
//We just have to update the notification content
|
||||||
|
lv_label_set_text_static(notificationScreen->type_label, _notification_type_to_char(notification->type));
|
||||||
|
lv_label_set_text_static(notificationScreen->title_label, notification->title);
|
||||||
|
lv_label_set_text_static(notificationScreen->date_label, _notification_timestamp_to_date(notification->dateOfArrival));
|
||||||
|
lv_label_set_text_static(notificationScreen->body_label, notification->body);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _notification_popup_destroy(NotificationScreen_t * const notificationScreen)
|
||||||
|
{
|
||||||
|
lv_obj_clean(lv_layer_top());
|
||||||
|
lv_obj_remove_event_cb_with_user_data(lv_layer_top(), &(notification_scrolled_event_cb), notificationScreen);
|
||||||
|
notificationScreen->type_label = NULL;
|
||||||
|
notificationScreen->title_label = NULL;
|
||||||
|
notificationScreen->date_label = NULL;
|
||||||
|
notificationScreen->body_label = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *_notification_type_to_char(NotificationType_e notificationType)
|
||||||
|
{
|
||||||
|
switch(notificationType)
|
||||||
|
{
|
||||||
|
case NOTIFICATION_TYPE_SMS:
|
||||||
|
return "Sms";
|
||||||
|
case NOTIFICATION_TYPE_EMAIL:
|
||||||
|
return "Email";
|
||||||
|
case NOTIFICATION_TYPE_WHATSAPP:
|
||||||
|
return "WhatsApp";
|
||||||
|
case NOTIFICATION_TYPE_GADGET_BRIDGE:
|
||||||
|
return "GadgetBridge";
|
||||||
|
case NOTIFICATION_TYPE_UNKNOWN:
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *_notification_timestamp_to_date(time_t timestamp)
|
||||||
|
{
|
||||||
|
static char date[9]; //Ex 7:23PM
|
||||||
|
|
||||||
|
struct tm *time = gmtime(×tamp);
|
||||||
|
sprintf(date, "%s%d:%s%d", time->tm_hour > 10 ? "" : "0", time->tm_hour, time->tm_min > 10 ? "" : "0", time->tm_min);
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _notification_list_debug(NotificationDataList_t notificationList)
|
||||||
{
|
{
|
||||||
while(!_notification_list_is_empty(notificationList))
|
while(!_notification_list_is_empty(notificationList))
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
#ifndef NOTIFICATION_SCREEN_H
|
#ifndef NOTIFICATION_SCREEN_H
|
||||||
|
#define NOTIFICATION_SCREEN_H
|
||||||
|
|
||||||
#include "lvgl.h"
|
#include "lvgl.h"
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#define MAX_NOTIFICATIONS_COUNT (10) //The maximum number of notifications which will be stored before the oldest one gets discarded.
|
/* The maximum number of notifications which will be stored before the oldest one gets discarded
|
||||||
|
to make room for the new one.
|
||||||
|
*/
|
||||||
|
#define MAX_NOTIFICATIONS_COUNT (10)
|
||||||
|
|
||||||
typedef enum NotificationType
|
typedef enum NotificationType
|
||||||
{
|
{
|
||||||
@ -11,32 +16,61 @@ typedef enum NotificationType
|
|||||||
NOTIFICATION_TYPE_WHATSAPP,
|
NOTIFICATION_TYPE_WHATSAPP,
|
||||||
NOTIFICATION_TYPE_GADGET_BRIDGE,
|
NOTIFICATION_TYPE_GADGET_BRIDGE,
|
||||||
NOTIFICATION_TYPE_UNKNOWN,
|
NOTIFICATION_TYPE_UNKNOWN,
|
||||||
|
// This enum value has no match in GadgetBridge's enum
|
||||||
|
NOTIFICATION_TYPE_CALL,
|
||||||
} NotificationType_e;
|
} NotificationType_e;
|
||||||
|
|
||||||
typedef struct Notification
|
typedef enum NotificationState
|
||||||
{
|
{
|
||||||
struct Notification *next;
|
NOTIFICATION_STATE_CLEARED = 0,
|
||||||
|
NOTIFICATION_STATE_DISPLAYED = 1,
|
||||||
|
} NotificationState_e;
|
||||||
|
|
||||||
|
typedef struct NotificationData
|
||||||
|
{
|
||||||
|
struct NotificationData *next;
|
||||||
uint32_t handle;
|
uint32_t handle;
|
||||||
NotificationType_e type;
|
time_t dateOfArrival;
|
||||||
char *title;
|
char *title;
|
||||||
char *body;
|
char *body;
|
||||||
} Notification_t, *NotificationList_t;
|
NotificationType_e type;
|
||||||
|
bool read; // Has the notification been read (aka closed by the user)
|
||||||
|
|
||||||
|
} NotificationData_t, *NotificationDataList_t;
|
||||||
|
|
||||||
|
typedef void (*NotificationOnStateChangeCb_t)(NotificationState_e notificationState);
|
||||||
|
|
||||||
typedef struct NotificationScreen
|
typedef struct NotificationScreen
|
||||||
{
|
{
|
||||||
//Can be erased attributes
|
// Can be erased attributes
|
||||||
lv_obj_t *display;
|
lv_obj_t *display;
|
||||||
|
|
||||||
//Should not be erased attributes
|
// Should not be erased attributes
|
||||||
Notification_t notificationPool[MAX_NOTIFICATIONS_COUNT];
|
// Notification UI object
|
||||||
NotificationList_t notificationList; //Actual notifications
|
lv_obj_t *type_label;
|
||||||
NotificationList_t freeNotificationList; //Free notiffication object pool
|
lv_obj_t *title_label;
|
||||||
|
lv_obj_t *date_label;
|
||||||
|
lv_obj_t *body_label;
|
||||||
|
NotificationOnStateChangeCb_t notificationOnStateChangeCb;
|
||||||
|
// Notification history data structure
|
||||||
|
NotificationData_t notificationPool[MAX_NOTIFICATIONS_COUNT];
|
||||||
|
NotificationDataList_t notificationList; // Actual notifications
|
||||||
|
NotificationDataList_t freeNotificationList; // Free notification object pool
|
||||||
|
// Miscellaneous
|
||||||
|
bool new_notification_available;
|
||||||
} NotificationScreen_t;
|
} NotificationScreen_t;
|
||||||
|
|
||||||
void notification_screen_init(NotificationScreen_t * const notificationScreen);
|
void notification_screen_init(NotificationScreen_t * const notificationScreen);
|
||||||
|
|
||||||
void notification_screen_notify(NotificationScreen_t * const notificationScreen, uint32_t handle, NotificationType_e notificationType, char * title, char * body);
|
void notification_screen_register_on_state_change_cb(NotificationScreen_t * const notificationScreen, NotificationOnStateChangeCb_t notificationOnStateChangeCb);
|
||||||
|
|
||||||
|
void notification_screen_notify(NotificationScreen_t * const notificationScreen, uint32_t handle, time_t dateOfArrival, NotificationType_e notificationType, char * title, char * body);
|
||||||
|
|
||||||
|
bool notification_screen_new_notification_available(NotificationScreen_t * const notificationScreen);
|
||||||
|
|
||||||
|
uint8_t notification_screen_notification_count(NotificationScreen_t * const notificationScreen);
|
||||||
|
|
||||||
|
uint8_t notification_screen_unread_notification_count(NotificationScreen_t * const notificationScreen);
|
||||||
|
|
||||||
void notification_screen_create(NotificationScreen_t * const notificationScreen);
|
void notification_screen_create(NotificationScreen_t * const notificationScreen);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user