add an example app structe
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user