 3ab9112c21
			
		
	
	
		3ab9112c21
		
			
		
	
	
	
	
		
			
			* Fix lock screen menu * Fix pin setup in lock menu * Desktop GUI layer on FS, black status bar * Desktop: fix spelling * Fix first start screen * Fix status bar drawing Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <stdbool.h>
 | |
| #include <stdint.h>
 | |
| #include <gui/icon.h>
 | |
| 
 | |
| typedef struct DesktopAnimation DesktopAnimation;
 | |
| 
 | |
| typedef struct ActiveAnimation ActiveAnimation;
 | |
| typedef struct BasicAnimation BasicAnimation;
 | |
| 
 | |
| typedef enum {
 | |
|     DesktopAnimationStateBasic,
 | |
|     DesktopAnimationStateActive,
 | |
|     DesktopAnimationStateLevelUpIsPending,
 | |
|     DesktopAnimationStateSDEmpty,
 | |
|     DesktopAnimationStateSDEmptyURL,
 | |
|     DesktopAnimationStateSDCorrupted,
 | |
| } DesktopAnimationState;
 | |
| 
 | |
| struct BasicAnimation {
 | |
|     const Icon* icon;
 | |
|     uint16_t duration; // sec
 | |
|     uint16_t active_cooldown;
 | |
|     uint8_t weight;
 | |
|     bool black_status_bar;
 | |
|     uint16_t butthurt_level_mask;
 | |
| };
 | |
| 
 | |
| struct ActiveAnimation {
 | |
|     const Icon* icon;
 | |
|     bool black_status_bar;
 | |
|     uint16_t duration; // sec
 | |
| };
 | |
| 
 | |
| typedef struct {
 | |
|     const BasicAnimation* basic;
 | |
|     const ActiveAnimation* active;
 | |
| } PairedAnimation;
 | |
| 
 | |
| typedef void (*AnimationChangedCallback)(void*);
 | |
| 
 | |
| DesktopAnimation* desktop_animation_alloc(void);
 | |
| void desktop_animation_free(DesktopAnimation*);
 | |
| void desktop_animation_activate(DesktopAnimation* instance);
 | |
| void desktop_animation_set_animation_changed_callback(
 | |
|     DesktopAnimation* instance,
 | |
|     AnimationChangedCallback callback,
 | |
|     void* context);
 | |
| 
 | |
| DesktopAnimationState desktop_animation_handle_right(DesktopAnimation* animation);
 | |
| 
 | |
| void desktop_animation_start_oneshot_levelup(DesktopAnimation* animation);
 | |
| 
 | |
| const Icon*
 | |
|     desktop_animation_get_animation(DesktopAnimation* animation, bool* status_bar_background_black);
 | |
| const Icon* desktop_animation_get_oneshot_frame(DesktopAnimation* animation);
 | |
| 
 | |
| void desktop_start_new_idle_animation(DesktopAnimation* animation);
 |