mirror of
https://github.com/raysan5/raygui.git
synced 2025-12-25 10:22:33 -05:00
Updated tinyfiledialogs library
This commit is contained in:
3752
tools/rGuiStyler/external/tinyfiledialogs.c
vendored
3752
tools/rGuiStyler/external/tinyfiledialogs.c
vendored
File diff suppressed because it is too large
Load Diff
173
tools/rGuiStyler/external/tinyfiledialogs.h
vendored
173
tools/rGuiStyler/external/tinyfiledialogs.h
vendored
@ -1,26 +1,24 @@
|
||||
/*_________
|
||||
/ \ tinyfiledialogs.h v2.9.3 [July 12, 2017] zlib licence
|
||||
/ \ tinyfiledialogs.h v3.2.3 [Nov 2, 2017] zlib licence
|
||||
|tiny file| Unique header file created [November 9, 2014]
|
||||
| dialogs | Copyright (c) 2014 - 2017 Guillaume Vareille http://ysengrin.com
|
||||
\____ ___/ http://tinyfiledialogs.sourceforge.net
|
||||
\|
|
||||
git://git.code.sf.net/p/tinyfiledialogs/code
|
||||
______________________________________________
|
||||
| |
|
||||
| email: tinyfiledialogs@ysengrin.com |
|
||||
|______________________________________________|
|
||||
git://git.code.sf.net/p/tinyfiledialogs/code
|
||||
____________________________________________
|
||||
| |
|
||||
| email: tinyfiledialogs at ysengrin.com |
|
||||
|____________________________________________|
|
||||
________________________________________________________________________
|
||||
| |
|
||||
| the windows only wchar_t UTF-16 prototypes are at the end of this file |
|
||||
|________________________________________________________________________|
|
||||
|
||||
A big thank you to Don Heyse http://ldglite.sf.net for
|
||||
his code contributions, bug corrections & thorough testing!
|
||||
|
||||
git://git.code.sf.net/p/tinyfiledialogs/code
|
||||
A big thank you to Don Heyse http://ldglite.sf.net for bug corrections & thorough testing!
|
||||
|
||||
Please
|
||||
1) let me know
|
||||
- if you are including tiny file dialogs,
|
||||
I'll be happy to add your link to the list of projects using it.
|
||||
- If you are using it on different hardware / OS / compiler.
|
||||
2) leave a review on Sourceforge. Thanks.
|
||||
Please 1) Let me know If you are using it on exotic hardware / OS / compiler
|
||||
2) If yo have a sourceforge account, leave a 3-word review on Sourceforge.
|
||||
It helps the ranking on google.
|
||||
|
||||
tiny file dialogs (cross-platform C C++)
|
||||
InputBox PasswordBox MessageBox ColorPicker
|
||||
@ -28,7 +26,9 @@ OpenFileDialog SaveFileDialog SelectFolderDialog
|
||||
Native dialog library for WINDOWS MAC OSX GTK+ QT CONSOLE & more
|
||||
SSH supported via automatic switch to console mode or X11 forwarding
|
||||
|
||||
One C file (add it to your C or C++ project) with 6 functions:
|
||||
One C file (add it to your C or C++ project) with 8 functions:
|
||||
- beep
|
||||
- notify popup
|
||||
- message & question
|
||||
- input & password
|
||||
- save file
|
||||
@ -42,6 +42,7 @@ CEGUI MathGL GLM CPW GLOW IMGUI MyGUI GLT NGL STB & GUI less programs
|
||||
NO INIT
|
||||
NO MAIN LOOP
|
||||
NO LINKING
|
||||
NO INCLUDE
|
||||
|
||||
The dialogs can be forced into console mode
|
||||
|
||||
@ -52,22 +53,19 @@ http://andrear.altervista.org/home/cdialog.php
|
||||
- basic console input
|
||||
|
||||
Unix (command line calls) ASCII UTF-8
|
||||
- applescript
|
||||
- zenity / matedialog / qarma (zenity for qt)
|
||||
- kdialog
|
||||
- Xdialog
|
||||
- python2 tkinter
|
||||
- applescript, kdialog, zenity
|
||||
- python (2 or 3) + tkinter + python-dbus (optional)
|
||||
- dialog (opens a console if needed)
|
||||
- basic console input
|
||||
The same executable can run across desktops & distributions
|
||||
|
||||
tested with C & C++ compilers
|
||||
C89 & C++98 compliant: tested with C & C++ compilers
|
||||
on VisualStudio MinGW Mac Linux Bsd Solaris Minix Raspbian
|
||||
using Gnome Kde Enlightenment Mate Cinnamon Unity
|
||||
Lxde Lxqt Xfce WindowMaker IceWm Cde Jds OpenBox Awesome Jwm
|
||||
using Gnome Kde Enlightenment Mate Cinnamon Unity Lxde Lxqt Xfce
|
||||
WindowMaker IceWm Cde Jds OpenBox Awesome Jwm Xdm
|
||||
|
||||
bindings for LUA and C# dll
|
||||
included in LWJGL(java), rust, Allegrobasic
|
||||
bindings for LUA and C# dll, Haskell
|
||||
included in LWJGL(java), Rust, Allegrobasic
|
||||
|
||||
- License -
|
||||
|
||||
@ -96,8 +94,8 @@ misrepresented as being the original software.
|
||||
if you don't want to include the code creating the graphic dialogs.
|
||||
Then you won't need to link against Comdlg32.lib and Ole32.lib */
|
||||
|
||||
/* if tinydialogs.c is compiled with a C++ compiler rather than with a C compiler
|
||||
(ie. you change the extension from .c to .cpp), you need to comment out:
|
||||
/* if tinydialogs.c is compiled as C++ code rather than C code,
|
||||
you may need to comment out:
|
||||
extern "C" {
|
||||
and the corresponding closing bracket near the end of this file:
|
||||
}
|
||||
@ -108,15 +106,17 @@ extern "C" {
|
||||
|
||||
extern char tinyfd_version[8]; /* contains tinyfd current version number */
|
||||
|
||||
extern int tinyfd_verbose; /* 0 (default) or 1 : on unix, prints the command line calls */
|
||||
|
||||
#ifdef _WIN32
|
||||
/* for UTF-16 use the functions at the end of this files */
|
||||
extern int tinyfd_winUtf8; /* 0 (default) or 1 */
|
||||
/* on windows string char can be 0:MBSC or 1:UTF-8
|
||||
extern int tinyfd_winUtf8; /* 0 (default MBCS) or 1 (UTF-8)*/
|
||||
/* on windows string char can be 0:MBCS or 1:UTF-8
|
||||
unless your code is really prepared for UTF-8 on windows, leave this on MBSC.
|
||||
Or you can use the UTF-16 (wchar) prototypes at the end of ths file.*/
|
||||
#endif
|
||||
|
||||
extern int tinyfd_forceConsole ; /* 0 (default) or 1 */
|
||||
extern int tinyfd_forceConsole; /* 0 (default) or 1 */
|
||||
/* for unix & windows: 0 (graphic mode) or 1 (console mode).
|
||||
0: try to use a graphic solution, if it fails then it uses console mode.
|
||||
1: forces all dialogs into console mode even when an X server is present,
|
||||
@ -129,37 +129,47 @@ the functions will not display the dialogs
|
||||
but will return 0 for console mode, 1 for graphic mode.
|
||||
tinyfd_response is then filled with the retain solution.
|
||||
possible values for tinyfd_response are (all lowercase)
|
||||
for the graphic mode:
|
||||
windows applescript zenity zenity3 matedialog qarma kdialog
|
||||
xdialog tkinter gdialog gxmessage xmessage
|
||||
for the console mode:
|
||||
for graphic mode:
|
||||
windows_wchar windows
|
||||
applescript kdialog zenity zenity3 matedialog qarma
|
||||
python2-tkinter python3-tkinter python-dbus perl-dbus
|
||||
gxmessage gmessage xmessage xdialog gdialog
|
||||
for console mode:
|
||||
dialog whiptail basicinput */
|
||||
|
||||
int tinyfd_messageBox (
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aMessage , /* "" may contain \n \t */
|
||||
void tinyfd_beep();
|
||||
|
||||
int tinyfd_notifyPopup(
|
||||
char const * const aTitle, /* NULL or "" */
|
||||
char const * const aMessage, /* NULL or "" may contain \n \t */
|
||||
char const * const aIconType); /* "info" "warning" "error" */
|
||||
/* return has only meaning for tinyfd_query */
|
||||
|
||||
int tinyfd_messageBox(
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aMessage , /* NULL or "" may contain \n \t */
|
||||
char const * const aDialogType , /* "ok" "okcancel" "yesno" "yesnocancel" */
|
||||
char const * const aIconType , /* "info" "warning" "error" "question" */
|
||||
int const aDefaultButton ) ;
|
||||
/* 0 for cancel/no , 1 for ok/yes , 2 for no in yesnocancel */
|
||||
|
||||
char const * tinyfd_inputBox (
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aMessage , /* "" may NOT contain \n \t on windows */
|
||||
char const * tinyfd_inputBox(
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aMessage , /* NULL or "" may NOT contain \n \t on windows */
|
||||
char const * const aDefaultInput ) ; /* "" , if NULL it's a passwordBox */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
char const * tinyfd_saveFileDialog (
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aDefaultPathAndFile , /* "" */
|
||||
char const * tinyfd_saveFileDialog(
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aDefaultPathAndFile , /* NULL or "" */
|
||||
int const aNumOfFilterPatterns , /* 0 */
|
||||
char const * const * const aFilterPatterns , /* NULL | {"*.jpg","*.png"} */
|
||||
char const * const aSingleFilterDescription ) ; /* NULL | "text files" */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
char const * tinyfd_openFileDialog (
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aDefaultPathAndFile , /* "" */
|
||||
char const * tinyfd_openFileDialog(
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aDefaultPathAndFile , /* NULL or "" */
|
||||
int const aNumOfFilterPatterns , /* 0 */
|
||||
char const * const * const aFilterPatterns , /* NULL {"*.jpg","*.png"} */
|
||||
char const * const aSingleFilterDescription , /* NULL | "image files" */
|
||||
@ -167,13 +177,13 @@ char const * tinyfd_openFileDialog (
|
||||
/* in case of multiple files, the separator is | */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
char const * tinyfd_selectFolderDialog (
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aDefaultPath ) ; /* "" */
|
||||
char const * tinyfd_selectFolderDialog(
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aDefaultPath ) ; /* NULL or "" */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
char const * tinyfd_colorChooser(
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
char const * const aDefaultHexRGB , /* NULL or "#FF0000" */
|
||||
unsigned char const aDefaultRGB[3] , /* { 0 , 255 , 255 } */
|
||||
unsigned char aoResultRGB[3] ) ; /* { 0 , 0 , 0 } */
|
||||
@ -188,48 +198,60 @@ char const * tinyfd_colorChooser(
|
||||
#ifdef _WIN32
|
||||
#ifndef TINYFD_NOLIB
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
int tinyfd_notifyPopupW(
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aMessage, /* NULL or L"" may contain \n \t */
|
||||
wchar_t const * const aIconType); /* L"info" L"warning" L"error" */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
int tinyfd_messageBoxW(
|
||||
wchar_t const * const aTitle ,
|
||||
wchar_t const * const aMessage, /* "" may contain \n \t */
|
||||
wchar_t const * const aDialogType, /* "ok" "okcancel" "yesno" */
|
||||
wchar_t const * const aIconType, /* "info" "warning" "error" "question" */
|
||||
wchar_t const * const aTitle , /* NULL or L"" */
|
||||
wchar_t const * const aMessage, /* NULL or L"" may contain \n \t */
|
||||
wchar_t const * const aDialogType, /* L"ok" L"okcancel" L"yesno" */
|
||||
wchar_t const * const aIconType, /* L"info" L"warning" L"error" L"question" */
|
||||
int const aDefaultButton ); /* 0 for cancel/no , 1 for ok/yes */
|
||||
/* returns 0 for cancel/no , 1 for ok/yes */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
wchar_t const * tinyfd_inputBoxW(
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aMessage, /* NULL or L"" may NOT contain \n nor \t */
|
||||
wchar_t const * const aDefaultInput ); /* L"" , if NULL it's a passwordBox */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
wchar_t const * tinyfd_saveFileDialogW(
|
||||
wchar_t const * const aTitle, /* NULL or "" */
|
||||
wchar_t const * const aDefaultPathAndFile, /* NULL or "" */
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aDefaultPathAndFile, /* NULL or L"" */
|
||||
int const aNumOfFilterPatterns, /* 0 */
|
||||
wchar_t const * const * const aFilterPatterns, /* NULL or {"*.jpg","*.png"} */
|
||||
wchar_t const * const aSingleFilterDescription); /* NULL or "image files" */
|
||||
wchar_t const * const * const aFilterPatterns, /* NULL or {L"*.jpg",L"*.png"} */
|
||||
wchar_t const * const aSingleFilterDescription); /* NULL or L"image files" */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
wchar_t const * tinyfd_openFileDialogW(
|
||||
wchar_t const * const aTitle, /* "" */
|
||||
wchar_t const * const aDefaultPathAndFile, /* "" */
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aDefaultPathAndFile, /* NULL or L"" */
|
||||
int const aNumOfFilterPatterns , /* 0 */
|
||||
wchar_t const * const * const aFilterPatterns, /* NULL {"*.jpg","*.png"} */
|
||||
wchar_t const * const aSingleFilterDescription, /* NULL | "image files" */
|
||||
wchar_t const * const * const aFilterPatterns, /* NULL {L"*.jpg",L"*.png"} */
|
||||
wchar_t const * const aSingleFilterDescription, /* NULL or L"image files" */
|
||||
int const aAllowMultipleSelects ) ; /* 0 or 1 */
|
||||
/* in case of multiple files, the separator is | */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
wchar_t const * tinyfd_selectFolderDialogW(
|
||||
wchar_t const * const aTitle, /* "" */
|
||||
wchar_t const * const aDefaultPath); /* "" */
|
||||
wchar_t const * tinyfd_selectFolderDialogW(
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aDefaultPath); /* NULL or L"" */
|
||||
/* returns NULL on cancel */
|
||||
|
||||
/* windows only - utf-16 version */
|
||||
wchar_t const * tinyfd_colorChooserW(
|
||||
wchar_t const * const aTitle, /* "" */
|
||||
wchar_t const * const aDefaultHexRGB, /* NULL or "#FF0000" */
|
||||
wchar_t const * const aTitle, /* NULL or L"" */
|
||||
wchar_t const * const aDefaultHexRGB, /* NULL or L"#FF0000" */
|
||||
unsigned char const aDefaultRGB[3] , /* { 0 , 255 , 255 } */
|
||||
unsigned char aoResultRGB[3] ) ; /* { 0 , 0 , 0 } */
|
||||
/* returns the hexcolor as a string "#FF0000" */
|
||||
/* returns the hexcolor as a string L"#FF0000" */
|
||||
/* aoResultRGB also contains the result */
|
||||
/* aDefaultRGB is used only if aDefaultHexRGB is NULL */
|
||||
/* aDefaultRGB and aoResultRGB can be the same array */
|
||||
@ -241,10 +263,10 @@ wchar_t const * tinyfd_colorChooserW(
|
||||
|
||||
/* unix zenity only */
|
||||
char const * tinyfd_arrayDialog(
|
||||
char const * const aTitle , /* "" */
|
||||
char const * const aTitle , /* NULL or "" */
|
||||
int const aNumOfColumns , /* 2 */
|
||||
char const * const * const aColumns, /* {"Column 1","Column 2"} */
|
||||
int const aNumOfRows, /* 2*/
|
||||
int const aNumOfRows, /* 2 */
|
||||
char const * const * const aCells);
|
||||
/* {"Row1 Col1","Row1 Col2","Row2 Col1","Row2 Col2"} */
|
||||
|
||||
@ -268,11 +290,13 @@ char const * tinyfd_arrayDialog(
|
||||
- If no filter description is provided,
|
||||
the list of patterns will become the description.
|
||||
- char const * filterPatterns[3] = { "*.obj" , "*.stl" , "*.dxf" } ;
|
||||
- On windows char defaults to MBCS, set tinyfd_winUtf8=1 to use UTF-8
|
||||
- On windows link against Comdlg32.lib and Ole32.lib
|
||||
This linking is not compulsary for console mode (see above).
|
||||
- On unix: it tries command line calls, so no such need.
|
||||
- On unix you need applescript, zenity, matedialog, qarma, kdialog, Xdialog,
|
||||
python2/tkinter or dialog (will open a terminal if running without console).
|
||||
- On unix you need applescript, kdialog, zenity, matedialog, qarma,
|
||||
python (2 or 3)/tkinter/python-dbus (optional),
|
||||
Xdialog or dialog (opens terminal if running without console).
|
||||
- One of those is already included on most (if not all) desktops.
|
||||
- In the absence of those it will use gdialog, gxmessage or whiptail
|
||||
with a textinputbox.
|
||||
@ -285,6 +309,7 @@ char const * tinyfd_arrayDialog(
|
||||
make sure it ends with a separator.
|
||||
- tinyfd_forceConsole=1; at run time, forces dialogs into console mode.
|
||||
- On windows, console mode only make sense for console applications.
|
||||
- On windows, Console mode is not implemented for wchar_T UTF-16.
|
||||
- Mutiple selects are not allowed in console mode.
|
||||
- The package dialog must be installed to run in enhanced console mode.
|
||||
It is already installed on most unix systems.
|
||||
|
||||
Reference in New Issue
Block a user