123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /** \file wtools.h
- * \brief Header: widget based utility functions
- */
- #ifndef MC__WTOOLS_H
- #define MC__WTOOLS_H
- /*** typedefs(not structures) and defined constants **********************************************/
- /* Pass this as def_text to request a password */
- #define INPUT_PASSWORD ((char *) -1)
- /* Use this as header for message() - it expands to "Error" */
- #define MSG_ERROR ((char *) -1)
- typedef struct status_msg_t status_msg_t;
- #define STATUS_MSG(x) ((status_msg_t *)(x))
- typedef struct simple_status_msg_t simple_status_msg_t;
- #define SIMPLE_STATUS_MSG(x) ((simple_status_msg_t *)(x))
- typedef void (*status_msg_cb) (status_msg_t * sm);
- typedef int (*status_msg_update_cb) (status_msg_t * sm);
- /*** enums ***************************************************************************************/
- /* flags for message() and query_dialog() */
- enum
- {
- D_NORMAL = 0,
- D_ERROR = (1 << 0),
- D_CENTER = (1 << 1)
- } /* dialog options */ ;
- /*** structures declarations (and typedefs of structures)*****************************************/
- /* Base class for status message of long-time operations.
- Useful to show progress of long-time operations and interrupt it. */
- struct status_msg_t
- {
- WDialog *dlg; /* pointer to status message dialog */
- gint64 start; /* start time in microseconds */
- gint64 delay; /* delay before raise the 'dlg' in microseconds */
- gboolean block; /* how to get event using tty_get_event() */
- status_msg_cb init; /* callback to init derived classes */
- status_msg_update_cb update; /* callback to update dlg */
- status_msg_cb deinit; /* callback to deinit derived classes */
- };
- /* Simple status message with label and 'Abort' button */
- struct simple_status_msg_t
- {
- status_msg_t status_msg; /* base class */
- WLabel *label;
- };
- /*** global variables defined in .c file *********************************************************/
- /*** declarations of public functions ************************************************************/
- /* The input dialogs */
- char *input_dialog (const char *header, const char *text,
- const char *history_name, const char *def_text,
- input_complete_t completion_flags);
- char *input_dialog_help (const char *header, const char *text, const char *help,
- const char *history_name, const char *def_text, gboolean strip_password,
- input_complete_t completion_flags);
- char *input_expand_dialog (const char *header, const char *text, const char *history_name,
- const char *def_text, input_complete_t completion_flags);
- int query_dialog (const char *header, const char *text, int flags, int count, ...);
- void query_set_sel (int new_sel);
- /* Create message box but don't dismiss it yet, not background safe */
- /* *INDENT-OFF* */
- WDialog *create_message (int flags, const char *title, const char *text, ...)
- G_GNUC_PRINTF (3, 4);
- /* Show message box, background safe */
- MC_MOCKABLE void message (int flags, const char *title, const char *text, ...) G_GNUC_PRINTF (3, 4);
- /* *INDENT-ON* */
- gboolean mc_error_message (GError ** mcerror, int *code);
- status_msg_t *status_msg_create (const char *title, double delay, status_msg_cb init_cb,
- status_msg_update_cb update_cb, status_msg_cb deinit_cb);
- void status_msg_destroy (status_msg_t * sm);
- void status_msg_init (status_msg_t * sm, const char *title, double delay, status_msg_cb init_cb,
- status_msg_update_cb update_cb, status_msg_cb deinit_cb);
- void status_msg_deinit (status_msg_t * sm);
- int status_msg_common_update (status_msg_t * sm);
- void simple_status_msg_init_cb (status_msg_t * sm);
- /*** inline functions ****************************************************************************/
- #endif /* MC__WTOOLS_H */
|