瀏覽代碼

Remove rGuiStyler tool

Moved to own repo: https://github.com/raysan5/rguistyler
Ray 7 年之前
父節點
當前提交
c9b2ef9164
共有 73 個文件被更改,包括 0 次插入9692 次删除
  1. 0 38
      tools/rGuiStyler/README.md
  2. 0 37
      tools/rGuiStyler/design/README.md
  3. 二進制
      tools/rGuiStyler/design/old/001_raygui_styler_july2015a.png
  4. 二進制
      tools/rGuiStyler/design/old/002_raygui_styler_july2015b.png
  5. 二進制
      tools/rGuiStyler/design/old/003_raygui_styler_feb2016a.png
  6. 二進制
      tools/rGuiStyler/design/old/003_raygui_styler_feb2016b.png
  7. 二進制
      tools/rGuiStyler/design/old/004_raygui_styler_june2016a.png
  8. 二進制
      tools/rGuiStyler/design/old/004_raygui_styler_june2016b.png
  9. 二進制
      tools/rGuiStyler/design/rguistyler.gif
  10. 二進制
      tools/rGuiStyler/design/rguistyler2_dark_REV3.png
  11. 二進制
      tools/rGuiStyler/design/rguistyler2_dark_REV4.png
  12. 二進制
      tools/rGuiStyler/design/rguistyler2_dark_REV4_disabled.png
  13. 二進制
      tools/rGuiStyler/design/rguistyler2_dark_REV5.png
  14. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV0a.png
  15. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV0b.png
  16. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV0c.png
  17. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV1.png
  18. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV2.png
  19. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV3.png
  20. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV4.png
  21. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV5.png
  22. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV6.png
  23. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV7.png
  24. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV8.png
  25. 二進制
      tools/rGuiStyler/design/rguistyler2_light_REV9.png
  26. 二進制
      tools/rGuiStyler/logo/rguistyler.pdn
  27. 二進制
      tools/rGuiStyler/logo/rguistyler_128x128.png
  28. 二進制
      tools/rGuiStyler/logo/rguistyler_16x16.png
  29. 二進制
      tools/rGuiStyler/logo/rguistyler_24x24.png
  30. 二進制
      tools/rGuiStyler/logo/rguistyler_256x256.png
  31. 二進制
      tools/rGuiStyler/logo/rguistyler_32x32.png
  32. 二進制
      tools/rGuiStyler/logo/rguistyler_48x48.png
  33. 二進制
      tools/rGuiStyler/logo/rguistyler_64x64.png
  34. 二進制
      tools/rGuiStyler/logo/rguistyler_96x96.png
  35. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_ashes_shot01.png
  36. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_bluish_shot01.png
  37. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_candy_shot01.png
  38. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_cherry_shot01.png
  39. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_dark_shot01.png
  40. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_light_shot01.png
  41. 二進制
      tools/rGuiStyler/screenshots/rguistyler130_robert_shot01.png
  42. 二進制
      tools/rGuiStyler/screenshots/rguistyler_candy_shot01.png
  43. 二進制
      tools/rGuiStyler/screenshots/rguistyler_candy_shot02.png
  44. 二進制
      tools/rGuiStyler/screenshots/rguistyler_candy_shot03.png
  45. 二進制
      tools/rGuiStyler/screenshots/rguistyler_cherry_shot01.png
  46. 二進制
      tools/rGuiStyler/screenshots/rguistyler_cherry_shot02.png
  47. 二進制
      tools/rGuiStyler/screenshots/rguistyler_cherry_shot03.png
  48. 二進制
      tools/rGuiStyler/screenshots/rguistyler_dark_shot01.png
  49. 二進制
      tools/rGuiStyler/screenshots/rguistyler_dark_shot02.png
  50. 二進制
      tools/rGuiStyler/screenshots/rguistyler_dark_shot03.png
  51. 二進制
      tools/rGuiStyler/screenshots/rguistyler_light_shot01.png
  52. 二進制
      tools/rGuiStyler/screenshots/rguistyler_light_shot02.png
  53. 0 7370
      tools/rGuiStyler/src/external/tinyfiledialogs.c
  54. 0 325
      tools/rGuiStyler/src/external/tinyfiledialogs.h
  55. 0 0
      tools/rGuiStyler/src/raygui_style_table_light.h
  56. 0 895
      tools/rGuiStyler/src/rguistyler.c
  57. 二進制
      tools/rGuiStyler/src/rguistyler.ico
  58. 0 27
      tools/rGuiStyler/src/rguistyler.rc
  59. 二進制
      tools/rGuiStyler/src/rguistyler_icon
  60. 二進制
      tools/rGuiStyler/styles/candy.rgs
  61. 二進制
      tools/rGuiStyler/styles/cherry.rgs
  62. 二進制
      tools/rGuiStyler/styles/dark.rgs
  63. 0 117
      tools/rGuiStyler/styles/dev/ashes.rgs
  64. 二進制
      tools/rGuiStyler/styles/dev/bluish.rgs
  65. 二進制
      tools/rGuiStyler/styles/dev/forest.rgs
  66. 0 137
      tools/rGuiStyler/styles/dev/iris.rgs
  67. 0 137
      tools/rGuiStyler/styles/dev/laura.rgs
  68. 0 81
      tools/rGuiStyler/styles/dev/lila.rgs
  69. 0 137
      tools/rGuiStyler/styles/dev/parrots.rgs
  70. 0 137
      tools/rGuiStyler/styles/dev/pastel_mint.rgs
  71. 0 137
      tools/rGuiStyler/styles/dev/robert.rgs
  72. 0 117
      tools/rGuiStyler/styles/dev/sand.rgs
  73. 二進制
      tools/rGuiStyler/styles/light.rgs

+ 0 - 38
tools/rGuiStyler/README.md

@@ -1,38 +0,0 @@
-<img align="left" src="logo/rguistyler_256x256.png" width=256>
-
-# rGuiStyler
-A simple and easy-to-use tool to edit raygui styles. Useful for imgui style customization. The best mate for [rGuiLayout](https://github.com/raysan5/raygui/tree/master/tools/rGuiStyler) tool.
-
-<br>
-<br>
-<br>
-<br>
-
-## Features
-
- - **Global style editing or control specific**
- - Preview new style in real time and test controls
- - Disabled control mode editing included (checkbox)
- - Save/Load your style as **.rgs (text or binary mode)**
- - Import style from raygui **.png** style file (drag&drop)
- - Color palette menu for quick save/selection
- - **Completely portable (single file)**
- - Free and open source
- 
-## Usage
-
-The tool is pretty intuitive and easy-to-use, just choose the control to edit, the property to edit and select a color. Changes can be tested in real time in the same tool. Actually, updated style is directly applied to the same tool.
-
-Once a style has been created, just save it as a **.rgs** file, it can be saved as text or binary mode.
-
-## Screenshots
-
-![rGuiStyler](screenshots/screenshot000.png)
-
-## License
-
-rGuiStyler is free and open source software. rGuiStyler source code is licensed under an unmodified zlib/libpng license. Check [LICENSE](LICENSE) for further details.
-
-Despite being completely free, consider a small donation for the development efforts or contributing to [raylib patreon](https://www.patreon.com/raysan5) to help the author keep working on free software for games development.
-
-*Copyright (c) 2017-2018 raylib technologies ([@raysan5](https://twitter.com/raysan5))*

+ 0 - 37
tools/rGuiStyler/design/README.md

@@ -1,37 +0,0 @@
-<img align="left" src="../logo/rguistyler_128x128.png" width=128 height=128>
-
-### rGuiStyler - tool evolution
-
-*raygui_styler* tool development begin on mid-2015, [raygui](https://github.com/raysan5/raygui) project was started on December 2014 and after some time developing the library, a visual tool to customize style was required.
-
-<br>
-
-After some weeks of work, a first functional version of the visual style editor tool was released:
-
-![raygui_styler - June 2015](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/old/001_raygui_styler_july2015a.png)
-
-Tool kept improving with some required additions like style import/export support and color palette saving.
-
-![raygui_styler - January 2016](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/old/003_raygui_styler_feb2016b.png)
-
-Despite being a quite useful tool, it was never published and it was left aside for about a year. 
-
-On **June 2016**, *raygui_styler* was picked up again to adapt to the new raygui improvements. At that moment lot of the tools internals get broken (despite visuals seem to work quite the same).
-
-![raygui_styler - June 2016](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/rguistyler2_light_REV0a.png)
-
-The first big change was a brand new raygui color picker, generated in real-time, with one single draw call and more functional than the previous one (based on a loaded texture). It was by the end of 2017.
-
-![raygui_styler - January 2017](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/rguistyler2_light_REV0c.png)
-
-**January 2017**, *raygui_styler*, renamed to **rGuiStyler** for raylib-based-tools naming consistency, suffered a big update. Previous list views for controls and properties were directly coded in the tool; with the new raygui list view control, they were not needed any more and were replaced by raygui based ones, tool layout was compacted and became more visual for the user.
-
-![rGuiStyler - February 2017](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/rguistyler2_light_REV4.png)
-
-Tool UI/UX kept improving day after day, trying different options and refining details at the same time that raygui kept growing with new controls and styling options.
-
-After some months of continuous review, here it is the final result: **rGuiStyler v2.0**
-
-![rGuiStyler - April 2017](https://raw.githubusercontent.com/raysan5/raygui/master/tools/rGuiStyler/design/rguistyler2_light_REV8.png)
-
-*More screenshots about the tool design evolution could be found in this folder.*

二進制
tools/rGuiStyler/design/old/001_raygui_styler_july2015a.png


二進制
tools/rGuiStyler/design/old/002_raygui_styler_july2015b.png


二進制
tools/rGuiStyler/design/old/003_raygui_styler_feb2016a.png


二進制
tools/rGuiStyler/design/old/003_raygui_styler_feb2016b.png


二進制
tools/rGuiStyler/design/old/004_raygui_styler_june2016a.png


二進制
tools/rGuiStyler/design/old/004_raygui_styler_june2016b.png


二進制
tools/rGuiStyler/design/rguistyler.gif


二進制
tools/rGuiStyler/design/rguistyler2_dark_REV3.png


二進制
tools/rGuiStyler/design/rguistyler2_dark_REV4.png


二進制
tools/rGuiStyler/design/rguistyler2_dark_REV4_disabled.png


二進制
tools/rGuiStyler/design/rguistyler2_dark_REV5.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV0a.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV0b.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV0c.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV1.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV2.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV3.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV4.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV5.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV6.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV7.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV8.png


二進制
tools/rGuiStyler/design/rguistyler2_light_REV9.png


二進制
tools/rGuiStyler/logo/rguistyler.pdn


二進制
tools/rGuiStyler/logo/rguistyler_128x128.png


二進制
tools/rGuiStyler/logo/rguistyler_16x16.png


二進制
tools/rGuiStyler/logo/rguistyler_24x24.png


二進制
tools/rGuiStyler/logo/rguistyler_256x256.png


二進制
tools/rGuiStyler/logo/rguistyler_32x32.png


二進制
tools/rGuiStyler/logo/rguistyler_48x48.png


二進制
tools/rGuiStyler/logo/rguistyler_64x64.png


二進制
tools/rGuiStyler/logo/rguistyler_96x96.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_ashes_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_bluish_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_candy_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_cherry_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_dark_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_light_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler130_robert_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler_candy_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler_candy_shot02.png


二進制
tools/rGuiStyler/screenshots/rguistyler_candy_shot03.png


二進制
tools/rGuiStyler/screenshots/rguistyler_cherry_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler_cherry_shot02.png


二進制
tools/rGuiStyler/screenshots/rguistyler_cherry_shot03.png


二進制
tools/rGuiStyler/screenshots/rguistyler_dark_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler_dark_shot02.png


二進制
tools/rGuiStyler/screenshots/rguistyler_dark_shot03.png


二進制
tools/rGuiStyler/screenshots/rguistyler_light_shot01.png


二進制
tools/rGuiStyler/screenshots/rguistyler_light_shot02.png


+ 0 - 7370
tools/rGuiStyler/src/external/tinyfiledialogs.c

@@ -1,7370 +0,0 @@
-/*_________
- /         \ tinyfiledialogs.c v3.3.1 [Feb 16, 2018] zlib licence
- |tiny file| Unique code file created [November 9, 2014]
- | dialogs | Copyright (c) 2014 - 2018 Guillaume Vareille http://ysengrin.com
- \____  ___/ http://tinyfiledialogs.sourceforge.net
-      \|     git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd
-                 ____________________________________________
-                |                                            |
-                |   email: tinyfiledialogs at ysengrin.com   |
-                |____________________________________________|
-     ___________________________________________________________________
-    |                                                                   |
-    | the windows only wchar_t UTF-16 prototypes are in the header file |
-    |___________________________________________________________________|
-
-Please 1) let me know If you are using it on exotic hardware / OS / compiler
-       2) leave a 1-word review on Sourceforge.
-       3) upvote my stackoverflow answer/advert 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
-
-a C file + a header (add them to your C or C++ project) with 8 functions:
-- beep
-- notify popup
-- message & question
-- input & password
-- save file
-- open file(s)
-- select folder
-- color picker
-
-Complements OpenGL GLFW GLUT GLUI VTK SFML TGUI SDL Ogre Unity3d ION OpenCV
-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
-
-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 & C++98 compliant: tested with C & C++ compilers
-VisualStudio MinGW-gcc GCC Clang TinyCC OpenWatcom-v2 BorlandC SunCC
-on Windows Mac Linux Bsd Solaris Minix Raspbian
-using Gnome Kde Enlightenment Mate Cinnamon Unity Lxde Lxqt Xfce
-WindowMaker IceWm Cde Jds OpenBox Awesome Jwm Xdm
-
-Bindings for LUA and C# dll, Haskell
-Included in LWJGL(java), Rust, Allegrobasic
-
-Thanks for contributions, bug corrections & thorough testing to:
-- Don Heyse http://ldglite.sf.net for bug corrections & thorough testing!
-- Paul Rouget
-
-- License -
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-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
-in a product, an acknowledgment in the product documentation would be
-appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#define _POSIX_C_SOURCE 2 /* to accept POSIX 2 in old ANSI C standards */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#include "tinyfiledialogs.h"
-/* #define TINYFD_NOLIB */ 
-
-#ifdef _WIN32
- #ifdef __BORLANDC__
-  #define _getch getch
- #endif
- #ifndef _WIN32_WINNT
-  #define _WIN32_WINNT 0x0500
- #endif
- #ifndef TINYFD_NOLIB
-  #include <Windows.h>
-  /*#define TINYFD_NOSELECTFOLDERWIN*/
-  #ifndef TINYFD_NOSELECTFOLDERWIN
-   #include <Shlobj.h>
-  #endif /*TINYFD_NOSELECTFOLDERWIN*/
- #endif
- #include <conio.h>
- #include <commdlg.h>
- #define TINYFD_NOCCSUNICODE
- #define SLASH "\\"
- int tinyfd_winUtf8 = 0 ; /* on windows string char can be 0:MBCS or 1:UTF-8 */
-#else
- #include <limits.h>
- #include <unistd.h>
- #include <dirent.h> /* on old systems try <sys/dir.h> instead */
- #include <termios.h>
- #include <sys/utsname.h>
- #include <signal.h> /* on old systems try <sys/signal.h> instead */
- #define SLASH "/"
-#endif /* _WIN32 */
-
-#define MAX_PATH_OR_CMD 1024 /* _MAX_PATH or MAX_PATH */
-#define MAX_MULTIPLE_FILES 32
-
-char tinyfd_version [8] = "3.3.1";
-
-int tinyfd_verbose = 0 ; /* on unix: prints the command line calls */
-
-#if defined(TINYFD_NOLIB) && defined(_WIN32)
-int tinyfd_forceConsole = 1 ;
-#else
-int tinyfd_forceConsole = 0 ; /* 0 (default) or 1 */
-#endif
-/* 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 the X server is present,
-  if the package dialog (and a console is present) or dialog.exe is installed.
-  on windows it only make sense for console applications */
-
-char tinyfd_response[1024];
-/* if you pass "tinyfd_query" as aTitle,
-the functions will not display the dialogs
-but and 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 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 */
-
-#if defined(TINYFD_NOLIB) && defined(_WIN32)
-static int gWarningDisplayed = 1 ;
-#else
-static int gWarningDisplayed = 0 ;
-#endif
-
-static char gTitle[]="missing software! (we will try basic console input)";
-
-#ifdef _WIN32
-char tinyfd_needs[] = "\
- ___________\n\
-/           \\ \n\
-| tiny file |\n\
-|  dialogs  |\n\
-\\_____  ____/\n\
-      \\|\
-\ntiny file dialogs on Windows needs:\
-\n   a graphic display\
-\nor dialog.exe (enhanced console mode)\
-\nor a console for basic input";
-#else
-char tinyfd_needs[] = "\
- ___________\n\
-/           \\ \n\
-| tiny file |\n\
-|  dialogs  |\n\
-\\_____  ____/\n\
-      \\|\
-\ntiny file dialogs on UNIX needs:\
-\n   applescript\
-\nor kdialog\
-\nor zenity (or matedialog or qarma)\
-\nor python (2 or 3)\
-\n + tkinter + python-dbus (optional)\
-\nor dialog (opens console if needed)\
-\nor xterm + bash\
-\n   (opens console for basic input)\
-\nor existing console for basic input";
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(disable:4996) /* allows usage of strncpy, strcpy, strcat, sprintf, fopen */
-#pragma warning(disable:4100) /* allows usage of strncpy, strcpy, strcat, sprintf, fopen */
-#pragma warning(disable:4706) /* allows usage of strncpy, strcpy, strcat, sprintf, fopen */
-#endif
-
-static char * getPathWithoutFinalSlash(
-        char * const aoDestination, /* make sure it is allocated, use _MAX_PATH */
-        char const * const aSource) /* aoDestination and aSource can be the same */
-{
-        char const * lTmp ;
-        if ( aSource )
-        {
-                lTmp = strrchr(aSource, '/');
-                if (!lTmp)
-                {
-                        lTmp = strrchr(aSource, '\\');
-                }
-                if (lTmp)
-                {
-                        strncpy(aoDestination, aSource, lTmp - aSource );
-                        aoDestination[lTmp - aSource] = '\0';
-                }
-                else
-                {
-                        * aoDestination = '\0';
-                }
-        }
-        else
-        {
-                * aoDestination = '\0';
-        }
-        return aoDestination;
-}
-
-
-static char * getLastName(
-        char * const aoDestination, /* make sure it is allocated */
-        char const * const aSource)
-{
-        /* copy the last name after '/' or '\' */
-        char const * lTmp ;
-        if ( aSource )
-        {
-                lTmp = strrchr(aSource, '/');
-                if (!lTmp)
-                {
-                        lTmp = strrchr(aSource, '\\');
-                }
-                if (lTmp)
-                {
-                        strcpy(aoDestination, lTmp + 1);
-                }
-                else
-                {
-                        strcpy(aoDestination, aSource);
-                }
-        }
-        else
-        {
-                * aoDestination = '\0';
-        }
-        return aoDestination;
-}
-
-
-static void ensureFinalSlash( char * const aioString )
-{
-        if ( aioString && strlen( aioString ) )
-        {
-                char * lastcar = aioString + strlen( aioString ) - 1 ;
-                if ( strncmp( lastcar , SLASH , 1 ) )
-                {
-                        strcat( lastcar , SLASH ) ;
-                }
-        }
-}
-
-
-static void Hex2RGB( char const aHexRGB [8] ,
-                                         unsigned char aoResultRGB [3] )
-{
-        char lColorChannel [8] ;
-        if ( aoResultRGB )
-        {
-                if ( aHexRGB )
-                {
-                        strcpy(lColorChannel, aHexRGB ) ;
-                        aoResultRGB[2] = (unsigned char)strtoul(lColorChannel+5,NULL,16);
-                        lColorChannel[5] = '\0';
-                        aoResultRGB[1] = (unsigned char)strtoul(lColorChannel+3,NULL,16);
-                        lColorChannel[3] = '\0';
-                        aoResultRGB[0] = (unsigned char)strtoul(lColorChannel+1,NULL,16);
-/* printf("%d %d %d\n", aoResultRGB[0], aoResultRGB[1], aoResultRGB[2]); */
-                }
-                else
-                {
-                        aoResultRGB[0]=0;
-                        aoResultRGB[1]=0;
-                        aoResultRGB[2]=0;
-                }
-        }
-}
-
-static void RGB2Hex( unsigned char const aRGB [3] ,
-                                         char aoResultHexRGB [8] )
-{
-        if ( aoResultHexRGB )
-        {
-                if ( aRGB )
-                {
-#if defined(__GNUC__) && defined(_WIN32)
-                        sprintf(aoResultHexRGB, "#%02hx%02hx%02hx",
-#else
-                        sprintf(aoResultHexRGB, "#%02hhx%02hhx%02hhx",
-#endif
-                                aRGB[0], aRGB[1], aRGB[2]);
-                        /* printf("aoResultHexRGB %s\n", aoResultHexRGB); */
-                }
-                else
-                {
-                        aoResultHexRGB[0]=0;
-                        aoResultHexRGB[1]=0;
-                        aoResultHexRGB[2]=0;
-                }
-        }
-}
-
-
-static void replaceSubStr( char const * const aSource ,
-                                                   char const * const aOldSubStr ,
-                                                   char const * const aNewSubStr ,
-                                                   char * const aoDestination )
-{
-        char const * pOccurence ;
-        char const * p ;
-        char const * lNewSubStr = "" ;
-        size_t lOldSubLen = strlen( aOldSubStr ) ;
-        
-        if ( ! aSource )
-        {
-                * aoDestination = '\0' ;
-                return ;
-        }
-        if ( ! aOldSubStr )
-        {
-                strcpy( aoDestination , aSource ) ;
-                return ;
-        }
-        if ( aNewSubStr )
-        {
-                lNewSubStr = aNewSubStr ;
-        }
-        p = aSource ;
-        * aoDestination = '\0' ;
-        while ( ( pOccurence = strstr( p , aOldSubStr ) ) != NULL )
-        {
-                strncat( aoDestination , p , pOccurence - p ) ;
-                strcat( aoDestination , lNewSubStr ) ;
-                p = pOccurence + lOldSubLen ;
-        }
-        strcat( aoDestination , p ) ;
-}
-
-
-static int filenameValid( char const * const aFileNameWithoutPath )
-{
-        if ( ! aFileNameWithoutPath
-          || ! strlen(aFileNameWithoutPath)
-          || strpbrk(aFileNameWithoutPath , "\\/:*?\"<>|") )
-        {
-                return 0 ;
-        }
-        return 1 ;
-}
-
-#ifndef _WIN32
-
-static int fileExists( char const * const aFilePathAndName )
-{
-        FILE * lIn ;
-        if ( ! aFilePathAndName || ! strlen(aFilePathAndName) )
-        {
-                return 0 ;
-        }
-        lIn = fopen( aFilePathAndName , "r" ) ;
-        if ( ! lIn )
-        {
-                return 0 ;
-        }
-        fclose( lIn ) ;
-        return 1 ;
-}
-
-#elif defined(TINYFD_NOLIB)
-
-static int fileExists( char const * const aFilePathAndName )
-{
-        FILE * lIn ;
-        if ( ! aFilePathAndName || ! strlen(aFilePathAndName) )
-        {
-                return 0 ;
-        }
-
-        if ( tinyfd_winUtf8 )
-                return 1; /* we cannot test */
-
-        lIn = fopen( aFilePathAndName , "r" ) ;
-        if ( ! lIn )
-        {
-                return 0 ;
-        }
-        fclose( lIn ) ;
-        return 1 ;
-}
-
-#endif
-
-
-static void wipefile(char const * const aFilename)
-{
-        int i;
-        struct stat st;
-        FILE * lIn;
-
-        if (stat(aFilename, &st) == 0)
-        {
-                if ((lIn = fopen(aFilename, "w")))
-                {
-                        for (i = 0; i < st.st_size; i++)
-                        {
-                                fputc('A', lIn);
-                        }
-                }
-                fclose(lIn);
-        }
-}
-
-
-#ifdef _WIN32
-
-static int replaceChr( char * const aString ,
-                                           char const aOldChr ,
-                                           char const aNewChr )
-{
-        char * p ;
-        int lRes = 0 ;
-
-        if ( ! aString )
-        {
-                return 0 ;
-        }
-
-        if ( aOldChr == aNewChr )
-        {
-                return 0 ;
-        }
-
-        p = aString ;
-        while ( (p = strchr( p , aOldChr )) )
-        {
-                * p = aNewChr ;
-                p ++ ;
-                lRes = 1 ;
-        }
-        return lRes ;
-}
-
-#ifdef TINYFD_NOLIB
-
-static int dirExists(char const * const aDirPath)
-{
-        struct stat lInfo;
-
-        if (!aDirPath || !strlen(aDirPath))
-                return 0;       
-        if (stat(aDirPath, &lInfo) != 0)
-                return 0;
-        else if ( tinyfd_winUtf8 )
-                return 1; /* we cannot test */
-        else if (lInfo.st_mode & S_IFDIR)
-                return 1;
-        else
-                return 0;
-}
-
-
-void tinyfd_beep()
-{
-        printf("\a");
-}
-
-#else /* ndef TINYFD_NOLIB */
-
-void tinyfd_beep()
-{
-        Beep(440,300);
-}
-
-
-static void wipefileW(wchar_t const * const aFilename)
-{
-        int i;
-        struct _stat st;
-        FILE * lIn;
-
-        if (_wstat(aFilename, &st) == 0)
-        {
-                if ((lIn = _wfopen(aFilename, L"w")))
-                {
-                        for (i = 0; i < st.st_size; i++)
-                        {
-                                fputc('A', lIn);
-                        }
-                }
-                fclose(lIn);
-        }
-}
-
-
-static wchar_t * getPathWithoutFinalSlashW(
-        wchar_t * const aoDestination, /* make sure it is allocated, use _MAX_PATH */
-        wchar_t const * const aSource) /* aoDestination and aSource can be the same */
-{
-        wchar_t const * lTmp;
-        if (aSource)
-        {
-                lTmp = wcsrchr(aSource, L'/');
-                if (!lTmp)
-                {
-                        lTmp = wcsrchr(aSource, L'\\');
-                }
-                if (lTmp)
-                {
-                        wcsncpy(aoDestination, aSource, lTmp - aSource);
-                        aoDestination[lTmp - aSource] = L'\0';
-                }
-                else
-                {
-                        *aoDestination = L'\0';
-                }
-        }
-        else
-        {
-                *aoDestination = L'\0';
-        }
-        return aoDestination;
-}
-
-
-static wchar_t * getLastNameW(
-        wchar_t * const aoDestination, /* make sure it is allocated */
-        wchar_t const * const aSource)
-{
-        /* copy the last name after '/' or '\' */
-        wchar_t const * lTmp;
-        if (aSource)
-        {
-                lTmp = wcsrchr(aSource, L'/');
-                if (!lTmp)
-                {
-                        lTmp = wcsrchr(aSource, L'\\');
-                }
-                if (lTmp)
-                {
-                        wcscpy(aoDestination, lTmp + 1);
-                }
-                else
-                {
-                        wcscpy(aoDestination, aSource);
-                }
-        }
-        else
-        {
-                *aoDestination = L'\0';
-        }
-        return aoDestination;
-}
-
-
-static void Hex2RGBW(wchar_t const aHexRGB[8],
-        unsigned char aoResultRGB[3])
-{
-        wchar_t lColorChannel[8];
-        if (aoResultRGB)
-        {
-                if (aHexRGB)
-                {
-                        wcscpy(lColorChannel, aHexRGB);
-                        aoResultRGB[2] = (unsigned char)wcstoul(lColorChannel + 5, NULL, 16);
-                        lColorChannel[5] = '\0';
-                        aoResultRGB[1] = (unsigned char)wcstoul(lColorChannel + 3, NULL, 16);
-                        lColorChannel[3] = '\0';
-                        aoResultRGB[0] = (unsigned char)wcstoul(lColorChannel + 1, NULL, 16);
-                        /* printf("%d %d %d\n", aoResultRGB[0], aoResultRGB[1], aoResultRGB[2]); */
-                }
-                else
-                {
-                        aoResultRGB[0] = 0;
-                        aoResultRGB[1] = 0;
-                        aoResultRGB[2] = 0;
-                }
-        }
-}
-
-
-static void RGB2HexW(
-        unsigned char const aRGB[3],
-        wchar_t aoResultHexRGB[8])
-{
-        if (aoResultHexRGB)
-        {
-                if (aRGB)
-                {
-                        /* wprintf(L"aoResultHexRGB %s\n", aoResultHexRGB); */
-                        swprintf(aoResultHexRGB,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                                8,
-#endif
-                        L"#%02hhx%02hhx%02hhx", aRGB[0], aRGB[1], aRGB[2]);
-                }
-                else
-                {
-                        aoResultHexRGB[0] = 0;
-                        aoResultHexRGB[1] = 0;
-                        aoResultHexRGB[2] = 0;
-                }
-        }
-}
-
-
-#if !defined(WC_ERR_INVALID_CHARS)
-/* undefined prior to Vista, so not yet in MINGW header file */
-#define WC_ERR_INVALID_CHARS 0x00000080
-#endif
-
-
-static int sizeUtf16(char const * const aUtf8string)
-{
-        return MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS,
-                                        aUtf8string, -1, NULL, 0);
-}
-
-
-static int sizeUtf8(wchar_t const * const aUtf16string)
-{
-        return WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS,
-                aUtf16string, -1, NULL, 0, NULL, NULL);
-}
-
-
-static int sizeMbcs(wchar_t const * const aMbcsString)
-{
-        int lRes = WideCharToMultiByte(CP_ACP, 0,
-                aMbcsString, -1, NULL, 0, NULL, NULL);
-        /* DWORD licic = GetLastError(); */
-        return lRes;
-}
-
-
-static wchar_t * utf8to16(char const * const aUtf8string)
-{
-        wchar_t * lUtf16string ;
-        int lSize = sizeUtf16(aUtf8string);     
-        lUtf16string = (wchar_t *) malloc( lSize * sizeof(wchar_t) );
-        lSize = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS,
-                                        aUtf8string, -1, lUtf16string, lSize);
-        if (lSize == 0)
-        {
-                free(lUtf16string);
-                return NULL;
-        }
-        return lUtf16string;
-}
-
-
-static wchar_t * mbcsTo16(char const * const aMbcsString)
-{
-        wchar_t * lMbcsString;
-        int lSize = sizeUtf16(aMbcsString);
-        lMbcsString = (wchar_t *)malloc(lSize * sizeof(wchar_t));
-        lSize = MultiByteToWideChar(CP_ACP, 0,
-                aMbcsString, -1, lMbcsString, lSize);
-        if (lSize == 0)
-        {
-                free(lMbcsString);
-                return NULL;
-        }
-        return lMbcsString;
-}
-
-
-static char * utf16to8(wchar_t const * const aUtf16string)
-{
-        char * lUtf8string ;
-        int lSize = sizeUtf8(aUtf16string);
-        lUtf8string = (char *) malloc( lSize );
-        lSize = WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS,
-                aUtf16string, -1, lUtf8string, lSize, NULL, NULL);
-        if (lSize == 0)
-        {
-                free(lUtf8string);
-                return NULL;
-        }
-        return lUtf8string;
-}
-
-
-static char * utf16toMbcs(wchar_t const * const aUtf16string)
-{
-        char * lMbcsString;
-        int lSize = sizeMbcs(aUtf16string);
-        lMbcsString = (char *)malloc(lSize);
-        lSize = WideCharToMultiByte(CP_ACP, 0,
-                aUtf16string, -1, lMbcsString, lSize, NULL, NULL);
-        if (lSize == 0)
-        {
-                free(lMbcsString);
-                return NULL;
-        }
-        return lMbcsString;
-}
-
-
-static int dirExists(char const * const aDirPath)
-{
-        struct _stat lInfo;
-        wchar_t * lTmpWChar;
-        int lStatRet;
-
-        if (!aDirPath || !strlen(aDirPath))
-                return 0;
-
-        if (tinyfd_winUtf8)
-        {
-                lTmpWChar = utf8to16(aDirPath);
-                lStatRet = _wstat(lTmpWChar, &lInfo);
-                free(lTmpWChar);
-                if (lStatRet != 0)
-                        return 0;
-                else if (lInfo.st_mode & S_IFDIR)
-                        return 1;
-                else
-                        return 0;
-        }
-        else if (_stat(aDirPath, &lInfo) != 0)
-                return 0;
-        else if (lInfo.st_mode & S_IFDIR)
-                return 1;
-        else
-                return 0;
-}
-
-
-static int fileExists(char const * const aFilePathAndName)
-{
-        struct _stat lInfo;
-        wchar_t * lTmpWChar;
-        int lStatRet;
-        FILE * lIn;
-
-        if (!aFilePathAndName || !strlen(aFilePathAndName))
-        {
-                return 0;
-        }
-
-        if (tinyfd_winUtf8)
-        {
-                lTmpWChar = utf8to16(aFilePathAndName);
-                lStatRet = _wstat(lTmpWChar, &lInfo);
-                free(lTmpWChar);
-                if (lStatRet != 0)
-                        return 0;
-                else if (lInfo.st_mode & _S_IFREG)
-                        return 1;
-                else
-                        return 0;
-        }
-        else
-        {
-                lIn = fopen(aFilePathAndName, "r");
-                if (!lIn)
-                {
-                        return 0;
-                }
-                fclose(lIn);
-                return 1;
-        }
-}
-
-#endif /* TINYFD_NOLIB */
-#endif /* _WIN32 */
-
-/* source and destination can be the same or ovelap*/
-static char const * ensureFilesExist(char * const aDestination,
-        char const * const aSourcePathsAndNames)
-{
-        char * lDestination = aDestination;
-        char const * p;
-        char const * p2;
-        size_t lLen;
-
-        if (!aSourcePathsAndNames)
-        {
-                return NULL;
-        }
-        lLen = strlen(aSourcePathsAndNames);
-        if (!lLen)
-        {
-                return NULL;
-        }
-
-        p = aSourcePathsAndNames;
-        while ((p2 = strchr(p, '|')) != NULL)
-        {
-                lLen = p2 - p;
-                memmove(lDestination, p, lLen);
-                lDestination[lLen] = '\0';
-                if (fileExists(lDestination))
-                {
-                        lDestination += lLen;
-                        *lDestination = '|';
-                        lDestination++;
-                }
-                p = p2 + 1;
-        }
-        if (fileExists(p))
-        {
-                lLen = strlen(p);
-                memmove(lDestination, p, lLen);
-                lDestination[lLen] = '\0';
-        }
-        else
-        {
-                *(lDestination - 1) = '\0';
-        }
-        return aDestination;
-}
-
-#ifdef _WIN32
-#ifndef TINYFD_NOLIB
-
-static int __stdcall EnumThreadWndProc(HWND hwnd, LPARAM lParam)
-{ 
-        wchar_t lTitleName[MAX_PATH];
-        GetWindowTextW(hwnd, lTitleName, MAX_PATH);
-        /* wprintf(L"lTitleName %ls \n", lTitleName);  */
-        if (wcscmp(L"tinyfiledialogsTopWindow", lTitleName) == 0)
-        {
-                SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
-                return 0;
-        }
-        return 1;
-}
-
-
-static void hiddenConsoleW(wchar_t const * const aString, wchar_t const * const aDialogTitle, int const aInFront)
-{
-        STARTUPINFOW StartupInfo;
-        PROCESS_INFORMATION ProcessInfo;
-
-        if (!aString || !wcslen(aString) ) return;
-
-        memset(&StartupInfo, 0, sizeof(StartupInfo));
-        StartupInfo.cb = sizeof(STARTUPINFOW);
-        StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
-        StartupInfo.wShowWindow = SW_HIDE;
-
-        if (!CreateProcessW(NULL, (LPWSTR)aString, NULL, NULL, FALSE,
-                                CREATE_NEW_CONSOLE, NULL, NULL,
-                                &StartupInfo, &ProcessInfo))
-        {
-                return; /* GetLastError(); */
-        }
-
-        WaitForInputIdle(ProcessInfo.hProcess, INFINITE);
-        if (aInFront)
-        {
-                while (EnumWindows(EnumThreadWndProc, (LPARAM)NULL)) {}
-                SetWindowTextW(GetForegroundWindow(), aDialogTitle);
-        }
-        WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
-        CloseHandle(ProcessInfo.hThread);
-        CloseHandle(ProcessInfo.hProcess);
-}
-
-
-int tinyfd_messageBoxW(
-        wchar_t const * const aTitle, /* NULL or "" */
-        wchar_t const * const aMessage, /* NULL or ""  may contain \n and \t */
-        wchar_t const * const aDialogType, /* "ok" "okcancel" "yesno" "yesnocancel" */
-        wchar_t const * const aIconType, /* "info" "warning" "error" "question" */
-        int const aDefaultButton) /* 0 for cancel/no , 1 for ok/yes , 2 for no in yesnocancel */
-{
-        int lBoxReturnValue;
-        UINT aCode;
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return 1; }
-
-        if (aIconType && !wcscmp(L"warning", aIconType))
-        {
-                aCode = MB_ICONWARNING;
-        }
-        else if (aIconType && !wcscmp(L"error", aIconType))
-        {
-                aCode = MB_ICONERROR;
-        }
-        else if (aIconType && !wcscmp(L"question", aIconType))
-        {
-                aCode = MB_ICONQUESTION;
-        }
-        else
-        {
-                aCode = MB_ICONINFORMATION;
-        }
-
-        if (aDialogType && !wcscmp(L"okcancel", aDialogType))
-        {
-                aCode += MB_OKCANCEL;
-                if (!aDefaultButton)
-                {
-                        aCode += MB_DEFBUTTON2;
-                }
-        }
-        else if (aDialogType && !wcscmp(L"yesno", aDialogType))
-        {
-                aCode += MB_YESNO;
-                if (!aDefaultButton)
-                {
-                        aCode += MB_DEFBUTTON2;
-                }
-        }
-        else
-        {
-                aCode += MB_OK;
-        }
-
-        aCode += MB_TOPMOST;
-
-        lBoxReturnValue = MessageBoxW(GetForegroundWindow(), aMessage, aTitle, aCode);
-        if (((aDialogType
-                && wcscmp(L"okcancel", aDialogType)
-                && wcscmp(L"yesno", aDialogType)))
-                || (lBoxReturnValue == IDOK)
-                || (lBoxReturnValue == IDYES))
-        {
-                return 1;
-        }
-        else
-        {
-                return 0;
-        }
-}
-
-
-static int messageBoxWinGui8(
-        char const * const aTitle, /* NULL or "" */
-        char const * const aMessage, /* NULL or ""  may contain \n and \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 */
-{
-        int lIntRetVal;
-        wchar_t * lTitle;
-        wchar_t * lMessage;
-        wchar_t * lDialogType;
-        wchar_t * lIconType;
-
-        lTitle = utf8to16(aTitle);
-        lMessage = utf8to16(aMessage);
-        lDialogType = utf8to16(aDialogType);
-        lIconType = utf8to16(aIconType);
-
-        lIntRetVal = tinyfd_messageBoxW(lTitle, lMessage,
-                                                                lDialogType, lIconType, aDefaultButton );
-
-        free(lTitle);
-        free(lMessage);
-        free(lDialogType);
-        free(lIconType);
-
-        return lIntRetVal ;
-}
-
-
-/* return has only meaning for tinyfd_query */
-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" */
-{
-        wchar_t * lDialogString;
-        size_t lTitleLen;
-        size_t lMessageLen;
-        size_t lDialogStringLen;
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return 1; }
-
-        lTitleLen = aTitle ? wcslen(aTitle) : 0;
-        lMessageLen = aMessage ? wcslen(aMessage) : 0;
-        lDialogStringLen = 3 * MAX_PATH_OR_CMD + lTitleLen + lMessageLen;
-        lDialogString = (wchar_t *)malloc(2 * lDialogStringLen);
-
-        wcscpy(lDialogString, L"powershell.exe -command \"\
-function Show-BalloonTip {\
-[cmdletbinding()] \
-param( \
-[string]$Title = ' ', \
-[string]$Message = ' ', \
-[ValidateSet('info', 'warning', 'error')] \
-[string]$IconType = 'info');\
-[system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null ; \
-$balloon = New-Object System.Windows.Forms.NotifyIcon ; \
-$path = Get-Process -id $pid | Select-Object -ExpandProperty Path ; \
-$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path) ;");
-
-        wcscat(lDialogString, L"\
-$balloon.Icon = $icon ; \
-$balloon.BalloonTipIcon = $IconType ; \
-$balloon.BalloonTipText = $Message ; \
-$balloon.BalloonTipTitle = $Title ; \
-$balloon.Text = 'lalala' ; \
-$balloon.Visible = $true ; \
-$balloon.ShowBalloonTip(5000)};\
-Show-BalloonTip");
-
-        if (aTitle && wcslen(aTitle))
-        {
-                wcscat(lDialogString, L" -Title '");
-                wcscat(lDialogString, aTitle);
-                wcscat(lDialogString, L"'");
-        }
-        if (aMessage && wcslen(aMessage))
-        {
-                wcscat(lDialogString, L" -Message '");
-                wcscat(lDialogString, aMessage);
-                wcscat(lDialogString, L"'");
-        }
-        if (aMessage && wcslen(aIconType))
-        {
-                wcscat(lDialogString, L" -IconType '");
-                wcscat(lDialogString, aIconType);
-                wcscat(lDialogString, L"'");
-        }
-        wcscat(lDialogString, L"\"");
-
-        /* wprintf ( L"lDialogString: %ls\n" , lDialogString ) ; */
-
-        hiddenConsoleW(lDialogString, aTitle, 0);
-        free(lDialogString);
-        return 1;
-}
-
-
-static int notifyWinGui(
-        char const * const aTitle, /* NULL or "" */
-        char const * const aMessage, /* NULL or "" may NOT contain \n nor \t */
-        char const * const aIconType) 
-{
-        wchar_t * lTitle;
-        wchar_t * lMessage;
-        wchar_t * lIconType;
-
-        if (tinyfd_winUtf8)
-        {
-                lTitle = utf8to16(aTitle);
-                lMessage = utf8to16(aMessage);
-                lIconType = utf8to16(aIconType);
-        }
-        else
-        {
-                lTitle = mbcsTo16(aTitle);
-                lMessage = mbcsTo16(aMessage);
-                lIconType = mbcsTo16(aIconType);
-        }
-
-        tinyfd_notifyPopupW( lTitle,    lMessage, lIconType);
-
-        free(lTitle);
-        free(lMessage);
-        free(lIconType);
-        return 1;
-}
-
-
-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 */
-{
-        static wchar_t lBuff[MAX_PATH_OR_CMD];
-        wchar_t * lDialogString;
-        FILE * lIn;
-        FILE * lFile;
-        int lResult;
-        size_t lTitleLen;
-        size_t lMessageLen;
-        size_t lDialogStringLen;
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return (wchar_t const *)1; }
-
-        lTitleLen =  aTitle ? wcslen(aTitle) : 0 ;
-        lMessageLen =  aMessage ? wcslen(aMessage) : 0 ;
-        lDialogStringLen = 3 * MAX_PATH_OR_CMD + lTitleLen + lMessageLen;
-        lDialogString = (wchar_t *)malloc(2 * lDialogStringLen);
-
-        if (aDefaultInput)
-        {
-			swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                lDialogStringLen,
-#endif
-                L"%ls\\AppData\\Local\\Temp\\tinyfd.vbs", _wgetenv(L"USERPROFILE"));
-        }
-        else
-        {
-                swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                        lDialogStringLen,
-#endif
-                        L"%ls\\AppData\\Local\\Temp\\tinyfd.hta", _wgetenv(L"USERPROFILE"));
-        }
-        lIn = _wfopen(lDialogString, L"w");
-        if (!lIn)
-        {
-                free(lDialogString);
-                return NULL;
-        }
-
-        if ( aDefaultInput )
-        {
-                wcscpy(lDialogString, L"Dim result:result=InputBox(\"");
-                if (aMessage && wcslen(aMessage))
-                {
-                        wcscat(lDialogString, aMessage);
-                }
-                wcscat(lDialogString, L"\",\"tinyfiledialogsTopWindow\",\"");
-                if (aDefaultInput && wcslen(aDefaultInput))
-                {
-                        wcscat(lDialogString, aDefaultInput);
-                }
-                wcscat(lDialogString, L"\"):If IsEmpty(result) then:WScript.Echo 0");
-                wcscat(lDialogString, L":Else: WScript.Echo \"1\" & result : End If");
-        }
-        else
-        {
-                wcscpy(lDialogString, L"\n\
-<html>\n\
-<head>\n\
-<title>");
-
-                wcscat(lDialogString, L"tinyfiledialogsTopWindow");
-                wcscat(lDialogString, L"</title>\n\
-<HTA:APPLICATION\n\
-ID = 'tinyfdHTA'\n\
-APPLICATIONNAME = 'tinyfd_inputBox'\n\
-MINIMIZEBUTTON = 'no'\n\
-MAXIMIZEBUTTON = 'no'\n\
-BORDER = 'dialog'\n\
-SCROLL = 'no'\n\
-SINGLEINSTANCE = 'yes'\n\
-WINDOWSTATE = 'hidden'>\n\
-\n\
-<script language = 'VBScript'>\n\
-\n\
-intWidth = Screen.Width/4\n\
-intHeight = Screen.Height/6\n\
-ResizeTo intWidth, intHeight\n\
-MoveTo((Screen.Width/2)-(intWidth/2)),((Screen.Height/2)-(intHeight/2))\n\
-result = 0\n\
-\n\
-Sub Window_onLoad\n\
-txt_input.Focus\n\
-End Sub\n\
-\n");
-
-                wcscat(lDialogString, L"\
-Sub Window_onUnload\n\
-Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n\
-Set oShell = CreateObject(\"WScript.Shell\")\n\
-strHomeFolder = oShell.ExpandEnvironmentStrings(\"%USERPROFILE%\")\n\
-Set objFile = objFSO.CreateTextFile(strHomeFolder & \"\\AppData\\Local\\Temp\\tinyfd.txt\",True,True)\n\
-If result = 1 Then\n\
-objFile.Write 1 & txt_input.Value\n\
-Else\n\
-objFile.Write 0\n\
-End If\n\
-objFile.Close\n\
-End Sub\n\
-\n\
-Sub Run_ProgramOK\n\
-result = 1\n\
-window.Close\n\
-End Sub\n\
-\n\
-Sub Run_ProgramCancel\n\
-window.Close\n\
-End Sub\n\
-\n");
-
-                wcscat(lDialogString, L"Sub Default_Buttons\n\
-If Window.Event.KeyCode = 13 Then\n\
-btn_OK.Click\n\
-ElseIf Window.Event.KeyCode = 27 Then\n\
-btn_Cancel.Click\n\
-End If\n\
-End Sub\n\
-\n\
-</script>\n\
-</head>\n\
-<body style = 'background-color:#EEEEEE' onkeypress = 'vbs:Default_Buttons' align = 'top'>\n\
-<table width = '100%' height = '80%' align = 'center' border = '0'>\n\
-<tr border = '0'>\n\
-<td align = 'left' valign = 'middle' style='Font-Family:Arial'>\n");
-
-                wcscat(lDialogString, aMessage ? aMessage : L"");
-
-                wcscat(lDialogString, L"\n\
-</td>\n\
-<td align = 'right' valign = 'middle' style = 'margin-top: 0em'>\n\
-<table  align = 'right' style = 'margin-right: 0em;'>\n\
-<tr align = 'right' style = 'margin-top: 5em;'>\n\
-<input type = 'button' value = 'OK' name = 'btn_OK' onClick = 'vbs:Run_ProgramOK' style = 'width: 5em; margin-top: 2em;'><br>\n\
-<input type = 'button' value = 'Cancel' name = 'btn_Cancel' onClick = 'vbs:Run_ProgramCancel' style = 'width: 5em;'><br><br>\n\
-</tr>\n\
-</table>\n\
-</td>\n\
-</tr>\n\
-</table>\n");
-
-                wcscat(lDialogString, L"<table width = '100%' height = '100%' align = 'center' border = '0'>\n\
-<tr>\n\
-<td align = 'left' valign = 'top'>\n\
-<input type = 'password' id = 'txt_input'\n\
-name = 'txt_input' value = '' style = 'float:left;width:100%' ><BR>\n\
-</td>\n\
-</tr>\n\
-</table>\n\
-</body>\n\
-</html>\n\
-"               ) ;
-        }
-        fputws(lDialogString, lIn);
-        fclose(lIn);
-
-        if (aDefaultInput)
-        {
-                swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                        lDialogStringLen,
-#endif
-                        L"%ls\\AppData\\Local\\Temp\\tinyfd.txt",_wgetenv(L"USERPROFILE"));
-
-#ifdef TINYFD_NOCCSUNICODE
-				lFile = _wfopen(lDialogString, L"w");
-				fputc(0xFF, lFile);
-				fputc(0xFE, lFile);
-#else
-				lFile = _wfopen(lDialogString, L"wt, ccs=UNICODE"); /*or ccs=UTF-16LE*/
-#endif
-				fclose(lFile);
-
-                wcscpy(lDialogString, L"cmd.exe /c cscript.exe //U //Nologo ");
-                wcscat(lDialogString, L"%USERPROFILE%\\AppData\\Local\\Temp\\tinyfd.vbs ");
-                wcscat(lDialogString, L">> %USERPROFILE%\\AppData\\Local\\Temp\\tinyfd.txt");
-        }
-        else
-        {
-                wcscpy(lDialogString,
-                        L"cmd.exe /c mshta.exe %USERPROFILE%\\AppData\\Local\\Temp\\tinyfd.hta");
-        }
-
-        /* wprintf ( "lDialogString: %ls\n" , lDialogString ) ; */
-
-        hiddenConsoleW(lDialogString, aTitle, 1);
-
-        swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                lDialogStringLen,
-#endif
-				L"%ls\\AppData\\Local\\Temp\\tinyfd.txt", _wgetenv(L"USERPROFILE"));
-		/* wprintf(L"lDialogString: %ls\n", lDialogString); */
-#ifdef TINYFD_NOCCSUNICODE
-		if (!(lIn = _wfopen(lDialogString, L"r")))
-#else
-		if (!(lIn = _wfopen(lDialogString, L"rt, ccs=UNICODE"))) /*or ccs=UTF-16LE*/
-#endif
-		{
-                _wremove(lDialogString);
-                free(lDialogString);
-                return NULL;
-        }
-#ifdef TINYFD_NOCCSUNICODE
-		fgets((char *)lBuff, 2*MAX_PATH_OR_CMD, lIn);
-#else
-		fgetws(lBuff, MAX_PATH_OR_CMD, lIn);
-#endif
-		fclose(lIn);
-		wipefileW(lDialogString);
-		_wremove(lDialogString);
-
-		if (aDefaultInput)
-		{
-			swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                        lDialogStringLen,
-#endif
-                        L"%ls\\AppData\\Local\\Temp\\tinyfd.vbs",
-                        _wgetenv(L"USERPROFILE"));
-        }
-        else
-        {
-                swprintf(lDialogString,
-#if !defined(__BORLANDC__) && !defined(__TINYC__) && ( !defined(__GNUC__) || (__GNUC__) >= 5 )
-                        lDialogStringLen,
-#endif
-                        L"%ls\\AppData\\Local\\Temp\\tinyfd.hta",
-                        _wgetenv(L"USERPROFILE"));
-        }
-        _wremove(lDialogString);
-        free(lDialogString);
-        /* wprintf( L"lBuff: %ls\n" , lBuff ) ; */
-#ifdef TINYFD_NOCCSUNICODE
-		lResult = !wcsncmp(lBuff+1, L"1", 1);
-#else
-		lResult = !wcsncmp(lBuff, L"1", 1);
-#endif
-        
-        /* printf( "lResult: %d \n" , lResult ) ; */
-        if (!lResult)
-        {
-            return NULL ;
-        }
-
-        /* wprintf( "lBuff+1: %ls\n" , lBuff+1 ) ; */
-#ifdef TINYFD_NOCCSUNICODE
-		return lBuff + 2;
-#else
-		return lBuff + 1;
-#endif
-}
-
-
-static char const * inputBoxWinGui(
-        char * const aoBuff,
-        char const * const aTitle, /* NULL or "" */
-        char const * const aMessage, /* NULL or "" may NOT contain \n nor \t */
-        char const * const aDefaultInput) /* "" , if NULL it's a passwordBox */
-{
-        wchar_t * lTitle;
-        wchar_t * lMessage;
-        wchar_t * lDefaultInput;
-        wchar_t const * lTmpWChar;
-        char * lTmpChar;
-
-        if (tinyfd_winUtf8)
-        {
-                lTitle = utf8to16(aTitle);
-                lMessage = utf8to16(aMessage);
-                lDefaultInput = utf8to16(aDefaultInput);
-        }
-        else
-        {
-                lTitle = mbcsTo16(aTitle);
-                lMessage = mbcsTo16(aMessage);
-                lDefaultInput = mbcsTo16(aDefaultInput);
-        }
-
-        lTmpWChar = tinyfd_inputBoxW( lTitle, lMessage, lDefaultInput);
-
-        free(lTitle);
-        free(lMessage);
-        free(lDefaultInput);
-
-        if (!lTmpWChar)
-        {
-                return NULL;
-        }
-
-        if (tinyfd_winUtf8)
-        {
-                lTmpChar = utf16to8(lTmpWChar);
-        }
-        else
-        {
-                lTmpChar = utf16toMbcs(lTmpWChar);
-        }
-        strcpy(aoBuff, lTmpChar);
-        free(lTmpChar);
-
-        return aoBuff;
-}
-
-
-wchar_t const * tinyfd_saveFileDialogW(
-        wchar_t const * const aTitle, /* NULL or "" */
-        wchar_t const * const aDefaultPathAndFile, /* NULL or "" */
-        int const aNumOfFilterPatterns, /* 0 */
-        wchar_t const * const * const aFilterPatterns, /* NULL or {"*.jpg","*.png"} */
-        wchar_t const * const aSingleFilterDescription) /* NULL or "image files" */
-{
-        static wchar_t lBuff[MAX_PATH_OR_CMD];
-        wchar_t lDirname[MAX_PATH_OR_CMD];
-        wchar_t lDialogString[MAX_PATH_OR_CMD];
-        wchar_t lFilterPatterns[MAX_PATH_OR_CMD] = L"";
-        wchar_t * p;
-        wchar_t * lRetval;
-        int i;
-        HRESULT lHResult;
-        OPENFILENAMEW ofn = {0};
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return (wchar_t const *)1; }
-
-        lHResult = CoInitializeEx(NULL, 0);
-
-        getPathWithoutFinalSlashW(lDirname, aDefaultPathAndFile);
-        getLastNameW(lBuff, aDefaultPathAndFile);
-
-        if (aNumOfFilterPatterns > 0)
-        {
-                if (aSingleFilterDescription && wcslen(aSingleFilterDescription))
-                {
-                        wcscpy(lFilterPatterns, aSingleFilterDescription);
-                        wcscat(lFilterPatterns, L"\n");
-                }
-                wcscat(lFilterPatterns, aFilterPatterns[0]);
-                for (i = 1; i < aNumOfFilterPatterns; i++)
-                {
-                        wcscat(lFilterPatterns, L";");
-                        wcscat(lFilterPatterns, aFilterPatterns[i]);
-                }
-                wcscat(lFilterPatterns, L"\n");
-                if (!(aSingleFilterDescription && wcslen(aSingleFilterDescription)))
-                {
-                        wcscpy(lDialogString, lFilterPatterns);
-                        wcscat(lFilterPatterns, lDialogString);
-                }
-                wcscat(lFilterPatterns, L"All Files\n*.*\n");
-                p = lFilterPatterns;
-                while ((p = wcschr(p, L'\n')) != NULL)
-                {
-                        *p = L'\0';
-                        p++;
-                }
-        }
-
-        ofn.lStructSize = sizeof(OPENFILENAMEW);
-        ofn.hwndOwner = GetForegroundWindow();
-        ofn.hInstance = 0;
-        ofn.lpstrFilter = lFilterPatterns && wcslen(lFilterPatterns) ? lFilterPatterns : NULL;
-        ofn.lpstrCustomFilter = NULL;
-        ofn.nMaxCustFilter = 0;
-        ofn.nFilterIndex = 1;
-        ofn.lpstrFile = lBuff;
-
-        ofn.nMaxFile = MAX_PATH_OR_CMD;
-        ofn.lpstrFileTitle = NULL;
-        ofn.nMaxFileTitle = MAX_PATH_OR_CMD/2;
-        ofn.lpstrInitialDir = lDirname && wcslen(lDirname) ? lDirname : NULL;
-        ofn.lpstrTitle = aTitle && wcslen(aTitle) ? aTitle : NULL;
-        ofn.Flags = OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST ;
-        ofn.nFileOffset = 0;
-        ofn.nFileExtension = 0;
-        ofn.lpstrDefExt = NULL;
-        ofn.lCustData = 0L;
-        ofn.lpfnHook = NULL;
-        ofn.lpTemplateName = NULL;
-
-        if (GetSaveFileNameW(&ofn) == 0)
-        {
-                lRetval = NULL;
-        }
-        else
-        {
-                lRetval = lBuff;
-        }
-
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                CoUninitialize();
-        }
-        return lRetval;
-}
-
-
-static char const * saveFileDialogWinGui8(
-        char * const aoBuff,
-        char const * const aTitle, /* NULL or "" */
-        char const * const aDefaultPathAndFile, /* NULL or "" */
-        int const aNumOfFilterPatterns, /* 0 */
-        char const * const * const aFilterPatterns, /* NULL or {"*.jpg","*.png"} */
-        char const * const aSingleFilterDescription) /* NULL or "image files" */
-{
-        wchar_t * lTitle;
-        wchar_t * lDefaultPathAndFile;
-        wchar_t * lSingleFilterDescription;
-        wchar_t * * lFilterPatterns;
-        wchar_t const * lTmpWChar;
-        char * lTmpChar;
-        int i ;
-
-        lFilterPatterns = (wchar_t **) malloc(aNumOfFilterPatterns*sizeof(wchar_t *));
-        for (i = 0; i < aNumOfFilterPatterns; i++)
-        {
-                lFilterPatterns[i]  = utf8to16(aFilterPatterns[i]);
-        }
-
-        lTitle = utf8to16(aTitle);
-        lDefaultPathAndFile = utf8to16(aDefaultPathAndFile);
-        lSingleFilterDescription = utf8to16(aSingleFilterDescription);
-
-        lTmpWChar = tinyfd_saveFileDialogW(
-                                        lTitle,
-                                        lDefaultPathAndFile,
-                                        aNumOfFilterPatterns,
-                                        (wchar_t const** ) /*stupid cast for gcc*/
-                                        lFilterPatterns,
-                                        lSingleFilterDescription);
-
-        free(lTitle);
-        free(lDefaultPathAndFile);
-        free(lSingleFilterDescription);
-        for (i = 0; i < aNumOfFilterPatterns; i++)
-        {
-                free(lFilterPatterns[i]);
-        }
-        free(lFilterPatterns);
-
-        if (!lTmpWChar)
-        {
-                return NULL;
-        }
-
-        lTmpChar = utf16to8(lTmpWChar);
-        strcpy(aoBuff, lTmpChar);
-        free(lTmpChar);
-
-        return aoBuff;
-}
-
-
-wchar_t const * tinyfd_openFileDialogW(
-        wchar_t const * const aTitle, /* NULL or "" */
-        wchar_t const * const aDefaultPathAndFile, /* NULL or "" */
-        int const aNumOfFilterPatterns, /* 0 */
-        wchar_t const * const * const aFilterPatterns, /* NULL or {"*.jpg","*.png"} */
-        wchar_t const * const aSingleFilterDescription, /* NULL or "image files" */
-        int const aAllowMultipleSelects) /* 0 or 1 */
-{
-        static wchar_t lBuff[MAX_MULTIPLE_FILES*MAX_PATH_OR_CMD];
-                
-        size_t lLengths[MAX_MULTIPLE_FILES];
-        wchar_t lDirname[MAX_PATH_OR_CMD];
-        wchar_t lFilterPatterns[MAX_PATH_OR_CMD] = L"";
-        wchar_t lDialogString[MAX_PATH_OR_CMD];
-        wchar_t * lPointers[MAX_MULTIPLE_FILES];
-        wchar_t * lRetval, * p;
-        int i, j;
-        size_t lBuffLen;
-        HRESULT lHResult;
-        OPENFILENAMEW ofn = { 0 };
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return (wchar_t const *)1; }
-
-        lHResult = CoInitializeEx(NULL, 0);
-
-        getPathWithoutFinalSlashW(lDirname, aDefaultPathAndFile);
-        getLastNameW(lBuff, aDefaultPathAndFile);
-
-        if (aNumOfFilterPatterns > 0)
-        {
-                if (aSingleFilterDescription && wcslen(aSingleFilterDescription))
-                {
-                        wcscpy(lFilterPatterns, aSingleFilterDescription);
-                        wcscat(lFilterPatterns, L"\n");
-                }
-                wcscat(lFilterPatterns, aFilterPatterns[0]);
-                for (i = 1; i < aNumOfFilterPatterns; i++)
-                {
-                        wcscat(lFilterPatterns, L";");
-                        wcscat(lFilterPatterns, aFilterPatterns[i]);
-                }
-                wcscat(lFilterPatterns, L"\n");
-                if (!(aSingleFilterDescription && wcslen(aSingleFilterDescription)))
-                {
-                        wcscpy(lDialogString, lFilterPatterns);
-                        wcscat(lFilterPatterns, lDialogString);
-                }
-                wcscat(lFilterPatterns, L"All Files\n*.*\n");
-                p = lFilterPatterns;
-                while ((p = wcschr(p, L'\n')) != NULL)
-                {
-                        *p = L'\0';
-                        p++;
-                }
-        }
-
-        ofn.lStructSize = sizeof(OPENFILENAME);
-        ofn.hwndOwner = GetForegroundWindow();
-        ofn.hInstance = 0;
-        ofn.lpstrFilter = lFilterPatterns && wcslen(lFilterPatterns) ? lFilterPatterns : NULL;
-        ofn.lpstrCustomFilter = NULL;
-        ofn.nMaxCustFilter = 0;
-        ofn.nFilterIndex = 1;
-        ofn.lpstrFile = lBuff;
-        ofn.nMaxFile = MAX_PATH_OR_CMD;
-        ofn.lpstrFileTitle = NULL;
-        ofn.nMaxFileTitle = MAX_PATH_OR_CMD / 2;
-        ofn.lpstrInitialDir = lDirname && wcslen(lDirname) ? lDirname : NULL;
-        ofn.lpstrTitle = aTitle && wcslen(aTitle) ? aTitle : NULL;
-        ofn.Flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
-        ofn.nFileOffset = 0;
-        ofn.nFileExtension = 0;
-        ofn.lpstrDefExt = NULL;
-        ofn.lCustData = 0L;
-        ofn.lpfnHook = NULL;
-        ofn.lpTemplateName = NULL;
-
-        if (aAllowMultipleSelects)
-        {
-                ofn.Flags |= OFN_ALLOWMULTISELECT;
-        }
-
-        if (GetOpenFileNameW(&ofn) == 0)
-        {
-                lRetval = NULL;
-        }
-        else
-        {
-                lBuffLen = wcslen(lBuff);
-                lPointers[0] = lBuff + lBuffLen + 1;
-                if (!aAllowMultipleSelects || (lPointers[0][0] == L'\0'))
-                {
-                        lRetval = lBuff;
-                }
-                else
-                {
-                        i = 0;
-                        do
-                        {
-                                lLengths[i] = wcslen(lPointers[i]);
-                                lPointers[i + 1] = lPointers[i] + lLengths[i] + 1;
-                                i++;
-                        } while (lPointers[i][0] != L'\0');
-                        i--;
-                        p = lBuff + MAX_MULTIPLE_FILES*MAX_PATH_OR_CMD - 1;
-                        *p = L'\0';
-                        for (j = i; j >= 0; j--)
-                        {
-                                p -= lLengths[j];
-                                memmove(p, lPointers[j], lLengths[j]*sizeof(wchar_t));
-                                p--;
-                                *p = L'\\';
-                                p -= lBuffLen;
-                                memmove(p, lBuff, lBuffLen*sizeof(wchar_t));
-                                p--;
-                                *p = L'|';
-                        }
-                        p++;
-                        lRetval = p;
-                }
-        }
-
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                CoUninitialize();
-        }
-        return lRetval;
-}
-
-
-static char const * openFileDialogWinGui8(
-        char * const aoBuff,
-        char const * const aTitle, /*  NULL or "" */
-        char const * const aDefaultPathAndFile, /*  NULL or "" */
-        int const aNumOfFilterPatterns, /* 0 */
-        char const * const * const aFilterPatterns, /* NULL or {"*.jpg","*.png"} */
-        char const * const aSingleFilterDescription, /* NULL or "image files" */
-        int const aAllowMultipleSelects) /* 0 or 1 */
-{
-        wchar_t * lTitle;
-        wchar_t * lDefaultPathAndFile;
-        wchar_t * lSingleFilterDescription;
-        wchar_t * * lFilterPatterns;
-        wchar_t const * lTmpWChar;
-        char * lTmpChar;
-        int i;
-
-        lFilterPatterns = (wchar_t * *) malloc(aNumOfFilterPatterns*sizeof(wchar_t *));
-        for (i = 0; i < aNumOfFilterPatterns; i++)
-        {
-                lFilterPatterns[i] = utf8to16(aFilterPatterns[i]);
-        }
-
-        lTitle = utf8to16(aTitle);
-        lDefaultPathAndFile = utf8to16(aDefaultPathAndFile);
-        lSingleFilterDescription = utf8to16(aSingleFilterDescription);
-
-        lTmpWChar = tinyfd_openFileDialogW(
-                lTitle,
-                lDefaultPathAndFile,
-                aNumOfFilterPatterns,
-                (wchar_t const**) /*stupid cast for gcc*/
-                lFilterPatterns,
-                lSingleFilterDescription,
-                aAllowMultipleSelects);
-
-        free(lTitle);
-        free(lDefaultPathAndFile);
-        free(lSingleFilterDescription);
-        for (i = 0; i < aNumOfFilterPatterns; i++)
-        {
-                free(lFilterPatterns[i]);
-        }
-        free(lFilterPatterns);
-
-        if (!lTmpWChar)
-        {
-                return NULL;
-        }
-
-        lTmpChar = utf16to8(lTmpWChar);
-        strcpy(aoBuff, lTmpChar);
-        free(lTmpChar);
-
-        return aoBuff;
-}
-
-#ifndef TINYFD_NOSELECTFOLDERWIN
-static int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData)
-{
-        if (uMsg == BFFM_INITIALIZED)
-        {
-                SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData);
-        }
-        return 0;
-}
-
-static int __stdcall BrowseCallbackProcW(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData)
-{
-        if (uMsg == BFFM_INITIALIZED)
-        {
-                SendMessage(hwnd, BFFM_SETSELECTIONW, TRUE, (LPARAM)pData);
-        }
-        return 0;
-}
-
-wchar_t const * tinyfd_selectFolderDialogW(
-        wchar_t const * const aTitle, /* NULL or "" */
-        wchar_t const * const aDefaultPath) /* NULL or "" */
-{
-        static wchar_t lBuff[MAX_PATH_OR_CMD];
-                
-        BROWSEINFOW bInfo;
-        LPITEMIDLIST lpItem;
-        HRESULT lHResult;
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return (wchar_t const *)1; }
-
-        lHResult = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
-
-        bInfo.hwndOwner = GetForegroundWindow();
-        bInfo.pidlRoot = NULL;
-        bInfo.pszDisplayName = lBuff;
-        bInfo.lpszTitle = aTitle && wcslen(aTitle) ? aTitle : NULL;
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                bInfo.ulFlags = BIF_USENEWUI;
-        }
-        bInfo.lpfn = BrowseCallbackProcW;
-        bInfo.lParam = (LPARAM)aDefaultPath;
-        bInfo.iImage = -1;
-
-        lpItem = SHBrowseForFolderW(&bInfo);
-        if (lpItem)
-        {
-                SHGetPathFromIDListW(lpItem, lBuff);
-        }
-
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                CoUninitialize();
-        }
-        return lBuff;
-}
-
-
-static char const * selectFolderDialogWinGui8(
-        char * const aoBuff ,
-        char const * const aTitle , /*  NULL or "" */
-        char const * const aDefaultPath ) /* NULL or "" */
-{
-        wchar_t * lTitle;
-        wchar_t * lDefaultPath;
-        wchar_t const * lTmpWChar;
-        char * lTmpChar;
-
-        lTitle = utf8to16(aTitle);
-        lDefaultPath = utf8to16(aDefaultPath);
-
-        lTmpWChar = tinyfd_selectFolderDialogW(
-                lTitle,
-                lDefaultPath);
-
-        free(lTitle);
-        free(lDefaultPath);
-        if (!lTmpWChar)
-        {
-                return NULL;
-        }
-
-        lTmpChar = utf16to8(lTmpWChar);
-        strcpy(aoBuff, lTmpChar);
-        free(lTmpChar);
-
-        return aoBuff;
-}
-#endif /*TINYFD_NOSELECTFOLDERWIN*/
-
-
-wchar_t const * tinyfd_colorChooserW(
-        wchar_t const * const aTitle, /* NULL or "" */
-        wchar_t const * const aDefaultHexRGB, /* NULL or "#FF0000"*/
-        unsigned char const aDefaultRGB[3], /* { 0 , 255 , 255 } */
-        unsigned char aoResultRGB[3]) /* { 0 , 0 , 0 } */
-{
-        static wchar_t lResultHexRGB[8];
-        CHOOSECOLORW cc;
-        COLORREF crCustColors[16];
-        unsigned char lDefaultRGB[3];
-        int lRet;
-
-        HRESULT lHResult;
-
-        if (aTitle&&!wcscmp(aTitle, L"tinyfd_query")){ strcpy(tinyfd_response, "windows_wchar"); return (wchar_t const *)1; }
-
-        lHResult = CoInitializeEx(NULL, 0);
-
-        if (aDefaultHexRGB)
-        {
-                Hex2RGBW(aDefaultHexRGB, lDefaultRGB);
-        }
-        else
-        {
-                lDefaultRGB[0] = aDefaultRGB[0];
-                lDefaultRGB[1] = aDefaultRGB[1];
-                lDefaultRGB[2] = aDefaultRGB[2];
-        }
-
-        /* we can't use aTitle */
-        cc.lStructSize = sizeof(CHOOSECOLOR);
-        cc.hwndOwner = GetForegroundWindow();
-        cc.hInstance = NULL;
-        cc.rgbResult = RGB(lDefaultRGB[0], lDefaultRGB[1], lDefaultRGB[2]);
-        cc.lpCustColors = crCustColors;
-        cc.Flags = CC_RGBINIT | CC_FULLOPEN | CC_ANYCOLOR ;
-        cc.lCustData = 0;
-        cc.lpfnHook = NULL;
-        cc.lpTemplateName = NULL;
-
-        lRet = ChooseColorW(&cc);
-
-        if (!lRet)
-        {
-                return NULL;
-        }
-
-        aoResultRGB[0] = GetRValue(cc.rgbResult);
-        aoResultRGB[1] = GetGValue(cc.rgbResult);
-        aoResultRGB[2] = GetBValue(cc.rgbResult);
-
-        RGB2HexW(aoResultRGB, lResultHexRGB);
-
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                CoUninitialize();
-        }
-
-        return lResultHexRGB;
-}
-
-
-static char const * colorChooserWinGui8(
-        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 } */
-{
-        static char lResultHexRGB[8];
-
-        wchar_t * lTitle;
-        wchar_t * lDefaultHexRGB;
-        wchar_t const * lTmpWChar;
-        char * lTmpChar;
-
-        lTitle = utf8to16(aTitle);
-        lDefaultHexRGB = utf8to16(aDefaultHexRGB);
-
-        lTmpWChar = tinyfd_colorChooserW(
-                lTitle,
-                lDefaultHexRGB,
-                aDefaultRGB,
-                aoResultRGB );
-
-        free(lTitle);
-        free(lDefaultHexRGB);
-        if (!lTmpWChar)
-        {
-                return NULL;
-        }
-
-        lTmpChar = utf16to8(lTmpWChar);
-        strcpy(lResultHexRGB, lTmpChar);
-        free(lTmpChar);
-
-        return lResultHexRGB;
-}
-
-
-static int messageBoxWinGuiA(
-    char const * const aTitle , /* NULL or "" */
-    char const * const aMessage , /* NULL or ""  may contain \n and \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 */
-{
-        int lBoxReturnValue;
-    UINT aCode ;
-        
-        if ( aIconType && ! strcmp( "warning" , aIconType ) )
-        {
-                aCode = MB_ICONWARNING ;
-        }
-        else if ( aIconType && ! strcmp("error", aIconType))
-        {
-                aCode = MB_ICONERROR ;
-        }
-        else if ( aIconType && ! strcmp("question", aIconType))
-        {
-                aCode = MB_ICONQUESTION ;
-        }
-        else
-        {
-                aCode = MB_ICONINFORMATION ;
-        }
-
-        if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-        {
-                aCode += MB_OKCANCEL ;
-                if ( ! aDefaultButton )
-                {
-                        aCode += MB_DEFBUTTON2 ;
-                }
-        }
-        else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-        {
-                aCode += MB_YESNO ;
-                if ( ! aDefaultButton )
-                {
-                        aCode += MB_DEFBUTTON2 ;
-                }
-        }
-        else if (aDialogType && !strcmp("yesnocancel", aDialogType))
-        {
-                aCode += MB_YESNOCANCEL;
-                if (!aDefaultButton)
-                {
-                        aCode += MB_DEFBUTTON3;
-                }
-                else if (aDefaultButton == 2)
-                {
-                        aCode += MB_DEFBUTTON2;
-                }
-        }
-        else
-        {
-                aCode += MB_OK ;
-        }
-
-        aCode += MB_TOPMOST;
-
-        lBoxReturnValue = MessageBoxA(GetForegroundWindow(), aMessage, aTitle, aCode);
-
-        if (((aDialogType && !strcmp("yesnocancel", aDialogType))
-                && (lBoxReturnValue == IDNO)))
-        {
-                return 2;
-        }
-
-        if ( ( ( aDialogType
-                && strcmp("yesnocancel", aDialogType)
-                && strcmp("okcancel", aDialogType)
-                && strcmp("yesno", aDialogType)))
-                || (lBoxReturnValue == IDOK)
-                || (lBoxReturnValue == IDYES) )
-        {
-                return 1 ;
-        }
-        else
-        {
-                return 0 ;
-        }
-}
-
-
-static char const * saveFileDialogWinGuiA(
-        char * const aoBuff ,
-    char const * const aTitle , /* NULL or "" */
-    char const * const aDefaultPathAndFile , /* NULL or "" */
-    int const aNumOfFilterPatterns , /* 0 */
-    char const * const * const aFilterPatterns , /* NULL or {"*.jpg","*.png"} */
-    char const * const aSingleFilterDescription ) /* NULL or "image files" */
-{
-        char lDirname [MAX_PATH_OR_CMD] ;
-        char lDialogString[MAX_PATH_OR_CMD];
-        char lFilterPatterns[MAX_PATH_OR_CMD] = "";
-        int i ;
-        char * p;
-        char * lRetval;
-        HRESULT lHResult;
-        OPENFILENAMEA ofn = { 0 };
-
-        lHResult = CoInitializeEx(NULL,0);
-
-        getPathWithoutFinalSlash(lDirname, aDefaultPathAndFile);
-        getLastName(aoBuff, aDefaultPathAndFile);
-    
-        if (aNumOfFilterPatterns > 0)
-        {
-                if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                {
-                        strcpy(lFilterPatterns, aSingleFilterDescription);
-                        strcat(lFilterPatterns, "\n");
-                }
-                strcat(lFilterPatterns, aFilterPatterns[0]);
-                for (i = 1; i < aNumOfFilterPatterns; i++)
-                {
-                        strcat(lFilterPatterns, ";");
-                        strcat(lFilterPatterns, aFilterPatterns[i]);
-                }
-                strcat(lFilterPatterns, "\n");
-                if ( ! (aSingleFilterDescription && strlen(aSingleFilterDescription) ) )
-                {
-                        strcpy(lDialogString, lFilterPatterns);
-                        strcat(lFilterPatterns, lDialogString);
-                }
-                strcat(lFilterPatterns, "All Files\n*.*\n");
-                p = lFilterPatterns;
-                while ((p = strchr(p, '\n')) != NULL)
-                {
-                        *p = '\0';
-                        p ++ ;
-                }
-        }
-    
-        ofn.lStructSize     = sizeof(OPENFILENAME) ;
-        ofn.hwndOwner           = GetForegroundWindow();
-        ofn.hInstance       = 0 ;
-        ofn.lpstrFilter         = lFilterPatterns && strlen(lFilterPatterns) ? lFilterPatterns : NULL;
-        ofn.lpstrCustomFilter = NULL ;
-        ofn.nMaxCustFilter  = 0 ;
-        ofn.nFilterIndex    = 1 ;
-        ofn.lpstrFile           = aoBuff;
-
-        ofn.nMaxFile        = MAX_PATH_OR_CMD ;
-        ofn.lpstrFileTitle  = NULL ;
-        ofn.nMaxFileTitle       = MAX_PATH_OR_CMD / 2;
-        ofn.lpstrInitialDir = lDirname && strlen(lDirname) ? lDirname : NULL;
-        ofn.lpstrTitle          = aTitle && strlen(aTitle) ? aTitle : NULL;
-        ofn.Flags           = OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR ;
-        ofn.nFileOffset     = 0 ;
-        ofn.nFileExtension  = 0 ;
-        ofn.lpstrDefExt     = NULL ;
-        ofn.lCustData       = 0L ;
-        ofn.lpfnHook        = NULL ;
-        ofn.lpTemplateName  = NULL ;
-
-        if ( GetSaveFileNameA ( & ofn ) == 0 )
-        {
-                lRetval = NULL ;
-        }
-        else 
-        { 
-                lRetval = aoBuff ;
-        }
-
-        if (lHResult==S_OK || lHResult==S_FALSE) 
-        {
-                CoUninitialize();
-        }
-        return lRetval ;
-}
-
-
-static char const * openFileDialogWinGuiA(
-        char * const aoBuff ,
-    char const * const aTitle , /*  NULL or "" */
-    char const * const aDefaultPathAndFile , /*  NULL or "" */
-    int const aNumOfFilterPatterns , /* 0 */
-    char const * const * const aFilterPatterns , /* NULL or {"*.jpg","*.png"} */
-    char const * const aSingleFilterDescription , /* NULL or "image files" */
-    int const aAllowMultipleSelects ) /* 0 or 1 */
-{
-        char lDirname [MAX_PATH_OR_CMD] ;
-        char lFilterPatterns[MAX_PATH_OR_CMD] = "";
-        char lDialogString[MAX_PATH_OR_CMD] ;
-        char * lPointers[MAX_MULTIPLE_FILES];
-        size_t lLengths[MAX_MULTIPLE_FILES];
-        int i , j ;
-        char * p;
-        size_t lBuffLen ;
-        char * lRetval;
-        HRESULT lHResult;
-        OPENFILENAMEA ofn = {0};
-
-        lHResult = CoInitializeEx(NULL,0);
-
-        getPathWithoutFinalSlash(lDirname, aDefaultPathAndFile);
-        getLastName(aoBuff, aDefaultPathAndFile);
-
-        if (aNumOfFilterPatterns > 0)
-        {
-                if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                {
-                        strcpy(lFilterPatterns, aSingleFilterDescription);
-                        strcat(lFilterPatterns, "\n");
-                }
-                strcat(lFilterPatterns, aFilterPatterns[0]);
-                for (i = 1; i < aNumOfFilterPatterns; i++)
-                {
-                        strcat(lFilterPatterns, ";");
-                        strcat(lFilterPatterns, aFilterPatterns[i]);
-                }
-                strcat(lFilterPatterns, "\n");
-                if ( ! (aSingleFilterDescription && strlen(aSingleFilterDescription) ) )
-                {
-                        strcpy(lDialogString, lFilterPatterns);
-                        strcat(lFilterPatterns, lDialogString);
-                }
-                strcat(lFilterPatterns, "All Files\n*.*\n");
-                p = lFilterPatterns;
-                while ((p = strchr(p, '\n')) != NULL)
-                {
-                        *p = '\0';
-                        p ++ ;
-                }
-        }
-
-        ofn.lStructSize     = sizeof( OPENFILENAME ) ;
-        ofn.hwndOwner           = GetForegroundWindow();
-        ofn.hInstance       = 0 ;
-        ofn.lpstrFilter         = lFilterPatterns && strlen(lFilterPatterns) ? lFilterPatterns : NULL;
-        ofn.lpstrCustomFilter = NULL ;
-        ofn.nMaxCustFilter  = 0 ;
-        ofn.nFilterIndex    = 1 ;
-        ofn.lpstrFile           = aoBuff ;
-        ofn.nMaxFile        = MAX_PATH_OR_CMD ;
-        ofn.lpstrFileTitle  = NULL ;
-        ofn.nMaxFileTitle       = MAX_PATH_OR_CMD / 2;
-        ofn.lpstrInitialDir = lDirname && strlen(lDirname) ? lDirname : NULL;
-        ofn.lpstrTitle          = aTitle && strlen(aTitle) ? aTitle : NULL;
-        ofn.Flags                       = OFN_EXPLORER  | OFN_NOCHANGEDIR ;
-        ofn.nFileOffset     = 0 ;
-        ofn.nFileExtension  = 0 ;
-        ofn.lpstrDefExt     = NULL ;
-        ofn.lCustData       = 0L ;
-        ofn.lpfnHook        = NULL ;
-        ofn.lpTemplateName  = NULL ;
-
-        if ( aAllowMultipleSelects )
-        {
-                ofn.Flags |= OFN_ALLOWMULTISELECT;
-        }
-
-        if ( GetOpenFileNameA( & ofn ) == 0 )
-        {
-                lRetval = NULL ;
-        }
-        else 
-        {
-                lBuffLen = strlen(aoBuff) ;
-                lPointers[0] = aoBuff + lBuffLen + 1 ;
-                if ( !aAllowMultipleSelects || (lPointers[0][0] == '\0')  )
-                {
-                        lRetval = aoBuff ;
-                }
-                else 
-                {
-                        i = 0 ;
-                        do
-                        {
-                                lLengths[i] = strlen(lPointers[i]);
-                                lPointers[i+1] = lPointers[i] + lLengths[i] + 1 ;
-                                i ++ ;
-                        }
-                        while ( lPointers[i][0] != '\0' );
-                        i--;
-                        p = aoBuff + MAX_MULTIPLE_FILES*MAX_PATH_OR_CMD - 1 ;
-                        * p = '\0';
-                        for ( j = i ; j >=0 ; j-- )
-                        {
-                                p -= lLengths[j];
-                                memmove(p, lPointers[j], lLengths[j]);
-                                p--;
-                                *p = '\\';
-                                p -= lBuffLen ;
-                                memmove(p, aoBuff, lBuffLen);
-                                p--;
-                                *p = '|';
-                        }
-                        p++;
-                        lRetval = p ;
-                }
-        }
-
-        if (lHResult==S_OK || lHResult==S_FALSE) 
-        {
-                CoUninitialize();
-        }
-        return lRetval;
-}
-
-#ifndef TINYFD_NOSELECTFOLDERWIN
-static char const * selectFolderDialogWinGuiA(
-        char * const aoBuff ,
-        char const * const aTitle , /*  NULL or "" */
-        char const * const aDefaultPath ) /* NULL or "" */
-{
-        BROWSEINFOA bInfo ;
-        LPITEMIDLIST lpItem ;
-        HRESULT lHResult;
-
-        lHResult = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
-
-        /* we can't use aDefaultPath */
-        bInfo.hwndOwner = GetForegroundWindow();
-        bInfo.pidlRoot = NULL ;
-        bInfo.pszDisplayName = aoBuff ;
-        bInfo.lpszTitle = aTitle && strlen(aTitle) ? aTitle : NULL;
-        if (lHResult == S_OK || lHResult == S_FALSE)
-        {
-                bInfo.ulFlags = BIF_USENEWUI;
-        }
-        bInfo.lpfn = BrowseCallbackProc;
-        bInfo.lParam = (LPARAM)aDefaultPath;
-        bInfo.iImage = -1 ;
-
-        lpItem = SHBrowseForFolderA( & bInfo ) ;
-        if ( lpItem )
-        {
-                SHGetPathFromIDListA( lpItem , aoBuff ) ;
-        }
-
-        if (lHResult==S_OK || lHResult==S_FALSE) 
-        {
-                CoUninitialize();
-        }
-        return aoBuff ;
-}
-#endif /*TINYFD_NOSELECTFOLDERWIN*/
-
-
-static char const * colorChooserWinGuiA(
-        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 } */
-{
-        static char lResultHexRGB[8];
-
-        CHOOSECOLORA cc;
-        COLORREF crCustColors[16];
-        unsigned char lDefaultRGB[3];
-        int lRet;
-
-        if ( aDefaultHexRGB )
-        {
-                Hex2RGB(aDefaultHexRGB, lDefaultRGB);
-        }
-        else
-        {
-                lDefaultRGB[0]=aDefaultRGB[0];
-                lDefaultRGB[1]=aDefaultRGB[1];
-                lDefaultRGB[2]=aDefaultRGB[2];
-        }
-
-        /* we can't use aTitle */
-        cc.lStructSize = sizeof( CHOOSECOLOR ) ;
-        cc.hwndOwner = GetForegroundWindow();
-        cc.hInstance = NULL ;
-        cc.rgbResult = RGB(lDefaultRGB[0], lDefaultRGB[1], lDefaultRGB[2]);
-        cc.lpCustColors = crCustColors;
-        cc.Flags = CC_RGBINIT | CC_FULLOPEN;
-        cc.lCustData = 0;
-        cc.lpfnHook = NULL;
-        cc.lpTemplateName = NULL;
-
-        lRet = ChooseColorA(&cc);
-
-        if ( ! lRet )
-        {
-                return NULL;
-        }
-
-        aoResultRGB[0] = GetRValue(cc.rgbResult);
-        aoResultRGB[1] = GetGValue(cc.rgbResult);
-        aoResultRGB[2] = GetBValue(cc.rgbResult);
-
-        RGB2Hex(aoResultRGB, lResultHexRGB);
-
-        return lResultHexRGB;
-}
-
-#endif /* TINYFD_NOLIB */
-
-static int dialogPresent( )
-{
-        static int lDialogPresent = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        char const * lString = "dialog.exe";
-        if ( lDialogPresent < 0 )
-        {
-                if (!(lIn = _popen("where dialog.exe","r")))
-                {
-                        lDialogPresent = 0 ;
-                        return 0 ;
-                }
-                while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                {}
-                _pclose( lIn ) ;
-                if ( lBuff[strlen( lBuff ) -1] == '\n' )
-                {
-                        lBuff[strlen( lBuff ) -1] = '\0' ;
-                }
-                if ( strcmp(lBuff+strlen(lBuff)-strlen(lString),lString) )
-                {
-                        lDialogPresent = 0 ;
-                }
-                else
-                {
-                        lDialogPresent = 1 ;
-                }
-        }
-        return lDialogPresent;
-}
-
-
-static int messageBoxWinConsole(
-    char const * const aTitle , /* NULL or "" */
-    char const * const aMessage , /* NULL or ""  may contain \n and \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 lDialogString[MAX_PATH_OR_CMD];
-        char lDialogFile[MAX_PATH_OR_CMD];
-        FILE * lIn;
-        char lBuff [MAX_PATH_OR_CMD] = "";
-        
-        strcpy( lDialogString , "dialog " ) ;
-        if ( aTitle && strlen(aTitle) )
-        {
-                strcat(lDialogString, "--title \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        if ( aDialogType && ( !strcmp( "okcancel" , aDialogType )
-                || !strcmp("yesno", aDialogType) || !strcmp("yesnocancel", aDialogType) ) )
-        {
-                strcat(lDialogString, "--backtitle \"") ;
-                strcat(lDialogString, "tab: move focus") ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-        {
-                if ( ! aDefaultButton )
-                {
-                        strcat( lDialogString , "--defaultno " ) ;
-                }
-                strcat( lDialogString ,
-                                "--yes-label \"Ok\" --no-label \"Cancel\" --yesno " ) ;
-        }
-        else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-        {
-                if ( ! aDefaultButton )
-                {
-                        strcat( lDialogString , "--defaultno " ) ;
-                }
-                strcat( lDialogString , "--yesno " ) ;
-        }
-        else if (aDialogType && !strcmp("yesnocancel", aDialogType))
-        {
-                if (!aDefaultButton)
-                {
-                        strcat(lDialogString, "--defaultno ");
-                }
-                strcat(lDialogString, "--menu ");
-        }
-        else
-        {
-                strcat( lDialogString , "--msgbox " ) ;
-        }
-
-        strcat( lDialogString , "\"" ) ;
-        if ( aMessage && strlen(aMessage) )
-        {
-                replaceSubStr( aMessage , "\n" , "\\n" , lBuff ) ;
-                strcat(lDialogString, lBuff) ;
-                lBuff[0]='\0';
-        }
-        strcat(lDialogString, "\" ");
-
-        if (aDialogType && !strcmp("yesnocancel", aDialogType))
-        {
-                strcat(lDialogString, "0 60 0 Yes \"\" No \"\"");
-                strcat(lDialogString, "2>>");
-        }
-        else
-        {
-                strcat(lDialogString, "10 60");
-                strcat(lDialogString, " && echo 1 > ");
-        }
-
-        strcpy(lDialogFile, getenv("USERPROFILE"));
-        strcat(lDialogFile, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcat(lDialogString, lDialogFile);
-
-        /*if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;*/
-        system( lDialogString ) ;
-                
-        if (!(lIn = fopen(lDialogFile, "r")))
-        {
-                remove(lDialogFile);
-                return 0 ;
-        }
-        while (fgets(lBuff, sizeof(lBuff), lIn) != NULL)
-        {}
-        fclose(lIn);
-        remove(lDialogFile);
-    if ( lBuff[strlen( lBuff ) -1] == '\n' )
-    {
-        lBuff[strlen( lBuff ) -1] = '\0' ;
-    }
-
-        /* if (tinyfd_verbose) printf("lBuff: %s\n", lBuff); */
-        if ( ! strlen(lBuff) )
-        {
-                return 0;
-        }
-
-        if (aDialogType && !strcmp("yesnocancel", aDialogType))
-        {
-                if (lBuff[0] == 'Y') return 1;
-                else return 2;
-        }
-
-        return 1;
-}
-
-
-static char const * inputBoxWinConsole(
-        char * const aoBuff ,
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or "" may NOT contain \n nor \t */
-        char const * const aDefaultInput ) /* "" , if NULL it's a passwordBox */
-{
-        char lDialogString[MAX_PATH_OR_CMD];
-        char lDialogFile[MAX_PATH_OR_CMD];
-        FILE * lIn;
-        int lResult;
-
-        strcpy(lDialogFile, getenv("USERPROFILE"));
-        strcat(lDialogFile, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcpy(lDialogString , "echo|set /p=1 >" ) ;
-        strcat(lDialogString, lDialogFile);
-        strcat( lDialogString , " & " ) ;
-
-        strcat( lDialogString , "dialog " ) ;
-        if ( aTitle && strlen(aTitle) )
-        {
-                strcat(lDialogString, "--title \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        strcat(lDialogString, "--backtitle \"") ;
-        strcat(lDialogString, "tab: move focus") ;
-        if ( ! aDefaultInput )
-        {
-                strcat(lDialogString, " (sometimes nothing, no blink nor star, is shown in text field)") ;
-        }
-
-        strcat(lDialogString, "\" ") ;
-
-        if ( ! aDefaultInput )
-        {
-                strcat( lDialogString , "--insecure --passwordbox" ) ;
-        }
-        else
-        {
-                strcat( lDialogString , "--inputbox" ) ;
-        }
-        strcat( lDialogString , " \"" ) ;
-        if ( aMessage && strlen(aMessage) )
-        {
-                strcat(lDialogString, aMessage) ;
-        }
-        strcat(lDialogString,"\" 10 60 ") ;
-        if ( aDefaultInput && strlen(aDefaultInput) )
-        {
-                strcat(lDialogString, "\"") ;
-                strcat(lDialogString, aDefaultInput) ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        strcat(lDialogString, "2>>");
-        strcpy(lDialogFile, getenv("USERPROFILE"));
-        strcat(lDialogFile, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcat(lDialogString, lDialogFile);
-        strcat(lDialogString, " || echo 0 > ");
-        strcat(lDialogString, lDialogFile);
-
-        /* printf( "lDialogString: %s\n" , lDialogString ) ; */
-        system( lDialogString ) ;
-
-        if (!(lIn = fopen(lDialogFile, "r")))
-        {
-                remove(lDialogFile);
-                return 0 ;
-        }
-        while (fgets(aoBuff, MAX_PATH_OR_CMD, lIn) != NULL)
-        {}
-        fclose(lIn);
-
-        wipefile(lDialogFile);
-        remove(lDialogFile);
-    if ( aoBuff[strlen( aoBuff ) -1] == '\n' )
-    {
-        aoBuff[strlen( aoBuff ) -1] = '\0' ;
-    }
-        /* printf( "aoBuff: %s\n" , aoBuff ) ; */
-
-        /* printf( "aoBuff: %s len: %lu \n" , aoBuff , strlen(aoBuff) ) ; */
-    lResult =  strncmp( aoBuff , "1" , 1) ? 0 : 1 ;
-        /* printf( "lResult: %d \n" , lResult ) ; */
-    if ( ! lResult )
-    {
-                return NULL ;
-        }
-        /* printf( "aoBuff+1: %s\n" , aoBuff+1 ) ; */
-        return aoBuff+3 ;
-}
-
-
-static char const * saveFileDialogWinConsole(
-        char * const aoBuff ,
-        char const * const aTitle , /* NULL or "" */
-        char const * const aDefaultPathAndFile ) /* NULL or "" */
-{
-        char lDialogString[MAX_PATH_OR_CMD];
-        char lPathAndFile[MAX_PATH_OR_CMD] = "";
-        FILE * lIn;
-
-        strcpy( lDialogString , "dialog " ) ;
-        if ( aTitle && strlen(aTitle) )
-        {
-                strcat(lDialogString, "--title \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-        }
-        
-        strcat(lDialogString, "--backtitle \"") ;
-        strcat(lDialogString,
-                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-        strcat(lDialogString, "\" ") ;
-
-        strcat( lDialogString , "--fselect \"" ) ;
-        if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-        {
-                /* dialog.exe uses unix separators even on windows */
-                strcpy(lPathAndFile, aDefaultPathAndFile);
-                replaceChr( lPathAndFile , '\\' , '/' ) ;
-        }
-                
-        /* dialog.exe needs at least one separator */
-        if ( ! strchr(lPathAndFile, '/') )
-        {
-                strcat(lDialogString, "./") ;
-        }
-        strcat(lDialogString, lPathAndFile) ;
-        strcat(lDialogString, "\" 0 60 2>");
-        strcpy(lPathAndFile, getenv("USERPROFILE"));
-        strcat(lPathAndFile, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcat(lDialogString, lPathAndFile);
-
-        /* printf( "lDialogString: %s\n" , lDialogString ) ; */
-        system( lDialogString ) ;
-
-        if (!(lIn = fopen(lPathAndFile, "r")))
-        {
-                remove(lPathAndFile);
-                return NULL;
-        }
-        while (fgets(aoBuff, MAX_PATH_OR_CMD, lIn) != NULL)
-        {}
-        fclose(lIn);
-        remove(lPathAndFile);
-        replaceChr( aoBuff , '/' , '\\' ) ;
-        /* printf( "aoBuff: %s\n" , aoBuff ) ; */
-        getLastName(lDialogString,aoBuff);
-        if ( ! strlen(lDialogString) )
-        {
-                return NULL;
-        }
-        return aoBuff;
-}
-
-
-static char const * openFileDialogWinConsole(
-        char * const aoBuff ,
-        char const * const aTitle , /*  NULL or "" */
-        char const * const aDefaultPathAndFile , /*  NULL or "" */
-        int const aAllowMultipleSelects ) /* 0 or 1 */
-{
-        char lFilterPatterns[MAX_PATH_OR_CMD] = "";
-        char lDialogString[MAX_PATH_OR_CMD] ;
-        FILE * lIn;
-
-        strcpy( lDialogString , "dialog " ) ;
-        if ( aTitle && strlen(aTitle) )
-        {
-                strcat(lDialogString, "--title \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        strcat(lDialogString, "--backtitle \"") ;
-        strcat(lDialogString,
-                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-        strcat(lDialogString, "\" ") ;
-
-        strcat( lDialogString , "--fselect \"" ) ;
-        if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-        {
-                /* dialog.exe uses unix separators even on windows */
-                strcpy(lFilterPatterns, aDefaultPathAndFile);
-                replaceChr( lFilterPatterns , '\\' , '/' ) ;
-        }
-                
-        /* dialog.exe needs at least one separator */
-        if ( ! strchr(lFilterPatterns, '/') )
-        {
-                strcat(lDialogString, "./") ;
-        }
-        strcat(lDialogString, lFilterPatterns) ;
-        strcat(lDialogString, "\" 0 60 2>");
-        strcpy(lFilterPatterns, getenv("USERPROFILE"));
-        strcat(lFilterPatterns, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcat(lDialogString, lFilterPatterns);
-
-        /* printf( "lDialogString: %s\n" , lDialogString ) ; */
-        system( lDialogString ) ;
-
-        if (!(lIn = fopen(lFilterPatterns, "r")))
-        {
-                remove(lFilterPatterns);
-                return NULL;
-        }
-        while (fgets(aoBuff, MAX_PATH_OR_CMD, lIn) != NULL)
-        {}
-        fclose(lIn);
-        remove(lFilterPatterns);
-        replaceChr( aoBuff , '/' , '\\' ) ;
-        /* printf( "aoBuff: %s\n" , aoBuff ) ; */
-        return aoBuff;
-}
-
-
-static char const * selectFolderDialogWinConsole(
-        char * const aoBuff ,
-        char const * const aTitle , /*  NULL or "" */
-        char const * const aDefaultPath ) /* NULL or "" */
-{
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        char lString [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        
-        strcpy( lDialogString , "dialog " ) ;
-        if ( aTitle && strlen(aTitle) )
-        {
-                strcat(lDialogString, "--title \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-        }
-
-        strcat(lDialogString, "--backtitle \"") ;
-        strcat(lDialogString,
-                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-        strcat(lDialogString, "\" ") ;
-
-        strcat( lDialogString , "--dselect \"" ) ;
-        if ( aDefaultPath && strlen(aDefaultPath) )
-        {
-                /* dialog.exe uses unix separators even on windows */
-                strcpy(lString, aDefaultPath) ;
-                ensureFinalSlash(lString);
-                replaceChr( lString , '\\' , '/' ) ;
-                strcat(lDialogString, lString) ;
-        }
-        else
-        {
-                /* dialog.exe needs at least one separator */
-                strcat(lDialogString, "./") ;
-        }
-        strcat(lDialogString, "\" 0 60 2>");
-        strcpy(lString, getenv("USERPROFILE"));
-        strcat(lString, "\\AppData\\Local\\Temp\\tinyfd.txt");
-        strcat(lDialogString, lString);
-
-        /* printf( "lDialogString: %s\n" , lDialogString ) ; */
-        system( lDialogString ) ;
-
-        if (!(lIn = fopen(lString, "r")))
-        {
-                remove(lString);
-                return NULL;
-        }
-        while (fgets(aoBuff, MAX_PATH_OR_CMD, lIn) != NULL)
-        {}
-        fclose(lIn);
-        remove(lString);
-        replaceChr( aoBuff , '/' , '\\' ) ;
-        /* printf( "aoBuff: %s\n" , aoBuff ) ; */
-        return aoBuff;
-}
-
-
-int tinyfd_messageBox(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or ""  may contain \n and \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 lChar ;
-
-#ifndef TINYFD_NOLIB
-        if ((!tinyfd_forceConsole || !(GetConsoleWindow() || dialogPresent()))
-                && (!getenv("SSH_CLIENT") || getenv("DISPLAY")))
-        {
-                if (aTitle&&!strcmp(aTitle, "tinyfd_query")){ strcpy(tinyfd_response, "windows"); return 1; }
-                if (tinyfd_winUtf8)
-                {
-                        return messageBoxWinGui8(
-                                aTitle, aMessage, aDialogType, aIconType, aDefaultButton);
-                }
-                else
-                {
-                        return messageBoxWinGuiA(
-                                aTitle, aMessage, aDialogType, aIconType, aDefaultButton);
-                }
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( dialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return 0;}
-                return messageBoxWinConsole(
-                                        aTitle,aMessage,aDialogType,aIconType,aDefaultButton);
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return 0;}
-                if (!gWarningDisplayed && !tinyfd_forceConsole )
-                {
-                        gWarningDisplayed = 1; 
-                        printf("\n\n%s\n", gTitle);
-                        printf("%s\n\n", tinyfd_needs);
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        printf("\n%s\n\n", aTitle);
-                }
-                if ( aDialogType && !strcmp("yesno",aDialogType) )
-                {
-                        do
-                        {
-                                if ( aMessage && strlen(aMessage) )
-                                {
-                                        printf("%s\n",aMessage);
-                                }
-                                printf("y/n: ");
-                                lChar = (char) tolower( _getch() ) ;
-                                printf("\n\n");
-                        }
-                        while ( lChar != 'y' && lChar != 'n' ) ;
-                        return lChar == 'y' ? 1 : 0 ;
-                }
-                else if ( aDialogType && !strcmp("okcancel",aDialogType) )
-                {
-                        do
-                        {
-                                if ( aMessage && strlen(aMessage) )
-                                {
-                                        printf("%s\n",aMessage);
-                                }
-                                printf("[O]kay/[C]ancel: ");
-                                lChar = (char) tolower( _getch() ) ;
-                                printf("\n\n");
-                        }
-                        while ( lChar != 'o' && lChar != 'c' ) ;
-                        return lChar == 'o' ? 1 : 0 ;
-                }
-                else if (aDialogType && !strcmp("yesnocancel", aDialogType))
-                {
-                        do
-                        {
-                                if (aMessage && strlen(aMessage))
-                                {
-                                        printf("%s\n", aMessage);
-                                }
-                                printf("[Y]es/[N]o/[C]ancel: ");
-                                lChar = (char)tolower(_getch());
-                                printf("\n\n");
-                        } while (lChar != 'y' && lChar != 'n' && lChar != 'c');
-                        return (lChar == 'y') ? 1 : (lChar == 'n') ? 2 : 0 ;
-                }
-                else
-                {
-                        if ( aMessage && strlen(aMessage) )
-                        {
-                                printf("%s\n\n",aMessage);
-                        }
-                        printf("press enter to continue ");
-                        lChar = (char) _getch() ;
-                        printf("\n\n");
-                        return 1 ;
-                }
-        }
-}
-
-
-/* return has only meaning for tinyfd_query */
-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" */
-{
-#ifndef TINYFD_NOLIB
-        if ((!tinyfd_forceConsole || !( 
-                GetConsoleWindow() || 
-                dialogPresent()))
-                && ( !getenv("SSH_CLIENT") || getenv("DISPLAY") ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return 1;}
-                return notifyWinGui(aTitle, aMessage, aIconType);
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        {
-                return tinyfd_messageBox(aTitle, aMessage, "ok" , aIconType, 0);
-        }
-}
-
-
-/* returns NULL on cancel */
-char const * tinyfd_inputBox(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or "" may NOT contain \n nor \t */
-        char const * const aDefaultInput ) /* "" , if NULL it's a passwordBox */
-{
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char * lEOF;
-
-#ifndef TINYFD_NOLIB
-        DWORD mode = 0;
-        HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
-
-        if ((!tinyfd_forceConsole || !( 
-                GetConsoleWindow() || 
-                dialogPresent()))
-                && ( !getenv("SSH_CLIENT") || getenv("DISPLAY") ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return (char const *)1;}
-                lBuff[0]='\0';
-                return inputBoxWinGui(lBuff, aTitle, aMessage, aDefaultInput);
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( dialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                lBuff[0]='\0';
-                return inputBoxWinConsole(lBuff,aTitle,aMessage,aDefaultInput);
-        }
-        else 
-        {
-      if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-      lBuff[0]='\0';
-      if (!gWarningDisplayed && !tinyfd_forceConsole)
-      {
-          gWarningDisplayed = 1 ;
-          printf("\n\n%s\n", gTitle);
-          printf("%s\n\n", tinyfd_needs);
-      }
-      if ( aTitle && strlen(aTitle) )
-      {
-          printf("\n%s\n\n", aTitle);
-      }
-      if ( aMessage && strlen(aMessage) )
-      {
-          printf("%s\n",aMessage);
-      }
-      printf("(ctrl-Z + enter to cancel): ");
-#ifndef TINYFD_NOLIB
-      if ( ! aDefaultInput )
-      {
-          GetConsoleMode(hStdin,&mode);
-          SetConsoleMode(hStdin,mode & (~ENABLE_ECHO_INPUT) );
-      }
-#endif /* TINYFD_NOLIB */
-      lEOF = fgets(lBuff, MAX_PATH_OR_CMD, stdin);
-      if ( ! lEOF )
-      {
-          return NULL;
-      }
-#ifndef TINYFD_NOLIB
-      if ( ! aDefaultInput )
-      {
-          SetConsoleMode(hStdin,mode);
-          printf("\n");
-      }
-#endif /* TINYFD_NOLIB */
-      printf("\n");
-      if ( strchr(lBuff,27) )
-      {
-          return NULL ;
-      }
-      if ( lBuff[strlen( lBuff ) -1] == '\n' )
-      {
-          lBuff[strlen( lBuff ) -1] = '\0' ;
-      }
-      return lBuff ;
-  }
-}
-
-
-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 or {"*.jpg","*.png"} */
-        char const * const aSingleFilterDescription ) /* NULL or "image files" */
-{
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char lString[MAX_PATH_OR_CMD] ;
-        char const * p ;
-        lBuff[0]='\0';
-#ifndef TINYFD_NOLIB
-        if ( ( !tinyfd_forceConsole || !( GetConsoleWindow() || dialogPresent() ) )
-          && ( !getenv("SSH_CLIENT") || getenv("DISPLAY") ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return (char const *)1;}
-                if (tinyfd_winUtf8)
-                {
-                        p = saveFileDialogWinGui8(lBuff,
-                                aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, aSingleFilterDescription);
-                }
-                else
-                {
-                        p = saveFileDialogWinGuiA(lBuff,
-                                aTitle, aDefaultPathAndFile, aNumOfFilterPatterns, aFilterPatterns, aSingleFilterDescription);
-                }
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( dialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                p = saveFileDialogWinConsole(lBuff,aTitle,aDefaultPathAndFile);
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-                p = tinyfd_inputBox(aTitle, "Save file","");
-        }
-
-        if ( ! p || ! strlen( p )  )
-        {
-                return NULL;
-        }
-        getPathWithoutFinalSlash( lString , p ) ;
-        if ( strlen( lString ) && ! dirExists( lString ) )
-        {
-                return NULL ;
-        }
-        getLastName(lString,p);
-        if ( ! filenameValid(lString) )
-        {
-                return NULL;
-        }
-        return p ;
-}
-
-
-/* in case of multiple files, the separator is | */
-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 or {"*.jpg","*.png"} */
-    char const * const aSingleFilterDescription , /* NULL or "image files" */
-    int const aAllowMultipleSelects ) /* 0 or 1 */
-{
-        static char lBuff[MAX_MULTIPLE_FILES*MAX_PATH_OR_CMD];
-        char const * p ;
-#ifndef TINYFD_NOLIB
-        if ( ( !tinyfd_forceConsole || !( GetConsoleWindow() || dialogPresent() ) )
-          && ( !getenv("SSH_CLIENT") || getenv("DISPLAY") ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return (char const *)1;}
-                if (tinyfd_winUtf8)
-                {
-                        p = openFileDialogWinGui8(lBuff,
-                                aTitle, aDefaultPathAndFile, aNumOfFilterPatterns,
-                                aFilterPatterns, aSingleFilterDescription, aAllowMultipleSelects);
-                }
-                else
-                {
-                        p = openFileDialogWinGuiA(lBuff,
-                                aTitle, aDefaultPathAndFile, aNumOfFilterPatterns,
-                                aFilterPatterns, aSingleFilterDescription, aAllowMultipleSelects);
-                }
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( dialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                p = openFileDialogWinConsole(lBuff,
-                                aTitle,aDefaultPathAndFile,aAllowMultipleSelects);
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-                p = tinyfd_inputBox(aTitle, "Open file","");
-        }
-
-        if ( ! p || ! strlen( p )  )
-        {
-                return NULL;
-        }
-        if ( aAllowMultipleSelects && strchr(p, '|') )
-        {
-                p = ensureFilesExist( lBuff , p ) ;
-        }
-        else if ( ! fileExists(p) )
-        {
-                return NULL ;
-        }
-        /* printf( "lBuff3: %s\n" , p ) ; */
-        return p ;
-}
-
-
-char const * tinyfd_selectFolderDialog(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aDefaultPath ) /* NULL or "" */
-{
-    static char lBuff [MAX_PATH_OR_CMD] ;
-        char const * p ;
-#ifndef TINYFD_NOLIB
-        if ( ( !tinyfd_forceConsole || !( GetConsoleWindow() || dialogPresent() ) )
-          && ( !getenv("SSH_CLIENT") || getenv("DISPLAY") ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return (char const *)1;}
-                if (tinyfd_winUtf8)
-                {
-#ifndef TINYFD_NOSELECTFOLDERWIN
-                        p = selectFolderDialogWinGui8(lBuff, aTitle, aDefaultPath);
-                }
-                else
-                {
-                        p = selectFolderDialogWinGuiA(lBuff, aTitle, aDefaultPath);
-#endif /*TINYFD_NOSELECTFOLDERWIN*/
-                }
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( dialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                p = selectFolderDialogWinConsole(lBuff,aTitle,aDefaultPath);
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-                p = tinyfd_inputBox(aTitle, "Select folder","");
-        }
-        
-        if ( ! p || ! strlen( p ) || ! dirExists( p ) )
-        {
-                return NULL ;
-        }
-        return p ;
-}
-
-
-/* returns the hexcolor as a string "#FF0000" */
-/* aoResultRGB also contains the result */
-/* aDefaultRGB is used only if aDefaultHexRGB is NULL */
-/* aDefaultRGB and aoResultRGB can be the same array */
-char const * tinyfd_colorChooser(
-        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 } */
-{
-        char lDefaultHexRGB[8];
-        char * lpDefaultHexRGB;
-        int i;
-        char const * p ;
-
-#ifndef TINYFD_NOLIB
-        if ( (!tinyfd_forceConsole || !( GetConsoleWindow() || dialogPresent()) )
-          && (!getenv("SSH_CLIENT") || getenv("DISPLAY")) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"windows");return (char const *)1;}
-                if (tinyfd_winUtf8)
-                {
-                        return colorChooserWinGui8(
-                                aTitle, aDefaultHexRGB, aDefaultRGB, aoResultRGB);
-                }
-                else
-                {
-                        return colorChooserWinGuiA(
-                                aTitle, aDefaultHexRGB, aDefaultRGB, aoResultRGB);
-                }
-        }
-        else
-#endif /* TINYFD_NOLIB */
-        if ( aDefaultHexRGB )
-        {
-                lpDefaultHexRGB = (char *) aDefaultHexRGB ;
-        }
-        else
-        {
-                RGB2Hex( aDefaultRGB , lDefaultHexRGB ) ;
-                lpDefaultHexRGB = (char *) lDefaultHexRGB ;
-        }
-        p = tinyfd_inputBox(aTitle,
-                        "Enter hex rgb color (i.e. #f5ca20)",lpDefaultHexRGB);
-        if (aTitle&&!strcmp(aTitle,"tinyfd_query")) return p;
-
-        if ( !p || (strlen(p) != 7) || (p[0] != '#') )
-        {
-                return NULL ;
-        }
-        for ( i = 1 ; i < 7 ; i ++ )
-        {
-                if ( ! isxdigit( p[i] ) )
-                {
-                        return NULL ;
-                }
-        }
-        Hex2RGB(p,aoResultRGB);
-        return p ;
-}
-
-
-#else /* unix */
-
-static char gPython2Name[16];
-static char gPython3Name[16];
-static char gPythonName[16];
-
-static int isDarwin( )
-{
-        static int lsIsDarwin = -1 ;
-        struct utsname lUtsname ;
-        if ( lsIsDarwin < 0 )
-        {
-                lsIsDarwin = !uname(&lUtsname) && !strcmp(lUtsname.sysname,"Darwin") ;
-        }
-        return lsIsDarwin ;
-}
-
-
-static int dirExists( char const * const aDirPath )
-{
-        DIR * lDir ;
-        if ( ! aDirPath || ! strlen( aDirPath ) )
-                return 0 ;
-        lDir = opendir( aDirPath ) ;
-        if ( ! lDir )
-        {
-                return 0 ;
-        }
-        closedir( lDir ) ;
-        return 1 ;
-}
-
-                                                                        
-static int detectPresence( char const * const aExecutable )
-{
-        char lBuff [MAX_PATH_OR_CMD] ;
-        char lTestedString [MAX_PATH_OR_CMD] = "which " ;
-        FILE * lIn ;
-
-    strcat( lTestedString , aExecutable ) ;
-        strcat( lTestedString, " 2>/dev/null ");
-    lIn = popen( lTestedString , "r" ) ;
-    if ( ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                && ( ! strchr( lBuff , ':' ) )
-                && ( strncmp(lBuff, "no ", 3) ) )
-    {   /* present */
-        pclose( lIn ) ;
-        if (tinyfd_verbose) printf("detectPresence %s %d\n", aExecutable, 1);
-        return 1 ;
-    }
-    else
-    {
-        pclose( lIn ) ;
-        if (tinyfd_verbose) printf("detectPresence %s %d\n", aExecutable, 0);
-        return 0 ;
-    }
-}
-
-
-static char const * getVersion( char const * const aExecutable ) /*version # must follow :*/
-{
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char lTestedString [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        char * lTmp ;
-
-    strcpy( lTestedString , aExecutable ) ;
-    strcat( lTestedString , " --version" ) ;
-
-    lIn = popen( lTestedString , "r" ) ;
-        lTmp = fgets( lBuff , sizeof( lBuff ) , lIn ) ;
-        pclose( lIn ) ;
-    if ( ! lTmp || !(lTmp = strchr( lBuff , ':' )) ) return 0 ;
-        lTmp ++ ;
-        /* printf("lTmp %s\n", lTmp); */
-        return lTmp ;
-}
-
-
-static int tryCommand( char const * const aCommand )
-{
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-
-        lIn = popen( aCommand , "r" ) ;
-        if ( fgets( lBuff , sizeof( lBuff ) , lIn ) == NULL )
-        {       /* present */
-                pclose( lIn ) ;
-                return 1 ;
-        }
-        else
-        {
-                pclose( lIn ) ;
-                return 0 ;
-        }
-
-}
-
-
-static int isTerminalRunning()
-{
-        return isatty(1);
-}
-
-
-static char const * dialogNameOnly( )
-{
-        static char lDialogName[128] = "*" ;
-        if ( lDialogName[0] == '*' )
-        {
-                if ( isDarwin() && strcpy(lDialogName , "/opt/local/bin/dialog" )
-                        && detectPresence( lDialogName ) )
-                {}
-                else if ( strcpy(lDialogName , "dialog" )
-                        && detectPresence( lDialogName ) )
-                {}
-                else
-                {
-                        strcpy(lDialogName , "" ) ;
-                }
-        }
-    return lDialogName ;
-}
-
-
-int isDialogVersionBetter09b( )
-{
-        char const * lDialogName ;
-        char * lVersion ;
-        int lMajor ;
-        int lMinor ;
-        int lDate ;
-        int lResult ;
-        char * lMinorP ;
-        char * lLetter ;
-        char lBuff[128] ;
-
-        /*char lTest[128] = " 0.9b-20031126" ;*/
-
-        lDialogName = dialogNameOnly() ;
-        if ( ! strlen(lDialogName) || !(lVersion = (char *) getVersion(lDialogName)) ) return 0 ;
-        /*lVersion = lTest ;*/
-        /*printf("lVersion %s\n", lVersion);*/
-        strcpy(lBuff,lVersion);
-        lMajor = atoi( strtok(lVersion," ,.-") ) ;
-        /*printf("lMajor %d\n", lMajor);*/
-        lMinorP = strtok(0," ,.-abcdefghijklmnopqrstuvxyz");
-        lMinor = atoi( lMinorP ) ;
-        /*printf("lMinor %d\n", lMinor );*/
-        lDate = atoi( strtok(0," ,.-") ) ;
-        if (lDate<0) lDate = - lDate;
-        /*printf("lDate %d\n", lDate);*/
-        lLetter = lMinorP + strlen(lMinorP) ;
-        strcpy(lVersion,lBuff);
-        strtok(lLetter," ,.-");
-        /*printf("lLetter %s\n", lLetter);*/
-        lResult = (lMajor > 0) || ( ( lMinor == 9 ) && (*lLetter == 'b') && (lDate >= 20031126) );
-        /*printf("lResult %d\n", lResult);*/
-        return lResult;
-}
-
-
-static int whiptailPresentOnly( )
-{
-        static int lWhiptailPresent = -1 ;
-        if ( lWhiptailPresent < 0 )
-        {
-                lWhiptailPresent = detectPresence( "whiptail" ) ;
-        }
-        return lWhiptailPresent ;
-}
-
-
-static char const * terminalName( )
-{
-        static char lTerminalName[128] = "*" ;
-        char lShellName[64] = "*" ;
-
-        if ( lTerminalName[0] == '*' )
-        {
-                if ( detectPresence( "bash" ) )
-                {
-                        strcpy(lShellName , "bash -c " ) ; /*good for basic input*/
-                }
-        else if ( strlen(dialogNameOnly()) || whiptailPresentOnly() )
-        {
-                strcpy(lShellName , "sh -c " ) ; /*good enough for dialog & whiptail*/
-        }
-        else
-        {
-            return NULL ;
-        }
-
-                if ( isDarwin() )
-                {
-                        if ( strcpy(lTerminalName , "/opt/X11/bin/xterm" )
-                      && detectPresence( lTerminalName ) )
-                        {
-                                strcat(lTerminalName , " -fa 'DejaVu Sans Mono' -fs 10 -title tinyfiledialogs -e " ) ;
-                                strcat(lTerminalName , lShellName ) ;
-                        }
-                        else
-                        {
-                                strcpy(lTerminalName , "" ) ;
-                        }
-                }
-                else if ( strcpy(lTerminalName,"xterm") /*good (small without parameters)*/
-                        && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -fa 'DejaVu Sans Mono' -fs 10 -title tinyfiledialogs -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"terminator") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -x " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"lxterminal") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"konsole") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"kterm") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"xfce4-terminal") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -x " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"mate-terminal") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -x " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"Eterm") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"evilvte") /*good*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"pterm") /*good (only letters)*/
-                          && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " -e " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else if ( strcpy(lTerminalName,"gnome-terminal") /*bad (good if version < 3)*/
-                && detectPresence(lTerminalName) )
-                {
-                        strcat(lTerminalName , " --disable-factory -x " ) ;
-                        strcat(lTerminalName , lShellName ) ;
-                }
-                else
-                {
-                        strcpy(lTerminalName , "" ) ;
-                }
-                /* bad: koi rxterm guake tilda vala-terminal qterminal
-                aterm Terminal terminology sakura lilyterm weston-terminal
-                roxterm termit xvt rxvt mrxvt urxvt */
-        }
-        if ( strlen(lTerminalName) )
-        {
-                return lTerminalName ;
-        }
-        else
-        {
-                return NULL ;
-        }
-}
-
-
-static char const * dialogName( )
-{
-    char const * lDialogName ;
-    lDialogName = dialogNameOnly( ) ;
-        if ( strlen(lDialogName) && ( isTerminalRunning() || terminalName() ) )
-        {
-                return lDialogName ;
-        }
-        else
-        {
-                return NULL ;
-        }
-}
-
-
-static int whiptailPresent( )
-{
-        int lWhiptailPresent ;
-    lWhiptailPresent = whiptailPresentOnly( ) ;
-        if ( lWhiptailPresent && ( isTerminalRunning() || terminalName() ) )
-        {
-                return lWhiptailPresent ;
-        }
-        else
-        {
-                return 0 ;
-        }
-}
-
-
-
-static int graphicMode()
-{
-        return !( tinyfd_forceConsole && (isTerminalRunning() || terminalName()) )
-          && ( getenv("DISPLAY")
-            || (isDarwin() && (!getenv("SSH_TTY") || getenv("DISPLAY") ) ) ) ;
-}
-
-
-static int pactlPresent( )
-{
-        static int lPactlPresent = -1 ;
-        if ( lPactlPresent < 0 )
-        {
-                lPactlPresent = detectPresence("pactl") ;
-        }
-        return lPactlPresent ;
-}
-
-
-static int speakertestPresent( )
-{
-        static int lSpeakertestPresent = -1 ;
-        if ( lSpeakertestPresent < 0 )
-        {
-                lSpeakertestPresent = detectPresence("speaker-test") ;
-        }
-        return lSpeakertestPresent ;
-}
-
-
-static int beepexePresent( )
-{
-        static int lBeepexePresent = -1 ;
-        if ( lBeepexePresent < 0 )
-        {
-                lBeepexePresent = detectPresence("beep.exe") ;
-        }
-        return lBeepexePresent ;
-}
-
-
-static int xmessagePresent( )
-{
-        static int lXmessagePresent = -1 ;
-        if ( lXmessagePresent < 0 )
-        {
-                lXmessagePresent = detectPresence("xmessage");/*if not tty,not on osxpath*/
-        }
-        return lXmessagePresent && graphicMode( ) ;
-}
-
-
-static int gxmessagePresent( )
-{
-    static int lGxmessagePresent = -1 ;
-    if ( lGxmessagePresent < 0 )
-    {
-        lGxmessagePresent = detectPresence("gxmessage") ;
-    }
-    return lGxmessagePresent && graphicMode( ) ;
-}
-
-
-static int gmessagePresent( )
-{
-        static int lGmessagePresent = -1 ;
-        if ( lGmessagePresent < 0 )
-        {
-                lGmessagePresent = detectPresence("gmessage") ;
-        }
-        return lGmessagePresent && graphicMode( ) ;
-}
-
-
-static int notifysendPresent( )
-{
-    static int lNotifysendPresent = -1 ;
-    if ( lNotifysendPresent < 0 )
-    {
-        lNotifysendPresent = detectPresence("notify-send") ;
-    }
-    return lNotifysendPresent && graphicMode( ) ;
-}
-
-
-static int perlPresent( )
-{
-        static int lPerlPresent = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-
-        if ( lPerlPresent < 0 )
-        {
-                lPerlPresent = detectPresence("perl") ;
-                if ( lPerlPresent )
-                {
-                        lIn = popen( "perl -MNet::DBus -e \"Net::DBus->session->get_service('org.freedesktop.Notifications')\" 2>&1" , "r" ) ;
-                        if ( fgets( lBuff , sizeof( lBuff ) , lIn ) == NULL )
-                        {
-                                lPerlPresent = 2 ;
-                        }
-                        pclose( lIn ) ;
-                        if (tinyfd_verbose) printf("perl-dbus %d\n", lPerlPresent);
-                }
-    }
-    return graphicMode() ? lPerlPresent : 0 ;
-}
-
-
-static int afplayPresent( )
-{
-        static int lAfplayPresent = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-
-        if ( lAfplayPresent < 0 )
-        {
-                lAfplayPresent = detectPresence("afplay") ;
-                if ( lAfplayPresent )
-                {
-                        lIn = popen( "test -e /System/Library/Sounds/Ping.aiff || echo Ping" , "r" ) ;
-                        if ( fgets( lBuff , sizeof( lBuff ) , lIn ) == NULL )
-                        {
-                                lAfplayPresent = 2 ;
-                        }
-                        pclose( lIn ) ;
-                        if (tinyfd_verbose) printf("afplay %d\n", lAfplayPresent);
-                }
-        }
-        return graphicMode() ? lAfplayPresent : 0 ;
-}
-
-
-static int xdialogPresent( )
-{
-    static int lXdialogPresent = -1 ;
-    if ( lXdialogPresent < 0 )
-    {
-        lXdialogPresent = detectPresence("Xdialog") ;
-    }
-    return lXdialogPresent && graphicMode( ) ;
-}
-
-
-static int gdialogPresent( )
-{
-    static int lGdialoglPresent = -1 ;
-    if ( lGdialoglPresent < 0 )
-    {
-        lGdialoglPresent = detectPresence( "gdialog" ) ;
-    }
-    return lGdialoglPresent && graphicMode( ) ;
-}
-
-
-static int osascriptPresent( )
-{
-    static int lOsascriptPresent = -1 ;
-    if ( lOsascriptPresent < 0 )
-    {
-                gWarningDisplayed |= !!getenv("SSH_TTY");
-                lOsascriptPresent = detectPresence( "osascript" ) ;
-    }
-        return lOsascriptPresent && graphicMode() && !getenv("SSH_TTY") ;
-}
-
-
-static int kdialogPresent( )
-{
-        static int lKdialogPresent = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-
-        if ( lKdialogPresent < 0 )
-        {
-                lKdialogPresent = detectPresence("kdialog") ;
-                if ( lKdialogPresent && !getenv("SSH_TTY") )
-                {
-                        lIn = popen( "kdialog --attach 2>&1" , "r" ) ;
-                        if ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                        {
-                                if ( ! strstr( "Unknown" , lBuff ) )
-                                {
-                                        lKdialogPresent = 2 ;
-                                        if (tinyfd_verbose) printf("kdialog-attach %d\n", lKdialogPresent);
-                                }
-                        }
-                        pclose( lIn ) ;
-
-                        if (lKdialogPresent == 2)
-                        {
-                                lKdialogPresent = 1 ;
-                                lIn = popen( "kdialog --passivepopup 2>&1" , "r" ) ;
-                                if ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                                {
-                                        if ( ! strstr( "Unknown" , lBuff ) )
-                                        {
-                                                lKdialogPresent = 2 ;
-                                                if (tinyfd_verbose) printf("kdialog-popup %d\n", lKdialogPresent);
-                                        }
-                                }
-                                pclose( lIn ) ;
-                        }
-                }
-        }
-        return graphicMode() ? lKdialogPresent : 0 ;
-}
-
-
-static int qarmaPresent( )
-{
-        static int lQarmaPresent = -1 ;
-        if ( lQarmaPresent < 0 )
-        {
-                lQarmaPresent = detectPresence("qarma") ;
-        }
-        return lQarmaPresent && graphicMode( ) ;
-}
-
-
-static int matedialogPresent( )
-{
-        static int lMatedialogPresent = -1 ;
-        if ( lMatedialogPresent < 0 )
-        {
-                lMatedialogPresent = detectPresence("matedialog") ;
-        }
-        return lMatedialogPresent && graphicMode( ) ;
-}
-
-
-static int shellementaryPresent( )
-{
-        static int lShellementaryPresent = -1 ;
-        if ( lShellementaryPresent < 0 )
-        {
-                lShellementaryPresent = 0 ; /*detectPresence("shellementary"); shellementary is not ready yet */
-        }
-        return lShellementaryPresent && graphicMode( ) ;
-}
-
-
-static int zenityPresent( )
-{
-        static int lZenityPresent = -1 ;
-        if ( lZenityPresent < 0 )
-        {
-                lZenityPresent = detectPresence("zenity") ;
-        }
-        return lZenityPresent && graphicMode( ) ;
-}
-
-
-static int zenity3Present()
-{
-        static int lZenity3Present = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-
-        if ( lZenity3Present < 0 )
-        {
-                lZenity3Present = 0 ;
-                if ( zenityPresent() )
-                {
-                        lIn = popen( "zenity --version" , "r" ) ;
-                        if ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                        {
-                                if ( atoi(lBuff) >= 3 )
-                                {
-                                        lZenity3Present = 3 ;
-                                        if ( atoi(strtok(lBuff,".")+2 ) >= 10 )
-                                        {
-                                                lZenity3Present = 4 ;
-                                        }
-                                }
-                                else if ( ( atoi(lBuff) == 2 ) && ( atoi(strtok(lBuff,".")+2 ) >= 32 ) )
-                                {
-                                        lZenity3Present = 2 ;
-                                }
-                                if (tinyfd_verbose) printf("zenity %d\n", lZenity3Present);
-                        }
-                        pclose( lIn ) ;
-                }
-        }
-        return graphicMode() ? lZenity3Present : 0 ;
-}
-
-
-static int osx9orBetter( )
-{
-        static int lOsx9orBetter = -1 ;
-        char lBuff [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        int V,v;
-
-        if ( lOsx9orBetter < 0 )
-        {
-                lOsx9orBetter = 0 ;
-                lIn = popen( "osascript -e 'set osver to system version of (system info)'" , "r" ) ;
-                if ( ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-                        && ( 2 == sscanf(lBuff, "%d.%d", &V, &v) ) )
-                {
-                        V = V * 100 + v;
-                        if ( V >= 1009 )
-                        {
-                                lOsx9orBetter = 1 ;
-                        }
-                }
-                pclose( lIn ) ;
-                if (tinyfd_verbose) printf("Osx10 = %d, %d = %s\n", lOsx9orBetter, V, lBuff) ; 
-        }
-        return lOsx9orBetter ;
-}
-
-
-static int python2Present( )
-{
-    static int lPython2Present = -1 ;
-        int i;
-
-        if ( lPython2Present < 0 )
-        {
-                lPython2Present = 0 ;
-                strcpy(gPython2Name , "python2" ) ;
-                if ( detectPresence(gPython2Name) ) lPython2Present = 1;
-                else
-                {
-                        for ( i = 9 ; i >= 0 ; i -- )
-                        {
-                                sprintf( gPython2Name , "python2.%d" , i ) ;
-                                if ( detectPresence(gPython2Name) )
-                                {
-                                        lPython2Present = 1;
-                                        break;
-                                }
-                        }
-                        /*if ( ! lPython2Present )
-                        {
-                                strcpy(gPython2Name , "python" ) ;
-                                if ( detectPresence(gPython2Name) ) lPython2Present = 1;
-                        }*/
-                }
-                if (tinyfd_verbose) printf("lPython2Present %d\n", lPython2Present) ;
-                if (tinyfd_verbose) printf("gPython2Name %s\n", gPython2Name) ;
-        }
-        return lPython2Present ;
-}
-
-
-static int python3Present( )
-{
-        static int lPython3Present = -1 ;
-        int i;
-
-        if ( lPython3Present < 0 )
-        {
-                lPython3Present = 0 ;
-                strcpy(gPython3Name , "python3" ) ;
-                if ( detectPresence(gPython3Name) ) lPython3Present = 1;
-                else
-                {
-                        for ( i = 9 ; i >= 0 ; i -- )
-                        {
-                                sprintf( gPython3Name , "python3.%d" , i ) ;
-                                if ( detectPresence(gPython3Name) )
-                                {
-                                        lPython3Present = 1;
-                                        break;
-                                }
-                        }
-                        /*if ( ! lPython3Present )
-                        {
-                                strcpy(gPython3Name , "python" ) ;
-                                if ( detectPresence(gPython3Name) ) lPython3Present = 1;
-                        }*/
-                }
-                if (tinyfd_verbose) printf("lPython3Present %d\n", lPython3Present) ;
-                if (tinyfd_verbose) printf("gPython3Name %s\n", gPython3Name) ;
-        }
-        return lPython3Present ;
-}
-
-
-static int tkinter2Present( )
-{
-    static int lTkinter2Present = -1 ;
-        char lPythonCommand[256];
-        char lPythonParams[256] =
-"-S -c \"try:\n\timport Tkinter;\nexcept:\n\tprint 0;\"";
-
-
-        if ( lTkinter2Present < 0 )
-        {
-                lTkinter2Present = 0 ;
-                if ( python2Present() )
-        {
-                    sprintf( lPythonCommand , "%s %s" , gPython2Name , lPythonParams ) ;
-                    lTkinter2Present = tryCommand(lPythonCommand) ;
-                }
-                if (tinyfd_verbose) printf("lTkinter2Present %d\n", lTkinter2Present) ;
-        }
-        return lTkinter2Present && graphicMode() && !(isDarwin() && getenv("SSH_TTY") );
-}
-
-
-static int tkinter3Present( )
-{
-        static int lTkinter3Present = -1 ;
-        char lPythonCommand[256];
-        char lPythonParams[256] =
-                "-S -c \"try:\n\timport tkinter;\nexcept:\n\tprint(0);\"";
-
-        if ( lTkinter3Present < 0 )
-        {
-                lTkinter3Present = 0 ;
-                if ( python3Present() )
-                {
-                        sprintf( lPythonCommand , "%s %s" , gPython3Name , lPythonParams ) ;
-                        lTkinter3Present = tryCommand(lPythonCommand) ;
-                }
-                if (tinyfd_verbose) printf("lTkinter3Present %d\n", lTkinter3Present) ;
-        }
-        return lTkinter3Present && graphicMode() && !(isDarwin() && getenv("SSH_TTY") );
-}
-
-
-static int pythonDbusPresent( )
-{
-    static int lDbusPresent = -1 ;
-        char lPythonCommand[256];
-        char lPythonParams[256] =
-"-c \"try:\n\timport dbus;bus=dbus.SessionBus();\
-notif=bus.get_object('org.freedesktop.Notifications','/org/freedesktop/Notifications');\
-notify=dbus.Interface(notif,'org.freedesktop.Notifications');\nexcept:\n\tprint(0);\"";
-
-        if ( lDbusPresent < 0 )
-        {
-                lDbusPresent = 0 ;
-                if ( python2Present() )
-                {
-                        strcpy(gPythonName , gPython2Name ) ;
-                        sprintf( lPythonCommand , "%s %s" , gPythonName , lPythonParams ) ;
-                        lDbusPresent = tryCommand(lPythonCommand) ;
-                }
-
-                if ( ! lDbusPresent && python3Present() )
-                {
-                        strcpy(gPythonName , gPython3Name ) ;
-                        sprintf( lPythonCommand , "%s %s" , gPythonName , lPythonParams ) ;
-                        lDbusPresent = tryCommand(lPythonCommand) ;
-                }
-
-                if (tinyfd_verbose) printf("lDbusPresent %d\n", lDbusPresent) ;
-                if (tinyfd_verbose) printf("gPythonName %s\n", gPythonName) ;
-        }
-        return lDbusPresent && graphicMode() && !(isDarwin() && getenv("SSH_TTY") );
-}
-
-
-static void sigHandler(int sig)
-{
-        FILE * lIn ;
-        if ( ( lIn = popen( "pactl unload-module module-sine" , "r" ) ) )
-        {
-                pclose( lIn ) ;
-        }
-}
-
-void tinyfd_beep()
-{
-        char lDialogString [256] ;
-        FILE * lIn ;
-
-        if ( osascriptPresent() )
-        {
-                if ( afplayPresent() >= 2 )
-                {
-                        strcpy( lDialogString , "afplay /System/Library/Sounds/Ping.aiff") ;
-                }
-                else
-                {
-                        strcpy( lDialogString , "osascript -e 'tell application \"System Events\" to beep'") ;
-                }
-        }
-        else if ( pactlPresent() ) 
-        {
-                signal(SIGINT, sigHandler);
-                /*strcpy( lDialogString , "pactl load-module module-sine frequency=440;sleep .3;pactl unload-module module-sine" ) ;*/
-                strcpy( lDialogString , "thnum=$(pactl load-module module-sine frequency=440);sleep .3;pactl unload-module $thnum" ) ;
-        }
-        else if ( speakertestPresent() ) 
-        {
-                /*strcpy( lDialogString , "timeout -k .3 .3 speaker-test --frequency 440 --test sine > /dev/tty" ) ;*/
-                strcpy( lDialogString , "( speaker-test -t sine -f 440 > /dev/tty )& pid=$!;sleep .3; kill -9 $pid" ) ;
-        }
-        else if ( beepexePresent() ) 
-        {
-                strcpy( lDialogString , "beep.exe 440 300" ) ;
-        }
-        else
-        {
-                strcpy( lDialogString , "printf '\a' > /dev/tty" ) ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-
-        if ( ( lIn = popen( lDialogString , "r" ) ) )
-        {
-                pclose( lIn ) ;
-        }
-
-        if ( pactlPresent() )
-        {
-                signal(SIGINT, SIG_DFL);
-        }
-}
-
-
-int tinyfd_messageBox(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or ""  may contain \n and \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 lBuff [MAX_PATH_OR_CMD] ;
-        char * lDialogString = NULL ;
-        char * lpDialogString;
-        FILE * lIn ;
-        int lWasGraphicDialog = 0 ;
-        int lWasXterm = 0 ;
-        int lResult ;
-        char lChar ;
-        struct termios infoOri;
-        struct termios info;
-        size_t lTitleLen ;
-        size_t lMessageLen ;
-
-        lBuff[0]='\0';
-
-        lTitleLen =  aTitle ? strlen(aTitle) : 0 ;
-        lMessageLen =  aMessage ? strlen(aMessage) : 0 ;
-        if ( !aTitle || strcmp(aTitle,"tinyfd_query") )
-        {
-                lDialogString = (char *) malloc( MAX_PATH_OR_CMD + lTitleLen + lMessageLen );
-        }
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return 1;}
-
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e 'set {vButton} to {button returned} of ( display dialog \"") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage) ;
-                }
-                strcat(lDialogString, "\" ") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "with title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-                strcat(lDialogString, "with icon ") ;
-                if ( aIconType && ! strcmp( "error" , aIconType ) )
-                {
-                        strcat(lDialogString, "stop " ) ;
-                }
-                else if ( aIconType && ! strcmp( "warning" , aIconType ) )
-                {
-                        strcat(lDialogString, "caution " ) ;
-                }
-                else /* question or info */
-                {
-                        strcat(lDialogString, "note " ) ;
-                }
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                        if ( ! aDefaultButton )
-                        {
-                                strcat( lDialogString ,"default button \"Cancel\" " ) ;
-                        }
-                }
-                else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-                {
-                        strcat( lDialogString ,"buttons {\"No\", \"Yes\"} " ) ;
-                        if (aDefaultButton) 
-                        {
-                                strcat( lDialogString ,"default button \"Yes\" " ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString ,"default button \"No\" " ) ;
-                        }
-                        strcat( lDialogString ,"cancel button \"No\"" ) ;
-                }
-                else if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString ,"buttons {\"No\", \"Yes\", \"Cancel\"} " ) ;
-                        switch (aDefaultButton) 
-                        {
-                                case 1: strcat( lDialogString ,"default button \"Yes\" " ) ; break;
-                                case 2: strcat( lDialogString ,"default button \"No\" " ) ; break;
-                                case 0: strcat( lDialogString ,"default button \"Cancel\" " ) ; break;
-                        }
-                        strcat( lDialogString ,"cancel button \"Cancel\"" ) ;
-                }
-                else
-                {
-                        strcat( lDialogString ,"buttons {\"OK\"} " ) ;
-                        strcat( lDialogString ,"default button \"OK\" " ) ;
-                }
-                strcat( lDialogString, ")' ") ;
-
-                strcat( lDialogString,
-"-e 'if vButton is \"Yes\" then' -e 'return 1'\
- -e 'else if vButton is \"OK\" then' -e 'return 1'\
- -e 'else if vButton is \"No\" then' -e 'return 2'\
- -e 'else' -e 'return 0' -e 'end if' " );
-
-                strcat( lDialogString, "-e 'on error number -128' " ) ;
-                strcat( lDialogString, "-e '0' " );
-
-                strcat( lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return 1;}
-
-                strcpy( lDialogString , "kdialog" ) ;
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-
-                strcat( lDialogString , " --" ) ;
-                if ( aDialogType && ( ! strcmp( "okcancel" , aDialogType )
-                        || ! strcmp( "yesno" , aDialogType ) || ! strcmp( "yesnocancel" , aDialogType ) ) )
-                {
-                        if ( aIconType && ( ! strcmp( "warning" , aIconType )
-                                || ! strcmp( "error" , aIconType ) ) )
-                        {
-                                strcat( lDialogString , "warning" ) ;
-                        }
-                        if ( ! strcmp( "yesnocancel" , aDialogType ) )
-                        {
-                                strcat( lDialogString , "yesnocancel" ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "yesno" ) ;
-                        }
-                }
-                else if ( aIconType && ! strcmp( "error" , aIconType ) )
-                {
-                        strcat( lDialogString , "error" ) ;
-                }
-                else if ( aIconType && ! strcmp( "warning" , aIconType ) )
-                {
-                        strcat( lDialogString , "sorry" ) ;
-                }
-                else
-                {
-                        strcat( lDialogString , "msgbox" ) ;
-                }
-                strcat( lDialogString , " \"" ) ;
-                if ( aMessage )
-                {
-                        strcat( lDialogString , aMessage ) ;
-                }
-                strcat( lDialogString , "\"" ) ;
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                        strcat( lDialogString ,
-                                " --yes-label Ok --no-label Cancel" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-
-                if ( ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString , "; x=$? ;if [ $x = 0 ] ;then echo 1;elif [ $x = 1 ] ;then echo 2;else echo 0;fi");
-                }
-                else
-                {
-                        strcat( lDialogString , ";if [ $? = 0 ];then echo 1;else echo 0;fi");
-                }
-        }
-        else if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return 1;}
-                        strcpy( lDialogString , "szAnswer=$(zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return 1;}
-                        strcpy( lDialogString , "szAnswer=$(matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return 1;}
-                        strcpy( lDialogString , "szAnswer=$(shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return 1;}
-                        strcpy( lDialogString , "szAnswer=$(qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat(lDialogString, " --"); 
-
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                                strcat( lDialogString ,
-                                                "question --ok-label=Ok --cancel-label=Cancel" ) ;
-                }
-                else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-                {
-                                strcat( lDialogString , "question" ) ;
-                }
-                else if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString , "list --column \"\" --hide-header \"Yes\" \"No\"" ) ;
-                }
-                else if ( aIconType && ! strcmp( "error" , aIconType ) )
-                {
-                    strcat( lDialogString , "error" ) ;
-                }
-                else if ( aIconType && ! strcmp( "warning" , aIconType ) )
-                {
-                    strcat( lDialogString , "warning" ) ;
-                }
-                else
-                {
-                    strcat( lDialogString , "info" ) ;
-                }
-                if ( aTitle && strlen(aTitle) ) 
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aMessage && strlen(aMessage) ) 
-                {
-                        strcat(lDialogString, " --text=\"") ;
-                        strcat(lDialogString, aMessage) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( (zenity3Present() >= 3) || (!zenityPresent() && (shellementaryPresent() || qarmaPresent()) ) )
-                {
-                        strcat( lDialogString , " --icon-name=dialog-" ) ;
-                        if ( aIconType && (! strcmp( "question" , aIconType )
-                          || ! strcmp( "error" , aIconType )
-                          || ! strcmp( "warning" , aIconType ) ) )
-                        {
-                                strcat( lDialogString , aIconType ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "information" ) ;
-                        }
-                }
-
-                if ( ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString ,
-");if [ $? = 1 ];then echo 0;elif [ $szAnswer = \"No\" ];then echo 2;else echo 1;fi");
-                }
-                else
-                {
-                        strcat( lDialogString , ");if [ $? = 0 ];then echo 1;else echo 0;fi");
-                }
-        }
-        else if ( !gxmessagePresent() && !gmessagePresent() && !gdialogPresent() && !xdialogPresent() && tkinter2Present() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return 1;}
-
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ) )
-                {
-                        strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-                
-                strcat( lDialogString ,
-" -S -c \"import Tkinter,tkMessageBox;root=Tkinter.Tk();root.withdraw();");
-                
-                if ( isDarwin( ) )
-                {
-                        strcat( lDialogString ,
-"import os;os.system('''/usr/bin/osascript -e 'tell app \\\"Finder\\\" to set \
-frontmost of process \\\"Python\\\" to true' ''');");
-                }
-
-                strcat( lDialogString ,"res=tkMessageBox." ) ;
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                  strcat( lDialogString , "askokcancel(" ) ;
-                  if ( aDefaultButton )
-                        {
-                                strcat( lDialogString , "default=tkMessageBox.OK," ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "default=tkMessageBox.CANCEL," ) ;
-                        }
-                }
-                else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-                {
-                        strcat( lDialogString , "askyesno(" ) ;
-                        if ( aDefaultButton )
-                        {
-                                strcat( lDialogString , "default=tkMessageBox.YES," ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "default=tkMessageBox.NO," ) ;
-                        }
-                }
-                else if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString , "askyesnocancel(" ) ;
-                        switch ( aDefaultButton )
-                        {
-                                case 1: strcat( lDialogString , "default=tkMessageBox.YES," ); break;
-                                case 2: strcat( lDialogString , "default=tkMessageBox.NO," ); break;
-                                case 0: strcat( lDialogString , "default=tkMessageBox.CANCEL," ); break;
-                        }
-                }
-                else
-                {
-                                strcat( lDialogString , "showinfo(" ) ;
-                }
-
-                strcat( lDialogString , "icon='" ) ;
-                if ( aIconType && (! strcmp( "question" , aIconType )
-                  || ! strcmp( "error" , aIconType )
-                  || ! strcmp( "warning" , aIconType ) ) )
-                {
-                                strcat( lDialogString , aIconType ) ;
-                }
-                else
-                {
-                                strcat( lDialogString , "info" ) ;
-                }
-                
-                strcat(lDialogString, "',") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                                strcat(lDialogString, "title='") ;
-                                strcat(lDialogString, aTitle) ;
-                                strcat(lDialogString, "',") ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, "message='") ;
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                        strcat(lDialogString, "'") ;
-                }
-
-                if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat(lDialogString, ");\n\
-if res is None :\n\tprint 0\n\
-elif res is False :\n\tprint 2\n\
-else :\n\tprint 1\n\"" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString, ");\n\
-if res is False :\n\tprint 0\n\
-else :\n\tprint 1\n\"" ) ;
-                }
-    }
-        else if ( !gxmessagePresent() && !gmessagePresent() && !gdialogPresent() && !xdialogPresent() && tkinter3Present() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return 1;}
-
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter;from tkinter import messagebox;root=tkinter.Tk();root.withdraw();");
-
-                strcat( lDialogString ,"res=messagebox." ) ;
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                        strcat( lDialogString , "askokcancel(" ) ;
-                        if ( aDefaultButton )
-                        {
-                                strcat( lDialogString , "default=messagebox.OK," ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "default=messagebox.CANCEL," ) ;
-                        }
-                }
-                else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-                {
-                        strcat( lDialogString , "askyesno(" ) ;
-                        if ( aDefaultButton )
-                        {
-                                strcat( lDialogString , "default=messagebox.YES," ) ;
-                        }
-                        else
-                        {
-                                strcat( lDialogString , "default=messagebox.NO," ) ;
-                        }
-                }
-                else if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat( lDialogString , "askyesnocancel(" ) ;
-                        switch ( aDefaultButton )
-                        {
-                        case 1: strcat( lDialogString , "default=messagebox.YES," ); break;
-                        case 2: strcat( lDialogString , "default=messagebox.NO," ); break;
-                        case 0: strcat( lDialogString , "default=messagebox.CANCEL," ); break;
-                        }
-                }
-                else
-                {
-                        strcat( lDialogString , "showinfo(" ) ;
-                }
-
-                strcat( lDialogString , "icon='" ) ;
-                if ( aIconType && (! strcmp( "question" , aIconType )
-                        || ! strcmp( "error" , aIconType )
-                        || ! strcmp( "warning" , aIconType ) ) )
-                {
-                        strcat( lDialogString , aIconType ) ;
-                }
-                else
-                {
-                        strcat( lDialogString , "info" ) ;
-                }
-
-                strcat(lDialogString, "',") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, "message='") ;
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                        strcat(lDialogString, "'") ;
-                }
-
-                if ( aDialogType && ! strcmp( "yesnocancel" , aDialogType ) )
-                {
-                        strcat(lDialogString, ");\n\
-if res is None :\n\tprint(0)\n\
-elif res is False :\n\tprint(2)\n\
-else :\n\tprint 1\n\"" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString, ");\n\
-if res is False :\n\tprint(0)\n\
-else :\n\tprint(1)\n\"" ) ;
-                }
-        }
-        else if ( gxmessagePresent() || gmessagePresent() || (!gdialogPresent() && !xdialogPresent() && xmessagePresent()) )
-        {
-                if ( gxmessagePresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gxmessage");return 1;}
-                        strcpy( lDialogString , "gxmessage");
-                }
-                else if ( gmessagePresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gmessage");return 1;}
-                        strcpy( lDialogString , "gmessage");
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xmessage");return 1;}
-                        strcpy( lDialogString , "xmessage");
-                }
-
-                if ( aDialogType && ! strcmp("okcancel" , aDialogType) )
-                {
-                        strcat( lDialogString , " -buttons Ok:1,Cancel:0");
-                        switch ( aDefaultButton )
-                        {
-                                case 1: strcat( lDialogString , " -default Ok"); break;
-                                case 0: strcat( lDialogString , " -default Cancel"); break;
-                        }
-                }
-                else if ( aDialogType && ! strcmp("yesno" , aDialogType) )
-                {
-                        strcat( lDialogString , " -buttons Yes:1,No:0");
-                        switch ( aDefaultButton )
-                        {
-                                case 1: strcat( lDialogString , " -default Yes"); break;
-                                case 0: strcat( lDialogString , " -default No"); break;
-                        }
-                }
-                else if ( aDialogType && ! strcmp("yesnocancel" , aDialogType) )
-                {
-                        strcat( lDialogString , " -buttons Yes:1,No:2,Cancel:0");
-                        switch ( aDefaultButton )
-                        {
-                                case 1: strcat( lDialogString , " -default Yes"); break;
-                                case 2: strcat( lDialogString , " -default No"); break;
-                                case 0: strcat( lDialogString , " -default Cancel"); break;
-                        }
-                }
-                else
-                {
-                        strcat( lDialogString , " -buttons Ok:1");
-                        strcat( lDialogString , " -default Ok");
-                }
-
-                strcat( lDialogString , " -center \"");
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat( lDialogString , aMessage ) ;
-                }
-                strcat(lDialogString, "\"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat( lDialogString , " -title  \"");
-                        strcat( lDialogString , aTitle ) ;
-                        strcat( lDialogString, "\"" ) ;
-                }
-                strcat( lDialogString , " ; echo $? ");
-        }
-        else if ( xdialogPresent() || gdialogPresent() || dialogName() || whiptailPresent() )
-        {
-                if ( gdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gdialog");return 1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(gdialog " ) ;
-                }
-                else if ( xdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return 1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(Xdialog " ) ;
-                }
-                else if ( dialogName( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return 0;}
-                        if ( isTerminalRunning( ) )
-                        {
-                                strcpy( lDialogString , "(dialog " ) ;
-                        }
-                        else
-                        {
-                                lWasXterm = 1 ;
-                                strcpy( lDialogString , terminalName() ) ;
-                                strcat( lDialogString , "'(" ) ;
-                                strcat( lDialogString , dialogName() ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                }
-                else if ( isTerminalRunning( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"whiptail");return 0;}
-                        strcpy( lDialogString , "(whiptail " ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"whiptail");return 0;}
-                        lWasXterm = 1 ;
-                        strcpy( lDialogString , terminalName() ) ;
-                        strcat( lDialogString , "'(whiptail " ) ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "--title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( !xdialogPresent() && !gdialogPresent() )
-                {
-                        if ( aDialogType && ( !strcmp( "okcancel" , aDialogType ) || !strcmp( "yesno" , aDialogType ) 
-                                || !strcmp( "yesnocancel" , aDialogType ) ) )
-                        {
-                                strcat(lDialogString, "--backtitle \"") ;
-                                strcat(lDialogString, "tab: move focus") ;
-                                strcat(lDialogString, "\" ") ;
-                        }
-                }
-
-                if ( aDialogType && ! strcmp( "okcancel" , aDialogType ) )
-                {
-                        if ( ! aDefaultButton )
-                        {
-                                strcat( lDialogString , "--defaultno " ) ;
-                        }
-                        strcat( lDialogString ,
-                                        "--yes-label \"Ok\" --no-label \"Cancel\" --yesno " ) ;
-                }
-                else if ( aDialogType && ! strcmp( "yesno" , aDialogType ) )
-                {
-                        if ( ! aDefaultButton )
-                        {
-                                strcat( lDialogString , "--defaultno " ) ;
-                        }
-                        strcat( lDialogString , "--yesno " ) ;
-                }
-                else if (aDialogType && !strcmp("yesnocancel", aDialogType))
-                {
-                        if (!aDefaultButton)
-                        {
-                                strcat(lDialogString, "--defaultno ");
-                        }
-                        strcat(lDialogString, "--menu ");
-                }
-                else
-                {
-                        strcat( lDialogString , "--msgbox " ) ;
-
-                }
-                strcat( lDialogString , "\"" ) ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage) ;
-                }
-                strcat(lDialogString, "\" ");
-
-                if ( lWasGraphicDialog )
-                {
-                        if (aDialogType && !strcmp("yesnocancel", aDialogType))
-                        {
-                                strcat(lDialogString,"0 60 0 Yes \"\" No \"\") 2>/tmp/tinyfd.txt;\
-if [ $? = 0 ];then tinyfdBool=1;else tinyfdBool=0;fi;\
-tinyfdRes=$(cat /tmp/tinyfd.txt);echo $tinyfdBool$tinyfdRes") ;
-                        }
-                        else
-                        {
-                                strcat(lDialogString,
-                                   "10 60 ) 2>&1;if [ $? = 0 ];then echo 1;else echo 0;fi");
-                        }
-                }
-                else
-                {
-                        if (aDialogType && !strcmp("yesnocancel", aDialogType))
-                        {
-                                strcat(lDialogString,"0 60 0 Yes \"\" No \"\" >/dev/tty ) 2>/tmp/tinyfd.txt;\
-                if [ $? = 0 ];then tinyfdBool=1;else tinyfdBool=0;fi;\
-                tinyfdRes=$(cat /tmp/tinyfd.txt);echo $tinyfdBool$tinyfdRes") ;
-
-                                if ( lWasXterm )
-                                {
-                                        strcat(lDialogString," >/tmp/tinyfd0.txt';cat /tmp/tinyfd0.txt");
-                                }
-                                else
-                                {
-                                        strcat(lDialogString, "; clear >/dev/tty") ;
-                                }
-                        }
-                        else
-                        {
-                                strcat(lDialogString, "10 60 >/dev/tty) 2>&1;if [ $? = 0 ];");
-                                if ( lWasXterm )
-                                {
-                                        strcat( lDialogString ,
-"then\n\techo 1\nelse\n\techo 0\nfi >/tmp/tinyfd.txt';cat /tmp/tinyfd.txt;rm /tmp/tinyfd.txt");
-                                }
-                                else
-                                {
-                                   strcat(lDialogString,
-                                                  "then echo 1;else echo 0;fi;clear >/dev/tty");
-                                }
-                        }
-                }
-        }
-        else if (  isTerminalRunning( ) && terminalName() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return 0;}
-                strcpy( lDialogString , terminalName() ) ;
-                strcat( lDialogString , "'" ) ;
-                if ( !gWarningDisplayed && !tinyfd_forceConsole)
-                {
-                        gWarningDisplayed = 1 ;
-                        strcat( lDialogString , "echo \"" ) ;
-                        strcat( lDialogString, gTitle) ;
-                        strcat( lDialogString , "\";" ) ;
-                        strcat( lDialogString , "echo \"" ) ;
-                        strcat( lDialogString, tinyfd_needs) ;
-                        strcat( lDialogString , "\";echo;echo;" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat( lDialogString , "echo \"" ) ;
-                        strcat( lDialogString, aTitle) ;
-                        strcat( lDialogString , "\";echo;" ) ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat( lDialogString , "echo \"" ) ;
-                        strcat( lDialogString, aMessage) ;
-                        strcat( lDialogString , "\"; " ) ;
-                }
-                if ( aDialogType && !strcmp("yesno",aDialogType) )
-                {
-                        strcat( lDialogString , "echo -n \"y/n: \"; " ) ;
-                        strcat( lDialogString , "stty sane -echo;" ) ;
-                        strcat( lDialogString ,
-                                "answer=$( while ! head -c 1 | grep -i [ny];do true ;done);");
-                        strcat( lDialogString ,
-                                "if echo \"$answer\" | grep -iq \"^y\";then\n");
-                        strcat( lDialogString , "\techo 1\nelse\n\techo 0\nfi" ) ;
-                }
-                else if ( aDialogType && !strcmp("okcancel",aDialogType) )
-                {
-                        strcat( lDialogString , "echo -n \"[O]kay/[C]ancel: \"; " ) ;
-                        strcat( lDialogString , "stty sane -echo;" ) ;
-                        strcat( lDialogString ,
-                                "answer=$( while ! head -c 1 | grep -i [oc];do true ;done);");
-                        strcat( lDialogString ,
-                                "if echo \"$answer\" | grep -iq \"^o\";then\n");
-                        strcat( lDialogString , "\techo 1\nelse\n\techo 0\nfi" ) ;
-                }
-                else if ( aDialogType && !strcmp("yesnocancel",aDialogType) )
-                {
-                        strcat( lDialogString , "echo -n \"[Y]es/[N]o/[C]ancel: \"; " ) ;
-                        strcat( lDialogString , "stty sane -echo;" ) ;
-                        strcat( lDialogString ,
-                                "answer=$( while ! head -c 1 | grep -i [nyc];do true ;done);");
-                        strcat( lDialogString ,
-                                "if echo \"$answer\" | grep -iq \"^y\";then\n\techo 1\n");
-                        strcat( lDialogString , "elif echo \"$answer\" | grep -iq \"^n\";then\n\techo 2\n" ) ;
-                        strcat( lDialogString , "else\n\techo 0\nfi" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString , "echo -n \"press enter to continue \"; ");
-                        strcat( lDialogString , "stty sane -echo;" ) ;
-                        strcat( lDialogString ,
-                                "answer=$( while ! head -c 1;do true ;done);echo 1");
-                }
-                strcat( lDialogString ,
-                        " >/tmp/tinyfd.txt';cat /tmp/tinyfd.txt;rm /tmp/tinyfd.txt");
-        }
-        else if ( !isTerminalRunning() && pythonDbusPresent() && !strcmp("ok" , aDialogType) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python-dbus");return 1;}
-                strcpy( lDialogString , gPythonName ) ;
-                strcat( lDialogString ," -c \"import dbus;bus=dbus.SessionBus();");
-                strcat( lDialogString ,"notif=bus.get_object('org.freedesktop.Notifications','/org/freedesktop/Notifications');" ) ;
-                strcat( lDialogString ,"notify=dbus.Interface(notif,'org.freedesktop.Notifications');" ) ;
-                strcat( lDialogString ,"notify.Notify('',0,'" ) ;
-                if ( aIconType && strlen(aIconType) )
-                {
-                        strcat( lDialogString , aIconType ) ;
-                }
-                strcat(lDialogString, "','") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                }
-                strcat(lDialogString, "','") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                }
-                strcat(lDialogString, "','','',5000)\"") ;
-        }
-        else if ( !isTerminalRunning() && (perlPresent() >= 2)  && !strcmp("ok" , aDialogType) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"perl-dbus");return 1;}
-
-                sprintf( lDialogString , "perl -e \"use Net::DBus;\
-                                                                 my \\$sessionBus = Net::DBus->session;\
-                                                                 my \\$notificationsService = \\$sessionBus->get_service('org.freedesktop.Notifications');\
-                                                                 my \\$notificationsObject = \\$notificationsService->get_object('/org/freedesktop/Notifications',\
-                                                                 'org.freedesktop.Notifications');\
-                                                                 my \\$notificationId;\\$notificationId = \\$notificationsObject->Notify(shift, 0, '%s', '%s', '%s', [], {}, -1);\" ",
-                                                                 aIconType?aIconType:"", aTitle?aTitle:"", aMessage?aMessage:"" ) ;
-        }
-        else if ( !isTerminalRunning() && notifysendPresent() && !strcmp("ok" , aDialogType) )
-        {
-
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"notifysend");return 1;}
-                strcpy( lDialogString , "notify-send" ) ;
-                if ( aIconType && strlen(aIconType) )
-                {
-                        strcat( lDialogString , " -i '" ) ;
-                        strcat( lDialogString , aIconType ) ;
-                        strcat( lDialogString , "'" ) ;
-                }
-        strcat( lDialogString , " \"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                        strcat( lDialogString , " | " ) ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-            replaceSubStr( aMessage , "\n\t" , " |  " , lBuff ) ;
-            replaceSubStr( aMessage , "\n" , " | " , lBuff ) ;
-            replaceSubStr( aMessage , "\t" , "  " , lBuff ) ;
-                        strcat(lDialogString, lBuff) ;
-                }
-                strcat( lDialogString , "\"" ) ;
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return 0;}
-                if ( !gWarningDisplayed && !tinyfd_forceConsole)
-                {
-                        gWarningDisplayed = 1 ;
-                        printf("\n\n%s\n", gTitle);
-                        printf("%s\n\n", tinyfd_needs);
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        printf("\n%s\n", aTitle);
-                }
-
-                tcgetattr(0, &infoOri);
-                tcgetattr(0, &info);
-                info.c_lflag &= ~ICANON;
-                info.c_cc[VMIN] = 1;
-                info.c_cc[VTIME] = 0;
-                tcsetattr(0, TCSANOW, &info);
-                if ( aDialogType && !strcmp("yesno",aDialogType) )
-                {
-                        do
-                        {
-                                if ( aMessage && strlen(aMessage) )
-                                {
-                                        printf("\n%s\n",aMessage);
-                                }
-                                printf("y/n: "); fflush(stdout);
-                                lChar = tolower( getchar() ) ;
-                                printf("\n\n");
-                        }
-                        while ( lChar != 'y' && lChar != 'n' );
-                        lResult = lChar == 'y' ? 1 : 0 ;
-                }
-                else if ( aDialogType && !strcmp("okcancel",aDialogType) )
-                {
-                        do
-                        {
-                                if ( aMessage && strlen(aMessage) )
-                                {
-                                        printf("\n%s\n",aMessage);
-                                }
-                                printf("[O]kay/[C]ancel: "); fflush(stdout);
-                                lChar = tolower( getchar() ) ;
-                                printf("\n\n");
-                        }
-                        while ( lChar != 'o' && lChar != 'c' );
-                        lResult = lChar == 'o' ? 1 : 0 ;
-                }
-                else if ( aDialogType && !strcmp("yesnocancel",aDialogType) )
-                {
-                        do
-                        {
-                                if ( aMessage && strlen(aMessage) )
-                                {
-                                        printf("\n%s\n",aMessage);
-                                }
-                                printf("[Y]es/[N]o/[C]ancel: "); fflush(stdout);
-                                lChar = tolower( getchar() ) ;
-                                printf("\n\n");
-                        }
-                        while ( lChar != 'y' && lChar != 'n' && lChar != 'c' );
-                        lResult = (lChar == 'y') ? 1 : (lChar == 'n') ? 2 : 0 ;
-                }
-                else
-                {
-                        if ( aMessage && strlen(aMessage) )
-                        {
-                                printf("\n%s\n\n",aMessage);
-                        }
-                        printf("press enter to continue "); fflush(stdout);
-                        getchar() ;
-                        printf("\n\n"); 
-                        lResult = 1 ;
-                }
-                tcsetattr(0, TCSANOW, &infoOri);
-                free(lDialogString);
-                return lResult ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-
-        if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-        {
-                free(lDialogString);
-                return 0 ;
-        }
-        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-        {}
-
-        pclose( lIn ) ;
-
-        /* printf( "lBuff: %s len: %lu \n" , lBuff , strlen(lBuff) ) ; */
-        if ( lBuff[strlen( lBuff ) -1] == '\n' )
-        {
-                lBuff[strlen( lBuff ) -1] = '\0' ;
-        }
-        /* printf( "lBuff1: %s len: %lu \n" , lBuff , strlen(lBuff) ) ; */
-
-        if (aDialogType && !strcmp("yesnocancel", aDialogType)) 
-        {
-                if ( lBuff[0]=='1' )
-                { 
-                        if ( !strcmp( lBuff+1 , "Yes" )) strcpy(lBuff,"1");
-                        else if ( !strcmp( lBuff+1 , "No" )) strcpy(lBuff,"2");
-                }
-        }
-        /* printf( "lBuff2: %s len: %lu \n" , lBuff , strlen(lBuff) ) ; */
-
-        lResult =  !strcmp( lBuff , "2" ) ? 2 : !strcmp( lBuff , "1" ) ? 1 : 0;
-
-        /* printf( "lResult: %d\n" , lResult ) ; */
-        free(lDialogString);
-        return lResult ;
-}
-
-
-/* return has only meaning for tinyfd_query */
-int tinyfd_notifyPopup(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or ""  may contain \n and \t */
-        char const * const aIconType ) /* "info" "warning" "error" */
-{
-    char lBuff[MAX_PATH_OR_CMD];
-        char * lDialogString = NULL ;
-    char * lpDialogString ;
-        FILE * lIn ;
-        size_t lTitleLen ;
-        size_t lMessageLen ;
-
-        if ( getenv("SSH_TTY") )
-        {
-                return tinyfd_messageBox(aTitle, aMessage, "ok", aIconType, 0);
-        }
-
-        lTitleLen =  aTitle ? strlen(aTitle) : 0 ;
-        lMessageLen =  aMessage ? strlen(aMessage) : 0 ;
-        if ( !aTitle || strcmp(aTitle,"tinyfd_query") )
-        {
-                lDialogString = (char *) malloc( MAX_PATH_OR_CMD + lTitleLen + lMessageLen );
-        }
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return 1;}
-
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e 'display notification \"") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage) ;
-                }
-                strcat(lDialogString, " \" ") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "with title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-                
-                strcat( lDialogString, "' -e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return 1;}
-                strcpy( lDialogString , "kdialog" ) ;
-
-                if ( aIconType && strlen(aIconType) )
-                {
-                        strcat( lDialogString , " --icon '" ) ;
-                        strcat( lDialogString , aIconType ) ;
-                        strcat( lDialogString , "'" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat( lDialogString , " --title \"" ) ;
-                        strcat( lDialogString , aTitle ) ;
-                        strcat( lDialogString , "\"" ) ;
-                }
-
-                strcat( lDialogString , " --passivepopup" ) ;
-                strcat( lDialogString , " \"" ) ;
-                if ( aMessage )
-                {
-                        strcat( lDialogString , aMessage ) ;
-                }
-                strcat( lDialogString , " \" 5" ) ;
-        }
-        else if ( (zenity3Present()>=4) || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                /* zenity 2.32 has the notification but with a bug: it doesnt return from it */
-                /* zenity 3.8 show the notification as an alert ok cancel box */
-                if ( zenity3Present()>=3 )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return 1;}
-                        strcpy( lDialogString , "zenity" ) ;
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return 1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return 1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return 1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                }
-
-                strcat( lDialogString , " --notification"); 
-
-                if ( aIconType && strlen( aIconType ) )
-                {
-                        strcat( lDialogString , " --window-icon '"); 
-                        strcat( lDialogString , aIconType ) ;
-                        strcat( lDialogString , "'" ) ;
-                }
-
-                strcat( lDialogString , " --text \"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\n") ;
-                }
-                if ( aMessage && strlen( aMessage ) )
-                {
-                        strcat( lDialogString , aMessage ) ;
-                }
-                strcat( lDialogString , " \"" ) ;
-        }
-        else if ( perlPresent() >= 2 )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"perl-dbus");return 1;}
-                sprintf( lDialogString , "perl -e \"use Net::DBus;\
-                                                                 my \\$sessionBus = Net::DBus->session;\
-                                                                 my \\$notificationsService = \\$sessionBus->get_service('org.freedesktop.Notifications');\
-                                                                 my \\$notificationsObject = \\$notificationsService->get_object('/org/freedesktop/Notifications',\
-                                                                 'org.freedesktop.Notifications');\
-                                                                 my \\$notificationId;\\$notificationId = \\$notificationsObject->Notify(shift, 0, '%s', '%s', '%s', [], {}, -1);\" ",
-                                                                 aIconType?aIconType:"", aTitle?aTitle:"", aMessage?aMessage:"" ) ;
-        }
-        else if ( pythonDbusPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python-dbus");return 1;}
-                strcpy( lDialogString , gPythonName ) ;
-                strcat( lDialogString ," -c \"import dbus;bus=dbus.SessionBus();");
-                strcat( lDialogString ,"notif=bus.get_object('org.freedesktop.Notifications','/org/freedesktop/Notifications');" ) ;
-                strcat( lDialogString ,"notify=dbus.Interface(notif,'org.freedesktop.Notifications');" ) ;
-                strcat( lDialogString ,"notify.Notify('',0,'" ) ;
-                if ( aIconType && strlen(aIconType) )
-                {
-                        strcat( lDialogString , aIconType ) ;
-                }
-                strcat(lDialogString, "','") ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                }
-                strcat(lDialogString, "','") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                }
-                strcat(lDialogString, "','','',5000)\"") ;
-        }
-        else if ( notifysendPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"notifysend");return 1;}
-                strcpy( lDialogString , "notify-send" ) ;
-                if ( aIconType && strlen(aIconType) )
-                {
-                        strcat( lDialogString , " -i '" ) ;
-                        strcat( lDialogString , aIconType ) ;
-                        strcat( lDialogString , "'" ) ;
-                }
-        strcat( lDialogString , " \"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                        strcat( lDialogString , " | " ) ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-            replaceSubStr( aMessage , "\n\t" , " |  " , lBuff ) ;
-            replaceSubStr( aMessage , "\n" , " | " , lBuff ) ;
-            replaceSubStr( aMessage , "\t" , "  " , lBuff ) ;
-                        strcat(lDialogString, lBuff) ;
-                }
-                strcat( lDialogString , "\"" ) ;
-        }
-        else
-        {
-                return tinyfd_messageBox(aTitle, aMessage, "ok", aIconType, 0);
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-
-        if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-        {
-                free(lDialogString);
-                return 0 ;
-        }
-
-        pclose( lIn ) ;
-        free(lDialogString);
-        return 1;
-}
-
-
-/* returns NULL on cancel */
-char const * tinyfd_inputBox(
-        char const * const aTitle , /* NULL or "" */
-        char const * const aMessage , /* NULL or "" may NOT contain \n nor \t */
-        char const * const aDefaultInput ) /* "" , if NULL it's a passwordBox */
-{
-        static char lBuff[MAX_PATH_OR_CMD];
-        char * lDialogString = NULL;
-        char * lpDialogString;
-        FILE * lIn ;
-        int lResult ;
-        int lWasGdialog = 0 ;
-        int lWasGraphicDialog = 0 ;
-        int lWasXterm = 0 ;
-        int lWasBasicXterm = 0 ;
-        struct termios oldt ;
-        struct termios newt ;
-        char * lEOF;
-        size_t lTitleLen ;
-        size_t lMessageLen ;
-
-        lBuff[0]='\0';
-
-        lTitleLen =  aTitle ? strlen(aTitle) : 0 ;
-        lMessageLen =  aMessage ? strlen(aMessage) : 0 ;
-        if ( !aTitle || strcmp(aTitle,"tinyfd_query") )
-        {
-                lDialogString = (char *) malloc( MAX_PATH_OR_CMD + lTitleLen + lMessageLen );
-        }
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return (char const *)1;}
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e 'display dialog \"") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage) ;
-                }
-                strcat(lDialogString, "\" ") ;
-                strcat(lDialogString, "default answer \"") ;
-                if ( aDefaultInput && strlen(aDefaultInput) )
-                {
-                        strcat(lDialogString, aDefaultInput) ;
-                }
-                strcat(lDialogString, "\" ") ;
-                if ( ! aDefaultInput )
-                {
-                        strcat(lDialogString, "hidden answer true ") ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "with title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-                strcat(lDialogString, "with icon note' ") ;
-                strcat(lDialogString, "-e '\"1\" & text returned of result' " );
-                strcat(lDialogString, "-e 'on error number -128' " ) ;
-                strcat(lDialogString, "-e '0' " );
-                strcat(lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat(lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return (char const *)1;}
-                strcpy( lDialogString , "szAnswer=$(kdialog" ) ;
-
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-
-                if ( ! aDefaultInput )
-                {
-                        strcat(lDialogString, " --password ") ;
-                }
-                else
-                {
-                        strcat(lDialogString, " --inputbox ") ;
-
-                }
-                strcat(lDialogString, "\"") ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage ) ;
-                }
-                strcat(lDialogString , "\" \"" ) ;
-                if ( aDefaultInput && strlen(aDefaultInput) )
-                {
-                        strcat(lDialogString, aDefaultInput ) ;
-                }
-                strcat(lDialogString , "\"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                strcat( lDialogString ,
-                        ");if [ $? = 0 ];then echo 1$szAnswer;else echo 0$szAnswer;fi");
-        }
-        else if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char const *)1;}
-                        strcpy( lDialogString , "szAnswer=$(zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString ,  "szAnswer=$(matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "szAnswer=$(shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString ,  "szAnswer=$(qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat( lDialogString ," --entry" ) ;
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, " --text=\"") ;
-                        strcat(lDialogString, aMessage) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aDefaultInput && strlen(aDefaultInput) )
-                {
-                        strcat(lDialogString, " --entry-text=\"") ;
-                        strcat(lDialogString, aDefaultInput) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                else
-                {
-                        strcat(lDialogString, " --hide-text") ;
-                }
-                strcat( lDialogString ,
-                                ");if [ $? = 0 ];then echo 1$szAnswer;else echo 0$szAnswer;fi");
-        }
-        else if ( gxmessagePresent() || gmessagePresent() )
-        {
-                if ( gxmessagePresent() ) {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gxmessage");return (char const *)1;}
-                        strcpy( lDialogString , "szAnswer=$(gxmessage -buttons Ok:1,Cancel:0 -center \"");
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gmessage");return (char const *)1;}
-                        strcpy( lDialogString , "szAnswer=$(gmessage -buttons Ok:1,Cancel:0 -center \"");
-                }
-
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat( lDialogString , aMessage ) ;
-                }
-                strcat(lDialogString, "\"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat( lDialogString , " -title  \"");
-                        strcat( lDialogString , aTitle ) ;
-                        strcat(lDialogString, "\" " ) ;
-                }
-                strcat(lDialogString, " -entrytext \"" ) ;
-                if ( aDefaultInput && strlen(aDefaultInput) )
-                {
-                        strcat( lDialogString , aDefaultInput ) ;
-                }
-                strcat(lDialogString, "\"" ) ;
-                strcat( lDialogString , ");echo $?$szAnswer");
-        }
-        else if ( !gdialogPresent() && !xdialogPresent() && tkinter2Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ) )
-                {
-                strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-                
-                strcat( lDialogString ,
-" -S -c \"import Tkinter,tkSimpleDialog;root=Tkinter.Tk();root.withdraw();");
-                
-                if ( isDarwin( ) )
-                {
-                        strcat( lDialogString ,
-"import os;os.system('''/usr/bin/osascript -e 'tell app \\\"Finder\\\" to set \
-frontmost of process \\\"Python\\\" to true' ''');");
-                }
-                
-                strcat( lDialogString ,"res=tkSimpleDialog.askstring(" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-
-                        strcat(lDialogString, "prompt='") ;
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aDefaultInput )
-                {
-                        if ( strlen(aDefaultInput) )
-                        {
-                                strcat(lDialogString, "initialvalue='") ;
-                                strcat(lDialogString, aDefaultInput) ;
-                                strcat(lDialogString, "',") ;
-                        }
-                }
-                else
-                {
-                        strcat(lDialogString, "show='*'") ;
-                }
-                strcat(lDialogString, ");\nif res is None :\n\tprint 0");
-                strcat(lDialogString, "\nelse :\n\tprint '1'+res\n\"" ) ;
-        }
-        else if ( !gdialogPresent() && !xdialogPresent() && tkinter3Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter; from tkinter import simpledialog;root=tkinter.Tk();root.withdraw();");
-                strcat( lDialogString ,"res=simpledialog.askstring(" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-
-                        strcat(lDialogString, "prompt='") ;
-                        lpDialogString = lDialogString + strlen(lDialogString);
-                        replaceSubStr( aMessage , "\n" , "\\n" , lpDialogString ) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aDefaultInput )
-                {
-                        if ( strlen(aDefaultInput) )
-                        {
-                                strcat(lDialogString, "initialvalue='") ;
-                                strcat(lDialogString, aDefaultInput) ;
-                                strcat(lDialogString, "',") ;
-                        }
-                }
-                else
-                {
-                        strcat(lDialogString, "show='*'") ;
-                }
-                strcat(lDialogString, ");\nif res is None :\n\tprint(0)");
-                strcat(lDialogString, "\nelse :\n\tprint('1'+res)\n\"" ) ;
-        }
-        else if ( gdialogPresent() || xdialogPresent() || dialogName() || whiptailPresent() )
-        {
-                if ( gdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"gdialog");return (char const *)1;}
-                        lWasGraphicDialog = 1 ;
-                        lWasGdialog = 1 ;
-                        strcpy( lDialogString , "(gdialog " ) ;
-                }
-                else if ( xdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return (char const *)1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(Xdialog " ) ;
-                }
-                else if ( dialogName( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        if ( isTerminalRunning( ) )
-                        {
-                                strcpy( lDialogString , "(dialog " ) ;
-                        }
-                        else
-                        {
-                                lWasXterm = 1 ;
-                                strcpy( lDialogString , terminalName() ) ;
-                                strcat( lDialogString , "'(" ) ;
-                                strcat( lDialogString , dialogName() ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                }
-                else if ( isTerminalRunning( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"whiptail");return (char const *)0;}
-                        strcpy( lDialogString , "(whiptail " ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"whiptail");return (char const *)0;}
-                        lWasXterm = 1 ;
-                        strcpy( lDialogString , terminalName() ) ;
-                        strcat( lDialogString , "'(whiptail " ) ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "--title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( !xdialogPresent() && !gdialogPresent() )
-                {
-                        strcat(lDialogString, "--backtitle \"") ;
-                        strcat(lDialogString, "tab: move focus") ;
-                        if ( ! aDefaultInput && !lWasGdialog )
-                        {
-                                strcat(lDialogString, " (sometimes nothing, no blink nor star, is shown in text field)") ;
-                        }
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( aDefaultInput || lWasGdialog )
-                {
-                        strcat( lDialogString , "--inputbox" ) ;
-                }
-                else
-                {
-                        if ( !lWasGraphicDialog && dialogName() && isDialogVersionBetter09b() )
-                        {
-                                strcat( lDialogString , "--insecure " ) ;
-                        }
-                        strcat( lDialogString , "--passwordbox" ) ;
-                }
-                strcat( lDialogString , " \"" ) ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat(lDialogString, aMessage) ;
-                }
-                strcat(lDialogString,"\" 10 60 ") ;
-                if ( aDefaultInput && strlen(aDefaultInput) )
-                {
-                        strcat(lDialogString, "\"") ;
-                        strcat(lDialogString, aDefaultInput) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-                if ( lWasGraphicDialog )
-                {
-                        strcat(lDialogString,") 2>/tmp/tinyfd.txt;\
-        if [ $? = 0 ];then tinyfdBool=1;else tinyfdBool=0;fi;\
-        tinyfdRes=$(cat /tmp/tinyfd.txt);echo $tinyfdBool$tinyfdRes") ;
-                }
-                else
-                {
-                        strcat(lDialogString,">/dev/tty ) 2>/tmp/tinyfd.txt;\
-        if [ $? = 0 ];then tinyfdBool=1;else tinyfdBool=0;fi;\
-        tinyfdRes=$(cat /tmp/tinyfd.txt);echo $tinyfdBool$tinyfdRes") ;
-
-                        if ( lWasXterm )
-                        {
-                strcat(lDialogString," >/tmp/tinyfd0.txt';cat /tmp/tinyfd0.txt");
-                        }
-                        else
-                        {
-                                strcat(lDialogString, "; clear >/dev/tty") ;
-                        }
-                }
-        }
-        else if ( ! isTerminalRunning( ) && terminalName() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-                lWasBasicXterm = 1 ;
-                strcpy( lDialogString , terminalName() ) ;
-                strcat( lDialogString , "'" ) ;
-                if ( !gWarningDisplayed && !tinyfd_forceConsole)
-                {
-                        tinyfd_messageBox(gTitle,tinyfd_needs,"ok","warning",0);
-                        gWarningDisplayed = 1 ;
-                }
-                if ( aTitle && strlen(aTitle) && !tinyfd_forceConsole)
-                {
-                        strcat( lDialogString , "echo \"" ) ;
-                        strcat( lDialogString, aTitle) ;
-                        strcat( lDialogString , "\";echo;" ) ;
-                }
-                
-                strcat( lDialogString , "echo \"" ) ;
-                if ( aMessage && strlen(aMessage) )
-                {
-                        strcat( lDialogString, aMessage) ;
-                }
-                strcat( lDialogString , "\";read " ) ;
-                if ( ! aDefaultInput )
-                {
-                        strcat( lDialogString , "-s " ) ;
-                }
-                strcat( lDialogString , "-p \"" ) ;
-                strcat( lDialogString , "(esc+enter to cancel): \" ANSWER " ) ;
-                strcat( lDialogString , ";echo 1$ANSWER >/tmp/tinyfd.txt';" ) ;
-                strcat( lDialogString , "cat -v /tmp/tinyfd.txt");
-        }
-        else if ( !gWarningDisplayed && ! isTerminalRunning( ) && ! terminalName() ) {
-          tinyfd_messageBox(gTitle,tinyfd_needs,"ok","warning",0);
-          gWarningDisplayed = 1 ;
-          return NULL;
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"basicinput");return (char const *)0;}
-                if ( !gWarningDisplayed && !tinyfd_forceConsole)
-                {
-                        tinyfd_messageBox(gTitle,tinyfd_needs,"ok","warning",0);
-                        gWarningDisplayed = 1 ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        printf("\n%s\n", aTitle);
-                }
-                if ( aMessage && strlen(aMessage) )
-                {
-                        printf("\n%s\n",aMessage);
-                }
-                printf("(esc+enter to cancel): "); fflush(stdout);
-                if ( ! aDefaultInput )
-                {
-                        tcgetattr(STDIN_FILENO, & oldt) ;
-                        newt = oldt ;
-                        newt.c_lflag &= ~ECHO ;
-                        tcsetattr(STDIN_FILENO, TCSANOW, & newt);
-                }
-
-                lEOF = fgets(lBuff, MAX_PATH_OR_CMD, stdin);
-                /* printf("lbuff<%c><%d>\n",lBuff[0],lBuff[0]); */
-                if ( ! lEOF  || (lBuff[0] == '\0') )
-                {
-                        free(lDialogString);
-                        return NULL;
-                }
-
-                if ( lBuff[0] == '\n' )
-                {
-                        lEOF = fgets(lBuff, MAX_PATH_OR_CMD, stdin);
-                        /* printf("lbuff<%c><%d>\n",lBuff[0],lBuff[0]); */
-                        if ( ! lEOF  || (lBuff[0] == '\0') )
-                        {
-                                free(lDialogString);
-                                return NULL;
-                        }
-                }
-
-                if ( ! aDefaultInput )
-                {
-                        tcsetattr(STDIN_FILENO, TCSANOW, & oldt);
-                        printf("\n");
-                }
-                printf("\n");
-                if ( strchr(lBuff,27) )
-                {
-                        free(lDialogString);
-                        return NULL ;
-                }
-                if ( lBuff[strlen( lBuff ) -1] == '\n' )
-                {
-                        lBuff[strlen( lBuff ) -1] = '\0' ;
-                }
-                free(lDialogString);
-                return lBuff ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-        lIn = popen( lDialogString , "r" );
-        if ( ! lIn  )
-        {
-                if ( fileExists("/tmp/tinyfd.txt") )
-                {
-                        wipefile("/tmp/tinyfd.txt");
-                        remove("/tmp/tinyfd.txt");
-                }
-                if ( fileExists("/tmp/tinyfd0.txt") )
-                {
-                        wipefile("/tmp/tinyfd0.txt");
-                        remove("/tmp/tinyfd0.txt");
-                }
-                free(lDialogString);
-                return NULL ;
-        }
-        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-        {}
-
-        pclose( lIn ) ;
-
-        if ( fileExists("/tmp/tinyfd.txt") )
-        {
-                wipefile("/tmp/tinyfd.txt");
-                remove("/tmp/tinyfd.txt");
-        }
-        if ( fileExists("/tmp/tinyfd0.txt") )
-        {
-                wipefile("/tmp/tinyfd0.txt");
-                remove("/tmp/tinyfd0.txt");
-        }
-
-        /* printf( "len Buff: %lu\n" , strlen(lBuff) ) ; */
-        /* printf( "lBuff0: %s\n" , lBuff ) ; */
-        if ( lBuff[strlen( lBuff ) -1] == '\n' )
-        {
-                lBuff[strlen( lBuff ) -1] = '\0' ;
-        }
-        /* printf( "lBuff1: %s len: %lu \n" , lBuff , strlen(lBuff) ) ; */
-        if ( lWasBasicXterm )
-        {
-                if ( strstr(lBuff,"^[") ) /* esc was pressed */
-                {
-                        free(lDialogString);
-                        return NULL ;
-                }
-        }
-
-        lResult =  strncmp( lBuff , "1" , 1) ? 0 : 1 ;
-        /* printf( "lResult: %d \n" , lResult ) ; */
-        if ( ! lResult )
-        {
-                free(lDialogString);
-                return NULL ;
-        }
-        /* printf( "lBuff+1: %s\n" , lBuff+1 ) ; */
-        free(lDialogString);
-
-        return lBuff+1 ;
-}
-
-
-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 or {"*.jpg","*.png"} */
-    char const * const aSingleFilterDescription ) /* NULL or "image files" */
-{
-
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        char lString [MAX_PATH_OR_CMD] ;
-        int i ;
-        int lWasGraphicDialog = 0 ;
-        int lWasXterm = 0 ;
-        char const * p ;
-        FILE * lIn ;
-        lBuff[0]='\0';
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return (char const *)1;}
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"Finder\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e 'POSIX path of ( choose file name " );
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "with prompt \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-                getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                if ( strlen(lString) )
-                {
-                        strcat(lDialogString, "default location \"") ;
-                        strcat(lDialogString, lString ) ;
-                        strcat(lDialogString , "\" " ) ;
-                }
-                getLastName( lString , aDefaultPathAndFile ) ;
-                if ( strlen(lString) )
-                {
-                        strcat(lDialogString, "default name \"") ;
-                        strcat(lDialogString, lString ) ;
-                        strcat(lDialogString , "\" " ) ;
-                }
-                strcat( lDialogString , ")' " ) ;
-                strcat(lDialogString, "-e 'on error number -128' " ) ;
-                strcat(lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return (char const *)1;}
-
-                strcpy( lDialogString , "kdialog" ) ;
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-                strcat( lDialogString , " --getsavefilename " ) ;
-
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        if ( aDefaultPathAndFile[0] != '/' )
-                        {
-                                strcat(lDialogString, "$PWD/") ;
-                        }
-                        strcat(lDialogString, "\"") ;
-                        strcat(lDialogString, aDefaultPathAndFile ) ;
-                        strcat(lDialogString , "\"" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString, "$PWD/") ;
-                }
-
-                if ( aNumOfFilterPatterns > 0 )
-                {
-                        strcat(lDialogString , " \"" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , " | " ) ;
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "\"" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char const *)1;}
-                        strcpy( lDialogString , "zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat(lDialogString, " --file-selection --save --confirm-overwrite" ) ;
-
-                if ( aTitle && strlen(aTitle) ) 
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) ) 
-                {
-                        strcat(lDialogString, " --filename=\"") ;
-                        strcat(lDialogString, aDefaultPathAndFile) ;
-                        strcat(lDialogString, "\"") ;
-                }               
-                if ( aNumOfFilterPatterns > 0 )
-                {
-                        strcat( lDialogString , " --file-filter='" ) ;
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                                strcat( lDialogString , " | " ) ;
-                        }
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                        strcat( lDialogString , "' --file-filter='All files | *'" ) ;
-                }
-        }
-        else if ( !xdialogPresent() && tkinter2Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ))
-                {
-                strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-            strcat( lDialogString ,
-" -S -c \"import Tkinter,tkFileDialog;root=Tkinter.Tk();root.withdraw();");
-
-        if ( isDarwin( ) )
-        {
-                        strcat( lDialogString ,
-"import os;os.system('''/usr/bin/osascript -e 'tell app \\\"Finder\\\" to set\
- frontmost of process \\\"Python\\\" to true' ''');");
-                }
-
-                strcat( lDialogString , "print tkFileDialog.asksaveasfilename(");
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-            if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-            {
-                        getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialdir='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                        getLastName( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialfile='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                }
-            if ( ( aNumOfFilterPatterns > 1 )
-                  || ( (aNumOfFilterPatterns == 1) /* test because poor osx behaviour */
-                        && ( aFilterPatterns[0][strlen(aFilterPatterns[0])-1] != '*' ) ) )
-            {
-                        strcat(lDialogString , "filetypes=(" ) ;
-                        strcat( lDialogString , "('" ) ;
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "',(" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , "'" ) ;
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , "'," ) ;
-                        }
-                        strcat( lDialogString , "))," ) ;
-                        strcat( lDialogString , "('All files','*'))" ) ;
-            }
-                strcat( lDialogString , ")\"" ) ;
-        }
-        else if ( !xdialogPresent() && tkinter3Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter;from tkinter import filedialog;root=tkinter.Tk();root.withdraw();");
-                strcat( lDialogString , "print( filedialog.asksaveasfilename(");
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialdir='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                        getLastName( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialfile='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                }
-                if ( ( aNumOfFilterPatterns > 1 )
-                        || ( (aNumOfFilterPatterns == 1) /* test because poor osx behaviour */
-                        && ( aFilterPatterns[0][strlen(aFilterPatterns[0])-1] != '*' ) ) )
-                {
-                        strcat(lDialogString , "filetypes=(" ) ;
-                        strcat( lDialogString , "('" ) ;
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "',(" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , "'" ) ;
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , "'," ) ;
-                        }
-                        strcat( lDialogString , "))," ) ;
-                        strcat( lDialogString , "('All files','*'))" ) ;
-                }
-                strcat( lDialogString , "))\"" ) ;
-        }
-        else if ( xdialogPresent() || dialogName() )
-        {
-                if ( xdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return (char const *)1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(Xdialog " ) ;
-                }
-                else if ( isTerminalRunning( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        strcpy( lDialogString , "(dialog " ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        lWasXterm = 1 ;
-                        strcpy( lDialogString , terminalName() ) ;
-                        strcat( lDialogString , "'(" ) ;
-                        strcat( lDialogString , dialogName() ) ;
-                        strcat( lDialogString , " " ) ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "--title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( !xdialogPresent() && !gdialogPresent() )
-                {
-                        strcat(lDialogString, "--backtitle \"") ;
-                        strcat(lDialogString,
-                                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                strcat( lDialogString , "--fselect \"" ) ;
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        if ( ! strchr(aDefaultPathAndFile, '/') )
-                        {
-                                strcat(lDialogString, "./") ;
-                        }
-                        strcat(lDialogString, aDefaultPathAndFile) ;
-                }
-                else if ( ! isTerminalRunning( ) && !lWasGraphicDialog )
-                {
-                        strcat(lDialogString, getenv("HOME")) ;
-                        strcat(lDialogString, "/") ;
-                }
-                else
-                {
-                        strcat(lDialogString, "./") ;
-                }
-
-                if ( lWasGraphicDialog )
-                {
-                        strcat(lDialogString, "\" 0 60 ) 2>&1 ") ;
-                }
-                else
-                {
-                        strcat(lDialogString, "\" 0 60  >/dev/tty) ") ;
-                        if ( lWasXterm )
-                        {
-                          strcat( lDialogString ,
-                                "2>/tmp/tinyfd.txt';cat /tmp/tinyfd.txt;rm /tmp/tinyfd.txt");
-                        }
-                        else
-                        {
-                                strcat(lDialogString, "2>&1 ; clear >/dev/tty") ;
-                        }
-                }
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){return tinyfd_inputBox(aTitle,NULL,NULL);}
-                p = tinyfd_inputBox( aTitle , "Save file" , "" ) ;
-                getPathWithoutFinalSlash( lString , p ) ;
-                if ( strlen( lString ) && ! dirExists( lString ) )
-                {
-                        return NULL ;
-                }
-                getLastName(lString,p);
-                if ( ! strlen(lString) )
-                {
-                        return NULL;
-                }
-                return p ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-    if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-    {
-        return NULL ;
-    }
-    while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-    {}
-    pclose( lIn ) ;
-    if ( lBuff[strlen( lBuff ) -1] == '\n' )
-    {
-        lBuff[strlen( lBuff ) -1] = '\0' ;
-    }
-        /* printf( "lBuff: %s\n" , lBuff ) ; */
-        if ( ! strlen(lBuff) )
-        {
-                return NULL;
-        }
-    getPathWithoutFinalSlash( lString , lBuff ) ;
-    if ( strlen( lString ) && ! dirExists( lString ) )
-    {
-        return NULL ;
-    }
-        getLastName(lString,lBuff);
-        if ( ! filenameValid(lString) )
-        {
-                return NULL;
-        }
-    return lBuff ;
-}
-
-                 
-/* in case of multiple files, the separator is | */
-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 or {"*.jpg","*.png"} */
-    char const * const aSingleFilterDescription , /* NULL or "image files" */
-    int const aAllowMultipleSelects ) /* 0 or 1 */
-{
-        static char lBuff [MAX_MULTIPLE_FILES*MAX_PATH_OR_CMD] ;
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        char lString [MAX_PATH_OR_CMD] ;
-        int i ;
-        FILE * lIn ;
-        char * p ;
-        char const * p2 ;
-        int lWasKdialog = 0 ;
-        int lWasGraphicDialog = 0 ;
-        int lWasXterm = 0 ;
-        lBuff[0]='\0';
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return (char const *)1;}
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e '" );
-    if ( ! aAllowMultipleSelects )
-    {
-
-
-                        strcat( lDialogString , "POSIX path of ( " );
-                }
-                else
-                {
-                        strcat( lDialogString , "set mylist to " );
-                }
-                strcat( lDialogString , "choose file " );
-            if ( aTitle && strlen(aTitle) )
-            {
-                        strcat(lDialogString, "with prompt \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-            }
-                getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                if ( strlen(lString) )
-                {
-                        strcat(lDialogString, "default location \"") ;
-                        strcat(lDialogString, lString ) ;
-                        strcat(lDialogString , "\" " ) ;
-                }
-                if ( aNumOfFilterPatterns > 0 )
-                {
-                        strcat(lDialogString , "of type {\"" );
-                        strcat( lDialogString , aFilterPatterns [0] + 2 ) ;
-                        strcat( lDialogString , "\"" ) ;
-                        for ( i = 1 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , ",\"" ) ;
-                                strcat( lDialogString , aFilterPatterns [i] + 2) ;
-                                strcat( lDialogString , "\"" ) ;
-                        }
-                        strcat( lDialogString , "} " ) ;
-                }
-                if ( aAllowMultipleSelects )
-                {
-                        strcat( lDialogString , "multiple selections allowed true ' " ) ;
-                        strcat( lDialogString ,
-                                        "-e 'set mystring to POSIX path of item 1 of mylist' " );
-                        strcat( lDialogString ,
-                                        "-e 'repeat with  i from 2 to the count of mylist' " );
-                        strcat( lDialogString , "-e 'set mystring to mystring & \"|\"' " );
-                        strcat( lDialogString ,
-                        "-e 'set mystring to mystring & POSIX path of item i of mylist' " );
-                        strcat( lDialogString , "-e 'end repeat' " );
-                        strcat( lDialogString , "-e 'mystring' " );
-                }
-                else
-                {
-                        strcat( lDialogString , ")' " ) ;
-                }
-                strcat(lDialogString, "-e 'on error number -128' " ) ;
-                strcat(lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return (char const *)1;}
-                lWasKdialog = 1 ;
-
-                strcpy( lDialogString , "kdialog" ) ;
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-                strcat( lDialogString , " --getopenfilename " ) ;
-
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        if ( aDefaultPathAndFile[0] != '/' )
-                        {
-                                strcat(lDialogString, "$PWD/") ;
-                        }
-                        strcat(lDialogString, "\"") ;
-                        strcat(lDialogString, aDefaultPathAndFile ) ;
-                        strcat(lDialogString , "\"" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString, "$PWD/") ;
-                }
-
-                if ( aNumOfFilterPatterns > 0 )
-                {
-                        strcat(lDialogString , " \"" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , " | " ) ;
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "\"" ) ;
-                }
-                if ( aAllowMultipleSelects )
-                {
-                        strcat( lDialogString , " --multiple --separate-output" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char const *)1;}
-                        strcpy( lDialogString , "zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat( lDialogString , " --file-selection" ) ;
-
-                if ( aAllowMultipleSelects )
-                {
-                        strcat( lDialogString , " --multiple" ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        strcat(lDialogString, " --filename=\"") ;
-                        strcat(lDialogString, aDefaultPathAndFile) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aNumOfFilterPatterns > 0 )
-                {
-                        strcat( lDialogString , " --file-filter='" ) ; 
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                                strcat( lDialogString , " | " ) ;
-                        }
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , " " ) ;
-                        }
-                        strcat( lDialogString , "' --file-filter='All files | *'" ) ;
-                }
-        }
-        else if ( tkinter2Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ) )
-                {
-                strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-                strcat( lDialogString ,
-" -S -c \"import Tkinter,tkFileDialog;root=Tkinter.Tk();root.withdraw();");
-
-        if ( isDarwin( ) )
-        {
-                        strcat( lDialogString ,
-"import os;os.system('''/usr/bin/osascript -e 'tell app \\\"Finder\\\" to set \
-frontmost of process \\\"Python\\\" to true' ''');");
-                }
-                strcat( lDialogString , "lFiles=tkFileDialog.askopenfilename(");
-    if ( aAllowMultipleSelects )
-    {
-                        strcat( lDialogString , "multiple=1," ) ;
-    }
-    if ( aTitle && strlen(aTitle) )
-    {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-    }
-    if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-    {
-                        getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialdir='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                        getLastName( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialfile='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                }
-                if ( ( aNumOfFilterPatterns > 1 )
-                        || ( ( aNumOfFilterPatterns == 1 ) /*test because poor osx behaviour*/
-                                && ( aFilterPatterns[0][strlen(aFilterPatterns[0])-1] != '*' ) ) )
-                {
-                        strcat(lDialogString , "filetypes=(" ) ;
-                        strcat( lDialogString , "('" ) ;
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "',(" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , "'" ) ;
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , "'," ) ;
-                        }
-                        strcat( lDialogString , "))," ) ;
-                        strcat( lDialogString , "('All files','*'))" ) ;
-                }
-                strcat( lDialogString , ");\
-\nif not isinstance(lFiles, tuple):\n\tprint lFiles\nelse:\
-\n\tlFilesString=''\n\tfor lFile in lFiles:\n\t\tlFilesString+=str(lFile)+'|'\
-\n\tprint lFilesString[:-1]\n\"" ) ;
-        }
-        else if ( tkinter3Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter;from tkinter import filedialog;root=tkinter.Tk();root.withdraw();");
-                strcat( lDialogString , "lFiles=filedialog.askopenfilename(");
-                if ( aAllowMultipleSelects )
-                {
-                        strcat( lDialogString , "multiple=1," ) ;
-                }
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        getPathWithoutFinalSlash( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialdir='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                        getLastName( lString , aDefaultPathAndFile ) ;
-                        if ( strlen(lString) )
-                        {
-                                strcat(lDialogString, "initialfile='") ;
-                                strcat(lDialogString, lString ) ;
-                                strcat(lDialogString , "'," ) ;
-                        }
-                }
-                if ( ( aNumOfFilterPatterns > 1 )
-                        || ( ( aNumOfFilterPatterns == 1 ) /*test because poor osx behaviour*/
-                        && ( aFilterPatterns[0][strlen(aFilterPatterns[0])-1] != '*' ) ) )
-                {
-                        strcat(lDialogString , "filetypes=(" ) ;
-                        strcat( lDialogString , "('" ) ;
-                        if ( aSingleFilterDescription && strlen(aSingleFilterDescription) )
-                        {
-                                strcat( lDialogString , aSingleFilterDescription ) ;
-                        }
-                        strcat( lDialogString , "',(" ) ;
-                        for ( i = 0 ; i < aNumOfFilterPatterns ; i ++ )
-                        {
-                                strcat( lDialogString , "'" ) ;
-                                strcat( lDialogString , aFilterPatterns [i] ) ;
-                                strcat( lDialogString , "'," ) ;
-                        }
-                        strcat( lDialogString , "))," ) ;
-                        strcat( lDialogString , "('All files','*'))" ) ;
-                }
-                strcat( lDialogString , ");\
-\nif not isinstance(lFiles, tuple):\n\tprint(lFiles)\nelse:\
-\n\tlFilesString=''\n\tfor lFile in lFiles:\n\t\tlFilesString+=str(lFile)+'|'\
-\n\tprint(lFilesString[:-1])\n\"" ) ;
-        }
-        else if ( xdialogPresent() || dialogName() )
-        {
-                if ( xdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return (char const *)1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(Xdialog " ) ;
-                }
-                else if ( isTerminalRunning( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        strcpy( lDialogString , "(dialog " ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        lWasXterm = 1 ;
-                        strcpy( lDialogString , terminalName() ) ;
-                        strcat( lDialogString , "'(" ) ;
-                        strcat( lDialogString , dialogName() ) ;
-                        strcat( lDialogString , " " ) ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "--title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( !xdialogPresent() && !gdialogPresent() )
-                {
-                        strcat(lDialogString, "--backtitle \"") ;
-                        strcat(lDialogString,
-                                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                strcat( lDialogString , "--fselect \"" ) ;
-                if ( aDefaultPathAndFile && strlen(aDefaultPathAndFile) )
-                {
-                        if ( ! strchr(aDefaultPathAndFile, '/') )
-                        {
-                                strcat(lDialogString, "./") ;
-                        }
-                        strcat(lDialogString, aDefaultPathAndFile) ;
-                }
-                else if ( ! isTerminalRunning( ) && !lWasGraphicDialog )
-                {
-                        strcat(lDialogString, getenv("HOME")) ;
-                        strcat(lDialogString, "/");
-                }
-                else
-                {
-                        strcat(lDialogString, "./") ;
-                }
-
-                if ( lWasGraphicDialog )
-                {
-                        strcat(lDialogString, "\" 0 60 ) 2>&1 ") ;
-                }
-                else
-                {
-                        strcat(lDialogString, "\" 0 60  >/dev/tty) ") ;
-                        if ( lWasXterm )
-                        {
-                                strcat( lDialogString ,
-                                "2>/tmp/tinyfd.txt';cat /tmp/tinyfd.txt;rm /tmp/tinyfd.txt");
-                        }
-                        else
-                        {
-                                strcat(lDialogString, "2>&1 ; clear >/dev/tty") ;
-                        }
-                }
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){return tinyfd_inputBox(aTitle,NULL,NULL);}
-                p2 = tinyfd_inputBox(aTitle, "Open file","");
-                if ( ! fileExists(p2) )
-                {
-                        return NULL ;
-                }
-                return p2 ;
-        }
-
-    if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-    if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-    {
-        return NULL ;
-    }
-        lBuff[0]='\0';
-        p=lBuff;
-        while ( fgets( p , sizeof( lBuff ) , lIn ) != NULL )
-        {
-                p += strlen( p );
-        }
-    pclose( lIn ) ;
-    if ( lBuff[strlen( lBuff ) -1] == '\n' )
-    {
-        lBuff[strlen( lBuff ) -1] = '\0' ;
-    }
-    /* printf( "lBuff: %s\n" , lBuff ) ; */
-        if ( lWasKdialog && aAllowMultipleSelects )
-        {
-                p = lBuff ;
-                while ( ( p = strchr( p , '\n' ) ) )
-                        * p = '|' ;
-        }
-        /* printf( "lBuff2: %s\n" , lBuff ) ; */
-        if ( ! strlen( lBuff )  )
-        {
-                return NULL;
-        }
-        if ( aAllowMultipleSelects && strchr(lBuff, '|') )
-        {
-                p2 = ensureFilesExist( lBuff , lBuff ) ;
-        }
-        else if ( fileExists(lBuff) )
-        {
-                p2 = lBuff ;
-        }
-        else
-        {
-                return NULL ;
-        }
-        /* printf( "lBuff3: %s\n" , p2 ) ; */
-
-        return p2 ;
-}
-
-
-char const * tinyfd_selectFolderDialog(
-        char const * const aTitle , /* "" */
-        char const * const aDefaultPath ) /* "" */
-{
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        char const * p ;
-        int lWasGraphicDialog = 0 ;
-        int lWasXterm = 0 ;
-        lBuff[0]='\0';
-
-        if ( osascriptPresent( ))
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return (char const *)1;}
-                strcpy( lDialogString , "osascript ");
-                if ( ! osx9orBetter() ) strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                strcat( lDialogString , " -e 'try' -e 'POSIX path of ( choose folder ");
-                if ( aTitle && strlen(aTitle) )
-                {
-                strcat(lDialogString, "with prompt \"") ;
-                strcat(lDialogString, aTitle) ;
-                strcat(lDialogString, "\" ") ;
-                }
-                if ( aDefaultPath && strlen(aDefaultPath) )
-                {
-                        strcat(lDialogString, "default location \"") ;
-                        strcat(lDialogString, aDefaultPath ) ;
-                        strcat(lDialogString , "\" " ) ;
-                }
-                strcat( lDialogString , ")' " ) ;
-                strcat(lDialogString, "-e 'on error number -128' " ) ;
-                strcat(lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return (char const *)1;}
-                strcpy( lDialogString , "kdialog" ) ;
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-                strcat( lDialogString , " --getexistingdirectory " ) ;
-
-                if ( aDefaultPath && strlen(aDefaultPath) )
-                {
-                        if ( aDefaultPath[0] != '/' )
-                        {
-                                strcat(lDialogString, "$PWD/") ;
-                        }
-                        strcat(lDialogString, "\"") ;
-                        strcat(lDialogString, aDefaultPath ) ;
-                        strcat(lDialogString , "\"" ) ;
-                }
-                else
-                {
-                        strcat(lDialogString, "$PWD/") ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char const *)1;}
-                        strcpy( lDialogString , "zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat( lDialogString , " --file-selection --directory" ) ;
-
-                if ( aTitle && strlen(aTitle) ) 
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-                if ( aDefaultPath && strlen(aDefaultPath) ) 
-                {
-                        strcat(lDialogString, " --filename=\"") ;
-                        strcat(lDialogString, aDefaultPath) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( !xdialogPresent() && tkinter2Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ) )
-                {
-                strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-        strcat( lDialogString ,
-" -S -c \"import Tkinter,tkFileDialog;root=Tkinter.Tk();root.withdraw();");
-
-        if ( isDarwin( ) )
-        {
-                        strcat( lDialogString ,
-"import os;os.system('''/usr/bin/osascript -e 'tell app \\\"Finder\\\" to set \
-frontmost of process \\\"Python\\\" to true' ''');");
-                }
-
-                strcat( lDialogString , "print tkFileDialog.askdirectory(");
-            if ( aTitle && strlen(aTitle) )
-            {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-            }
-        if ( aDefaultPath && strlen(aDefaultPath) )
-        {
-                                strcat(lDialogString, "initialdir='") ;
-                                strcat(lDialogString, aDefaultPath ) ;
-                                strcat(lDialogString , "'" ) ;
-                }
-                strcat( lDialogString , ")\"" ) ;
-        }
-        else if ( !xdialogPresent() && tkinter3Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter;from tkinter import filedialog;root=tkinter.Tk();root.withdraw();");
-                strcat( lDialogString , "print( filedialog.askdirectory(");
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "',") ;
-                }
-                if ( aDefaultPath && strlen(aDefaultPath) )
-                {
-                        strcat(lDialogString, "initialdir='") ;
-                        strcat(lDialogString, aDefaultPath ) ;
-                        strcat(lDialogString , "'" ) ;
-                }
-                strcat( lDialogString , ") )\"" ) ;
-        }
-        else if ( xdialogPresent() || dialogName() )
-        {
-                if ( xdialogPresent( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return (char const *)1;}
-                        lWasGraphicDialog = 1 ;
-                        strcpy( lDialogString , "(Xdialog " ) ;
-                }
-                else if ( isTerminalRunning( ) )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        strcpy( lDialogString , "(dialog " ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"dialog");return (char const *)0;}
-                        lWasXterm = 1 ;
-                        strcpy( lDialogString , terminalName() ) ;
-                        strcat( lDialogString , "'(" ) ;
-                        strcat( lDialogString , dialogName() ) ;
-                        strcat( lDialogString , " " ) ;
-                }
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, "--title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                if ( !xdialogPresent() && !gdialogPresent() )
-                {
-                        strcat(lDialogString, "--backtitle \"") ;
-                        strcat(lDialogString,
-                                "tab: focus | /: populate | spacebar: fill text field | ok: TEXT FIELD ONLY") ;
-                        strcat(lDialogString, "\" ") ;
-                }
-
-                strcat( lDialogString , "--dselect \"" ) ;
-                if ( aDefaultPath && strlen(aDefaultPath) )
-                {
-                        strcat(lDialogString, aDefaultPath) ;
-                        ensureFinalSlash(lDialogString);
-                }
-                else if ( ! isTerminalRunning( ) && !lWasGraphicDialog )
-                {
-                        strcat(lDialogString, getenv("HOME")) ;
-                        strcat(lDialogString, "/");
-                }
-                else
-                {
-                        strcat(lDialogString, "./") ;
-                }
-                
-                if ( lWasGraphicDialog )
-                {
-                        strcat(lDialogString, "\" 0 60 ) 2>&1 ") ;
-                }
-                else
-                {
-                        strcat(lDialogString, "\" 0 60  >/dev/tty) ") ;
-                        if ( lWasXterm )
-                        {
-                          strcat( lDialogString ,
-                                "2>/tmp/tinyfd.txt';cat /tmp/tinyfd.txt;rm /tmp/tinyfd.txt");
-                        }
-                        else
-                        {
-                                strcat(lDialogString, "2>&1 ; clear >/dev/tty") ;
-                        }
-                }
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){return tinyfd_inputBox(aTitle,NULL,NULL);}
-                p = tinyfd_inputBox(aTitle, "Select folder","");
-                if ( !p || ! strlen( p ) || ! dirExists( p ) )
-                {
-                        return NULL ;
-                }
-                return p ;
-        }
-    if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-    if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-    {
-        return NULL ;
-    }
-        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-        {}
-        pclose( lIn ) ;
-    if ( lBuff[strlen( lBuff ) -1] == '\n' )
-    {
-        lBuff[strlen( lBuff ) -1] = '\0' ;
-    }
-        /* printf( "lBuff: %s\n" , lBuff ) ; */
-        if ( ! strlen( lBuff ) || ! dirExists( lBuff ) )
-        {
-                return NULL ;
-        }
-        return lBuff ;
-}
-
-
-/* returns the hexcolor as a string "#FF0000" */
-/* aoResultRGB also contains the result */
-/* aDefaultRGB is used only if aDefaultHexRGB is NULL */
-/* aDefaultRGB and aoResultRGB can be the same array */
-char const * tinyfd_colorChooser(
-        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 } */
-{
-        static char lBuff [128] ;
-        char lTmp [128] ;
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        char lDefaultHexRGB[8];
-        char * lpDefaultHexRGB;
-        unsigned char lDefaultRGB[3];
-        char const * p;
-        FILE * lIn ;
-        int i ;
-        int lWasZenity3 = 0 ;
-        int lWasOsascript = 0 ;
-        int lWasXdialog = 0 ;
-        lBuff[0]='\0';
-
-        if ( aDefaultHexRGB )
-        {
-                Hex2RGB( aDefaultHexRGB , lDefaultRGB ) ;
-                lpDefaultHexRGB = (char *) aDefaultHexRGB ;
-        }
-        else
-        {
-                lDefaultRGB[0]=aDefaultRGB[0];
-                lDefaultRGB[1]=aDefaultRGB[1];
-                lDefaultRGB[2]=aDefaultRGB[2];
-                RGB2Hex( aDefaultRGB , lDefaultHexRGB ) ;
-                lpDefaultHexRGB = (char *) lDefaultHexRGB ;
-        }
-
-        if ( osascriptPresent( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"applescript");return (char const *)1;}
-                lWasOsascript = 1 ;
-                strcpy( lDialogString , "osascript");
-                                
-                if ( ! osx9orBetter() ) 
-                {
-                        strcat( lDialogString , " -e 'tell application \"System Events\"' -e 'Activate'");
-                        strcat( lDialogString , " -e 'try' -e 'set mycolor to choose color default color {");
-                }
-                else 
-                {
-                        strcat( lDialogString ,
-" -e 'try' -e 'tell app (path to frontmost application as Unicode text) \
-to set mycolor to choose color default color {");
-                }
-
-                sprintf(lTmp, "%d", 256 * lDefaultRGB[0] ) ;
-                strcat(lDialogString, lTmp ) ;
-                strcat(lDialogString, "," ) ;
-                sprintf(lTmp, "%d", 256 * lDefaultRGB[1] ) ;
-                strcat(lDialogString, lTmp ) ;
-                strcat(lDialogString, "," ) ;
-                sprintf(lTmp, "%d", 256 * lDefaultRGB[2] ) ;
-                strcat(lDialogString, lTmp ) ;
-                strcat(lDialogString, "}' " ) ;
-                strcat( lDialogString ,
-"-e 'set mystring to ((item 1 of mycolor) div 256 as integer) as string' " );
-                strcat( lDialogString ,
-"-e 'repeat with i from 2 to the count of mycolor' " );
-                strcat( lDialogString ,
-"-e 'set mystring to mystring & \" \" & ((item i of mycolor) div 256 as integer) as string' " );
-                strcat( lDialogString , "-e 'end repeat' " );
-                strcat( lDialogString , "-e 'mystring' ");
-                strcat(lDialogString, "-e 'on error number -128' " ) ;
-                strcat(lDialogString, "-e 'end try'") ;
-                if ( ! osx9orBetter() ) strcat( lDialogString, " -e 'end tell'") ;
-        }
-        else if ( kdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"kdialog");return (char const *)1;}
-                strcpy( lDialogString , "kdialog" ) ;
-                if ( kdialogPresent() == 2 )
-                {
-                        strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                }
-                sprintf( lDialogString + strlen(lDialogString) , " --getcolor --default '%s'" , lpDefaultHexRGB ) ;
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title \"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( zenity3Present() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                lWasZenity3 = 1 ;
-                if ( zenity3Present() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity3");return (char const *)1;}
-                        strcpy( lDialogString , "zenity" );
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat( lDialogString , " --color-selection --show-palette" ) ;
-                sprintf( lDialogString + strlen(lDialogString), " --color=%s" , lpDefaultHexRGB ) ;
-
-                if ( aTitle && strlen(aTitle) ) 
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-        }
-        else if ( xdialogPresent() )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"xdialog");return (char const *)1;}
-                lWasXdialog = 1 ;
-                strcpy( lDialogString , "Xdialog --colorsel \"" ) ;
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, aTitle) ;
-                }
-                strcat(lDialogString, "\" 0 60 ") ;
-                sprintf(lTmp,"%hhu %hhu %hhu",lDefaultRGB[0],
-                        lDefaultRGB[1],lDefaultRGB[2]);
-                strcat(lDialogString, lTmp) ;
-                strcat(lDialogString, " 2>&1");
-        }
-        else if ( tkinter2Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python2-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython2Name ) ;
-                if ( ! isTerminalRunning( ) && isDarwin( ) )
-                {
-                strcat( lDialogString , " -i" ) ;  /* for osx without console */
-                }
-                
-                strcat( lDialogString ,
-" -S -c \"import Tkinter,tkColorChooser;root=Tkinter.Tk();root.withdraw();");
-
-                if ( isDarwin( ) )
-                {
-                        strcat( lDialogString ,
-"import os;os.system('''osascript -e 'tell app \\\"Finder\\\" to set \
-frontmost of process \\\"Python\\\" to true' ''');");
-                }
-
-                strcat( lDialogString , "res=tkColorChooser.askcolor(color='" ) ;
-                strcat(lDialogString, lpDefaultHexRGB ) ;
-                strcat(lDialogString, "'") ;
-
-
-            if ( aTitle && strlen(aTitle) )
-            {
-                        strcat(lDialogString, ",title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "'") ;
-            }
-                strcat( lDialogString , ");\
-\nif res[1] is not None:\n\tprint res[1]\"" ) ;
-        }
-        else if ( tkinter3Present( ) )
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
-                strcpy( lDialogString , gPython3Name ) ;
-                strcat( lDialogString ,
-                        " -S -c \"import tkinter;from tkinter import colorchooser;root=tkinter.Tk();root.withdraw();");
-                strcat( lDialogString , "res=colorchooser.askcolor(color='" ) ;
-                strcat(lDialogString, lpDefaultHexRGB ) ;
-                strcat(lDialogString, "'") ;
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, ",title='") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "'") ;
-                }
-                strcat( lDialogString , ");\
-\nif res[1] is not None:\n\tprint(res[1])\"" ) ;
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){return tinyfd_inputBox(aTitle,NULL,NULL);}
-                p = tinyfd_inputBox(aTitle,
-                                "Enter hex rgb color (i.e. #f5ca20)",lpDefaultHexRGB);
-                if ( !p || (strlen(p) != 7) || (p[0] != '#') )
-                {
-                        return NULL ;
-                }
-                for ( i = 1 ; i < 7 ; i ++ )
-                {
-                        if ( ! isxdigit( p[i] ) )
-                        {
-                                return NULL ;
-                        }
-                }
-                Hex2RGB(p,aoResultRGB);
-                return p ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-        if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-        {
-                return NULL ;
-    }
-        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-        {
-        }
-        pclose( lIn ) ;
-    if ( ! strlen( lBuff ) )
-    {
-        return NULL ;
-    }
-        /* printf( "len Buff: %lu\n" , strlen(lBuff) ) ; */
-        /* printf( "lBuff0: %s\n" , lBuff ) ; */
-    if ( lBuff[strlen( lBuff ) -1] == '\n' )
-    {
-        lBuff[strlen( lBuff ) -1] = '\0' ;
-    }
-    
-        if ( lWasZenity3 )
-    {
-                if ( lBuff[0] == '#' )
-                {
-                        if ( strlen(lBuff)>7 )
-                        {
-                                lBuff[3]=lBuff[5];
-                                lBuff[4]=lBuff[6];
-                                lBuff[5]=lBuff[9];
-                                lBuff[6]=lBuff[10];
-                                lBuff[7]='\0';
-                        }
-                Hex2RGB(lBuff,aoResultRGB);
-                }
-                else if ( lBuff[3] == '(' ) {
-                        sscanf(lBuff,"rgb(%hhu,%hhu,%hhu",
-                                        & aoResultRGB[0], & aoResultRGB[1],& aoResultRGB[2]);
-                        RGB2Hex(aoResultRGB,lBuff);
-                }
-                else if ( lBuff[4] == '(' ) {
-                        sscanf(lBuff,"rgba(%hhu,%hhu,%hhu",
-                                        & aoResultRGB[0], & aoResultRGB[1],& aoResultRGB[2]);
-                        RGB2Hex(aoResultRGB,lBuff);
-                }
-    }
-    else if ( lWasOsascript || lWasXdialog )
-    {
-                /* printf( "lBuff: %s\n" , lBuff ) ; */
-        sscanf(lBuff,"%hhu %hhu %hhu",
-                           & aoResultRGB[0], & aoResultRGB[1],& aoResultRGB[2]);
-        RGB2Hex(aoResultRGB,lBuff);
-    }
-    else
-    {
-                Hex2RGB(lBuff,aoResultRGB);
-        }
-        /* printf("%d %d %d\n", aoResultRGB[0],aoResultRGB[1],aoResultRGB[2]); */
-        /* printf( "lBuff: %s\n" , lBuff ) ; */
-        return lBuff ;
-}
-
-
-/* not cross platform - zenity only */
-/* contributed by Attila Dusnoki */
-char const * tinyfd_arrayDialog(
-        char const * const aTitle , /* "" */
-        int const aNumOfColumns , /* 2 */
-        char const * const * const aColumns , /* {"Column 1","Column 2"} */
-        int const aNumOfRows , /* 2 */
-        char const * const * const aCells ) 
-                /* {"Row1 Col1","Row1 Col2","Row2 Col1","Row2 Col2"} */
-{
-        static char lBuff [MAX_PATH_OR_CMD] ;
-        char lDialogString [MAX_PATH_OR_CMD] ;
-        FILE * lIn ;
-        int i ;
-
-        lBuff[0]='\0';
-
-        if ( zenityPresent() || matedialogPresent() || shellementaryPresent() || qarmaPresent() )
-        {
-                if ( zenityPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"zenity");return (char const *)1;}
-                        strcpy( lDialogString , "zenity" ) ;
-                        if ( (zenity3Present() >= 4) && !getenv("SSH_TTY") )
-                        {
-                                strcat( lDialogString, " --attach=$(sleep .01;xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                else if ( matedialogPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"matedialog");return (char const *)1;}
-                        strcpy( lDialogString , "matedialog" ) ;
-                }
-                else if ( shellementaryPresent() )
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"shellementary");return (char const *)1;}
-                        strcpy( lDialogString , "shellementary" ) ;
-                }
-                else
-                {
-                        if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"qarma");return (char const *)1;}
-                        strcpy( lDialogString , "qarma" ) ;
-                        if ( !getenv("SSH_TTY") )
-                        {
-                                strcat(lDialogString, " --attach=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)"); /* contribution: Paul Rouget */
-                        }
-                }
-                strcat( lDialogString , " --list --print-column=ALL" ) ;
-
-                if ( aTitle && strlen(aTitle) )
-                {
-                        strcat(lDialogString, " --title=\"") ;
-                        strcat(lDialogString, aTitle) ;
-                        strcat(lDialogString, "\"") ;
-                }
-
-                if ( aColumns && (aNumOfColumns > 0) )
-                {
-                        for ( i = 0 ; i < aNumOfColumns ; i ++ )
-                        {
-                                strcat( lDialogString , " --column=\"" ) ;
-                                strcat( lDialogString , aColumns [i] ) ;
-                                strcat( lDialogString , "\"" ) ;
-                        }
-                }
-
-                if ( aCells && (aNumOfRows > 0) )
-                {
-                        strcat( lDialogString , " " ) ;
-                        for ( i = 0 ; i < aNumOfRows*aNumOfColumns ; i ++ )
-                        {
-                                strcat( lDialogString , "\"" ) ;
-                                strcat( lDialogString , aCells [i] ) ;
-                                strcat( lDialogString , "\" " ) ;
-                        }
-                }
-        }
-        else
-        {
-                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"");return (char const *)0;}
-                return NULL ;
-        }
-
-        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
-        if ( ! ( lIn = popen( lDialogString , "r" ) ) )
-        {
-                return NULL ;
-        }
-        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
-        {}
-        pclose( lIn ) ;
-        if ( lBuff[strlen( lBuff ) -1] == '\n' )
-        {
-                lBuff[strlen( lBuff ) -1] = '\0' ;
-        }
-        /* printf( "lBuff: %s\n" , lBuff ) ; */
-        if ( ! strlen( lBuff ) )
-        {
-                return NULL ;
-        }
-        return lBuff ;
-}
-#endif /* _WIN32 */
-
-
-/*
-int main( int argc , char * argv[] )
-{
-char const * lTmp;
-char const * lTheSaveFileName;
-char const * lTheOpenFileName;
-char const * lTheSelectFolderName;
-char const * lTheHexColor;
-char const * lWillBeGraphicMode;
-unsigned char lRgbColor[3];
-FILE * lIn;
-char lBuffer[1024];
-char lString[1024];
-char const * lFilterPatterns[2] = { "*.txt", "*.text" };
-
-tinyfd_verbose = argc - 1;
-
-lWillBeGraphicMode = tinyfd_inputBox("tinyfd_query", NULL, NULL);
-
-strcpy(lBuffer, "v");
-strcat(lBuffer, tinyfd_version);
-if (lWillBeGraphicMode)
-{
-    strcat(lBuffer, "\ngraphic mode: ");
-}
-else
-{
-    strcat(lBuffer, "\nconsole mode: ");
-}
-strcat(lBuffer, tinyfd_response);
-strcat(lBuffer, "\n");
-strcat(lBuffer, tinyfd_needs+78);
-strcpy(lString, "tinyfiledialogs");
-tinyfd_messageBox(lString, lBuffer, "ok", "info", 0);
-
-tinyfd_notifyPopup("the title", "the message\n\tfrom outer-space", "info");
-
-if (lWillBeGraphicMode && !tinyfd_forceConsole)
-{
-        tinyfd_forceConsole = ! tinyfd_messageBox("Hello World",
-                "graphic dialogs [yes] / console mode [no]?",
-                "yesno", "question", 1);
-}
-
-lTmp = tinyfd_inputBox(
-        "a password box", "your password will be revealed", NULL);
-
-if (!lTmp) return 1;
-
-strcpy(lString, lTmp);
-
-lTheSaveFileName = tinyfd_saveFileDialog(
-        "let us save this password",
-        "passwordFile.txt",
-        2,
-        lFilterPatterns,
-        NULL);
-
-if (!lTheSaveFileName)
-{
-        tinyfd_messageBox(
-                "Error",
-                "Save file name is NULL",
-                "ok",
-                "error",
-                1);
-        return 1;
-}
-
-lIn = fopen(lTheSaveFileName, "w");
-if (!lIn)
-{
-        tinyfd_messageBox(
-                "Error",
-                "Can not open this file in write mode",
-                "ok",
-                "error",
-                1);
-        return 1;
-}
-fputs(lString, lIn);
-fclose(lIn);
-
-lTheOpenFileName = tinyfd_openFileDialog(
-        "let us read the password back",
-        "",
-        2,
-        lFilterPatterns,
-        NULL,
-        0);
-
-if (!lTheOpenFileName)
-{
-        tinyfd_messageBox(
-                "Error",
-                "Open file name is NULL",
-                "ok",
-                "error",
-                1);
-        return 1;
-}
-
-lIn = fopen(lTheOpenFileName, "r");
-
-if (!lIn)
-{
-        tinyfd_messageBox(
-                "Error",
-                "Can not open this file in read mode",
-                "ok",
-                "error",
-                1);
-        return(1);
-}
-lBuffer[0] = '\0';
-fgets(lBuffer, sizeof(lBuffer), lIn);
-fclose(lIn);
-
-tinyfd_messageBox("your password is",
-        lBuffer, "ok", "info", 1);
-
-lTheSelectFolderName = tinyfd_selectFolderDialog(
-        "let us just select a directory", NULL);
-
-if (!lTheSelectFolderName)
-{
-        tinyfd_messageBox(
-                "Error",
-                "Select folder name is NULL",
-                "ok",
-                "error",
-                1);
-        return 1;
-}
-
-tinyfd_messageBox("The selected folder is",
-        lTheSelectFolderName, "ok", "info", 1);
-
-lTheHexColor = tinyfd_colorChooser(
-        "choose a nice color",
-        "#FF0077",
-        lRgbColor,
-        lRgbColor);
-
-if (!lTheHexColor)
-{
-        tinyfd_messageBox(
-                "Error",
-                "hexcolor is NULL",
-                "ok",
-                "error",
-                1);
-        return 1;
-}
-
-tinyfd_messageBox("The selected hexcolor is",
-        lTheHexColor, "ok", "info", 1);
-
-        tinyfd_beep();
-
-        return 0;
-}
-*/
-
-#ifdef _MSC_VER
-#pragma warning(default:4996)
-#pragma warning(default:4100)
-#pragma warning(default:4706)
-#endif

+ 0 - 325
tools/rGuiStyler/src/external/tinyfiledialogs.h

@@ -1,325 +0,0 @@
-/*_________
- /         \ tinyfiledialogs.h v3.3.1 [Feb 16, 2018] zlib licence
- |tiny file| Unique header file created [November 9, 2014]
- | dialogs | Copyright (c) 2014 - 2018 Guillaume Vareille http://ysengrin.com
- \____  ___/ http://tinyfiledialogs.sourceforge.net
-      \|     git clone http://git.code.sf.net/p/tinyfiledialogs/code tinyfd
-		 ____________________________________________
-		|                                            |
-		|   email: tinyfiledialogs at ysengrin.com   |
-		|____________________________________________|
-     ________________________________________________________________________
-    |                                                                        |
-    | the windows only wchar_t UTF-16 prototypes are at the end of this file |
-    |________________________________________________________________________|
-
-Please 1) let me know If you are using it on exotic hardware / OS / compiler
-       2) leave a 1-word review on Sourceforge.
-	   3) upvote my stackoverflow answer/advert 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
-
-a C file + a header (add them to your C or C++ project) with 8 functions:
-- beep
-- notify popup
-- message & question
-- input & password
-- save file
-- open file(s)
-- select folder
-- color picker
-
-Complements OpenGL GLFW GLUT GLUI VTK SFML TGUI SDL Ogre Unity3d ION OpenCV
-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
-
-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 & C++98 compliant: tested with C & C++ compilers
-VisualStudio MinGW-gcc GCC Clang TinyCC OpenWatcom-v2 BorlandC SunCC
-on Windows Mac Linux Bsd Solaris Minix Raspbian
-using Gnome Kde Enlightenment Mate Cinnamon Unity Lxde Lxqt Xfce
-WindowMaker IceWm Cde Jds OpenBox Awesome Jwm Xdm
-
-Bindings for LUA and C# dll, Haskell
-Included in LWJGL(java), Rust, Allegrobasic
-
-- License -
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-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
-in a product, an acknowledgment in the product documentation would be
-appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef TINYFILEDIALOGS_H
-#define TINYFILEDIALOGS_H
-
-/* #define TINYFD_NOLIB */
-/* On windows, define TINYFD_NOLIB here
-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 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:
-}
-*/
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-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 */
-extern char tinyfd_needs[]; /* info about requirements */
-
-#ifdef _WIN32
-/* for UTF-16 use the functions at the end of this files */
-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 */
-/* 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,
-  if the package dialog (and a console is present) or dialog.exe is installed.
-  on windows it only make sense for console applications */
-
-extern char tinyfd_response[1024];
-/* if you pass "tinyfd_query" as aTitle,
-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 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 */
-
-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 , /* 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 , /* 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 , /* 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" */
-	int const aAllowMultipleSelects ) ; /* 0 or 1 */
-		/* in case of multiple files, the separator is | */
-		/* returns NULL on cancel */
-
-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 , /* NULL or "" */
-	char const * const aDefaultHexRGB , /* NULL or "#FF0000" */
-	unsigned char const aDefaultRGB[3] , /* { 0 , 255 , 255 } */
-	unsigned char aoResultRGB[3] ) ; /* { 0 , 0 , 0 } */
-		/* returns the hexcolor as a string "#FF0000" */
-		/* aoResultRGB also contains the result */
-		/* aDefaultRGB is used only if aDefaultHexRGB is NULL */
-		/* aDefaultRGB and aoResultRGB can be the same array */
-		/* returns NULL on cancel */
-
-
-/************ NOT CROSS PLATFORM SECTION STARTS HERE ************************/
-#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 , /* 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 L"" */
-	wchar_t const * const aDefaultPathAndFile, /* NULL or L"" */
-	int const aNumOfFilterPatterns, /* 0 */
-	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, /* NULL or L"" */
-	wchar_t const * const aDefaultPathAndFile, /* NULL or L"" */
-	int const aNumOfFilterPatterns , /* 0 */
-	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, /* 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, /* 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 L"#FF0000" */
-		/* aoResultRGB also contains the result */
-		/* aDefaultRGB is used only if aDefaultHexRGB is NULL */
-		/* aDefaultRGB and aoResultRGB can be the same array */
-		/* returns NULL on cancel */
-
-
-#endif /*TINYFD_NOLIB*/
-#else /*_WIN32*/
-
-/* unix zenity only */
-char const * tinyfd_arrayDialog(
-	char const * const aTitle , /* NULL or "" */
-	int const aNumOfColumns , /* 2 */
-	char const * const * const aColumns, /* {"Column 1","Column 2"} */
-	int const aNumOfRows, /* 2 */
-	char const * const * const aCells);
-		/* {"Row1 Col1","Row1 Col2","Row2 Col1","Row2 Col2"} */
-
-#endif /*_WIN32 */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* TINYFILEDIALOGS_H */
-
-/*
-- This is not for android nor ios.
-- The code is pure C, perfectly compatible with C++.
-- the windows only wchar_t (utf-16) prototypes are in the header file
-- windows is fully supported from XP to 10 (maybe even older versions)
-- C# & LUA via dll, see example files
-- OSX supported from 10.4 to latest (maybe even older versions)
-- Avoid using " and ' in titles and messages.
-- There's one file filter only, it may contain several patterns.
-- 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 one of the following:
-  applescript, kdialog, zenity, matedialog, shellementary, qarma,
-  python (2 or 3)/tkinter/python-dbus (optional), Xdialog
-  or dialog (opens terminal if running without console) or xterm.
-- 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.
-- If nothing is found, it switches to basic console input,
-  it opens a console if needed (requires xterm + bash).
-- Use windows separators on windows and unix separators on unix.
-- String memory is preallocated statically for all the returned values.
-- File and path names are tested before return, they are 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.
-- 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.
-- On osx, the package dialog can be installed via
-  http://macappstore.org/dialog or http://macports.org
-- On windows, for enhanced console mode,
-  dialog.exe should be copied somewhere on your executable path.
-  It can be found at the bottom of the following page:
-  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.
-- MinGW needs gcc >= v4.9 otherwise some headers are incomplete.
-- The Hello World (and a bit more) is on the sourceforge site:
-*/

文件差異過大導致無法顯示
+ 0 - 0
tools/rGuiStyler/src/raygui_style_table_light.h


+ 0 - 895
tools/rGuiStyler/src/rguistyler.c

@@ -1,895 +0,0 @@
-/*******************************************************************************************
-*
-*   rGuiStyler v2.1 - raygui Style Editor
-*
-*   Compile this program using:
-*       gcc -o rguistyler.exe rguistyler.c external/tinyfiledialogs.c -I..\.. \ 
-*       -lraylib -lopengl32 -lgdi32 -lcomdlg32 -lole32 -std=c99 -Wall
-*
-*   CONTRIBUTORS:
-*       Ramon Santamaria:   Supervision, review, redesign, update and maintenance...
-*       Adria Arranz:       Reimplementation and new features v2.0 (2018)
-*       Jordi Jorba:        Reimplementation and new features v2.0 (2018)
-*       Sergio Martinez:    Implementation and testing v1.0 (2015..2017)
-*
-*   LICENSE: zlib/libpng
-*
-*   Copyright (c) 2014-2018 raylib technologies (@raysan5)
-*
-*   This software is provided "as-is", without any express or implied warranty. In no event
-*   will the authors be held liable for any damages arising from the use of this software.
-*
-*   Permission is granted to anyone to use this software for any purpose, including commercial
-*   applications, and to alter it and redistribute it freely, subject to the following restrictions:
-*
-*     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 in a product, an acknowledgment
-*     in the product documentation would be appreciated but is not required.
-*
-*     2. Altered source versions must be plainly marked as such, and must not be misrepresented
-*     as being the original software.
-*
-*     3. This notice may not be removed or altered from any source distribution.
-*
-**********************************************************************************************/
-
-#include "raylib.h"
-
-#define RAYGUI_IMPLEMENTATION
-#define RAYGUI_STYLE_SAVE_LOAD
-#define RAYGUI_STYLE_DEFAULT_LIGHT      1
-#include "raygui.h"
-
-#include "external/tinyfiledialogs.h"   // Open/Save file dialogs
-
-#include "raygui_style_table_light.h"   // Image table data
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#if defined(_WIN32)
-    #include <direct.h>
-    #define GetCurrentDir _getcwd
-#else
-    #include <unistd.h>
-    #define GetCurrentDir getcwd
-#endif
-
-//----------------------------------------------------------------------------------
-// Defines and Macros
-//----------------------------------------------------------------------------------
-#define NUM_CONTROLS        13
-#define NUM_STYLES_A         4
-#define NUM_STYLES_B         8
-#define NUM_STYLES_C        14
-
-//----------------------------------------------------------------------------------
-// Types and Structures Definition
-//----------------------------------------------------------------------------------
-typedef enum { 
-    DEFAULT = 0, 
-    LABELBUTTON,
-    BUTTON, 
-    //IMAGEBUTTON,
-    TOGGLE, 
-    //TOGGLEGROUP, 
-    SLIDER, 
-    SLIDERBAR, 
-    PROGRESSBAR, 
-    CHECKBOX, 
-    SPINNER, 
-    COMBOBOX, 
-    TEXTBOX,
-    LISTVIEW,
-    COLORPICKER
-} GuiControlType;
-
-typedef enum { 
-    BORDER_COLOR_NORMAL = 0,
-    BASE_COLOR_NORMAL,
-    TEXT_COLOR_NORMAL,
-    BORDER_COLOR_FOCUSED,
-    BASE_COLOR_FOCUSED,
-    TEXT_COLOR_FOCUSED,
-    BORDER_COLOR_PRESSED,
-    BASE_COLOR_PRESSED,
-    TEXT_COLOR_PRESSED,
-    BORDER_COLOR_DISABLED,
-    BASE_COLOR_DISABLED,
-    TEXT_COLOR_DISABLED
-} GuiStyleType;
-
-//----------------------------------------------------------------------------------
-// Global Variables Definition
-//----------------------------------------------------------------------------------
-static char currentPath[256];       // Path to current working folder
-
-static int styleBackup[NUM_PROPERTIES] = { 0 };  
-
-// NOTE: Some styles are shared by multiple controls:
-// LABEL = LABELBUTTON
-// BUTTON = IMAGEBUTTON
-// TOGGLE = TOGGLEGROUP
-const char *guiControlText[NUM_CONTROLS] = { 
-    "DEFAULT", 
-    "LABELBUTTON",
-    "BUTTON", 
-    //"IMAGEBUTTON",
-    "TOGGLE", 
-    //"TOGGLEGROUP", 
-    "SLIDER", 
-    "SLIDERBAR", 
-    "PROGRESSBAR", 
-    "CHECKBOX", 
-    "SPINNER", 
-    "COMBOBOX", 
-    "TEXTBOX",
-    "LISTVIEW",
-    "COLORPICKER"
-};
-
-// NOTE: Used by controls: Label, LabelButton
-const char *guiStylesTextA[NUM_STYLES_A] = { 
-    "TEXT_COLOR_NORMAL",
-    "TEXT_COLOR_FOCUSED",
-    "TEXT_COLOR_PRESSED",
-    "TEXT_COLOR_DISABLED"
-};
-
-//Note: Used by controls: Slider, SliderBar, ProgressBar, Checkbox, ColorPicker
-const char *guiStylesTextB[NUM_STYLES_B] = { 
-    "BORDER_COLOR_NORMAL",
-    "BASE_COLOR_NORMAL",
-    "BORDER_COLOR_FOCUSED",
-    "BASE_COLOR_FOCUSED",
-    "BORDER_COLOR_PRESSED",
-    "BASE_COLOR_PRESSED",
-    "BORDER_COLOR_DISABLED",
-    "BASE_COLOR_DISABLED",
-};
-
-//Note: Used by controls: Button, ImageButton, Toggle, ToggleGroup, Spinner, ComboBox, TextBox, ListView
-const char *guiStylesTextC[NUM_STYLES_C] = { 
-    "BORDER_COLOR_NORMAL",
-    "BASE_COLOR_NORMAL",
-    "TEXT_COLOR_NORMAL",
-    "BORDER_COLOR_FOCUSED",
-    "BASE_COLOR_FOCUSED",
-    "TEXT_COLOR_FOCUSED",
-    "BORDER_COLOR_PRESSED",
-    "BASE_COLOR_PRESSED",
-    "TEXT_COLOR_PRESSED",
-    "BORDER_COLOR_DISABLED",
-    "BASE_COLOR_DISABLED",
-    "TEXT_COLOR_DISABLED",
-    "BACKGROUND_COLOR",
-    "LINES_COLOR"
-};
-
-const char *guiPropertyText[NUM_PROPERTIES] = {
-    "DEFAULT_BACKGROUND_COLOR",
-    "DEFAULT_LINES_COLOR",
-    "DEFAULT_TEXT_FONT",
-    "DEFAULT_TEXT_SIZE",
-    "DEFAULT_BORDER_WIDTH",
-    "DEFAULT_BORDER_COLOR_NORMAL",
-    "DEFAULT_BASE_COLOR_NORMAL",
-    "DEFAULT_TEXT_COLOR_NORMAL",
-    "DEFAULT_BORDER_COLOR_FOCUSED",
-    "DEFAULT_BASE_COLOR_FOCUSED",
-    "DEFAULT_TEXT_COLOR_FOCUSED",
-    "DEFAULT_BORDER_COLOR_PRESSED",
-    "DEFAULT_BASE_COLOR_PRESSED",
-    "DEFAULT_TEXT_COLOR_PRESSED",
-    "DEFAULT_BORDER_COLOR_DISABLED",
-    "DEFAULT_BASE_COLOR_DISABLED",
-    "DEFAULT_TEXT_COLOR_DISABLED",
-    "LABEL_TEXT_COLOR_NORMAL",
-    "LABEL_TEXT_COLOR_FOCUSED",
-    "LABEL_TEXT_COLOR_PRESSED",
-    "LABEL_TEXT_COLOR_DISABLED",
-    "BUTTON_BORDER_WIDTH",
-    "BUTTON_BORDER_COLOR_NORMAL",
-    "BUTTON_BASE_COLOR_NORMAL",
-    "BUTTON_TEXT_COLOR_NORMAL",
-    "BUTTON_BORDER_COLOR_FOCUSED",
-    "BUTTON_BASE_COLOR_FOCUSED",
-    "BUTTON_TEXT_COLOR_FOCUSED",
-    "BUTTON_BORDER_COLOR_PRESSED",
-    "BUTTON_BASE_COLOR_PRESSED",
-    "BUTTON_TEXT_COLOR_PRESSED",
-    "BUTTON_BORDER_COLOR_DISABLED",
-    "BUTTON_BASE_COLOR_DISABLED",
-    "BUTTON_TEXT_COLOR_DISABLED",
-    "TOGGLE_BORDER_WIDTH",
-    "TOGGLE_BORDER_COLOR_NORMAL",
-    "TOGGLE_BASE_COLOR_NORMAL",
-    "TOGGLE_TEXT_COLOR_NORMAL",
-    "TOGGLE_BORDER_COLOR_FOCUSED",
-    "TOGGLE_BASE_COLOR_FOCUSED",
-    "TOGGLE_TEXT_COLOR_FOCUSED",
-    "TOGGLE_BORDER_COLOR_PRESSED",
-    "TOGGLE_BASE_COLOR_PRESSED",
-    "TOGGLE_TEXT_COLOR_PRESSED",
-    "TOGGLE_BORDER_COLOR_DISABLED",
-    "TOGGLE_BASE_COLOR_DISABLED",
-    "TOGGLE_TEXT_COLOR_DISABLED",
-    "TOGGLEGROUP_PADDING",
-    "SLIDER_BORDER_WIDTH",
-    "SLIDER_SLIDER_WIDTH",
-    "SLIDER_BORDER_COLOR_NORMAL",
-    "SLIDER_BASE_COLOR_NORMAL",
-    "SLIDER_BORDER_COLOR_FOCUSED",
-    "SLIDER_BASE_COLOR_FOCUSED",
-    "SLIDER_BORDER_COLOR_PRESSED",
-    "SLIDER_BASE_COLOR_PRESSED",
-    "SLIDER_BORDER_COLOR_DISABLED",
-    "SLIDER_BASE_COLOR_DISABLED",
-    "SLIDERBAR_INNER_PADDING",
-    "SLIDERBAR_BORDER_WIDTH",
-    "SLIDERBAR_BORDER_COLOR_NORMAL",
-    "SLIDERBAR_BASE_COLOR_NORMAL",
-    "SLIDERBAR_BORDER_COLOR_FOCUSED",
-    "SLIDERBAR_BASE_COLOR_FOCUSED",
-    "SLIDERBAR_BORDER_COLOR_PRESSED",
-    "SLIDERBAR_BASE_COLOR_PRESSED",
-    "SLIDERBAR_BORDER_COLOR_DISABLED",
-    "SLIDERBAR_BASE_COLOR_DISABLED",
-    "PROGRESSBAR_INNER_PADDING",
-    "PROGRESSBAR_BORDER_WIDTH",
-    "PROGRESSBAR_BORDER_COLOR_NORMAL",
-    "PROGRESSBAR_BASE_COLOR_NORMAL",
-    "PROGRESSBAR_BORDER_COLOR_FOCUSED",
-    "PROGRESSBAR_BASE_COLOR_FOCUSED",
-    "PROGRESSBAR_BORDER_COLOR_PRESSED",
-    "PROGRESSBAR_BASE_COLOR_PRESSED",
-    "PROGRESSBAR_BORDER_COLOR_DISABLED",
-    "PROGRESSBAR_BASE_COLOR_DISABLED",
-    "SPINNER_BUTTON_PADDING",
-    "SPINNER_BUTTONS_WIDTH",
-    "SPINNER_BORDER_COLOR_NORMAL",
-    "SPINNER_BASE_COLOR_NORMAL",
-    "SPINNER_TEXT_COLOR_NORMAL",
-    "SPINNER_BORDER_COLOR_FOCUSED",
-    "SPINNER_BASE_COLOR_FOCUSED",
-    "SPINNER_TEXT_COLOR_FOCUSED",
-    "SPINNER_BORDER_COLOR_PRESSED",
-    "SPINNER_BASE_COLOR_PRESSED",
-    "SPINNER_TEXT_COLOR_PRESSED",
-    "SPINNER_BORDER_COLOR_DISABLED",
-    "SPINNER_BASE_COLOR_DISABLED",
-    "SPINNER_TEXT_COLOR_DISABLED",
-    "COMBOBOX_BORDER_WIDTH",
-    "COMBOBOX_BUTTON_PADDING",
-    "COMBOBOX_SELECTOR_WIDTH",
-    "COMBOBOX_BORDER_COLOR_NORMAL",
-    "COMBOBOX_BASE_COLOR_NORMAL",
-    "COMBOBOX_TEXT_COLOR_NORMAL",
-    "COMBOBOX_BORDER_COLOR_FOCUSED",
-    "COMBOBOX_BASE_COLOR_FOCUSED",
-    "COMBOBOX_TEXT_COLOR_FOCUSED",
-    "COMBOBOX_BORDER_COLOR_PRESSED",
-    "COMBOBOX_BASE_COLOR_PRESSED",
-    "COMBOBOX_TEXT_COLOR_PRESSED",
-    "COMBOBOX_BORDER_COLOR_DISABLED",
-    "COMBOBOX_BASE_COLOR_DISABLED",
-    "COMBOBOX_TEXT_COLOR_DISABLED",
-    "CHECKBOX_BORDER_WIDTH",
-    "CHECKBOX_INNER_PADDING",
-    "CHECKBOX_BORDER_COLOR_NORMAL",
-    "CHECKBOX_BASE_COLOR_NORMAL",
-    "CHECKBOX_BORDER_COLOR_FOCUSED",
-    "CHECKBOX_BASE_COLOR_FOCUSED",
-    "CHECKBOX_BORDER_COLOR_PRESSED",
-    "CHECKBOX_BASE_COLOR_PRESSED",
-    "CHECKBOX_BORDER_COLOR_DISABLED",
-    "CHECKBOX_BASE_COLOR_DISABLED",
-    "TEXTBOX_BORDER_WIDTH",
-    "TEXTBOX_BORDER_COLOR_NORMAL",
-    "TEXTBOX_BASE_COLOR_NORMAL",
-    "TEXTBOX_TEXT_COLOR_NORMAL",
-    "TEXTBOX_BORDER_COLOR_FOCUSED",
-    "TEXTBOX_BASE_COLOR_FOCUSED",
-    "TEXTBOX_TEXT_COLOR_FOCUSED",
-    "TEXTBOX_BORDER_COLOR_PRESSED",
-    "TEXTBOX_BASE_COLOR_PRESSED",
-    "TEXTBOX_TEXT_COLOR_PRESSED",
-    "TEXTBOX_BORDER_COLOR_DISABLED",
-    "TEXTBOX_BASE_COLOR_DISABLED",
-    "TEXTBOX_TEXT_COLOR_DISABLED",
-    "COLORPICKER_BARS_THICK",
-    "COLORPICKER_BARS_PADDING",
-    "COLORPICKER_BORDER_COLOR_NORMAL",
-    "COLORPICKER_BASE_COLOR_NORMAL",
-    "COLORPICKER_BORDER_COLOR_FOCUSED",
-    "COLORPICKER_BASE_COLOR_FOCUSED",
-    "COLORPICKER_BORDER_COLOR_PRESSED",
-    "COLORPICKER_BASE_COLOR_PRESSED",
-    "COLORPICKER_BORDER_COLOR_DISABLED",
-    "COLORPICKER_BASE_COLOR_DISABLED",
-    "LISTVIEW_ELEMENTS_HEIGHT",
-    "LISTVIEW_ELEMENTS_PADDING",
-    "LISTVIEW_BAR_WIDTH",       
-    "LISTVIEW_BORDER_COLOR_NORMAL",
-    "LISTVIEW_BASE_COLOR_NORMAL",
-    "LISTVIEW_TEXT_COLOR_NORMAL",
-    "LISTVIEW_BORDER_COLOR_FOCUSED",
-    "LISTVIEW_BASE_COLOR_FOCUSED",
-    "LISTVIEW_TEXT_COLOR_FOCUSED",
-    "LISTVIEW_BORDER_COLOR_PRESSED",
-    "LISTVIEW_BASE_COLOR_PRESSED",
-    "LISTVIEW_TEXT_COLOR_PRESSED",
-    "LISTVIEW_BORDER_COLOR_DISABLED",
-    "LISTVIEW_BASE_COLOR_DISABLED",
-    "LISTVIEW_TEXT_COLOR_DISABLED"
-};
-
-//----------------------------------------------------------------------------------
-// Module Functions Declaration
-//----------------------------------------------------------------------------------
-static void BtnLoadStyle(void);                                 // Button load style function
-static void BtnSaveStyle(const char *defaultName, bool binary); // Button save style function
-
-static void SaveStyleRGS(const char *fileName, bool binary);    // Save raygui style file (.rgs), text or binary
-static void GenImageControlsTable(void);                        // Generate controls table image
-
-static int GetGuiStylePropertyIndex(int control, int property);
-static Color ColorBox(Rectangle bounds, Color *colorPicker, Color color);
-
-static bool cancelSave = false;                                 // Used for saving styles
-
-//------------------------------------------------------------------------------------
-// Program main entry point
-//------------------------------------------------------------------------------------
-int main(int argc, char *argv[])
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    const int screenWidth = 720;
-    const int screenHeight = 640;
-    
-    //SetConfigFlags(FLAG_WINDOW_RESIZABLE);
-    InitWindow(screenWidth, screenHeight, "rGuiStyler v2.1 - raygui style editor");
-    SetExitKey(0);
-
-    int dropsCount = 0;
-    char **droppedFiles;
-    
-    int framesCounter = 0;
-    
-    int guiPosX = 336;
-    int guiPosY = 36;
-    Vector2 anchor01 = { 0, 0 };
-    Vector2 anchor02 = { 345, 40 };
-    bool saveColor = false;
-
-    int changedControlsCounter = 0;
-
-    // Define gui controls rectangles
-    Rectangle bounds[NUM_CONTROLS] = {
-        (Rectangle){ 0 },                                           // DEFAULT
-        (Rectangle){ anchor02.x + 85, anchor02.y + 35, 145, 25 },   // LABELBUTTON
-        (Rectangle){ anchor02.x + 195, anchor02.y + 240, 160, 30 }, // BUTTON
-        //(Rectangle){ guiPosX + 251, guiPosY + 5, 113, 32 },       // IMAGEBUTTON
-        (Rectangle){ anchor02.x + 10, anchor02.y + 70, 65, 30 },    // TOGGLE
-        //(Rectangle){ guiPosX + 98, guiPosY + 54, 65, 30 },        // TOGGLEGROUP
-        (Rectangle){ anchor02.x + 75, anchor02.y + 115, 250, 15 },  // SLIDER
-        (Rectangle){ anchor02.x + 75, anchor02.y + 140, 250, 15 },  // SLIDERBAR
-        (Rectangle){ anchor02.x + 10, anchor02.y + 165, 315, 15 },  // PROGRESSBAR    
-        (Rectangle){ anchor02.x + 270, anchor02.y + 38, 20, 20 },  // CHECKBOX
-        (Rectangle){ anchor02.x + 240, anchor02.y + 195, 115, 30 },  // SPINNER
-        (Rectangle){ anchor02.x + 10, anchor02.y + 195, 110, 30 },  // COMBOBOX
-        (Rectangle){ anchor02.x + 10, anchor02.y + 240, 180, 30 }, // TEXTBOX
-        (Rectangle){ anchor01.x + 10, anchor01.y + 40, 140, 560 },  // LISTVIEW
-        (Rectangle){ anchor02.x + 10, anchor02.y + 300, 240, 240 }  // COLORPICKER
-    };
-    
-    // Keep a backup for style    
-    memcpy(styleBackup, style, NUM_PROPERTIES*sizeof(int));
-    
-    // Gui controls data
-    //-----------------------------------------------------------
-    bool toggle = false;
-    bool toggleValue = false;
-    const char *toggleGuiText[4] = { "toggle", "group", "selection", "options" };
-    
-    int dropdownBoxActive = false;
-    const char *dropdownBoxList[3] = { "dropdown", "selection", "options" };
-
-    float sliderValue = 50.0f;
-    float sliderBarValue = 20.0f;
-    float progressValue = 0.0f;
-    
-    bool checked = false;
-    
-    bool selectingColor = false;
-    
-    int spinnerValue = 28;
-    
-    Vector2 mousePos = { 0 };
-
-    int comboNum = 2;
-    const char *comboText[2] = { "Text (.rgs)", "Binary (.rgs)" };
-    int comboActive = 0;
-    
-    char guiText[32] =  "custom_style.rgs";
-    
-    Color colorPickerValue = RED;
-    
-    int currentSelectedControl = -1;
-    int currentSelectedProperty = -1;
-    int previousSelectedProperty = -1;
-    int previousSelectedControl = -1;
-    
-    Color colorBoxValue[12];
-    
-    for (int i = 0; i < 12; i++) colorBoxValue[i] = GetColor(style[DEFAULT_BORDER_COLOR_NORMAL + i]);
-    
-    char colorHex[9] = "00000000";
- 
-    Vector3 colorHSV = { 0.0f, 0.0f, 0.0f };
-    
-    bool editFilenameText = false;
-    bool editHexColorText = false;
-    
-    // Exit variables
-    bool exitWindow = false;
-    bool closingWindowActive = false;
-
-    SetTargetFPS(60);
-    //------------------------------------------------------------
-    
-    // Main game loop
-    while (!exitWindow)    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        framesCounter++;
-        
-        if (WindowShouldClose()) exitWindow = true;
-        
-        // Check for changed controls 
-        if ((framesCounter%120) == 0) 
-        {
-            changedControlsCounter = 0;
-            for (int i = 0; i < NUM_PROPERTIES; i++) if (styleBackup[i] != style[i]) changedControlsCounter++;
-        }
-        
-        // Show save layout message window on ESC
-        if (IsKeyPressed(KEY_ESCAPE))
-        {
-            if (changedControlsCounter <= 0) exitWindow = true;
-            else
-            {
-                closingWindowActive = !closingWindowActive;
-            }
-        }
-        
-        // Get mouse position each frame
-        mousePos = GetMousePosition();
-        
-        // Export controls table image
-        if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_E)) GenImageControlsTable();
-
-        // Check for dropped files
-        if (IsFileDropped())
-        {
-            currentSelectedControl = -1;
-            droppedFiles = GetDroppedFiles(&dropsCount);
-            
-            if (IsFileExtension(droppedFiles[0], ".rgs")) GuiLoadStyle(droppedFiles[0]);
-            else if (IsFileExtension(droppedFiles[0], ".png")) GuiLoadStyleImage(droppedFiles[0]);
-            
-            for (int i = 0; i < 12; i++) colorBoxValue[i] = GetColor(style[DEFAULT_BORDER_COLOR_NORMAL + i]);
-            
-            ClearDroppedFiles();
-        }
-        
-        if ((previousSelectedControl != currentSelectedControl)) currentSelectedProperty = -1;
-        
-        if ((currentSelectedControl == 0) && (currentSelectedProperty != -1))
-        {
-            if ((previousSelectedProperty != currentSelectedProperty) || (previousSelectedControl != currentSelectedControl)) saveColor = false;
-            
-            if (!saveColor)
-            {
-                colorPickerValue = GetColor(style[GetGuiStylePropertyIndex(currentSelectedControl, currentSelectedProperty)]);
-                saveColor = true;
-            }
-
-            style[GetGuiStylePropertyIndex(currentSelectedControl, currentSelectedProperty)] = ColorToInt(colorPickerValue);
-            
-            // TODO: REVIEW: Resets all updated controls!
-            GuiUpdateStyleComplete();
-        }
-        else if ((currentSelectedControl != -1) && (currentSelectedProperty != -1))
-        {
-            if ((previousSelectedProperty != currentSelectedProperty) || (previousSelectedControl != currentSelectedControl)) saveColor = false;
-            
-            if (!saveColor)
-            {
-                colorPickerValue = GetColor(GuiGetStyleProperty(GetGuiStylePropertyIndex(currentSelectedControl, currentSelectedProperty)));
-                saveColor = true;
-            }
-
-            GuiSetStyleProperty(GetGuiStylePropertyIndex(currentSelectedControl, currentSelectedProperty), ColorToInt(colorPickerValue));
-        }
-        
-        previousSelectedProperty = currentSelectedProperty;
-        previousSelectedControl = currentSelectedControl;
-        
-        // Update progress bar automatically
-        progressValue += 0.0005f;
-        if (progressValue > 1.0f) progressValue = 0.0f;
-
-        // Get edited color from text box
-        if (!editHexColorText) sprintf(colorHex, "%02X%02X%02X%02X", colorPickerValue.r, colorPickerValue.g, colorPickerValue.b, colorPickerValue.a);
-        
-        colorHSV = ColorToHSV(colorPickerValue);
-        
-        if (CheckCollisionPointRec(mousePos, bounds[COLORPICKER]))
-        {
-            if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selectingColor = true;
-        }
-        
-        if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) 
-        {
-            selectingColor = false;
-            ShowCursor();
-        }
-        
-        if (selectingColor)
-        {
-            HideCursor();
-            if (mousePos.x < bounds[COLORPICKER].x) SetMousePosition((Vector2){ bounds[COLORPICKER].x, mousePos.y });
-            else if (mousePos.x > bounds[COLORPICKER].x + bounds[COLORPICKER].width) SetMousePosition((Vector2){ bounds[COLORPICKER].x + bounds[COLORPICKER].width, mousePos.y });
-            
-            if (mousePos.y < bounds[COLORPICKER].y) SetMousePosition((Vector2){ mousePos.x, bounds[COLORPICKER].y });
-            else if (mousePos.y > bounds[COLORPICKER].y + bounds[COLORPICKER].height) SetMousePosition((Vector2){ mousePos.x, bounds[COLORPICKER].y + bounds[COLORPICKER].height });
-
-        }
-        
-        // Control TextBox edit mode
-        if (CheckCollisionPointRec(GetMousePosition(), bounds[TEXTBOX]) && (IsKeyPressed(KEY_ENTER) || IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) editFilenameText = !editFilenameText;
-        if (CheckCollisionPointRec(GetMousePosition(), (Rectangle){ anchor02.x + 290, anchor02.y + 530, 65, 20 }) && (IsKeyPressed(KEY_ENTER) || IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) editHexColorText = !editHexColorText;
-        //----------------------------------------------------------------------------------
-        
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-        
-            ClearBackground(RAYWHITE);
-            
-            // Draw background rectangle
-            DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), GetColor(GuiGetStyleProperty(DEFAULT_BACKGROUND_COLOR)));
-            
-            // Draw info bar top
-            GuiStatusBar((Rectangle){ anchor01.x + 0, anchor01.y + 0, 720, 24 }, "CHOOSE CONTROL     >      CHOOSE PROPERTY STYLE      >                            STYLE VIEWER", 35);
-
-            // Draw status bar bottom
-            //GuiStatusBar((Rectangle){ anchor01.x + 334, anchor01.y + 616, 386, 24 }, FormatText("EDITION TIME: %02i:%02i:%02i", (framesCounter/60)/(60*60), ((framesCounter/60)/60)%60, (framesCounter/60)%60), 10);
-        #if defined(RAYGUI_STYLE_DEFAULT_LIGHT)
-            GuiStatusBar((Rectangle){ anchor01.x + 0, anchor01.y + 616, 150, 24 }, "BASE STYLE: LIGHT", 10);
-        #elif defined(RAYGUI_STYLE_DEFAULT_DARK)
-            GuiStatusBar((Rectangle){ anchor01.x + 0, anchor01.y + 616, 150, 24 }, "BASE STYLE: DARK", 10);
-        #else
-            GuiStatusBar((Rectangle){ anchor01.x + 0, anchor01.y + 616, 150, 24 }, "BASE STYLE: UNKNOWN", 10);
-        #endif
-            GuiStatusBar((Rectangle){ anchor01.x + 149, anchor01.y + 616, 186, 24 }, FormatText("CHANGED PROPERTIES: %03i", changedControlsCounter), 10);
-            GuiStatusBar((Rectangle){ anchor01.x + 334, anchor01.y + 616, 386, 24 }, "powered by raylib and raygui", 226);
-            
-            // Draw Gui controls
-            currentSelectedControl = GuiListView(bounds[LISTVIEW], guiControlText, NUM_CONTROLS, currentSelectedControl);
-            
-            if (currentSelectedControl < 0) GuiDisable();
-            
-            switch (currentSelectedControl)
-            {
-                case DEFAULT: currentSelectedProperty = GuiListView((Rectangle){ anchor01.x + 155, anchor01.y + 40, 180, 560 }, guiStylesTextC, NUM_STYLES_C, currentSelectedProperty); break;
-                case LABELBUTTON: currentSelectedProperty = GuiListView((Rectangle){ anchor01.x + 155, anchor01.y + 40, 180, 560 }, guiStylesTextA, NUM_STYLES_A, currentSelectedProperty); break;
-                case SLIDER: case SLIDERBAR: case PROGRESSBAR: case CHECKBOX:
-                case COLORPICKER: currentSelectedProperty = GuiListView((Rectangle){ anchor01.x + 155, anchor01.y + 40, 180, 560 }, guiStylesTextB, NUM_STYLES_B, currentSelectedProperty); break;
-                case BUTTON: case TOGGLE: case COMBOBOX: case TEXTBOX: case SPINNER: case LISTVIEW:
-                default: currentSelectedProperty = GuiListView((Rectangle){ anchor01.x + 155, anchor01.y + 40, 180, 560 }, guiStylesTextC, NUM_STYLES_C - 2, currentSelectedProperty); break;
-            }
-
-            GuiEnable();
-            
-            GuiWindowBox((Rectangle){ anchor02.x + 0, anchor02.y + 0, 365, 560 }, "Sample raygui controls");
-            
-            checked = GuiCheckBoxEx(bounds[CHECKBOX], checked, "DISABLED");
-
-            if (checked) GuiDisable();
-
-            GuiLabel((Rectangle){ anchor02.x + 11, anchor02.y + 35, 80, 25 }, "rGuiStyler");
-
-            if (GuiLabelButton(bounds[LABELBUTTON], "github.com/raysan5/raygui")) {}
-            
-            // Draw load style button
-            // if (GuiButton((Rectangle){ anchor02.x + 240, anchor02.y + 35, 115, 25 }, "Load Style")) 
-            // {  
-                // currentSelectedProperty = -1;
-                // BtnLoadStyle();
-                // for (int i = 0; i < 12; i++) colorBoxValue[i] = GetColor(style[DEFAULT_BORDER_COLOR_NORMAL + i]);
-            // }
-            
-            toggle = GuiToggleButton(bounds[TOGGLE], "toggle", toggle);
-            
-            toggleValue = GuiToggleGroup((Rectangle){ anchor02.x + 90, anchor02.y + 70, 262, 30 }, toggleGuiText, 4, toggleValue);
-            
-            sliderValue = GuiSliderEx(bounds[SLIDER], sliderValue, 0, 100, "SLIDER", true);
-            
-            sliderBarValue = GuiSliderBarEx(bounds[SLIDERBAR], sliderBarValue, 0, 100, "SLIDERBAR", true);
-            
-            progressValue = GuiProgressBarEx(bounds[PROGRESSBAR], progressValue, 0, 1, true);
-
-            spinnerValue = GuiSpinner(bounds[SPINNER], spinnerValue, 32, 24);
-            
-            comboActive = GuiComboBox(bounds[COMBOBOX], comboText, comboNum, comboActive);
-
-            GuiTextBox(bounds[TEXTBOX], guiText, spinnerValue, editFilenameText);
-            
-            GuiLine((Rectangle){ anchor02.x + 10, anchor02.y + 275, 345, 20 }, 1);
-            
-            // Draw labels for GuiColorPicker information (RGBA)
-            GuiGroupBox((Rectangle){ anchor02.x + 295, anchor02.y + 300, 60, 55 }, "RGBA");
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 305, 15, 20 }, FormatText("R:   %03i", colorPickerValue.r));
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 320, 15, 20 }, FormatText("G:   %03i", colorPickerValue.g));
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 335, 15, 20 }, FormatText("B:   %03i", colorPickerValue.b));
-           
-            // Draw labels for GuiColorPicker information (HSV)
-            GuiGroupBox((Rectangle){ anchor02.x + 295, anchor02.y + 365, 60, 55 }, "HSV");
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 370, 15, 20 }, FormatText("H:  %.0f", colorHSV.x));
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 385, 15, 20 }, FormatText("S:  %.0f%%", colorHSV.y*100));
-            GuiLabel((Rectangle){ anchor02.x + 305, anchor02.y + 400, 15, 20 }, FormatText("V:  %.0f%%", colorHSV.z*100));
-
-            if (GuiTextBox((Rectangle){ anchor02.x + 295, anchor02.y + 520, 60, 20 }, colorHex, 8, editHexColorText)) colorPickerValue = GetColor((int)strtoul(colorHex, NULL, 16));
-            
-            for (int i = 0; i < 12; i++) colorBoxValue[i] = ColorBox((Rectangle){ anchor02.x + 295 + 20*(i%3), anchor02.y + 430 + 20*(i/3), 20, 20 }, &colorPickerValue, colorBoxValue[i]);
-            DrawRectangleLinesEx((Rectangle){ anchor02.x + 295, anchor02.y + 430, 60, 80 }, 2, GetColor(style[DEFAULT_BORDER_COLOR_NORMAL]));
-
-            GuiEnable();
-            
-            colorPickerValue = GuiColorPicker(bounds[COLORPICKER], colorPickerValue);
-            
-            if (checked) GuiDisable();
-            
-            // Draw save style button
-            if (GuiButton(bounds[BUTTON], "Save Style")) BtnSaveStyle(guiText, comboActive);
-
-            dropdownBoxActive = GuiDropdownBox((Rectangle){ anchor02.x + 125, anchor02.y + 195, 110, 30 }, dropdownBoxList, 3, dropdownBoxActive);
-            
-            GuiEnable();
-            
-            // Draw selected control rectangles
-            if (currentSelectedControl >= 0) DrawRectangleLinesEx((Rectangle){ bounds[currentSelectedControl].x - 2, bounds[currentSelectedControl].y -2, bounds[currentSelectedControl].width + 4, bounds[currentSelectedControl].height + 4 }, 1, RED);
-            
-            // Draw ending message window (save)
-            if (closingWindowActive)
-            {
-                DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(WHITE, 0.7f));
-                closingWindowActive = !GuiWindowBox((Rectangle){ GetScreenWidth()/2 - 125, GetScreenHeight()/2 - 50, 250, 100 }, "Closing rGuiStyler");
-                
-                GuiLabel((Rectangle){ GetScreenWidth()/2 - 95, GetScreenHeight()/2 - 60, 200, 100 }, "Do you want to save before quitting?");
-                
-                if (GuiButton((Rectangle){ GetScreenWidth()/2 - 94, GetScreenHeight()/2 + 10, 85, 25 }, "Yes")) 
-                { 
-                    cancelSave = false;
-                    BtnSaveStyle(guiText, comboActive);
-                    if (cancelSave) exitWindow = true;
-                }
-                else if (GuiButton((Rectangle){ GetScreenWidth()/2 + 10, GetScreenHeight()/2 + 10, 85, 25 }, "No")) { exitWindow = true; }
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-    // De-Initialization
-    //--------------------------------------------------------------------------------------    
-    ClearDroppedFiles();        // Clear internal buffers
-    
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-    
-    return 0;
-}
-
-//--------------------------------------------------------------------------------------------
-// Module functions
-//--------------------------------------------------------------------------------------------
-
-// Button load style function
-static void BtnLoadStyle(void)
-{
-    char currentPath[256];
-
-    // Add sample file name to currentPath
-    strcpy(currentPath, GetWorkingDirectory());
-    strcat(currentPath, "\\\0");
-    
-    // Open file dialog
-    const char *filters[] = { "*.rgs" };
-    const char *fileName = tinyfd_openFileDialog("Load raygui style file", currentPath, 1, filters, "raygui Style Files (*.rgs)", 0);
-
-    if (fileName != NULL) GuiLoadStyle(fileName);
-}
-
-// Button save style function
-static void BtnSaveStyle(const char *defaultName, bool binary)
-{
-    char currentPathFile[256];
-
-    // Add sample file name to currentPath
-    strcpy(currentPathFile, GetWorkingDirectory());
-    strcat(currentPathFile, "\\style.rgs\0");
-    
-    // Save file dialog
-    const char *filters[] = { "*.rgs" };
-    const char *fileName = tinyfd_saveFileDialog("Save raygui style text file", currentPathFile, 1, filters, "raygui Style Files (*.rgs)");
-
-    if (fileName != NULL)
-    {
-        char outFileName[64] = { 0 };
-        strcpy(outFileName, fileName);
-        if (GetExtension(outFileName) == NULL) strcat(outFileName, ".rgs\0");     // No extension provided
-        if (outFileName != NULL) SaveStyleRGS(outFileName, binary);               // Save style file (text or binary)
-        cancelSave = true;
-    }
-}
-
-static int GetGuiStylePropertyIndex(int control, int property)
-{
-    int guiProp = -1;
-    
-    switch (control)
-    {
-        case DEFAULT: 
-        {
-            if (property == 12) guiProp = 0;
-            else if (property == 13) guiProp = 1;
-            else guiProp = DEFAULT_BORDER_COLOR_NORMAL + property; 
-            
-        } break;
-        case LABELBUTTON: guiProp = LABEL_TEXT_COLOR_NORMAL + property; break;
-        case BUTTON: guiProp = BUTTON_BORDER_COLOR_NORMAL + property; break;
-        //case IMAGEBUTTON: guiProp = BUTTON_BORDER_COLOR_NORMAL + property; break;
-        case TOGGLE: guiProp = TOGGLE_BORDER_COLOR_NORMAL + property; break; 
-        //case TOGGLEGROUP: guiProp = TOGGLE_BORDER_COLOR_NORMAL + property; break;
-        case SLIDER: guiProp = SLIDER_BORDER_COLOR_NORMAL + property; break;
-        case SLIDERBAR: guiProp = SLIDERBAR_BORDER_COLOR_NORMAL + property; break;
-        case PROGRESSBAR: guiProp = PROGRESSBAR_BORDER_COLOR_NORMAL + property; break;
-        case CHECKBOX: guiProp = CHECKBOX_BORDER_COLOR_NORMAL + property; break;
-        case SPINNER: guiProp = VALUEBOX_BORDER_COLOR_NORMAL + property; break;
-        case COMBOBOX: guiProp = COMBOBOX_BORDER_COLOR_NORMAL + property; break;
-        case TEXTBOX: guiProp = TEXTBOX_BORDER_COLOR_NORMAL + property; break;
-        case LISTVIEW: guiProp = LISTVIEW_BORDER_COLOR_NORMAL + property; break;
-        case COLORPICKER: guiProp = COLORPICKER_BORDER_COLOR_NORMAL + property; break;
-        default: break;
-    }
-
-    //guiProp = LABEL_TEXT_COLOR_NORMAL + property/3;                   // type A
-    //guiProp = SLIDER_BORDER_COLOR_NORMAL + property + property/2;     // type B
-    //guiProp = TOGGLE_BORDER_COLOR_NORMAL + property;                  // type C
-
-    return guiProp;
-}
-
-// Color box control to save color samples from color picker
-// NOTE: It requires colorPicker pointer for updating in case of selection
-static Color ColorBox(Rectangle bounds, Color *colorPicker, Color color)
-{
-    Vector2 mousePoint = GetMousePosition();
-    
-    // Update color box
-    if (CheckCollisionPointRec(mousePoint, bounds))
-    {
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) *colorPicker = (Color){ color.r, color.g, color.b, color.a };
-        else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) color = *colorPicker;
-    }
-    
-    // Draw color box
-    DrawRectangleRec(bounds, color);
-    DrawRectangleLinesEx(bounds, 1, GetColor(style[DEFAULT_BORDER_COLOR_NORMAL]));
-    
-    return color;
-}
-
-// Save raygui style file (.rgs), text or binary
-static void SaveStyleRGS(const char *fileName, bool binary)
-{
-    #define NUM_COLOR_PROPERTIES 130
-
-    if (binary)
-    {
-        #define RGS_FILE_VERSION_BINARY   200
-        
-        FILE *rgsFile = fopen(fileName, "wb");
-        
-        if (rgsFile != NULL)
-        {
-            // Write some header info (12 bytes)
-            // id: "RGS "            - 4 bytes
-            // version: 200          - 2 bytes
-            // reserved              - 2 bytes
-            // total properties      - 2 bytes
-            // changed properties    - 2 bytes
-            
-            char signature[5] = "RGS ";
-            short version = RGS_FILE_VERSION_BINARY;
-            short reserved = 0;
-            short numProperties = NUM_COLOR_PROPERTIES;
-            short changedProperties = 0;
-            
-            for (int i = 0; i < NUM_PROPERTIES; i++) if (styleBackup[i] != style[i]) changedProperties++;
-
-            fwrite(signature, 1, 4, rgsFile);
-            fwrite(&version, 1, sizeof(short), rgsFile);
-            fwrite(&reserved, 1, sizeof(short), rgsFile);
-            fwrite(&numProperties, 1, sizeof(short), rgsFile);
-            fwrite(&changedProperties, 1, sizeof(short), rgsFile);
-
-            short id = 0;
-            
-            for (int i = 0; i < NUM_PROPERTIES; i++)
-            {
-                if (styleBackup[i] != style[i])
-                {
-                    id = (short)i;
-                    
-                    fwrite(&id, 1, 2, rgsFile);
-                    fwrite(&style[i], 1, sizeof(int), rgsFile);
-                }
-            }
-            
-            fclose(rgsFile);
-        }
-    }
-    else
-    {
-        #define RGS_FILE_VERSION_TEXT   "2.0"
-        
-        int counter = 0;
-        FILE *rgsFile = fopen(fileName, "wt");
-        
-        if (rgsFile != NULL)
-        {
-            for (int i = 0; i < NUM_PROPERTIES; i++) if (styleBackup[i] != style[i]) counter++;
-            
-            // Write some description comments
-            fprintf(rgsFile, "#\n# rgst file (v%s) - raygui style text file generated using rGuiStyler\n#\n", RGS_FILE_VERSION_TEXT);
-            fprintf(rgsFile, "# Total number of properties:     %i\n", NUM_COLOR_PROPERTIES);
-            fprintf(rgsFile, "# Number of properties changed:   %i\n", counter);
-            fprintf(rgsFile, "# Required base default style:    %s\n#\n", "LIGHT");     // TODO: check base style
-
-            for (int i = 0; i < NUM_PROPERTIES; i++)
-            {
-                if (styleBackup[i] != style[i]) fprintf(rgsFile, "%03i 0x%08x // %s\n", i, style[i], guiPropertyText[i]);      
-            }
-
-            fclose(rgsFile);
-        }
-    }
-}
-
-// Generate controls table image
-// NOTE: We use embedded image raygui_style_table_light 
-static void GenImageControlsTable(void)
-{   
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BACKGROUND_COLOR]), GetColor(style[DEFAULT_BACKGROUND_COLOR]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_LINES_COLOR]), GetColor(style[DEFAULT_LINES_COLOR]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BORDER_COLOR_NORMAL]), GetColor(style[DEFAULT_BORDER_COLOR_NORMAL]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BASE_COLOR_NORMAL]), GetColor(style[DEFAULT_BASE_COLOR_NORMAL]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_TEXT_COLOR_NORMAL]), GetColor(style[DEFAULT_TEXT_COLOR_NORMAL]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BORDER_COLOR_FOCUSED]), GetColor(style[DEFAULT_BORDER_COLOR_FOCUSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BASE_COLOR_FOCUSED]), GetColor(style[DEFAULT_BASE_COLOR_FOCUSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_TEXT_COLOR_FOCUSED]), GetColor(style[DEFAULT_TEXT_COLOR_FOCUSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BORDER_COLOR_PRESSED]), GetColor(style[DEFAULT_BORDER_COLOR_PRESSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BASE_COLOR_PRESSED]), GetColor(style[DEFAULT_BASE_COLOR_PRESSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_TEXT_COLOR_PRESSED]), GetColor(style[DEFAULT_TEXT_COLOR_PRESSED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BORDER_COLOR_DISABLED]), GetColor(style[DEFAULT_BORDER_COLOR_DISABLED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_BASE_COLOR_DISABLED]), GetColor(style[DEFAULT_BASE_COLOR_DISABLED]));
-    ImageColorReplace(&image_raygui_style_table_light, GetColor(styleBackup[DEFAULT_TEXT_COLOR_DISABLED]), GetColor(style[DEFAULT_TEXT_COLOR_DISABLED]));
-    
-    ExportImage("raygui_style_table.png", image_raygui_style_table_light);
-}

二進制
tools/rGuiStyler/src/rguistyler.ico


+ 0 - 27
tools/rGuiStyler/src/rguistyler.rc

@@ -1,27 +0,0 @@
-GLFW_ICON ICON "rguistyler.ico"
-
-1 VERSIONINFO
-FILEVERSION     2,0,0,0
-PRODUCTVERSION  2,0,0,0
-BEGIN
-  BLOCK "StringFileInfo"
-  BEGIN
-	//BLOCK "080904E4" 	// English UK
-    BLOCK "040904E4"	// English US
-    BEGIN
-	  //VALUE "CompanyName", "My Company Name"
-      VALUE "FileDescription", "rGuiStyler - raygui styles editor"
-      VALUE "FileVersion", "2.0"
-      VALUE "InternalName", "rguistyler"
-      VALUE "LegalCopyright", "(c) 2018 raylib technologies (@raysan5)"
-      //VALUE "OriginalFilename", "raylib_app.exe"
-      VALUE "ProductName", "rGuiStyler"
-      VALUE "ProductVersion", "2.0"
-    END
-  END
-  BLOCK "VarFileInfo"
-  BEGIN
-	//VALUE "Translation", 0x809, 1252	// English UK
-    VALUE "Translation", 0x409, 1252	// English US
-  END
-END

二進制
tools/rGuiStyler/src/rguistyler_icon


二進制
tools/rGuiStyler/styles/candy.rgs


二進制
tools/rGuiStyler/styles/cherry.rgs


二進制
tools/rGuiStyler/styles/dark.rgs


+ 0 - 117
tools/rGuiStyler/styles/dev/ashes.rgs

@@ -1,117 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   110
-# Required base default style:    LIGHT
-#
-000 0x6c6b6bff // DEFAULT_BACKGROUND_COLOR
-001 0xc9c5c3ff // DEFAULT_LINES_COLOR
-005 0xfbf7f7ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0x878686ff // DEFAULT_BASE_COLOR_NORMAL
-007 0xeeededff // DEFAULT_TEXT_COLOR_NORMAL
-008 0xf7faf7ff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0xb1d7ecff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x4c9edaff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0x030000fc // DEFAULT_BORDER_COLOR_PRESSED
-012 0xf6f6f6ff // DEFAULT_BASE_COLOR_PRESSED
-013 0x040404ff // DEFAULT_TEXT_COLOR_PRESSED
-014 0x2d9ccfff // DEFAULT_BORDER_COLOR_DISABLED
-017 0xeeededff // LABEL_TEXT_COLOR_NORMAL
-018 0x4c9edaff // LABEL_TEXT_COLOR_FOCUSED
-019 0x040404ff // LABEL_TEXT_COLOR_PRESSED
-022 0xfbf7f7ff // BUTTON_BORDER_COLOR_NORMAL
-023 0x878686ff // BUTTON_BASE_COLOR_NORMAL
-024 0xeeededff // BUTTON_TEXT_COLOR_NORMAL
-025 0xf7faf7ff // BUTTON_BORDER_COLOR_FOCUSED
-026 0xb1d7ecff // BUTTON_BASE_COLOR_FOCUSED
-027 0x4c9edaff // BUTTON_TEXT_COLOR_FOCUSED
-028 0x030000fc // BUTTON_BORDER_COLOR_PRESSED
-029 0xf6f6f6ff // BUTTON_BASE_COLOR_PRESSED
-030 0x040404ff // BUTTON_TEXT_COLOR_PRESSED
-031 0x2d9ccfff // BUTTON_BORDER_COLOR_DISABLED
-035 0xfbf7f7ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0x878686ff // TOGGLE_BASE_COLOR_NORMAL
-037 0xeeededff // TOGGLE_TEXT_COLOR_NORMAL
-038 0xf7faf7ff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0xb1d7ecff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x4c9edaff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0x030000fc // TOGGLE_BORDER_COLOR_PRESSED
-042 0xf6f6f6ff // TOGGLE_BASE_COLOR_PRESSED
-043 0x040404ff // TOGGLE_TEXT_COLOR_PRESSED
-044 0x2d9ccfff // TOGGLE_BORDER_COLOR_DISABLED
-050 0xfbf7f7ff // SLIDER_BORDER_COLOR_NORMAL
-051 0x878686ff // SLIDER_BASE_COLOR_NORMAL
-052 0xf7faf7ff // SLIDER_BORDER_COLOR_FOCUSED
-053 0xb1d7ecff // SLIDER_BASE_COLOR_FOCUSED
-054 0x030000fc // SLIDER_BORDER_COLOR_PRESSED
-055 0xf6f6f6ff // SLIDER_BASE_COLOR_PRESSED
-056 0x2d9ccfff // SLIDER_BORDER_COLOR_DISABLED
-060 0xfbf7f7ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0x878686ff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0xf7faf7ff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0xb1d7ecff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0x030000fc // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0xf6f6f6ff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0x2d9ccfff // SLIDERBAR_BORDER_COLOR_DISABLED
-070 0xfbf7f7ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0xf6f6f6ff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0xf7faf7ff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0xb1d7ecff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0x030000fc // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0xf6f6f6ff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0x2d9ccfff // PROGRESSBAR_BORDER_COLOR_DISABLED
-080 0xfbf7f7ff // SPINNER_BORDER_COLOR_NORMAL
-081 0x878686ff // SPINNER_BASE_COLOR_NORMAL
-082 0xeeededff // SPINNER_TEXT_COLOR_NORMAL
-083 0xf7faf7ff // SPINNER_BORDER_COLOR_FOCUSED
-084 0xb1d7ecff // SPINNER_BASE_COLOR_FOCUSED
-085 0x4c9edaff // SPINNER_TEXT_COLOR_FOCUSED
-086 0x030000fc // SPINNER_BORDER_COLOR_PRESSED
-087 0xf6f6f6ff // SPINNER_BASE_COLOR_PRESSED
-088 0x040404ff // SPINNER_TEXT_COLOR_PRESSED
-089 0x2d9ccfff // SPINNER_BORDER_COLOR_DISABLED
-095 0xfbf7f7ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0x878686ff // COMBOBOX_BASE_COLOR_NORMAL
-097 0xeeededff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0xf7faf7ff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0xb1d7ecff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x4c9edaff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0x030000fc // COMBOBOX_BORDER_COLOR_PRESSED
-102 0xf6f6f6ff // COMBOBOX_BASE_COLOR_PRESSED
-103 0x040404ff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0x2d9ccfff // COMBOBOX_BORDER_COLOR_DISABLED
-109 0xfbf7f7ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0x6c6b6bff // CHECKBOX_BASE_COLOR_NORMAL
-111 0xf7faf7ff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x4c9edaff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0x030000fc // CHECKBOX_BORDER_COLOR_PRESSED
-114 0x040404ff // CHECKBOX_BASE_COLOR_PRESSED
-115 0x2d9ccfff // CHECKBOX_BORDER_COLOR_DISABLED
-118 0xfbf7f7ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0x6c6b6bff // TEXTBOX_BASE_COLOR_NORMAL
-120 0xeeededff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0xf7faf7ff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0xb1d7ecff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x4c9edaff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0x030000fc // TEXTBOX_BORDER_COLOR_PRESSED
-125 0xf6f6f6ff // TEXTBOX_BASE_COLOR_PRESSED
-126 0x040404ff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0x2d9ccfff // TEXTBOX_BORDER_COLOR_DISABLED
-132 0xfbf7f7ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0x6c6b6bff // COLORPICKER_BASE_COLOR_NORMAL
-134 0xf7faf7ff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x4c9edaff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0x030000fc // COLORPICKER_BORDER_COLOR_PRESSED
-137 0x040404ff // COLORPICKER_BASE_COLOR_PRESSED
-138 0x2d9ccfff // COLORPICKER_BORDER_COLOR_DISABLED
-143 0xfbf7f7ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0x6c6b6bff // LISTVIEW_BASE_COLOR_NORMAL
-145 0xeeededff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0xf7faf7ff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0xb1d7ecff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x4c9edaff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0x030000fc // LISTVIEW_BORDER_COLOR_PRESSED
-150 0xf6f6f6ff // LISTVIEW_BASE_COLOR_PRESSED
-151 0x040404ff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0x2d9ccfff // LISTVIEW_BORDER_COLOR_DISABLED

二進制
tools/rGuiStyler/styles/dev/bluish.rgs


二進制
tools/rGuiStyler/styles/dev/forest.rgs


+ 0 - 137
tools/rGuiStyler/styles/dev/iris.rgs

@@ -1,137 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   130
-# Required base default style:    LIGHT
-#
-000 0x5b5b81ff // DEFAULT_BACKGROUND_COLOR
-001 0xc5a3b1ff // DEFAULT_LINES_COLOR
-005 0xab9bd3ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0x3e4350ff // DEFAULT_BASE_COLOR_NORMAL
-007 0xdadaf4ff // DEFAULT_TEXT_COLOR_NORMAL
-008 0xe1b6baff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0xd7aeb9ff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x050505ff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0xdbc8c8ff // DEFAULT_BORDER_COLOR_PRESSED
-012 0xbca4d5ff // DEFAULT_BASE_COLOR_PRESSED
-013 0x03020201 // DEFAULT_TEXT_COLOR_PRESSED
-014 0xad6530ff // DEFAULT_BORDER_COLOR_DISABLED
-015 0x706060ff // DEFAULT_BASE_COLOR_DISABLED
-016 0x9e8585ff // DEFAULT_TEXT_COLOR_DISABLED
-017 0xdadaf4ff // LABEL_TEXT_COLOR_NORMAL
-018 0x050505ff // LABEL_TEXT_COLOR_FOCUSED
-019 0x03020201 // LABEL_TEXT_COLOR_PRESSED
-020 0x9e8585ff // LABEL_TEXT_COLOR_DISABLED
-022 0xab9bd3ff // BUTTON_BORDER_COLOR_NORMAL
-023 0x3e4350ff // BUTTON_BASE_COLOR_NORMAL
-024 0xdadaf4ff // BUTTON_TEXT_COLOR_NORMAL
-025 0xe1b6baff // BUTTON_BORDER_COLOR_FOCUSED
-026 0xd7aeb9ff // BUTTON_BASE_COLOR_FOCUSED
-027 0x050505ff // BUTTON_TEXT_COLOR_FOCUSED
-028 0xdbc8c8ff // BUTTON_BORDER_COLOR_PRESSED
-029 0xbca4d5ff // BUTTON_BASE_COLOR_PRESSED
-030 0x03020201 // BUTTON_TEXT_COLOR_PRESSED
-031 0xad6530ff // BUTTON_BORDER_COLOR_DISABLED
-032 0x706060ff // BUTTON_BASE_COLOR_DISABLED
-033 0x9e8585ff // BUTTON_TEXT_COLOR_DISABLED
-035 0xab9bd3ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0x3e4350ff // TOGGLE_BASE_COLOR_NORMAL
-037 0xdadaf4ff // TOGGLE_TEXT_COLOR_NORMAL
-038 0xe1b6baff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0xd7aeb9ff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x050505ff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0xdbc8c8ff // TOGGLE_BORDER_COLOR_PRESSED
-042 0xbca4d5ff // TOGGLE_BASE_COLOR_PRESSED
-043 0x03020201 // TOGGLE_TEXT_COLOR_PRESSED
-044 0xad6530ff // TOGGLE_BORDER_COLOR_DISABLED
-045 0x706060ff // TOGGLE_BASE_COLOR_DISABLED
-046 0x9e8585ff // TOGGLE_TEXT_COLOR_DISABLED
-050 0xab9bd3ff // SLIDER_BORDER_COLOR_NORMAL
-051 0x3e4350ff // SLIDER_BASE_COLOR_NORMAL
-052 0xe1b6baff // SLIDER_BORDER_COLOR_FOCUSED
-053 0xd7aeb9ff // SLIDER_BASE_COLOR_FOCUSED
-054 0xdbc8c8ff // SLIDER_BORDER_COLOR_PRESSED
-055 0xbca4d5ff // SLIDER_BASE_COLOR_PRESSED
-056 0xad6530ff // SLIDER_BORDER_COLOR_DISABLED
-057 0x706060ff // SLIDER_BASE_COLOR_DISABLED
-060 0xab9bd3ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0x3e4350ff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0xe1b6baff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0xd7aeb9ff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0xdbc8c8ff // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0xbca4d5ff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0xad6530ff // SLIDERBAR_BORDER_COLOR_DISABLED
-067 0x706060ff // SLIDERBAR_BASE_COLOR_DISABLED
-070 0xab9bd3ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0xbca4d5ff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0xe1b6baff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0xd7aeb9ff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0xdbc8c8ff // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0xbca4d5ff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0xad6530ff // PROGRESSBAR_BORDER_COLOR_DISABLED
-077 0x706060ff // PROGRESSBAR_BASE_COLOR_DISABLED
-080 0xab9bd3ff // SPINNER_BORDER_COLOR_NORMAL
-081 0x3e4350ff // SPINNER_BASE_COLOR_NORMAL
-082 0xdadaf4ff // SPINNER_TEXT_COLOR_NORMAL
-083 0xe1b6baff // SPINNER_BORDER_COLOR_FOCUSED
-084 0xd7aeb9ff // SPINNER_BASE_COLOR_FOCUSED
-085 0x050505ff // SPINNER_TEXT_COLOR_FOCUSED
-086 0xdbc8c8ff // SPINNER_BORDER_COLOR_PRESSED
-087 0xbca4d5ff // SPINNER_BASE_COLOR_PRESSED
-088 0x03020201 // SPINNER_TEXT_COLOR_PRESSED
-089 0xad6530ff // SPINNER_BORDER_COLOR_DISABLED
-090 0x706060ff // SPINNER_BASE_COLOR_DISABLED
-091 0x9e8585ff // SPINNER_TEXT_COLOR_DISABLED
-095 0xab9bd3ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0x3e4350ff // COMBOBOX_BASE_COLOR_NORMAL
-097 0xdadaf4ff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0xe1b6baff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0xd7aeb9ff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x050505ff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0xdbc8c8ff // COMBOBOX_BORDER_COLOR_PRESSED
-102 0xbca4d5ff // COMBOBOX_BASE_COLOR_PRESSED
-103 0x03020201 // COMBOBOX_TEXT_COLOR_PRESSED
-104 0xad6530ff // COMBOBOX_BORDER_COLOR_DISABLED
-105 0x706060ff // COMBOBOX_BASE_COLOR_DISABLED
-106 0x9e8585ff // COMBOBOX_TEXT_COLOR_DISABLED
-109 0xab9bd3ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0x5b5b81ff // CHECKBOX_BASE_COLOR_NORMAL
-111 0xe1b6baff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x050505ff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0xdbc8c8ff // CHECKBOX_BORDER_COLOR_PRESSED
-114 0x03020201 // CHECKBOX_BASE_COLOR_PRESSED
-115 0xad6530ff // CHECKBOX_BORDER_COLOR_DISABLED
-116 0x706060ff // CHECKBOX_BASE_COLOR_DISABLED
-118 0xab9bd3ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0x5b5b81ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0xdadaf4ff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0xe1b6baff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0xd7aeb9ff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x050505ff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0xdbc8c8ff // TEXTBOX_BORDER_COLOR_PRESSED
-125 0xbca4d5ff // TEXTBOX_BASE_COLOR_PRESSED
-126 0x03020201 // TEXTBOX_TEXT_COLOR_PRESSED
-127 0xad6530ff // TEXTBOX_BORDER_COLOR_DISABLED
-128 0x706060ff // TEXTBOX_BASE_COLOR_DISABLED
-129 0x9e8585ff // TEXTBOX_TEXT_COLOR_DISABLED
-132 0xab9bd3ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0x5b5b81ff // COLORPICKER_BASE_COLOR_NORMAL
-134 0xe1b6baff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x050505ff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0xdbc8c8ff // COLORPICKER_BORDER_COLOR_PRESSED
-137 0x03020201 // COLORPICKER_BASE_COLOR_PRESSED
-138 0xad6530ff // COLORPICKER_BORDER_COLOR_DISABLED
-139 0x706060ff // COLORPICKER_BASE_COLOR_DISABLED
-143 0xc4c4ddff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0xbebef0ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0xdadaf4ff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0xcda9a9ff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0xc6a2a8ff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x050505ff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0xdbc8c8ff // LISTVIEW_BORDER_COLOR_PRESSED
-150 0xbca4d5ff // LISTVIEW_BASE_COLOR_PRESSED
-151 0x03020201 // LISTVIEW_TEXT_COLOR_PRESSED
-152 0xad6530ff // LISTVIEW_BORDER_COLOR_DISABLED
-153 0xab9bd3ff // LISTVIEW_BASE_COLOR_DISABLED
-154 0x9e8585ff // LISTVIEW_TEXT_COLOR_DISABLED

+ 0 - 137
tools/rGuiStyler/styles/dev/laura.rgs

@@ -1,137 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   130
-# Required base default style:    LIGHT
-#
-000 0xf0f0f0ff // DEFAULT_BACKGROUND_COLOR
-001 0xa0d806ff // DEFAULT_LINES_COLOR
-005 0x9dcd26ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0xe6fdbbff // DEFAULT_BASE_COLOR_NORMAL
-007 0x01701aff // DEFAULT_TEXT_COLOR_NORMAL
-008 0xa0ee00ff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0xe3e28aff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x5ea61eff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0xdb5500ff // DEFAULT_BORDER_COLOR_PRESSED
-012 0xe68364ff // DEFAULT_BASE_COLOR_PRESSED
-013 0xfbf7f7ff // DEFAULT_TEXT_COLOR_PRESSED
-014 0x94795dff // DEFAULT_BORDER_COLOR_DISABLED
-015 0xc0a39bff // DEFAULT_BASE_COLOR_DISABLED
-016 0x7e4535ff // DEFAULT_TEXT_COLOR_DISABLED
-017 0x01701aff // LABEL_TEXT_COLOR_NORMAL
-018 0x5ea61eff // LABEL_TEXT_COLOR_FOCUSED
-019 0xfbf7f7ff // LABEL_TEXT_COLOR_PRESSED
-020 0x7e4535ff // LABEL_TEXT_COLOR_DISABLED
-022 0x9dcd26ff // BUTTON_BORDER_COLOR_NORMAL
-023 0xe6fdbbff // BUTTON_BASE_COLOR_NORMAL
-024 0x01701aff // BUTTON_TEXT_COLOR_NORMAL
-025 0xa0ee00ff // BUTTON_BORDER_COLOR_FOCUSED
-026 0xe3e28aff // BUTTON_BASE_COLOR_FOCUSED
-027 0x5ea61eff // BUTTON_TEXT_COLOR_FOCUSED
-028 0xdb5500ff // BUTTON_BORDER_COLOR_PRESSED
-029 0xe68364ff // BUTTON_BASE_COLOR_PRESSED
-030 0xfbf7f7ff // BUTTON_TEXT_COLOR_PRESSED
-031 0x94795dff // BUTTON_BORDER_COLOR_DISABLED
-032 0xc0a39bff // BUTTON_BASE_COLOR_DISABLED
-033 0x7e4535ff // BUTTON_TEXT_COLOR_DISABLED
-035 0x9dcd26ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0xe6fdbbff // TOGGLE_BASE_COLOR_NORMAL
-037 0x01701aff // TOGGLE_TEXT_COLOR_NORMAL
-038 0xa0ee00ff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0xe3e28aff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x5ea61eff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0xdb5500ff // TOGGLE_BORDER_COLOR_PRESSED
-042 0xe68364ff // TOGGLE_BASE_COLOR_PRESSED
-043 0xfbf7f7ff // TOGGLE_TEXT_COLOR_PRESSED
-044 0x94795dff // TOGGLE_BORDER_COLOR_DISABLED
-045 0xc0a39bff // TOGGLE_BASE_COLOR_DISABLED
-046 0x7e4535ff // TOGGLE_TEXT_COLOR_DISABLED
-050 0x9dcd26ff // SLIDER_BORDER_COLOR_NORMAL
-051 0xe6fdbbff // SLIDER_BASE_COLOR_NORMAL
-052 0xa0ee00ff // SLIDER_BORDER_COLOR_FOCUSED
-053 0xe3e28aff // SLIDER_BASE_COLOR_FOCUSED
-054 0xdb5500ff // SLIDER_BORDER_COLOR_PRESSED
-055 0xe68364ff // SLIDER_BASE_COLOR_PRESSED
-056 0x94795dff // SLIDER_BORDER_COLOR_DISABLED
-057 0xc0a39bff // SLIDER_BASE_COLOR_DISABLED
-060 0x9dcd26ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0xe6fdbbff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0xa0ee00ff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0xe3e28aff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0xdb5500ff // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0xe68364ff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0x94795dff // SLIDERBAR_BORDER_COLOR_DISABLED
-067 0xc0a39bff // SLIDERBAR_BASE_COLOR_DISABLED
-070 0x9dcd26ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0xe68364ff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0xa0ee00ff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0xe3e28aff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0xdb5500ff // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0xe68364ff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0x94795dff // PROGRESSBAR_BORDER_COLOR_DISABLED
-077 0xc0a39bff // PROGRESSBAR_BASE_COLOR_DISABLED
-080 0x9dcd26ff // SPINNER_BORDER_COLOR_NORMAL
-081 0xe6fdbbff // SPINNER_BASE_COLOR_NORMAL
-082 0x01701aff // SPINNER_TEXT_COLOR_NORMAL
-083 0xa0ee00ff // SPINNER_BORDER_COLOR_FOCUSED
-084 0xe3e28aff // SPINNER_BASE_COLOR_FOCUSED
-085 0x5ea61eff // SPINNER_TEXT_COLOR_FOCUSED
-086 0xdb5500ff // SPINNER_BORDER_COLOR_PRESSED
-087 0xe68364ff // SPINNER_BASE_COLOR_PRESSED
-088 0xfbf7f7ff // SPINNER_TEXT_COLOR_PRESSED
-089 0x94795dff // SPINNER_BORDER_COLOR_DISABLED
-090 0xc0a39bff // SPINNER_BASE_COLOR_DISABLED
-091 0x7e4535ff // SPINNER_TEXT_COLOR_DISABLED
-095 0x9dcd26ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0xe6fdbbff // COMBOBOX_BASE_COLOR_NORMAL
-097 0x01701aff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0xa0ee00ff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0xe3e28aff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x5ea61eff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0xdb5500ff // COMBOBOX_BORDER_COLOR_PRESSED
-102 0xe68364ff // COMBOBOX_BASE_COLOR_PRESSED
-103 0xfbf7f7ff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0x94795dff // COMBOBOX_BORDER_COLOR_DISABLED
-105 0xc0a39bff // COMBOBOX_BASE_COLOR_DISABLED
-106 0x7e4535ff // COMBOBOX_TEXT_COLOR_DISABLED
-109 0x9dcd26ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0xf0f0f0ff // CHECKBOX_BASE_COLOR_NORMAL
-111 0xa0ee00ff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x5ea61eff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0xdb5500ff // CHECKBOX_BORDER_COLOR_PRESSED
-114 0xfbf7f7ff // CHECKBOX_BASE_COLOR_PRESSED
-115 0x94795dff // CHECKBOX_BORDER_COLOR_DISABLED
-116 0xc0a39bff // CHECKBOX_BASE_COLOR_DISABLED
-118 0x9dcd26ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0xf0f0f0ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0x01701aff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0xa0ee00ff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0xe3e28aff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x5ea61eff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0xdb5500ff // TEXTBOX_BORDER_COLOR_PRESSED
-125 0xe68364ff // TEXTBOX_BASE_COLOR_PRESSED
-126 0xfbf7f7ff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0x94795dff // TEXTBOX_BORDER_COLOR_DISABLED
-128 0xc0a39bff // TEXTBOX_BASE_COLOR_DISABLED
-129 0x7e4535ff // TEXTBOX_TEXT_COLOR_DISABLED
-132 0x9dcd26ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0xf0f0f0ff // COLORPICKER_BASE_COLOR_NORMAL
-134 0xa0ee00ff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x5ea61eff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0xdb5500ff // COLORPICKER_BORDER_COLOR_PRESSED
-137 0xfbf7f7ff // COLORPICKER_BASE_COLOR_PRESSED
-138 0x94795dff // COLORPICKER_BORDER_COLOR_DISABLED
-139 0xc0a39bff // COLORPICKER_BASE_COLOR_DISABLED
-143 0x9dcd26ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0xf0f0f0ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0x01701aff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0xa0ee00ff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0xe3e28aff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x5ea61eff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0xdb5500ff // LISTVIEW_BORDER_COLOR_PRESSED
-150 0xe68364ff // LISTVIEW_BASE_COLOR_PRESSED
-151 0xfbf7f7ff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0x94795dff // LISTVIEW_BORDER_COLOR_DISABLED
-153 0xc0a39bff // LISTVIEW_BASE_COLOR_DISABLED
-154 0x7e4535ff // LISTVIEW_TEXT_COLOR_DISABLED

+ 0 - 81
tools/rGuiStyler/styles/dev/lila.rgs

@@ -1,81 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   74
-# Required base default style:    LIGHT
-#
-000 0xf7b8e3ff // DEFAULT_BACKGROUND_COLOR
-001 0x0c0c0cff // DEFAULT_LINES_COLOR
-006 0xd771ecff // DEFAULT_BASE_COLOR_NORMAL
-007 0x101010ff // DEFAULT_TEXT_COLOR_NORMAL
-009 0xa93ce9ff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x00aeffff // DEFAULT_TEXT_COLOR_FOCUSED
-012 0xd2aeddff // DEFAULT_BASE_COLOR_PRESSED
-013 0xf9fbfbff // DEFAULT_TEXT_COLOR_PRESSED
-015 0xcb9ff3ff // DEFAULT_BASE_COLOR_DISABLED
-017 0x101010ff // LABEL_TEXT_COLOR_NORMAL
-018 0x00aeffff // LABEL_TEXT_COLOR_FOCUSED
-019 0xf9fbfbff // LABEL_TEXT_COLOR_PRESSED
-023 0xd771ecff // BUTTON_BASE_COLOR_NORMAL
-024 0x101010ff // BUTTON_TEXT_COLOR_NORMAL
-026 0xa93ce9ff // BUTTON_BASE_COLOR_FOCUSED
-027 0x00aeffff // BUTTON_TEXT_COLOR_FOCUSED
-029 0xd2aeddff // BUTTON_BASE_COLOR_PRESSED
-030 0xf9fbfbff // BUTTON_TEXT_COLOR_PRESSED
-032 0xcb9ff3ff // BUTTON_BASE_COLOR_DISABLED
-036 0xd771ecff // TOGGLE_BASE_COLOR_NORMAL
-037 0x101010ff // TOGGLE_TEXT_COLOR_NORMAL
-039 0xa93ce9ff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x00aeffff // TOGGLE_TEXT_COLOR_FOCUSED
-042 0xd2aeddff // TOGGLE_BASE_COLOR_PRESSED
-043 0xf9fbfbff // TOGGLE_TEXT_COLOR_PRESSED
-045 0xcb9ff3ff // TOGGLE_BASE_COLOR_DISABLED
-051 0xd771ecff // SLIDER_BASE_COLOR_NORMAL
-053 0xa93ce9ff // SLIDER_BASE_COLOR_FOCUSED
-055 0xd2aeddff // SLIDER_BASE_COLOR_PRESSED
-057 0xcb9ff3ff // SLIDER_BASE_COLOR_DISABLED
-061 0xd771ecff // SLIDERBAR_BASE_COLOR_NORMAL
-063 0xa93ce9ff // SLIDERBAR_BASE_COLOR_FOCUSED
-065 0xd2aeddff // SLIDERBAR_BASE_COLOR_PRESSED
-067 0xcb9ff3ff // SLIDERBAR_BASE_COLOR_DISABLED
-071 0xd2aeddff // PROGRESSBAR_BASE_COLOR_NORMAL
-073 0xa93ce9ff // PROGRESSBAR_BASE_COLOR_FOCUSED
-075 0xd2aeddff // PROGRESSBAR_BASE_COLOR_PRESSED
-077 0xcb9ff3ff // PROGRESSBAR_BASE_COLOR_DISABLED
-081 0xd771ecff // SPINNER_BASE_COLOR_NORMAL
-082 0x101010ff // SPINNER_TEXT_COLOR_NORMAL
-084 0xa93ce9ff // SPINNER_BASE_COLOR_FOCUSED
-085 0x00aeffff // SPINNER_TEXT_COLOR_FOCUSED
-087 0xd2aeddff // SPINNER_BASE_COLOR_PRESSED
-088 0xf9fbfbff // SPINNER_TEXT_COLOR_PRESSED
-090 0xcb9ff3ff // SPINNER_BASE_COLOR_DISABLED
-096 0xd771ecff // COMBOBOX_BASE_COLOR_NORMAL
-097 0x101010ff // COMBOBOX_TEXT_COLOR_NORMAL
-099 0xa93ce9ff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x00aeffff // COMBOBOX_TEXT_COLOR_FOCUSED
-102 0xd2aeddff // COMBOBOX_BASE_COLOR_PRESSED
-103 0xf9fbfbff // COMBOBOX_TEXT_COLOR_PRESSED
-105 0xcb9ff3ff // COMBOBOX_BASE_COLOR_DISABLED
-110 0xf7b8e3ff // CHECKBOX_BASE_COLOR_NORMAL
-112 0x00aeffff // CHECKBOX_BASE_COLOR_FOCUSED
-114 0xf9fbfbff // CHECKBOX_BASE_COLOR_PRESSED
-116 0xcb9ff3ff // CHECKBOX_BASE_COLOR_DISABLED
-119 0xf7b8e3ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0x101010ff // TEXTBOX_TEXT_COLOR_NORMAL
-122 0xa93ce9ff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x00aeffff // TEXTBOX_TEXT_COLOR_FOCUSED
-125 0xd2aeddff // TEXTBOX_BASE_COLOR_PRESSED
-126 0xf9fbfbff // TEXTBOX_TEXT_COLOR_PRESSED
-128 0xcb9ff3ff // TEXTBOX_BASE_COLOR_DISABLED
-133 0xf7b8e3ff // COLORPICKER_BASE_COLOR_NORMAL
-135 0x00aeffff // COLORPICKER_BASE_COLOR_FOCUSED
-137 0xf9fbfbff // COLORPICKER_BASE_COLOR_PRESSED
-139 0xcb9ff3ff // COLORPICKER_BASE_COLOR_DISABLED
-144 0xf7b8e3ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0x101010ff // LISTVIEW_TEXT_COLOR_NORMAL
-147 0xa93ce9ff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x00aeffff // LISTVIEW_TEXT_COLOR_FOCUSED
-150 0xd2aeddff // LISTVIEW_BASE_COLOR_PRESSED
-151 0xf9fbfbff // LISTVIEW_TEXT_COLOR_PRESSED
-153 0xcb9ff3ff // LISTVIEW_BASE_COLOR_DISABLED

+ 0 - 137
tools/rGuiStyler/styles/dev/parrots.rgs

@@ -1,137 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   130
-# Required base default style:    LIGHT
-#
-000 0x173a19ff // DEFAULT_BACKGROUND_COLOR
-001 0x7dfb6fff // DEFAULT_LINES_COLOR
-005 0x5fda56ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0x41ab41ff // DEFAULT_BASE_COLOR_NORMAL
-007 0x80e173ff // DEFAULT_TEXT_COLOR_NORMAL
-008 0x97faf0ff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0x62e0dcff // DEFAULT_BASE_COLOR_FOCUSED
-010 0xaafdfaff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0x3c66e0ff // DEFAULT_BORDER_COLOR_PRESSED
-012 0x005b57ff // DEFAULT_BASE_COLOR_PRESSED
-013 0x4784c2ff // DEFAULT_TEXT_COLOR_PRESSED
-014 0xa19292ff // DEFAULT_BORDER_COLOR_DISABLED
-015 0x706060ff // DEFAULT_BASE_COLOR_DISABLED
-016 0x9e8585ff // DEFAULT_TEXT_COLOR_DISABLED
-017 0x80e173ff // LABEL_TEXT_COLOR_NORMAL
-018 0xaafdfaff // LABEL_TEXT_COLOR_FOCUSED
-019 0x4784c2ff // LABEL_TEXT_COLOR_PRESSED
-020 0x9e8585ff // LABEL_TEXT_COLOR_DISABLED
-022 0x5fda56ff // BUTTON_BORDER_COLOR_NORMAL
-023 0x41ab41ff // BUTTON_BASE_COLOR_NORMAL
-024 0x80e173ff // BUTTON_TEXT_COLOR_NORMAL
-025 0x97faf0ff // BUTTON_BORDER_COLOR_FOCUSED
-026 0x62e0dcff // BUTTON_BASE_COLOR_FOCUSED
-027 0xaafdfaff // BUTTON_TEXT_COLOR_FOCUSED
-028 0x3c66e0ff // BUTTON_BORDER_COLOR_PRESSED
-029 0x005b57ff // BUTTON_BASE_COLOR_PRESSED
-030 0x4784c2ff // BUTTON_TEXT_COLOR_PRESSED
-031 0xa19292ff // BUTTON_BORDER_COLOR_DISABLED
-032 0x706060ff // BUTTON_BASE_COLOR_DISABLED
-033 0x9e8585ff // BUTTON_TEXT_COLOR_DISABLED
-035 0x5fda56ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0x41ab41ff // TOGGLE_BASE_COLOR_NORMAL
-037 0x80e173ff // TOGGLE_TEXT_COLOR_NORMAL
-038 0x97faf0ff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0x62e0dcff // TOGGLE_BASE_COLOR_FOCUSED
-040 0xaafdfaff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0x3c66e0ff // TOGGLE_BORDER_COLOR_PRESSED
-042 0x005b57ff // TOGGLE_BASE_COLOR_PRESSED
-043 0x4784c2ff // TOGGLE_TEXT_COLOR_PRESSED
-044 0xa19292ff // TOGGLE_BORDER_COLOR_DISABLED
-045 0x706060ff // TOGGLE_BASE_COLOR_DISABLED
-046 0x9e8585ff // TOGGLE_TEXT_COLOR_DISABLED
-050 0x5fda56ff // SLIDER_BORDER_COLOR_NORMAL
-051 0x41ab41ff // SLIDER_BASE_COLOR_NORMAL
-052 0x97faf0ff // SLIDER_BORDER_COLOR_FOCUSED
-053 0x62e0dcff // SLIDER_BASE_COLOR_FOCUSED
-054 0x3c66e0ff // SLIDER_BORDER_COLOR_PRESSED
-055 0x005b57ff // SLIDER_BASE_COLOR_PRESSED
-056 0xa19292ff // SLIDER_BORDER_COLOR_DISABLED
-057 0x706060ff // SLIDER_BASE_COLOR_DISABLED
-060 0x5fda56ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0x41ab41ff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0x97faf0ff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0x62e0dcff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0x3c66e0ff // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0x005b57ff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0xa19292ff // SLIDERBAR_BORDER_COLOR_DISABLED
-067 0x706060ff // SLIDERBAR_BASE_COLOR_DISABLED
-070 0x5fda56ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0x005b57ff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0x97faf0ff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0x62e0dcff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0x3c66e0ff // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0x005b57ff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0xa19292ff // PROGRESSBAR_BORDER_COLOR_DISABLED
-077 0x706060ff // PROGRESSBAR_BASE_COLOR_DISABLED
-080 0x5fda56ff // SPINNER_BORDER_COLOR_NORMAL
-081 0x41ab41ff // SPINNER_BASE_COLOR_NORMAL
-082 0x80e173ff // SPINNER_TEXT_COLOR_NORMAL
-083 0x97faf0ff // SPINNER_BORDER_COLOR_FOCUSED
-084 0x62e0dcff // SPINNER_BASE_COLOR_FOCUSED
-085 0xaafdfaff // SPINNER_TEXT_COLOR_FOCUSED
-086 0x3c66e0ff // SPINNER_BORDER_COLOR_PRESSED
-087 0x005b57ff // SPINNER_BASE_COLOR_PRESSED
-088 0x4784c2ff // SPINNER_TEXT_COLOR_PRESSED
-089 0xa19292ff // SPINNER_BORDER_COLOR_DISABLED
-090 0x706060ff // SPINNER_BASE_COLOR_DISABLED
-091 0x9e8585ff // SPINNER_TEXT_COLOR_DISABLED
-095 0x5fda56ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0x41ab41ff // COMBOBOX_BASE_COLOR_NORMAL
-097 0x80e173ff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0x97faf0ff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0x62e0dcff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0xaafdfaff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0x3c66e0ff // COMBOBOX_BORDER_COLOR_PRESSED
-102 0x005b57ff // COMBOBOX_BASE_COLOR_PRESSED
-103 0x4784c2ff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0xa19292ff // COMBOBOX_BORDER_COLOR_DISABLED
-105 0x706060ff // COMBOBOX_BASE_COLOR_DISABLED
-106 0x9e8585ff // COMBOBOX_TEXT_COLOR_DISABLED
-109 0x5fda56ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0x173a19ff // CHECKBOX_BASE_COLOR_NORMAL
-111 0x97faf0ff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0xaafdfaff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0x3c66e0ff // CHECKBOX_BORDER_COLOR_PRESSED
-114 0x4784c2ff // CHECKBOX_BASE_COLOR_PRESSED
-115 0xa19292ff // CHECKBOX_BORDER_COLOR_DISABLED
-116 0x706060ff // CHECKBOX_BASE_COLOR_DISABLED
-118 0x5fda56ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0x173a19ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0x80e173ff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0x97faf0ff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0x62e0dcff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0xaafdfaff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0x3c66e0ff // TEXTBOX_BORDER_COLOR_PRESSED
-125 0x005b57ff // TEXTBOX_BASE_COLOR_PRESSED
-126 0x4784c2ff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0xa19292ff // TEXTBOX_BORDER_COLOR_DISABLED
-128 0x706060ff // TEXTBOX_BASE_COLOR_DISABLED
-129 0x9e8585ff // TEXTBOX_TEXT_COLOR_DISABLED
-132 0x5fda56ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0x173a19ff // COLORPICKER_BASE_COLOR_NORMAL
-134 0x97faf0ff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0xaafdfaff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0x3c66e0ff // COLORPICKER_BORDER_COLOR_PRESSED
-137 0x4784c2ff // COLORPICKER_BASE_COLOR_PRESSED
-138 0xa19292ff // COLORPICKER_BORDER_COLOR_DISABLED
-139 0x706060ff // COLORPICKER_BASE_COLOR_DISABLED
-143 0x5fda56ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0x173a19ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0x80e173ff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0x97faf0ff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0x62e0dcff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0xaafdfaff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0x3c66e0ff // LISTVIEW_BORDER_COLOR_PRESSED
-150 0x005b57ff // LISTVIEW_BASE_COLOR_PRESSED
-151 0x4784c2ff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0xa19292ff // LISTVIEW_BORDER_COLOR_DISABLED
-153 0x706060ff // LISTVIEW_BASE_COLOR_DISABLED
-154 0x9e8585ff // LISTVIEW_TEXT_COLOR_DISABLED

+ 0 - 137
tools/rGuiStyler/styles/dev/pastel_mint.rgs

@@ -1,137 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   130
-# Required base default style:    LIGHT
-#
-000 0xb7d8c0e8 // DEFAULT_BACKGROUND_COLOR
-001 0xe6cdb0ff // DEFAULT_LINES_COLOR
-005 0x80d5c1ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0xbef3fdff // DEFAULT_BASE_COLOR_NORMAL
-007 0x4f3a28ff // DEFAULT_TEXT_COLOR_NORMAL
-008 0xcbe83aff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0xddefa5ff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x97661cff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0x9a5100ff // DEFAULT_BORDER_COLOR_PRESSED
-012 0xeededdff // DEFAULT_BASE_COLOR_PRESSED
-013 0xbd4a4aff // DEFAULT_TEXT_COLOR_PRESSED
-014 0x94795dff // DEFAULT_BORDER_COLOR_DISABLED
-015 0xc2a37aff // DEFAULT_BASE_COLOR_DISABLED
-016 0x9c8369ff // DEFAULT_TEXT_COLOR_DISABLED
-017 0x4f3a28ff // LABEL_TEXT_COLOR_NORMAL
-018 0x97661cff // LABEL_TEXT_COLOR_FOCUSED
-019 0xbd4a4aff // LABEL_TEXT_COLOR_PRESSED
-020 0x9c8369ff // LABEL_TEXT_COLOR_DISABLED
-022 0x80d5c1ff // BUTTON_BORDER_COLOR_NORMAL
-023 0xbef3fdff // BUTTON_BASE_COLOR_NORMAL
-024 0x4f3a28ff // BUTTON_TEXT_COLOR_NORMAL
-025 0xcbe83aff // BUTTON_BORDER_COLOR_FOCUSED
-026 0xddefa5ff // BUTTON_BASE_COLOR_FOCUSED
-027 0x97661cff // BUTTON_TEXT_COLOR_FOCUSED
-028 0x9a5100ff // BUTTON_BORDER_COLOR_PRESSED
-029 0xeededdff // BUTTON_BASE_COLOR_PRESSED
-030 0xbd4a4aff // BUTTON_TEXT_COLOR_PRESSED
-031 0x94795dff // BUTTON_BORDER_COLOR_DISABLED
-032 0xc2a37aff // BUTTON_BASE_COLOR_DISABLED
-033 0x9c8369ff // BUTTON_TEXT_COLOR_DISABLED
-035 0x80d5c1ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0xbef3fdff // TOGGLE_BASE_COLOR_NORMAL
-037 0x4f3a28ff // TOGGLE_TEXT_COLOR_NORMAL
-038 0xcbe83aff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0xddefa5ff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x97661cff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0x9a5100ff // TOGGLE_BORDER_COLOR_PRESSED
-042 0xeededdff // TOGGLE_BASE_COLOR_PRESSED
-043 0xbd4a4aff // TOGGLE_TEXT_COLOR_PRESSED
-044 0x94795dff // TOGGLE_BORDER_COLOR_DISABLED
-045 0xc2a37aff // TOGGLE_BASE_COLOR_DISABLED
-046 0x9c8369ff // TOGGLE_TEXT_COLOR_DISABLED
-050 0x80d5c1ff // SLIDER_BORDER_COLOR_NORMAL
-051 0xbef3fdff // SLIDER_BASE_COLOR_NORMAL
-052 0xcbe83aff // SLIDER_BORDER_COLOR_FOCUSED
-053 0xddefa5ff // SLIDER_BASE_COLOR_FOCUSED
-054 0x9a5100ff // SLIDER_BORDER_COLOR_PRESSED
-055 0xeededdff // SLIDER_BASE_COLOR_PRESSED
-056 0x94795dff // SLIDER_BORDER_COLOR_DISABLED
-057 0xc2a37aff // SLIDER_BASE_COLOR_DISABLED
-060 0x80d5c1ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0xbef3fdff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0xcbe83aff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0xddefa5ff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0x9a5100ff // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0xeededdff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0x94795dff // SLIDERBAR_BORDER_COLOR_DISABLED
-067 0xc2a37aff // SLIDERBAR_BASE_COLOR_DISABLED
-070 0x80d5c1ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0xeededdff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0xcbe83aff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0xddefa5ff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0x9a5100ff // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0xeededdff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0x94795dff // PROGRESSBAR_BORDER_COLOR_DISABLED
-077 0xc2a37aff // PROGRESSBAR_BASE_COLOR_DISABLED
-080 0x80d5c1ff // SPINNER_BORDER_COLOR_NORMAL
-081 0xbef3fdff // SPINNER_BASE_COLOR_NORMAL
-082 0x4f3a28ff // SPINNER_TEXT_COLOR_NORMAL
-083 0xcbe83aff // SPINNER_BORDER_COLOR_FOCUSED
-084 0xddefa5ff // SPINNER_BASE_COLOR_FOCUSED
-085 0x97661cff // SPINNER_TEXT_COLOR_FOCUSED
-086 0x9a5100ff // SPINNER_BORDER_COLOR_PRESSED
-087 0xeededdff // SPINNER_BASE_COLOR_PRESSED
-088 0xbd4a4aff // SPINNER_TEXT_COLOR_PRESSED
-089 0x94795dff // SPINNER_BORDER_COLOR_DISABLED
-090 0xc2a37aff // SPINNER_BASE_COLOR_DISABLED
-091 0x9c8369ff // SPINNER_TEXT_COLOR_DISABLED
-095 0x80d5c1ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0xbef3fdff // COMBOBOX_BASE_COLOR_NORMAL
-097 0x4f3a28ff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0xcbe83aff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0xddefa5ff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x97661cff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0x9a5100ff // COMBOBOX_BORDER_COLOR_PRESSED
-102 0xeededdff // COMBOBOX_BASE_COLOR_PRESSED
-103 0xbd4a4aff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0x94795dff // COMBOBOX_BORDER_COLOR_DISABLED
-105 0xc2a37aff // COMBOBOX_BASE_COLOR_DISABLED
-106 0x9c8369ff // COMBOBOX_TEXT_COLOR_DISABLED
-109 0x80d5c1ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0xb7d8c0e8 // CHECKBOX_BASE_COLOR_NORMAL
-111 0xcbe83aff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x97661cff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0x9a5100ff // CHECKBOX_BORDER_COLOR_PRESSED
-114 0xbd4a4aff // CHECKBOX_BASE_COLOR_PRESSED
-115 0x94795dff // CHECKBOX_BORDER_COLOR_DISABLED
-116 0xc2a37aff // CHECKBOX_BASE_COLOR_DISABLED
-118 0x80d5c1ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0xb7d8c0e8 // TEXTBOX_BASE_COLOR_NORMAL
-120 0x4f3a28ff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0xcbe83aff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0xddefa5ff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x97661cff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0x9a5100ff // TEXTBOX_BORDER_COLOR_PRESSED
-125 0xeededdff // TEXTBOX_BASE_COLOR_PRESSED
-126 0xbd4a4aff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0x94795dff // TEXTBOX_BORDER_COLOR_DISABLED
-128 0xc2a37aff // TEXTBOX_BASE_COLOR_DISABLED
-129 0x9c8369ff // TEXTBOX_TEXT_COLOR_DISABLED
-132 0x80d5c1ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0xb7d8c0e8 // COLORPICKER_BASE_COLOR_NORMAL
-134 0xcbe83aff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x97661cff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0x9a5100ff // COLORPICKER_BORDER_COLOR_PRESSED
-137 0xbd4a4aff // COLORPICKER_BASE_COLOR_PRESSED
-138 0x94795dff // COLORPICKER_BORDER_COLOR_DISABLED
-139 0xc2a37aff // COLORPICKER_BASE_COLOR_DISABLED
-143 0x80d5c1ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0xb7d8c0e8 // LISTVIEW_BASE_COLOR_NORMAL
-145 0x4f3a28ff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0xcbe83aff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0xddefa5ff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x97661cff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0x9a5100ff // LISTVIEW_BORDER_COLOR_PRESSED
-150 0xeededdff // LISTVIEW_BASE_COLOR_PRESSED
-151 0xbd4a4aff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0x94795dff // LISTVIEW_BORDER_COLOR_DISABLED
-153 0xfbf3e6ff // LISTVIEW_BASE_COLOR_DISABLED
-154 0x9c8369ff // LISTVIEW_TEXT_COLOR_DISABLED

+ 0 - 137
tools/rGuiStyler/styles/dev/robert.rgs

@@ -1,137 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   130
-# Required base default style:    LIGHT
-#
-000 0x050505ff // DEFAULT_BACKGROUND_COLOR
-001 0xfbfbfbff // DEFAULT_LINES_COLOR
-005 0x1c8d00ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0x00000004 // DEFAULT_BASE_COLOR_NORMAL
-007 0x27a617ff // DEFAULT_TEXT_COLOR_NORMAL
-008 0xffecec64 // DEFAULT_BORDER_COLOR_FOCUSED
-009 0x27f705ff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x060606ff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0x00f600ff // DEFAULT_BORDER_COLOR_PRESSED
-012 0x378b022d // DEFAULT_BASE_COLOR_PRESSED
-013 0xfffdfdff // DEFAULT_TEXT_COLOR_PRESSED
-014 0x22a80df1 // DEFAULT_BORDER_COLOR_DISABLED
-015 0x0ec20a11 // DEFAULT_BASE_COLOR_DISABLED
-016 0xfffafaff // DEFAULT_TEXT_COLOR_DISABLED
-017 0x27a617ff // LABEL_TEXT_COLOR_NORMAL
-018 0x060606ff // LABEL_TEXT_COLOR_FOCUSED
-019 0xfffdfdff // LABEL_TEXT_COLOR_PRESSED
-020 0xfffafaff // LABEL_TEXT_COLOR_DISABLED
-022 0x1c8d00ff // BUTTON_BORDER_COLOR_NORMAL
-023 0x00000004 // BUTTON_BASE_COLOR_NORMAL
-024 0x27a617ff // BUTTON_TEXT_COLOR_NORMAL
-025 0xffecec64 // BUTTON_BORDER_COLOR_FOCUSED
-026 0x27f705ff // BUTTON_BASE_COLOR_FOCUSED
-027 0x060606ff // BUTTON_TEXT_COLOR_FOCUSED
-028 0x00f600ff // BUTTON_BORDER_COLOR_PRESSED
-029 0x378b022d // BUTTON_BASE_COLOR_PRESSED
-030 0xfffdfdff // BUTTON_TEXT_COLOR_PRESSED
-031 0x22a80df1 // BUTTON_BORDER_COLOR_DISABLED
-032 0x0ec20a11 // BUTTON_BASE_COLOR_DISABLED
-033 0xfffafaff // BUTTON_TEXT_COLOR_DISABLED
-035 0x1c8d00ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0x00000004 // TOGGLE_BASE_COLOR_NORMAL
-037 0x27a617ff // TOGGLE_TEXT_COLOR_NORMAL
-038 0xffecec64 // TOGGLE_BORDER_COLOR_FOCUSED
-039 0x27f705ff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x060606ff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0x00f600ff // TOGGLE_BORDER_COLOR_PRESSED
-042 0x378b022d // TOGGLE_BASE_COLOR_PRESSED
-043 0xfffdfdff // TOGGLE_TEXT_COLOR_PRESSED
-044 0x22a80df1 // TOGGLE_BORDER_COLOR_DISABLED
-045 0x0ec20a11 // TOGGLE_BASE_COLOR_DISABLED
-046 0xfffafaff // TOGGLE_TEXT_COLOR_DISABLED
-050 0x1c8d00ff // SLIDER_BORDER_COLOR_NORMAL
-051 0x00000004 // SLIDER_BASE_COLOR_NORMAL
-052 0xffecec64 // SLIDER_BORDER_COLOR_FOCUSED
-053 0x27f705ff // SLIDER_BASE_COLOR_FOCUSED
-054 0x00f600ff // SLIDER_BORDER_COLOR_PRESSED
-055 0x378b022d // SLIDER_BASE_COLOR_PRESSED
-056 0x22a80df1 // SLIDER_BORDER_COLOR_DISABLED
-057 0x0ec20a11 // SLIDER_BASE_COLOR_DISABLED
-060 0x1c8d00ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0x00000004 // SLIDERBAR_BASE_COLOR_NORMAL
-062 0xffecec64 // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0x27f705ff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0x00f600ff // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0x378b022d // SLIDERBAR_BASE_COLOR_PRESSED
-066 0x22a80df1 // SLIDERBAR_BORDER_COLOR_DISABLED
-067 0x0ec20a11 // SLIDERBAR_BASE_COLOR_DISABLED
-070 0x1c8d00ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0x378b022d // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0xffecec64 // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0x27f705ff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0x00f600ff // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0x378b022d // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0x22a80df1 // PROGRESSBAR_BORDER_COLOR_DISABLED
-077 0x0ec20a11 // PROGRESSBAR_BASE_COLOR_DISABLED
-080 0x1c8d00ff // SPINNER_BORDER_COLOR_NORMAL
-081 0x00000004 // SPINNER_BASE_COLOR_NORMAL
-082 0x27a617ff // SPINNER_TEXT_COLOR_NORMAL
-083 0xffecec64 // SPINNER_BORDER_COLOR_FOCUSED
-084 0x27f705ff // SPINNER_BASE_COLOR_FOCUSED
-085 0x060606ff // SPINNER_TEXT_COLOR_FOCUSED
-086 0x00f600ff // SPINNER_BORDER_COLOR_PRESSED
-087 0x378b022d // SPINNER_BASE_COLOR_PRESSED
-088 0xfffdfdff // SPINNER_TEXT_COLOR_PRESSED
-089 0x22a80df1 // SPINNER_BORDER_COLOR_DISABLED
-090 0x0ec20a11 // SPINNER_BASE_COLOR_DISABLED
-091 0xfffafaff // SPINNER_TEXT_COLOR_DISABLED
-095 0x1c8d00ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0x00000004 // COMBOBOX_BASE_COLOR_NORMAL
-097 0x27a617ff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0xffecec64 // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0x27f705ff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x060606ff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0x00f600ff // COMBOBOX_BORDER_COLOR_PRESSED
-102 0x378b022d // COMBOBOX_BASE_COLOR_PRESSED
-103 0xfffdfdff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0x22a80df1 // COMBOBOX_BORDER_COLOR_DISABLED
-105 0x0ec20a11 // COMBOBOX_BASE_COLOR_DISABLED
-106 0xfffafaff // COMBOBOX_TEXT_COLOR_DISABLED
-109 0x1c8d00ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0x050505ff // CHECKBOX_BASE_COLOR_NORMAL
-111 0xffecec64 // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x060606ff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0x00f600ff // CHECKBOX_BORDER_COLOR_PRESSED
-114 0xfffdfdff // CHECKBOX_BASE_COLOR_PRESSED
-115 0x22a80df1 // CHECKBOX_BORDER_COLOR_DISABLED
-116 0x0ec20a11 // CHECKBOX_BASE_COLOR_DISABLED
-118 0x1c8d00ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0x050505ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0x27a617ff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0xe6131364 // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0x232429ff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x060606ff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0x00f600ff // TEXTBOX_BORDER_COLOR_PRESSED
-125 0x1414132d // TEXTBOX_BASE_COLOR_PRESSED
-126 0xfffdfdff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0x22a80df1 // TEXTBOX_BORDER_COLOR_DISABLED
-128 0x2f342f11 // TEXTBOX_BASE_COLOR_DISABLED
-129 0x242323ff // TEXTBOX_TEXT_COLOR_DISABLED
-132 0x1c8d00ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0x050505ff // COLORPICKER_BASE_COLOR_NORMAL
-134 0xffecec64 // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x060606ff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0x00f600ff // COLORPICKER_BORDER_COLOR_PRESSED
-137 0xfffdfdff // COLORPICKER_BASE_COLOR_PRESSED
-138 0x22a80df1 // COLORPICKER_BORDER_COLOR_DISABLED
-139 0x0ec20a11 // COLORPICKER_BASE_COLOR_DISABLED
-143 0x1c8d00ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0x050505ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0x27a617ff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0xffecec64 // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0x27f705ff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x060606ff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0x00f600ff // LISTVIEW_BORDER_COLOR_PRESSED
-150 0x378b022d // LISTVIEW_BASE_COLOR_PRESSED
-151 0xfffdfdff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0x22a80df1 // LISTVIEW_BORDER_COLOR_DISABLED
-153 0x0ec20a11 // LISTVIEW_BASE_COLOR_DISABLED
-154 0xfffafaff // LISTVIEW_TEXT_COLOR_DISABLED

+ 0 - 117
tools/rGuiStyler/styles/dev/sand.rgs

@@ -1,117 +0,0 @@
-#
-# rgst file (v2.0) - raygui style text file generated using rGuiStyler
-#
-# Total number of properties:     155
-# Number of properties changed:   110
-# Required base default style:    LIGHT
-#
-000 0xf9e0b0ff // DEFAULT_BACKGROUND_COLOR
-001 0xd56728ff // DEFAULT_LINES_COLOR
-005 0xf7af03ff // DEFAULT_BORDER_COLOR_NORMAL
-006 0xb5681aff // DEFAULT_BASE_COLOR_NORMAL
-007 0xee9800ff // DEFAULT_TEXT_COLOR_NORMAL
-008 0x4d7c4dff // DEFAULT_BORDER_COLOR_FOCUSED
-009 0xb1d7ecff // DEFAULT_BASE_COLOR_FOCUSED
-010 0x4c9edaff // DEFAULT_TEXT_COLOR_FOCUSED
-011 0xf5a822fc // DEFAULT_BORDER_COLOR_PRESSED
-012 0xfbfac4ff // DEFAULT_BASE_COLOR_PRESSED
-013 0xf18f59ff // DEFAULT_TEXT_COLOR_PRESSED
-014 0x2d9ccfff // DEFAULT_BORDER_COLOR_DISABLED
-017 0xee9800ff // LABEL_TEXT_COLOR_NORMAL
-018 0x4c9edaff // LABEL_TEXT_COLOR_FOCUSED
-019 0xf18f59ff // LABEL_TEXT_COLOR_PRESSED
-022 0xf7af03ff // BUTTON_BORDER_COLOR_NORMAL
-023 0xb5681aff // BUTTON_BASE_COLOR_NORMAL
-024 0xee9800ff // BUTTON_TEXT_COLOR_NORMAL
-025 0x4d7c4dff // BUTTON_BORDER_COLOR_FOCUSED
-026 0xb1d7ecff // BUTTON_BASE_COLOR_FOCUSED
-027 0x4c9edaff // BUTTON_TEXT_COLOR_FOCUSED
-028 0xf5a822fc // BUTTON_BORDER_COLOR_PRESSED
-029 0xfbfac4ff // BUTTON_BASE_COLOR_PRESSED
-030 0xf18f59ff // BUTTON_TEXT_COLOR_PRESSED
-031 0x2d9ccfff // BUTTON_BORDER_COLOR_DISABLED
-035 0xf7af03ff // TOGGLE_BORDER_COLOR_NORMAL
-036 0xb5681aff // TOGGLE_BASE_COLOR_NORMAL
-037 0xee9800ff // TOGGLE_TEXT_COLOR_NORMAL
-038 0x4d7c4dff // TOGGLE_BORDER_COLOR_FOCUSED
-039 0xb1d7ecff // TOGGLE_BASE_COLOR_FOCUSED
-040 0x4c9edaff // TOGGLE_TEXT_COLOR_FOCUSED
-041 0xf5a822fc // TOGGLE_BORDER_COLOR_PRESSED
-042 0xfbfac4ff // TOGGLE_BASE_COLOR_PRESSED
-043 0xf18f59ff // TOGGLE_TEXT_COLOR_PRESSED
-044 0x2d9ccfff // TOGGLE_BORDER_COLOR_DISABLED
-050 0xf7af03ff // SLIDER_BORDER_COLOR_NORMAL
-051 0xb5681aff // SLIDER_BASE_COLOR_NORMAL
-052 0x4d7c4dff // SLIDER_BORDER_COLOR_FOCUSED
-053 0xb1d7ecff // SLIDER_BASE_COLOR_FOCUSED
-054 0xf5a822fc // SLIDER_BORDER_COLOR_PRESSED
-055 0xfbfac4ff // SLIDER_BASE_COLOR_PRESSED
-056 0x2d9ccfff // SLIDER_BORDER_COLOR_DISABLED
-060 0xf7af03ff // SLIDERBAR_BORDER_COLOR_NORMAL
-061 0xb5681aff // SLIDERBAR_BASE_COLOR_NORMAL
-062 0x4d7c4dff // SLIDERBAR_BORDER_COLOR_FOCUSED
-063 0xb1d7ecff // SLIDERBAR_BASE_COLOR_FOCUSED
-064 0xf5a822fc // SLIDERBAR_BORDER_COLOR_PRESSED
-065 0xfbfac4ff // SLIDERBAR_BASE_COLOR_PRESSED
-066 0x2d9ccfff // SLIDERBAR_BORDER_COLOR_DISABLED
-070 0xf7af03ff // PROGRESSBAR_BORDER_COLOR_NORMAL
-071 0xfbfac4ff // PROGRESSBAR_BASE_COLOR_NORMAL
-072 0x4d7c4dff // PROGRESSBAR_BORDER_COLOR_FOCUSED
-073 0xb1d7ecff // PROGRESSBAR_BASE_COLOR_FOCUSED
-074 0xf5a822fc // PROGRESSBAR_BORDER_COLOR_PRESSED
-075 0xfbfac4ff // PROGRESSBAR_BASE_COLOR_PRESSED
-076 0x2d9ccfff // PROGRESSBAR_BORDER_COLOR_DISABLED
-080 0xf7af03ff // SPINNER_BORDER_COLOR_NORMAL
-081 0xb5681aff // SPINNER_BASE_COLOR_NORMAL
-082 0xee9800ff // SPINNER_TEXT_COLOR_NORMAL
-083 0x4d7c4dff // SPINNER_BORDER_COLOR_FOCUSED
-084 0xb1d7ecff // SPINNER_BASE_COLOR_FOCUSED
-085 0x4c9edaff // SPINNER_TEXT_COLOR_FOCUSED
-086 0xf5a822fc // SPINNER_BORDER_COLOR_PRESSED
-087 0xfbfac4ff // SPINNER_BASE_COLOR_PRESSED
-088 0xf18f59ff // SPINNER_TEXT_COLOR_PRESSED
-089 0x2d9ccfff // SPINNER_BORDER_COLOR_DISABLED
-095 0xf7af03ff // COMBOBOX_BORDER_COLOR_NORMAL
-096 0xb5681aff // COMBOBOX_BASE_COLOR_NORMAL
-097 0xee9800ff // COMBOBOX_TEXT_COLOR_NORMAL
-098 0x4d7c4dff // COMBOBOX_BORDER_COLOR_FOCUSED
-099 0xb1d7ecff // COMBOBOX_BASE_COLOR_FOCUSED
-100 0x4c9edaff // COMBOBOX_TEXT_COLOR_FOCUSED
-101 0xf5a822fc // COMBOBOX_BORDER_COLOR_PRESSED
-102 0xfbfac4ff // COMBOBOX_BASE_COLOR_PRESSED
-103 0xf18f59ff // COMBOBOX_TEXT_COLOR_PRESSED
-104 0x2d9ccfff // COMBOBOX_BORDER_COLOR_DISABLED
-109 0xf7af03ff // CHECKBOX_BORDER_COLOR_NORMAL
-110 0xf9e0b0ff // CHECKBOX_BASE_COLOR_NORMAL
-111 0x4d7c4dff // CHECKBOX_BORDER_COLOR_FOCUSED
-112 0x4c9edaff // CHECKBOX_BASE_COLOR_FOCUSED
-113 0xf5a822fc // CHECKBOX_BORDER_COLOR_PRESSED
-114 0xf18f59ff // CHECKBOX_BASE_COLOR_PRESSED
-115 0x2d9ccfff // CHECKBOX_BORDER_COLOR_DISABLED
-118 0xf7af03ff // TEXTBOX_BORDER_COLOR_NORMAL
-119 0xf9e0b0ff // TEXTBOX_BASE_COLOR_NORMAL
-120 0xee9800ff // TEXTBOX_TEXT_COLOR_NORMAL
-121 0x4d7c4dff // TEXTBOX_BORDER_COLOR_FOCUSED
-122 0xb1d7ecff // TEXTBOX_BASE_COLOR_FOCUSED
-123 0x4c9edaff // TEXTBOX_TEXT_COLOR_FOCUSED
-124 0xf5a822fc // TEXTBOX_BORDER_COLOR_PRESSED
-125 0xfbfac4ff // TEXTBOX_BASE_COLOR_PRESSED
-126 0xf18f59ff // TEXTBOX_TEXT_COLOR_PRESSED
-127 0x2d9ccfff // TEXTBOX_BORDER_COLOR_DISABLED
-132 0xf7af03ff // COLORPICKER_BORDER_COLOR_NORMAL
-133 0xf9e0b0ff // COLORPICKER_BASE_COLOR_NORMAL
-134 0x4d7c4dff // COLORPICKER_BORDER_COLOR_FOCUSED
-135 0x4c9edaff // COLORPICKER_BASE_COLOR_FOCUSED
-136 0xf5a822fc // COLORPICKER_BORDER_COLOR_PRESSED
-137 0xf18f59ff // COLORPICKER_BASE_COLOR_PRESSED
-138 0x2d9ccfff // COLORPICKER_BORDER_COLOR_DISABLED
-143 0xf7af03ff // LISTVIEW_BORDER_COLOR_NORMAL
-144 0xf9e0b0ff // LISTVIEW_BASE_COLOR_NORMAL
-145 0xee9800ff // LISTVIEW_TEXT_COLOR_NORMAL
-146 0x4d7c4dff // LISTVIEW_BORDER_COLOR_FOCUSED
-147 0xb1d7ecff // LISTVIEW_BASE_COLOR_FOCUSED
-148 0x4c9edaff // LISTVIEW_TEXT_COLOR_FOCUSED
-149 0xf5a822fc // LISTVIEW_BORDER_COLOR_PRESSED
-150 0xfbfac4ff // LISTVIEW_BASE_COLOR_PRESSED
-151 0xf18f59ff // LISTVIEW_TEXT_COLOR_PRESSED
-152 0x2d9ccfff // LISTVIEW_BORDER_COLOR_DISABLED

二進制
tools/rGuiStyler/styles/light.rgs


部分文件因文件數量過多而無法顯示