| 
							- #pragma once
 - 
 - #ifdef __cplusplus
 - extern "C" {
 - #endif
 - 
 - 
 - #include <stdint.h>
 - 
 - 
 - typedef enum {
 - 	OSDIALOG_INFO,
 - 	OSDIALOG_WARNING,
 - 	OSDIALOG_ERROR,
 - } osdialog_message_level;
 - 
 - typedef enum {
 - 	OSDIALOG_OK,
 - 	OSDIALOG_OK_CANCEL,
 - 	OSDIALOG_YES_NO,
 - } osdialog_message_buttons;
 - 
 - /** Launches a message box
 - Returns 1 if the "OK" or "Yes" button was pressed
 - */
 - int osdialog_message(osdialog_message_level level, osdialog_message_buttons buttons, const char *message);
 - 
 - 
 - typedef enum {
 - 	OSDIALOG_OPEN,
 - 	OSDIALOG_OPEN_DIR,
 - 	OSDIALOG_SAVE,
 - } osdialog_file_action;
 - 
 - /** Linked list of patterns */
 - typedef struct osdialog_filter_patterns {
 - 	char *pattern;
 - 	struct osdialog_filter_patterns *next;
 - } osdialog_filter_patterns;
 - 
 - /** Linked list of file filters */
 - typedef struct osdialog_filters {
 - 	char *name;
 - 	osdialog_filter_patterns *patterns;
 - 	struct osdialog_filters *next;
 - } osdialog_filters;
 - 
 - /** Launches a file dialog and returns the selected path or NULL if nothing was selected
 - If the return result is not NULL, caller must free() it
 - 
 - `path` is the default folder the file dialog will attempt to open in.
 - `filename` is the default text that will appear in the filename input. Relevant to save dialog only.
 - `filters` is a list of patterns to filter the file selection, or NULL
 - */
 - char *osdialog_file(osdialog_file_action action, const char *path, const char *filename, osdialog_filters *filters);
 - 
 - /** Parses a filter string of the form
 - 	Source:c,cpp,m;Header:h,hpp
 - Caller must eventually free with osdialog_filters_free()
 - */
 - osdialog_filters *osdialog_filters_parse(const char *str);
 - void osdialog_filters_free(osdialog_filters *filters);
 - 
 - 
 - typedef struct {
 - 	uint8_t r, g, b, a;
 - } osdialog_color;
 - 
 - /** Launches an RGBA color picker dialog and sets `color` to the selected color
 - Returns 1 if "OK" was pressed
 - 
 - `color` should be set to the initial color before calling. It is only overwritten if the user selects "OK".
 - `opacity` enables the opacity slider by setting to 1. Not supported on Windows.
 - 
 - TODO Implement on Mac
 - */
 - int osdialog_color_picker(osdialog_color *color, int opacity);
 - 
 - 
 - #ifdef __cplusplus
 - }
 - #endif
 
 
  |