| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /**
- * @file popup.h
- * GUI: Popup view module API
- */
- #pragma once
- #include <gui/view.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** Popup anonymous structure */
- typedef struct Popup Popup;
- /** Popup result callback type
- * @warning comes from GUI thread
- */
- typedef void (*PopupCallback)(void* context);
- /** Allocate and initialize popup
- *
- * This popup used to ask simple questions like Yes/
- *
- * @return Popup instance
- */
- Popup* popup_alloc();
- /** Deinitialize and free popup
- *
- * @param popup Popup instance
- */
- void popup_free(Popup* popup);
- /** Get popup view
- *
- * @param popup Popup instance
- *
- * @return View instance that can be used for embedding
- */
- View* popup_get_view(Popup* popup);
- /** Set popup header text
- *
- * @param popup Popup instance
- * @param callback PopupCallback
- */
- void popup_set_callback(Popup* popup, PopupCallback callback);
- /** Set popup context
- *
- * @param popup Popup instance
- * @param context context pointer, will be passed to result callback
- */
- void popup_set_context(Popup* popup, void* context);
- /** Set popup header text
- *
- * If text is null, popup header will not be rendered
- *
- * @param popup Popup instance
- * @param text text to be shown, can be multiline
- * @param x x position
- * @param y y position
- * @param horizontal horizontal alignment
- * @param vertical vertical aligment
- */
- void popup_set_header(
- Popup* popup,
- const char* text,
- uint8_t x,
- uint8_t y,
- Align horizontal,
- Align vertical);
- /** Set popup text
- *
- * If text is null, popup text will not be rendered
- *
- * @param popup Popup instance
- * @param text text to be shown, can be multiline
- * @param x x position
- * @param y y position
- * @param horizontal horizontal alignment
- * @param vertical vertical aligment
- */
- void popup_set_text(
- Popup* popup,
- const char* text,
- uint8_t x,
- uint8_t y,
- Align horizontal,
- Align vertical);
- /** Set popup icon
- *
- * If icon position is negative, popup icon will not be rendered
- *
- * @param popup Popup instance
- * @param x x position
- * @param y y position
- * @param icon pointer to Icon data
- */
- void popup_set_icon(Popup* popup, uint8_t x, uint8_t y, const Icon* icon);
- /** Set popup timeout
- *
- * @param popup Popup instance
- * @param timeout_in_ms popup timeout value in milliseconds
- */
- void popup_set_timeout(Popup* popup, uint32_t timeout_in_ms);
- /** Enable popup timeout
- *
- * @param popup Popup instance
- */
- void popup_enable_timeout(Popup* popup);
- /** Disable popup timeout
- *
- * @param popup Popup instance
- */
- void popup_disable_timeout(Popup* popup);
- /** Reset popup instance state
- *
- * @param popup Popup instance
- */
- void popup_reset(Popup* popup);
- #ifdef __cplusplus
- }
- #endif
|