* Makefile, Scripts: new linter * About: remove ID from IC * Firmware: remove double define for DIVC/DIVR * Scripts: check folder names too. Docker: replace syntax check with make lint. * Reformat Sources and Migrate to new file naming convention * Docker: symlink clang-format-12 to clang-format * Add coding style guide
		
			
				
	
	
		
			29 lines
		
	
	
		
			632 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			632 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include "generic_element.h"
 | 
						|
 | 
						|
typedef void (*ButtonElementCallback)(void* context);
 | 
						|
 | 
						|
class ButtonElement : public GenericElement {
 | 
						|
public:
 | 
						|
    ButtonElement();
 | 
						|
    ~ButtonElement() final;
 | 
						|
    void draw(Canvas* canvas) final;
 | 
						|
    bool input(InputEvent* event) final;
 | 
						|
 | 
						|
    enum class Type : uint8_t {
 | 
						|
        Left,
 | 
						|
        Center,
 | 
						|
        Right,
 | 
						|
    };
 | 
						|
 | 
						|
    void set_type(Type type, const char* text);
 | 
						|
    void set_callback(void* context, ButtonElementCallback callback);
 | 
						|
 | 
						|
private:
 | 
						|
    Type type = Type::Left;
 | 
						|
    const char* text = nullptr;
 | 
						|
 | 
						|
    void* context = nullptr;
 | 
						|
    ButtonElementCallback callback = nullptr;
 | 
						|
};
 |