dfranx / ImFileDialog

A file dialog library for Dear ImGui
MIT License
517 stars 59 forks source link

Hey I made a fork and fixed a lot of bugs, and I have a question. #29

Open time-killer-games opened 2 years ago

time-killer-games commented 2 years ago

I was wondering if you'd like to help maintain my fork with me, which takes a bit of a different direction from the original software, because it relies specifically on SDL2 and OpenGL on Windows and Linux, with added BSD and Illumos support, and uses SDL2 Renderer on MacOS since OpenGL is deprecated on that platform. The reason I am using SDL2 is to mask the fact it uses Dear ImGui and uses a custom theme as well as makes it run in its own a floating window, without being embedded in an existing window. It also relies on my filesystem API, and ghc::filesystem so it can be built with versions of C++ besides C++17 like C++11, C++14, and C++20. I also added full localization and UTF-8 font loading support. It can be used as a CLI and as a client library. Many other things I did to improve it, and I did in my own fork instead of making a pull request to save time that it takes to be accepted in code review. I intend to add support for loading system icons for different file types like can be done on Windows for all other platforms I support. Let me know what you think, here's my fork: https://github.com/time-killer-games/libfiledialogs

time-killer-games commented 2 years ago

Just an update, I added support for changing the icon theme to what the target platform uses by default. Here's a preview:

filedialogs

Mori-TM commented 1 year ago

Thank you for createing this improved version, I tought I would need to do all this by myself. I have implemented this in my vulkan game engine, but there is one thing I hope you will add later and that is multi file selection.

time-killer-games commented 1 year ago

The function get_open_filenames() is the function you are looking for. The one which is filenames (plural) in the function name and not singular. The return value uses a line feed \n as the delimiter. :)

https://github.com/time-killer-games/libfiledialogs/blob/22a777fc91890fa4e5ca0533d36163f96878cf5d/filedialogs/filedialogs.h#L35

Mori-TM commented 1 year ago

Oh thanks, I didn't see that.