39 lines
		
	
	
		
			792 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			792 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include <furi.h>
 | 
						|
#include <gui/view_dispatcher.h>
 | 
						|
#include <gui/modules/submenu.h>
 | 
						|
#include <gui/modules/popup.h>
 | 
						|
#include "accessor-event.h"
 | 
						|
 | 
						|
class AccessorAppViewManager {
 | 
						|
public:
 | 
						|
    enum class ViewType : uint8_t {
 | 
						|
        Submenu,
 | 
						|
        Popup,
 | 
						|
        Tune,
 | 
						|
    };
 | 
						|
 | 
						|
    osMessageQueueId_t event_queue;
 | 
						|
 | 
						|
    AccessorAppViewManager();
 | 
						|
    ~AccessorAppViewManager();
 | 
						|
 | 
						|
    void switch_to(ViewType type);
 | 
						|
 | 
						|
    void receive_event(AccessorEvent* event);
 | 
						|
    void send_event(AccessorEvent* event);
 | 
						|
 | 
						|
    Submenu* get_submenu();
 | 
						|
    Popup* get_popup();
 | 
						|
 | 
						|
private:
 | 
						|
    ViewDispatcher* view_dispatcher;
 | 
						|
    Gui* gui;
 | 
						|
 | 
						|
    uint32_t previous_view_callback(void* context);
 | 
						|
    void add_view(ViewType view_type, View* view);
 | 
						|
 | 
						|
    // view elements
 | 
						|
    Submenu* submenu;
 | 
						|
    Popup* popup;
 | 
						|
}; |