/** * @file dialog.h * GUI: Dialog view module API */ #pragma once #include #ifdef __cplusplus extern "C" { #endif /** Dialog anonymous structure */ typedef struct Dialog Dialog; /** Dialog result */ typedef enum { DialogResultLeft, DialogResultRight, DialogResultBack, } DialogResult; /** Dialog result callback type * @warning comes from GUI thread */ typedef void (*DialogResultCallback)(DialogResult result, void* context); /** Allocate and initialize dialog * * This dialog used to ask simple questions like Yes/ * * @return Dialog instance */ Dialog* dialog_alloc(); /** Deinitialize and free dialog * * @param dialog Dialog instance */ void dialog_free(Dialog* dialog); /** Get dialog view * * @param dialog Dialog instance * * @return View instance that can be used for embedding */ View* dialog_get_view(Dialog* dialog); /** Set dialog result callback * * @param dialog Dialog instance * @param callback result callback function */ void dialog_set_result_callback(Dialog* dialog, DialogResultCallback callback); /** Set dialog context * * @param dialog Dialog instance * @param context context pointer, will be passed to result callback */ void dialog_set_context(Dialog* dialog, void* context); /** Set dialog header text * * @param dialog Dialog instance * @param text text to be shown */ void dialog_set_header_text(Dialog* dialog, const char* text); /** Set dialog text * * @param dialog Dialog instance * @param text text to be shown */ void dialog_set_text(Dialog* dialog, const char* text); /** Set left button text * * @param dialog Dialog instance * @param text text to be shown */ void dialog_set_left_button_text(Dialog* dialog, const char* text); /** Set right button text * * @param dialog Dialog instance * @param text text to be shown */ void dialog_set_right_button_text(Dialog* dialog, const char* text); #ifdef __cplusplus } #endif