update version

This commit is contained in:
Wengier
2021-01-08 01:56:48 -05:00
parent 27548397a3
commit 79dedbc99a
14 changed files with 807 additions and 459 deletions

View File

@@ -1,3 +1,14 @@
0.83.10
- The commands "config -set fullscreen=true" and
"config -set fullscreen=false" can now switch on or
off the full-screen mode. (Wengier)
- Fixed Ctrl+C not working in GNU ed. (Wengier)
- Updated the Tiny File Dialog library to the latest
version v3.8.4. (Wengier)
- Improved OPL3Duo support, such as adding a buffer
thread to get rid of slowdowns & breakups in audio
playback when using the board. (DhrBaksteen)
0.83.9 0.83.9
- Physical CD drives are now mountable in SDL2 builds - Physical CD drives are now mountable in SDL2 builds
just like SDL1 builds, so commands like "MOUNT -CD" just like SDL1 builds, so commands like "MOUNT -CD"

View File

@@ -1,5 +1,5 @@
dnl Init. dnl Init.
AC_INIT(dosbox-x,0.83.9,[https://github.com/joncampbell123/dosbox-x/issues],[],[https://dosbox-x.com]) AC_INIT(dosbox-x,0.83.10,[https://github.com/joncampbell123/dosbox-x/issues],[],[https://dosbox-x.com])
AC_PREREQ(2.60) AC_PREREQ(2.60)
AC_CONFIG_SRCDIR(README.md) AC_CONFIG_SRCDIR(README.md)

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2011-2020 Jonathan Campbell --> <!-- Copyright 2011-2021 Jonathan Campbell -->
<component type="desktop"> <component type="desktop">
<id>com.dosbox_x.DOSBox-X</id> <id>com.dosbox_x.DOSBox-X</id>
<project_license>GPL-2.0</project_license> <project_license>GPL-2.0</project_license>
@@ -10,7 +10,7 @@
<category>Emulation</category> <category>Emulation</category>
</categories> </categories>
<releases> <releases>
<release version="@PACKAGE_VERSION@" date="2020-12-31"/> <release version="@PACKAGE_VERSION@" date="2021-1-8"/>
</releases> </releases>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">

View File

@@ -1,5 +1,5 @@
#define MyAppName "DOSBox-X" #define MyAppName "DOSBox-X"
#define MyAppVersion "0.83.9" #define MyAppVersion "0.83.10"
#define MyAppPublisher "joncampbell123" #define MyAppPublisher "joncampbell123"
#define MyAppURL "https://dosbox-x.com/" #define MyAppURL "https://dosbox-x.com/"
#define MyAppExeName "dosbox-x.exe" #define MyAppExeName "dosbox-x.exe"

View File

@@ -181,7 +181,7 @@ logfile =
# Possible values: ctrlalt, ctrlshift, altshift, mapper. # Possible values: ctrlalt, ctrlshift, altshift, mapper.
# mapper send key: Select the key the mapper SendKey function will send. # mapper send key: Select the key the mapper SendKey function will send.
# Possible values: winlogo, winmenu, alttab, ctrlesc, ctrlbreak, ctrlaltdel. # Possible values: winlogo, winmenu, alttab, ctrlesc, ctrlbreak, ctrlaltdel.
#DOSBOX-X-ADV:# synchronize time: If set, DOSBox-X will try to automatically synchronize time with the host, unless you decide to change the date/time manually. # synchronize time: If set, DOSBox-X will try to automatically synchronize time with the host, unless you decide to change the date/time manually.
#DOSBOX-X-ADV:# keyboard hook: Use keyboard hook (currently only on Windows) to catch special keys and synchronize the keyboard LEDs with the host. #DOSBOX-X-ADV:# keyboard hook: Use keyboard hook (currently only on Windows) to catch special keys and synchronize the keyboard LEDs with the host.
#DOSBOX-X-ADV:# weitek: If set, emulate the Weitek coprocessor. This option only has effect if cputype=386 or cputype=486. #DOSBOX-X-ADV:# weitek: If set, emulate the Weitek coprocessor. This option only has effect if cputype=386 or cputype=486.
#DOSBOX-X-ADV:# bochs debug port e9: If set, emulate Bochs debug port E9h. ASCII text written to this I/O port is assumed to be debug output, and logged. #DOSBOX-X-ADV:# bochs debug port e9: If set, emulate Bochs debug port E9h. ASCII text written to this I/O port is assumed to be debug output, and logged.
@@ -362,7 +362,7 @@ quit warning = auto
show advanced options = false show advanced options = false
hostkey = mapper hostkey = mapper
mapper send key = ctrlaltdel mapper send key = ctrlaltdel
#DOSBOX-X-ADV:synchronize time = false synchronize time = false
#DOSBOX-X-ADV:keyboard hook = false #DOSBOX-X-ADV:keyboard hook = false
#DOSBOX-X-ADV:weitek = false #DOSBOX-X-ADV:weitek = false
#DOSBOX-X-ADV:bochs debug port e9 = false #DOSBOX-X-ADV:bochs debug port e9 = false

View File

@@ -1,4 +1,4 @@
# This is the configuration file for DOSBox-X 0.83.9. (Please use the latest version of DOSBox-X) # This is the configuration file for DOSBox-X 0.83.10. (Please use the latest version of DOSBox-X)
# Lines starting with a # are comment lines and are ignored by DOSBox-X. # Lines starting with a # are comment lines and are ignored by DOSBox-X.
# They are used to (briefly) document the effect of each option. # They are used to (briefly) document the effect of each option.
# To write out ALL options, use command 'config -all' with -wc or -writeconf options. # To write out ALL options, use command 'config -all' with -wc or -writeconf options.

View File

@@ -1,4 +1,4 @@
# This is the configuration file for DOSBox-X 0.83.9. (Please use the latest version of DOSBox-X) # This is the configuration file for DOSBox-X 0.83.10. (Please use the latest version of DOSBox-X)
# Lines starting with a # are comment lines and are ignored by DOSBox-X. # Lines starting with a # are comment lines and are ignored by DOSBox-X.
# They are used to (briefly) document the effect of each option. # They are used to (briefly) document the effect of each option.
# To write out ALL options, use command 'config -all' with -wc or -writeconf options. # To write out ALL options, use command 'config -all' with -wc or -writeconf options.

View File

@@ -1,4 +1,4 @@
/*auto-generated*/ /*auto-generated*/
#define UPDATED_STR "Dec 31, 2020 8:26:20pm" #define UPDATED_STR "Jan 8, 2021 1:44:07am"
#define GIT_COMMIT_HASH "8da4a22" #define GIT_COMMIT_HASH "2754839"
#define COPYRIGHT_END_YEAR "2020" #define COPYRIGHT_END_YEAR "2021"

View File

@@ -256,7 +256,7 @@
#define PACKAGE_NAME "dosbox-x" #define PACKAGE_NAME "dosbox-x"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "dosbox-x 0.83.9" #define PACKAGE_STRING "dosbox-x 0.83.10"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "dosbox-x" #define PACKAGE_TARNAME "dosbox-x"
@@ -265,7 +265,7 @@
#define PACKAGE_URL "https://dosbox-x.com" #define PACKAGE_URL "https://dosbox-x.com"
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "0.83.9" #define PACKAGE_VERSION "0.83.10"
/* Compiling on RISC OS */ /* Compiling on RISC OS */
/* #undef RISCOS */ /* #undef RISCOS */
@@ -277,7 +277,7 @@
/* #undef TM_IN_SYS_TIME */ /* #undef TM_IN_SYS_TIME */
/* Version number of package */ /* Version number of package */
#define VERSION "0.83.9" #define VERSION "0.83.10"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */ significant byte first (like Motorola and SPARC, unlike Intel). */

View File

@@ -635,7 +635,7 @@ bool localDrive::FileOpen(DOS_File * * file,const char * name,uint32_t flags) {
FILE * hand; FILE * hand;
#if defined(WIN32) #if defined(WIN32)
if (enable_share_exe && nocachedir) { if (enable_share_exe) {
int ohFlag = (flags&0xf)==OPEN_READ||(flags&0xf)==OPEN_READ_NO_MOD?GENERIC_READ:((flags&0xf)==OPEN_WRITE?GENERIC_WRITE:GENERIC_READ|GENERIC_WRITE); int ohFlag = (flags&0xf)==OPEN_READ||(flags&0xf)==OPEN_READ_NO_MOD?GENERIC_READ:((flags&0xf)==OPEN_WRITE?GENERIC_WRITE:GENERIC_READ|GENERIC_WRITE);
int shhFlag = (flags&0x70)==0x10?0:((flags&0x70)==0x20?FILE_SHARE_READ:((flags&0x70)==0x30?FILE_SHARE_WRITE:FILE_SHARE_READ|FILE_SHARE_WRITE)); int shhFlag = (flags&0x70)==0x10?0:((flags&0x70)==0x20?FILE_SHARE_READ:((flags&0x70)==0x30?FILE_SHARE_WRITE:FILE_SHARE_READ|FILE_SHARE_WRITE));
HANDLE handle = CreateFileW(host_name, ohFlag, shhFlag, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE handle = CreateFileW(host_name, ohFlag, shhFlag, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
@@ -653,7 +653,10 @@ bool localDrive::FileOpen(DOS_File * * file,const char * name,uint32_t flags) {
#endif #endif
} }
#if !defined(WIN32) #if !defined(WIN32)
if (hand && enable_share_exe && nocachedir && (flags&0x70)==0x10 && flock(fileno(hand), LOCK_EX | LOCK_NB)==-1) return false; if (hand && enable_share_exe && (flags&0x70)==0x10 && flock(fileno(hand), LOCK_EX | LOCK_NB)==-1) {
fclose(hand); // Close the file handle
return false;
}
#endif #endif
// uint32_t err=errno; // uint32_t err=errno;
if (!hand) { if (!hand) {

View File

@@ -114,7 +114,7 @@ const char *aboutmsg = "DOSBox-X version " VERSION " (" SDL_STRING ", "
#else #else
"32" "32"
#endif #endif
"-bit)\nBuild date: " UPDATED_STR "\nCopyright 2011-" COPYRIGHT_END_YEAR " The DOSBox-X Team\nProject maintainer: joncampbell123\nDOSBox-X homepage: https://dosbox-x.com"; "-bit)\nBuild date/time: " UPDATED_STR "\nCopyright 2011-" COPYRIGHT_END_YEAR " The DOSBox-X Team\nProject maintainer: joncampbell123\nDOSBox-X homepage: https://dosbox-x.com";
const char *intromsg = "Welcome to DOSBox-X, a free and complete DOS emulation package.\nDOSBox-X creates a DOS shell which looks like the plain DOS.\nYou can also run Windows 3.x and 95/98 inside the DOS machine."; const char *intromsg = "Welcome to DOSBox-X, a free and complete DOS emulation package.\nDOSBox-X creates a DOS shell which looks like the plain DOS.\nYou can also run Windows 3.x and 95/98 inside the DOS machine.";
@@ -2379,7 +2379,7 @@ public:
#endif #endif
} else if (arg == "About") { } else if (arg == "About") {
//new GUI::MessageBox2(getScreen(), 100, 150, 330, "About DOSBox-X", aboutmsg); //new GUI::MessageBox2(getScreen(), 100, 150, 330, "About DOSBox-X", aboutmsg);
new GUI::MessageBox2(getScreen(), getScreen()->getWidth()>330?(parent->getWidth()-330)/2:0, 150, 330, "About DOSBox-X", aboutmsg); new GUI::MessageBox2(getScreen(), getScreen()->getWidth()>330?(parent->getWidth()-330)/2:0, 150, 340, "About DOSBox-X", aboutmsg);
} else if (arg == "Introduction") { } else if (arg == "Introduction") {
//new GUI::MessageBox2(getScreen(), 20, 50, 540, "Introduction", intromsg); //new GUI::MessageBox2(getScreen(), 20, 50, 540, "Introduction", intromsg);
new GUI::MessageBox2(getScreen(), getScreen()->getWidth()>540?(parent->getWidth()-540)/2:0, 50, 540, "Introduction", intromsg); new GUI::MessageBox2(getScreen(), getScreen()->getWidth()>540?(parent->getWidth()-540)/2:0, 50, 540, "Introduction", intromsg);

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,8 @@
/* If you compiled tinyfiledialogs.c (maybe renamed with an extension ".cpp")
with a C++ compiler, then comment out << extern "C" >> bellow in this header file) */
/*_________ /*_________
/ \ tinyfiledialogs.h v3.6.6 [Sep 23, 2020] zlib licence / \ tinyfiledialogs.h v3.8.4 [Dec 23, 2020] zlib licence
|tiny file| Unique header file created [November 9, 2014] |tiny file| Unique header file created [November 9, 2014]
| dialogs | Copyright (c) 2014 - 2020 Guillaume Vareille http://ysengrin.com | dialogs | Copyright (c) 2014 - 2020 Guillaume Vareille http://ysengrin.com
\____ ___/ http://tinyfiledialogs.sourceforge.net \____ ___/ http://tinyfiledialogs.sourceforge.net
@@ -27,65 +30,13 @@
If you like tinyfiledialogs, please upvote my stackoverflow answer If you like tinyfiledialogs, please upvote my stackoverflow answer
https://stackoverflow.com/a/47651444 https://stackoverflow.com/a/47651444
tiny file dialogs (cross-platform C C++)
InputBox PasswordBox MessageBox ColorPicker
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 + a header (add them to your C or C++ project) with 8 functions:
- beep
- notify popup (tray)
- message & question
- input & password
- save file
- open file(s)
- select folder
- color picker
Complements OpenGL Vulkan GLFW GLUT GLUI VTK SFML TGUI
SDL Ogre Unity3d ION OpenCV CEGUI MathGL GLM CPW GLOW
Open3D 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
Windows (XP to 10) ASCII MBCS UTF-8 UTF-16
- native code & vbs create the graphic dialogs
- enhanced console mode can use dialog.exe from
http://andrear.altervista.org/home/cdialog.php
- basic console input
Unix (command line calls) ASCII UTF-8
- 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
C89/C18 & C++98/C++20 compliant: tested with C & C++ compilers
VisualStudio MinGW-gcc GCC Clang TinyCC OpenWatcom-v2 BorlandC SunCC ZapCC
on Windows Mac Linux Bsd Solaris Minix Raspbian
using Gnome Kde Enlightenment Mate Cinnamon Budgie Unity Lxde Lxqt Xfce
WindowMaker IceWm Cde Jds OpenBox Awesome Jwm Xdm Cwm
Bindings for LUA and C# dll, Haskell, Fortran
Included in LWJGL(java), Rust, Allegrobasic
- License - - License -
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
arising from the use of this software. arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions: freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not 1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be in a product, an acknowledgment in the product documentation would be
@@ -99,8 +50,9 @@ misrepresented as being the original software.
#define TINYFILEDIALOGS_H #define TINYFILEDIALOGS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { /* if tinydialogs.c is compiled as C++ code rather than C code, you may need to comment this out /* if tinydialogs.c is compiled as C++ code rather than C code, you may need to comment this out
and the corresponding closing bracket near the end of this file. */ and the corresponding closing bracket near the end of this file. */
extern "C" {
#endif #endif
/******************************************************************************************************/ /******************************************************************************************************/
@@ -119,28 +71,40 @@ wchar_t * tinyfd_mbcsTo16(char const * aMbcsString);
char * tinyfd_mbcsTo8(char const * aMbcsString); char * tinyfd_mbcsTo8(char const * aMbcsString);
wchar_t * tinyfd_utf8to16(char const * aUtf8string); wchar_t * tinyfd_utf8to16(char const * aUtf8string);
char * tinyfd_utf16to8(wchar_t const * aUtf16string); char * tinyfd_utf16to8(wchar_t const * aUtf16string);
void tinyfd_setWinUtf8(int aIsUtf8); /* only to be used from C# to set the global variable tinyfd_winUtf8 to 1 or 0 */
#endif #endif
/******************************************************************************************************/ /******************************************************************************************************/
/******************************************************************************************************/ /******************************************************************************************************/
/******************************************************************************************************/ /******************************************************************************************************/
extern char const tinyfd_version[8]; /* contains tinyfd current version number */ /************* 3 funtions for C# (you don't need this in C or C++) : */
extern char const tinyfd_needs[]; /* info about requirements */ char const * tinyfd_getGlobalChar(char const * aCharVariableName); /* returns NULL on error */
int tinyfd_getGlobalInt(char const * aIntVariableName); /* returns -1 on error */
int tinyfd_setGlobalInt(char const * aIntVariableName, int aValue); /* returns -1 on error */
/* aCharVariableName: "tinyfd_version" "tinyfd_needs" "tinyfd_response"
aIntVariableName : "tinyfd_verbose" "tinyfd_silent" "tinyfd_allowCursesDialogs"
"tinyfd_forceConsole" "tinyfd_assumeGraphicDisplay" "tinyfd_winUtf8"
**************/
extern char tinyfd_version[8]; /* contains tinyfd current version number */
extern char tinyfd_needs[]; /* info about requirements */
extern int tinyfd_verbose; /* 0 (default) or 1 : on unix, prints the command line calls */ extern int tinyfd_verbose; /* 0 (default) or 1 : on unix, prints the command line calls */
extern int tinyfd_silent; /* 1 (default) or 0 : on unix, hide errors and warnings from called dialogs */ extern int tinyfd_silent; /* 1 (default) or 0 : on unix, hide errors and warnings from called dialogs */
/* Curses dialogs are difficult to use, on windows they are only ascii */ /* Curses dialogs are difficult to use, on windows they are only ascii and uses the unix backslah */
/* int const tinyfd_allowCursesDialogs; 0 (default) or 1 : you can change this in tinyfiledialogs.c */ extern int tinyfd_allowCursesDialogs; /* 0 (default) or 1 */
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). /* 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. 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, 1: forces all dialogs into console mode even when an X server is present,
if the package dialog (and a console is present) or dialog.exe is installed. it can use the package dialog or dialog.exe.
on windows it only make sense for console applications */ on windows it only make sense for console applications */
extern int tinyfd_assumeGraphicDisplay; /* 0 (default) or 1 */
/* some systems don't set the environment variable DISPLAY even when a graphic display is present.
set this to 1 to tell tinyfiledialogs to assume the existence of a graphic display */
extern char tinyfd_response[1024]; extern char tinyfd_response[1024];
/* if you pass "tinyfd_query" as aTitle, /* if you pass "tinyfd_query" as aTitle,
the functions will not display the dialogs the functions will not display the dialogs
@@ -148,10 +112,9 @@ but will return 0 for console mode, 1 for graphic mode.
tinyfd_response is then filled with the retain solution. tinyfd_response is then filled with the retain solution.
possible values for tinyfd_response are (all lowercase) possible values for tinyfd_response are (all lowercase)
for graphic mode: for graphic mode:
windows_wchar windows windows_wchar windows applescript kdialog zenity zenity3 matedialog
applescript kdialog zenity zenity3 matedialog qarma shellementary qarma yad python2-tkinter python3-tkinter python-dbus
python2-tkinter python3-tkinter python-dbus perl-dbus perl-dbus gxmessage gmessage xmessage xdialog gdialog
gxmessage gmessage xmessage xdialog gdialog
for console mode: for console mode:
dialog whiptail basicinput no_solution */ dialog whiptail basicinput no_solution */
@@ -173,38 +136,38 @@ int tinyfd_messageBox(
char * tinyfd_inputBox( char * tinyfd_inputBox(
char const * aTitle , /* NULL or "" */ char const * aTitle , /* NULL or "" */
char const * aMessage , /* NULL or "" may NOT contain \n \t on windows */ char const * aMessage , /* NULL or "" (\n and \t have no effect) */
char const * aDefaultInput ) ; /* "" , if NULL it's a passwordBox */ char const * aDefaultInput ) ; /* NULL passwordBox, "" inputbox */
/* returns NULL on cancel */ /* returns NULL on cancel */
char * tinyfd_saveFileDialog( char * tinyfd_saveFileDialog(
char const * aTitle , /* NULL or "" */ char const * aTitle , /* NULL or "" */
char const * aDefaultPathAndFile , /* NULL or "" */ char const * aDefaultPathAndFile , /* NULL or "" */
int aNumOfFilterPatterns , /* 0 */ int aNumOfFilterPatterns , /* 0 (1 in the following example) */
char const * const * aFilterPatterns , /* NULL | {"*.jpg","*.png"} */ char const * const * aFilterPatterns , /* NULL or char const * lFilterPatterns[1]={"*.txt"} */
char const * aSingleFilterDescription ) ; /* NULL | "text files" */ char const * aSingleFilterDescription ) ; /* NULL or "text files" */
/* returns NULL on cancel */ /* returns NULL on cancel */
char * tinyfd_openFileDialog( char * tinyfd_openFileDialog(
char const * aTitle , /* NULL or "" */ char const * aTitle, /* NULL or "" */
char const * aDefaultPathAndFile , /* NULL or "" */ char const * aDefaultPathAndFile, /* NULL or "" */
int aNumOfFilterPatterns , /* 0 */ int aNumOfFilterPatterns , /* 0 (2 in the following example) */
char const * const * aFilterPatterns , /* NULL | {"*.jpg","*.png"} */ char const * const * aFilterPatterns, /* NULL or char const * lFilterPatterns[2]={"*.png","*.jpg"}; */
char const * aSingleFilterDescription , /* NULL | "image files" */ char const * aSingleFilterDescription, /* NULL or "image files" */
int aAllowMultipleSelects ) ; /* 0 or 1 */ int aAllowMultipleSelects ) ; /* 0 or 1 */
/* in case of multiple files, the separator is | */ /* in case of multiple files, the separator is | */
/* returns NULL on cancel */ /* returns NULL on cancel */
char * tinyfd_selectFolderDialog( char * tinyfd_selectFolderDialog(
char const * aTitle , /* NULL or "" */ char const * aTitle, /* NULL or "" */
char const * aDefaultPath ) ; /* NULL or "" */ char const * aDefaultPath); /* NULL or "" */
/* returns NULL on cancel */ /* returns NULL on cancel */
char * tinyfd_colorChooser( char * tinyfd_colorChooser(
char const * aTitle , /* NULL or "" */ char const * aTitle, /* NULL or "" */
char const * aDefaultHexRGB , /* NULL or "#FF0000" */ char const * aDefaultHexRGB, /* NULL or "#FF0000" */
unsigned char const aDefaultRGB[3] , /* { 0 , 255 , 255 } */ unsigned char const aDefaultRGB[3] , /* unsigned char lDefaultRGB[3] = { 0 , 128 , 255 }; */
unsigned char aoResultRGB[3] ) ; /* { 0 , 0 , 0 } */ unsigned char aoResultRGB[3] ) ; /* unsigned char lResultRGB[3]; */
/* returns the hexcolor as a string "#FF0000" */ /* returns the hexcolor as a string "#FF0000" */
/* aoResultRGB also contains the result */ /* aoResultRGB also contains the result */
/* aDefaultRGB is used only if aDefaultHexRGB is NULL */ /* aDefaultRGB is used only if aDefaultHexRGB is NULL */
@@ -223,7 +186,7 @@ int tinyfd_notifyPopupW(
/* windows only - utf-16 version */ /* windows only - utf-16 version */
int tinyfd_messageBoxW( int tinyfd_messageBoxW(
wchar_t const * aTitle , /* NULL or L"" */ wchar_t const * aTitle, /* NULL or L"" */
wchar_t const * aMessage, /* NULL or L"" may contain \n \t */ wchar_t const * aMessage, /* NULL or L"" may contain \n \t */
wchar_t const * aDialogType, /* L"ok" L"okcancel" L"yesno" */ wchar_t const * aDialogType, /* L"ok" L"okcancel" L"yesno" */
wchar_t const * aIconType, /* L"info" L"warning" L"error" L"question" */ wchar_t const * aIconType, /* L"info" L"warning" L"error" L"question" */
@@ -233,24 +196,24 @@ int tinyfd_messageBoxW(
/* windows only - utf-16 version */ /* windows only - utf-16 version */
wchar_t * tinyfd_inputBoxW( wchar_t * tinyfd_inputBoxW(
wchar_t const * aTitle, /* NULL or L"" */ wchar_t const * aTitle, /* NULL or L"" */
wchar_t const * aMessage, /* NULL or L"" may NOT contain \n nor \t */ wchar_t const * aMessage, /* NULL or L"" (\n nor \t not respected) */
wchar_t const * aDefaultInput ); /* L"" , if NULL it's a passwordBox */ wchar_t const * aDefaultInput); /* NULL passwordBox, L"" inputbox */
/* windows only - utf-16 version */ /* windows only - utf-16 version */
wchar_t * tinyfd_saveFileDialogW( wchar_t * tinyfd_saveFileDialogW(
wchar_t const * aTitle, /* NULL or L"" */ wchar_t const * aTitle, /* NULL or L"" */
wchar_t const * aDefaultPathAndFile, /* NULL or L"" */ wchar_t const * aDefaultPathAndFile, /* NULL or L"" */
int aNumOfFilterPatterns, /* 0 */ int aNumOfFilterPatterns, /* 0 (1 in the following example) */
wchar_t const * const * aFilterPatterns, /* NULL or {L"*.jpg",L"*.png"} */ wchar_t const * const * aFilterPatterns, /* NULL or wchar_t const * lFilterPatterns[1]={L"*.txt"} */
wchar_t const * aSingleFilterDescription); /* NULL or L"image files" */ wchar_t const * aSingleFilterDescription); /* NULL or L"text files" */
/* returns NULL on cancel */ /* returns NULL on cancel */
/* windows only - utf-16 version */ /* windows only - utf-16 version */
wchar_t * tinyfd_openFileDialogW( wchar_t * tinyfd_openFileDialogW(
wchar_t const * aTitle, /* NULL or L"" */ wchar_t const * aTitle, /* NULL or L"" */
wchar_t const * aDefaultPathAndFile, /* NULL or L"" */ wchar_t const * aDefaultPathAndFile, /* NULL or L"" */
int aNumOfFilterPatterns , /* 0 */ int aNumOfFilterPatterns , /* 0 (2 in the following example) */
wchar_t const * const * aFilterPatterns, /* NULL {L"*.jpg",L"*.png"} */ wchar_t const * const * aFilterPatterns, /* NULL or wchar_t const * lFilterPatterns[2]={L"*.png","*.jpg"} */
wchar_t const * aSingleFilterDescription, /* NULL or L"image files" */ wchar_t const * aSingleFilterDescription, /* NULL or L"image files" */
int aAllowMultipleSelects ) ; /* 0 or 1 */ int aAllowMultipleSelects ) ; /* 0 or 1 */
/* in case of multiple files, the separator is | */ /* in case of multiple files, the separator is | */
@@ -266,8 +229,8 @@ wchar_t * tinyfd_selectFolderDialogW(
wchar_t * tinyfd_colorChooserW( wchar_t * tinyfd_colorChooserW(
wchar_t const * aTitle, /* NULL or L"" */ wchar_t const * aTitle, /* NULL or L"" */
wchar_t const * aDefaultHexRGB, /* NULL or L"#FF0000" */ wchar_t const * aDefaultHexRGB, /* NULL or L"#FF0000" */
unsigned char const aDefaultRGB[3] , /* { 0 , 255 , 255 } */ unsigned char const aDefaultRGB[3], /* unsigned char lDefaultRGB[3] = { 0 , 128 , 255 }; */
unsigned char aoResultRGB[3] ) ; /* { 0 , 0 , 0 } */ unsigned char aoResultRGB[3]); /* unsigned char lResultRGB[3]; */
/* returns the hexcolor as a string L"#FF0000" */ /* returns the hexcolor as a string L"#FF0000" */
/* aoResultRGB also contains the result */ /* aoResultRGB also contains the result */
/* aDefaultRGB is used only if aDefaultHexRGB is NULL */ /* aDefaultRGB is used only if aDefaultHexRGB is NULL */
@@ -283,47 +246,58 @@ wchar_t * tinyfd_colorChooserW(
#endif /* TINYFILEDIALOGS_H */ #endif /* TINYFILEDIALOGS_H */
/* /*
________________________________________________________________________________
| ____________________________________________________________________________ |
| | | |
| | on windows: | |
| | - for UTF-16, use the wchar_t functions at the bottom of the header file | |
| | - _wfopen() requires wchar_t | |
| | | |
| | - in tinyfiledialogs, char is UTF-8 by default (since v3.6) | |
| | - but fopen() expects MBCS (not UTF-8) | |
| | - if you want char to be MBCS: set tinyfd_winUtf8 to 0 | |
| | | |
| | - alternatively, tinyfiledialogs provides | |
| | functions to convert between UTF-8, UTF-16 and MBCS | |
| |____________________________________________________________________________| |
|________________________________________________________________________________|
- This is not for ios nor android (it works in termux though). - This is not for ios nor android (it works in termux though).
- The code is pure C, perfectly compatible with C++. - The files can be renamed with extension ".cpp" as the code is 100% compatible C C++
- windows is fully supported from XP to 10 (maybe even older versions) (just comment out << extern "C" >> in the header file)
- Windows is fully supported from XP to 10 (maybe even older versions)
- C# & LUA via dll, see files in the folder EXTRAS - C# & LUA via dll, see files in the folder EXTRAS
- OSX supported from 10.4 to latest (maybe even older versions) - OSX supported from 10.4 to latest (maybe even older versions)
- Avoid using " and ' in titles and messages. - Do not use " and ' as the dialogs will be displayed with a warning
instead of the title, message, etc...
- There's one file filter only, it may contain several patterns. - There's one file filter only, it may contain several patterns.
- If no filter description is provided, - If no filter description is provided,
the list of patterns will become the description. the list of patterns will become the description.
- char const * filterPatterns[3] = { "*.obj" , "*.stl" , "*.dxf" } ;
- On windows char defaults to UTF-8, set tinyfd_winUtf8=0 to use MBCS
- On windows link against Comdlg32.lib and Ole32.lib - On windows link against Comdlg32.lib and Ole32.lib
(on windows the no linking claim is a lie) (on windows the no linking claim is a lie)
This linking is not compulsary for console mode (see header file).
- On unix: it tries command line calls, so no such need (NO LINKING). - On unix: it tries command line calls, so no such need (NO LINKING).
- On unix you need one of the following: - On unix you need one of the following:
applescript, kdialog, zenity, matedialog, shellementary, qarma, applescript, kdialog, zenity, matedialog, shellementary, qarma, yad,
python (2 or 3)/tkinter/python-dbus (optional), Xdialog python (2 or 3)/tkinter/python-dbus (optional), Xdialog
or dialog (opens terminal if running without console) or xterm. or curses dialogs (opens terminal if running without console).
- One of those is already included on most (if not all) desktops. - One of those is already included on most (if not all) desktops.
- In the absence of those it will use gdialog, gxmessage or whiptail - In the absence of those it will use gdialog, gxmessage or whiptail
with a textinputbox. with a textinputbox. If nothing is found, it switches to basic console input,
- If nothing is found, it switches to basic console input,
it opens a console if needed (requires xterm + bash). it opens a console if needed (requires xterm + bash).
- Use windows separators on windows and unix separators on unix. - for curses dialogs you must set tinyfd_allowCursesDialogs=1
- You can query the type of dialog that will be used (pass "tinyfd_query" as aTitle)
- String memory is preallocated statically for all the returned values. - String memory is preallocated statically for all the returned values.
- File and path names are tested before return, they are valid. - File and path names are tested before return, they should be valid.
- If you pass only a path instead of path + filename,
make sure it ends with a separator.
- tinyfd_forceConsole=1; at run time, forces dialogs into console mode. - 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 only make sense for console applications.
- On windows, Console mode is not implemented for wchar_T UTF-16. - On windows, console mode is not implemented for wchar_T UTF-16.
- Mutiple selects are not allowed in console mode. - Mutiple selects are not possible in console mode.
- The package dialog must be installed to run in enhanced console mode. - The package dialog must be installed to run in curses dialogs in console mode.
It is already installed on most unix systems. It is already installed on most unix systems.
- On osx, the package dialog can be installed via - On osx, the package dialog can be installed via
http://macappstore.org/dialog or http://macports.org http://macappstore.org/dialog or http://macports.org
- On windows, for enhanced console mode, - On windows, for curses dialogs console mode,
dialog.exe should be copied somewhere on your executable path. dialog.exe should be copied somewhere on your executable path.
It can be found at the bottom of the following page: It can be found at the bottom of the following page:
http://andrear.altervista.org/home/cdialog.php http://andrear.altervista.org/home/cdialog.php
- If dialog is missing, it will switch to basic console input.
- You can query the type of dialog that will be use (pass "tinyfd_query" as aTitle)
*/ */

View File

@@ -1,8 +1,8 @@
#define PACKAGE "dosbox-x" #define PACKAGE "dosbox-x"
#define PACKAGE_BUGREPORT "https://github.com/joncampbell123/dosbox-x/issues" #define PACKAGE_BUGREPORT "https://github.com/joncampbell123/dosbox-x/issues"
#define PACKAGE_NAME "dosbox-x" #define PACKAGE_NAME "dosbox-x"
#define PACKAGE_STRING "dosbox-x 0.83.9" #define PACKAGE_STRING "dosbox-x 0.83.10"
#define PACKAGE_TARNAME "dosbox-x" #define PACKAGE_TARNAME "dosbox-x"
#define PACKAGE_URL "https://dosbox-x.com" #define PACKAGE_URL "https://dosbox-x.com"
#define PACKAGE_VERSION "0.83.9" #define PACKAGE_VERSION "0.83.10"
#define VERSION "0.83.9" #define VERSION "0.83.10"