Files
discoverpixy/common/gui/screen.h
2015-05-11 20:44:56 +02:00

46 lines
972 B
C

#ifndef SCREEN_H
#define SCREEN_H
/**
* @addtogroup gui
*/
/*@{*/
/**
* @defgroup screen Screen
* The Screen Submodule
*/
/*@{*/
#include <stdio.h>
#include <stdbool.h>
typedef void (*SCREEN_CALLBACK)(void* screen); //!< Function pointer used...
typedef struct SCREEN_S{
SCREEN_CALLBACK on_enter;
SCREEN_CALLBACK on_leave;
SCREEN_CALLBACK on_update;
struct SCREEN_S* next; //Used internally. do not modify
} SCREEN_STRUCT;
//Navigate to the given string as soon as the app enters the main loop again. Method can be called from an interrupt
bool gui_screen_navigate(SCREEN_STRUCT* screen);
//Navigate one screen back as soon as the app enters the main loop again. Method can be called from an interrupt
bool gui_screen_back();
//Returns the current active screen
SCREEN_STRUCT* gui_screen_get_current();
//Updates/switches the screens. Call this from the app main loop, as fast as you can.
void gui_screen_update();
/*@}@}*/
#endif /* SCREEN_H */