54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
|
#ifndef __al_included_allegro_aintern_native_dialog_h
|
||
|
#define __al_included_allegro_aintern_native_dialog_h
|
||
|
|
||
|
typedef struct ALLEGRO_NATIVE_DIALOG ALLEGRO_NATIVE_DIALOG;
|
||
|
|
||
|
/* We could use different structs for the different dialogs. But why
|
||
|
* bother.
|
||
|
*/
|
||
|
struct ALLEGRO_NATIVE_DIALOG
|
||
|
{
|
||
|
ALLEGRO_USTR *title;
|
||
|
int flags;
|
||
|
|
||
|
/* Only used by file chooser. */
|
||
|
ALLEGRO_PATH *fc_initial_path;
|
||
|
size_t fc_path_count;
|
||
|
ALLEGRO_PATH **fc_paths;
|
||
|
ALLEGRO_USTR *fc_patterns;
|
||
|
|
||
|
/* Only used by message box. */
|
||
|
ALLEGRO_USTR *mb_heading;
|
||
|
ALLEGRO_USTR *mb_text;
|
||
|
ALLEGRO_USTR *mb_buttons;
|
||
|
int mb_pressed_button;
|
||
|
|
||
|
/* Only used by text log. */
|
||
|
ALLEGRO_THREAD *tl_thread;
|
||
|
ALLEGRO_COND *tl_text_cond;
|
||
|
ALLEGRO_MUTEX *tl_text_mutex;
|
||
|
ALLEGRO_USTR *tl_pending_text;
|
||
|
bool tl_init_error;
|
||
|
bool tl_done;
|
||
|
bool tl_have_pending;
|
||
|
ALLEGRO_EVENT_SOURCE tl_events;
|
||
|
void *tl_textview;
|
||
|
|
||
|
/* Only used by platform implementations. */
|
||
|
bool is_active;
|
||
|
void *window;
|
||
|
void *async_queue;
|
||
|
};
|
||
|
|
||
|
extern bool _al_init_native_dialog_addon(void);
|
||
|
extern void _al_shutdown_native_dialog_addon(void);
|
||
|
extern bool _al_show_native_file_dialog(ALLEGRO_DISPLAY *display,
|
||
|
ALLEGRO_NATIVE_DIALOG *fd);
|
||
|
extern int _al_show_native_message_box(ALLEGRO_DISPLAY *display,
|
||
|
ALLEGRO_NATIVE_DIALOG *fd);
|
||
|
extern bool _al_open_native_text_log(ALLEGRO_NATIVE_DIALOG *textlog);
|
||
|
extern void _al_close_native_text_log(ALLEGRO_NATIVE_DIALOG *textlog);
|
||
|
extern void _al_append_native_text_log(ALLEGRO_NATIVE_DIALOG *textlog);
|
||
|
|
||
|
#endif
|