add an example app structe

This commit is contained in:
sharandac
2020-08-03 16:11:37 +02:00
parent 489b01809d
commit 04299d4f86
20 changed files with 1010 additions and 20 deletions

View File

@@ -43,6 +43,7 @@ LV_FONT_DECLARE(Ubuntu_16px);
lv_task_t * task;
void main_tile_task( lv_task_t * task );
void main_tile_aling_widgets( void );
void main_tile_setup( void ) {
main_tile_num = mainbar_add_tile( 0, 0 );
@@ -88,8 +89,6 @@ void main_tile_setup( void ) {
for ( int widget = 0 ; widget < MAX_WIDGET_NUM ; widget++ ) {
widget_entry[ widget ].widget = lv_obj_create( main_cont, NULL );
widget_entry[ widget ].active = false;
widget_entry[ widget ].x = 0;
widget_entry[ widget ].y = 0;
lv_obj_reset_style_list( widget_entry[ widget ].widget, LV_OBJ_PART_MAIN );
lv_obj_add_style( widget_entry[ widget ].widget, LV_OBJ_PART_MAIN, style );
lv_obj_set_size( widget_entry[ widget ].widget, 64, 80 );
@@ -103,15 +102,36 @@ lv_obj_t *main_tile_register_widget( void ) {
for( int widget = 0 ; widget < MAX_WIDGET_NUM ; widget++ ) {
if ( widget_entry[ widget ].active == false ) {
widget_entry[ widget ].active = true;
lv_obj_align( clock_cont, main_cont, LV_ALIGN_IN_TOP_MID, 0, 0 );
lv_obj_align( widget_entry[ widget ].widget , main_cont, LV_ALIGN_IN_BOTTOM_MID, 0, -32 );
lv_obj_set_hidden( widget_entry[ widget ].widget, false );
main_tile_aling_widgets();
return( widget_entry[ widget ].widget );
}
}
log_e("no more space for a widget");
return( NULL );
}
void main_tile_aling_widgets( void ) {
int active_widgets = 0;
lv_coord_t xpos = 0;
for ( int widget = 0 ; widget < MAX_WIDGET_NUM ; widget++ ) {
if ( widget_entry[ widget ].active )
active_widgets++;
}
if ( active_widgets == 0 ) return;
lv_obj_align( clock_cont, main_cont, LV_ALIGN_IN_TOP_MID, 0, 0 );
xpos = 0 - ( ( WIDGET_X_SIZE * active_widgets ) + ( ( active_widgets - 1 ) * WIDGET_X_CLEARENCE ) ) / 2;
for ( int widget = 0 ; widget < active_widgets ; widget++ ) {
lv_obj_align( widget_entry[ widget ].widget , main_cont, LV_ALIGN_IN_BOTTOM_MID, xpos + ( WIDGET_X_SIZE * widget ) + ( widget * WIDGET_X_CLEARENCE ) + 32 , -32 );
}
}
uint32_t main_tile_get_tile_num( void ) {
return( main_tile_num );
}

View File

@@ -24,7 +24,10 @@
#include <TTGO.h>
#define MAX_WIDGET_NUM 3
#define MAX_WIDGET_NUM 3
#define WIDGET_X_SIZE 64
#define WIDGET_Y_SIZE 80
#define WIDGET_X_CLEARENCE 16
typedef struct {
lv_obj_t *widget;

View File

@@ -48,6 +48,7 @@ static void enter_battery_setup_event_cb( lv_obj_t * obj, lv_event_t event );
static void exit_battery_setup_event_cb( lv_obj_t * obj, lv_event_t event );
static void battery_percent_switch_event_handler( lv_obj_t * obj, lv_event_t event );
static void battery_experimental_switch_event_handler( lv_obj_t * obj, lv_event_t event );
void battery_set_experimental_indicator( void );
void battery_settings_tile_setup( void ) {
// get an app tile and copy mainstyle
@@ -138,28 +139,35 @@ void battery_settings_tile_setup( void ) {
if ( pmu_get_experimental_power_save() ) {
lv_switch_on( battery_experimental_switch, LV_ANIM_OFF);
lv_obj_set_hidden( battery_setup_info_img, false );
}
else
lv_switch_off( battery_experimental_switch, LV_ANIM_OFF);
battery_set_experimental_indicator();
}
void battery_set_experimental_indicator( void ) {
if ( pmu_get_experimental_power_save() || pmu_get_calculated_percent() ) {
lv_obj_set_hidden( battery_setup_info_img, false );
}
else {
lv_obj_set_hidden( battery_setup_info_img, true );
}
}
static void battery_percent_switch_event_handler( lv_obj_t * obj, lv_event_t event ) {
switch( event ) {
case( LV_EVENT_VALUE_CHANGED ): pmu_set_calculated_percent( lv_switch_get_state( obj ) );
break;
}
battery_set_experimental_indicator();
}
static void battery_experimental_switch_event_handler( lv_obj_t * obj, lv_event_t event ) {
switch( event ) {
case( LV_EVENT_VALUE_CHANGED ): pmu_set_experimental_power_save( lv_switch_get_state( obj ) );
if ( pmu_get_experimental_power_save() )
lv_obj_set_hidden( battery_setup_info_img, false );
else
lv_obj_set_hidden( battery_setup_info_img, true );
break;
}
battery_set_experimental_indicator();
}
static void enter_battery_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {

View File

@@ -33,7 +33,6 @@
#include "gui/mainbar/setup_tile/setup.h"
#include "gui/statusbar.h"
#include "hardware/display.h"
#include "hardware/motor.h"
EventGroupHandle_t update_event_handle = NULL;
TaskHandle_t _update_Task;
@@ -167,7 +166,6 @@ static void exit_update_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
static void update_event_handler(lv_obj_t * obj, lv_event_t event) {
if(event == LV_EVENT_CLICKED) {
motor_vibe( 1 );
if ( xEventGroupGetBits( update_event_handle) & ( UPDATE_GET_VERSION_REQUEST | UPDATE_REQUEST ) ) {
return;
}

View File

@@ -29,8 +29,6 @@
#include "gui/statusbar.h"
#include "gui/keyboard.h"
#include "hardware/motor.h"
update_config_t update_config;
lv_obj_t *update_setup_tile = NULL;