vendor ImGuiFileDialog
This commit is contained in:
parent
911c8b9f8c
commit
982ee701bd
4 changed files with 6593 additions and 1 deletions
|
@ -25,6 +25,17 @@ target_include_directories(imgui PUBLIC
|
||||||
)
|
)
|
||||||
target_link_libraries(imgui PUBLIC SDL3::SDL3)
|
target_link_libraries(imgui PUBLIC SDL3::SDL3)
|
||||||
|
|
||||||
|
# import imguifiledialog
|
||||||
|
|
||||||
|
add_library(imguifiledialog STATIC)
|
||||||
|
target_sources(imguifiledialog PRIVATE
|
||||||
|
${PROJECT_SOURCE_DIR}/imguifiledialog/ImGuiFileDialog.cpp
|
||||||
|
)
|
||||||
|
target_include_directories(imguifiledialog PUBLIC
|
||||||
|
${PROJECT_SOURCE_DIR}/imguifiledialog
|
||||||
|
)
|
||||||
|
target_link_libraries(imguifiledialog PUBLIC imgui)
|
||||||
|
|
||||||
# editor
|
# editor
|
||||||
|
|
||||||
add_executable(yeti3dpro-editor)
|
add_executable(yeti3dpro-editor)
|
||||||
|
@ -32,4 +43,4 @@ target_sources(yeti3dpro-editor PRIVATE
|
||||||
${PROJECT_SOURCE_DIR}/source/main.cpp
|
${PROJECT_SOURCE_DIR}/source/main.cpp
|
||||||
${PROJECT_SOURCE_DIR}/source/editor.cpp
|
${PROJECT_SOURCE_DIR}/source/editor.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(yeti3dpro-editor PRIVATE imgui y3d game)
|
target_link_libraries(yeti3dpro-editor PRIVATE imguifiledialog imgui y3d game)
|
||||||
|
|
5157
imguifiledialog/ImGuiFileDialog.cpp
Normal file
5157
imguifiledialog/ImGuiFileDialog.cpp
Normal file
File diff suppressed because it is too large
Load diff
1220
imguifiledialog/ImGuiFileDialog.h
Normal file
1220
imguifiledialog/ImGuiFileDialog.h
Normal file
File diff suppressed because it is too large
Load diff
204
imguifiledialog/ImGuiFileDialogConfig.h
Normal file
204
imguifiledialog/ImGuiFileDialogConfig.h
Normal file
|
@ -0,0 +1,204 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// uncomment and modify defines under for customize ImGuiFileDialog
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// STL FILE SYSTEM ////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// uncomment if you need to use your FileSystem Interface
|
||||||
|
// if commented, you have two defualt interface, std::filesystem or dirent
|
||||||
|
// #define USE_CUSTOM_FILESYSTEM
|
||||||
|
// this options need c++17
|
||||||
|
// #define USE_STD_FILESYSTEM
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// MISC ///////////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// the spacing between button path's can be customized.
|
||||||
|
// if disabled the spacing is defined by the imgui theme
|
||||||
|
// define the space between path buttons
|
||||||
|
// #define CUSTOM_PATH_SPACING 2
|
||||||
|
|
||||||
|
// #define MAX_FILE_DIALOG_NAME_BUFFER 1024
|
||||||
|
// #define MAX_PATH_BUFFER_SIZE 1024
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// QUICK PATH /////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// the slash's buttons in path cna be used for quick select parallles directories
|
||||||
|
// #define USE_QUICK_PATH_SELECT
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// THUMBNAILS /////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// #define USE_THUMBNAILS
|
||||||
|
// the thumbnail generation use the stb_image and stb_resize lib who need to define the implementation
|
||||||
|
// btw if you already use them in your app, you can have compiler error due to "implemntation found in double"
|
||||||
|
// so uncomment these line for prevent the creation of implementation of these libs again
|
||||||
|
// #define DONT_DEFINE_AGAIN__STB_IMAGE_IMPLEMENTATION
|
||||||
|
// #define DONT_DEFINE_AGAIN__STB_IMAGE_RESIZE_IMPLEMENTATION
|
||||||
|
// #define IMGUI_RADIO_BUTTON RadioButton
|
||||||
|
// #define DisplayMode_ThumbailsList_ImageHeight 32.0f
|
||||||
|
// #define tableHeaderFileThumbnailsString "Thumbnails"
|
||||||
|
// #define DisplayMode_FilesList_ButtonString "FL"
|
||||||
|
// #define DisplayMode_FilesList_ButtonHelp "File List"
|
||||||
|
// #define DisplayMode_ThumbailsList_ButtonString "TL"
|
||||||
|
// #define DisplayMode_ThumbailsList_ButtonHelp "Thumbnails List"
|
||||||
|
// todo
|
||||||
|
// #define DisplayMode_ThumbailsGrid_ButtonString "TG"
|
||||||
|
// #define DisplayMode_ThumbailsGrid_ButtonHelp "Thumbnails Grid"
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// EXPLORATION BY KEYS ////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// #define USE_EXPLORATION_BY_KEYS
|
||||||
|
// this mapping by default is for GLFW but you can use another
|
||||||
|
// #include <GLFW/glfw3.h>
|
||||||
|
// Up key for explore to the top
|
||||||
|
// #define IGFD_KEY_UP ImGuiKey_UpArrow
|
||||||
|
// Down key for explore to the bottom
|
||||||
|
// #define IGFD_KEY_DOWN ImGuiKey_DownArrow
|
||||||
|
// Enter key for open directory
|
||||||
|
// #define IGFD_KEY_ENTER ImGuiKey_Enter
|
||||||
|
// BackSpace for comming back to the last directory
|
||||||
|
// #define IGFD_KEY_BACKSPACE ImGuiKey_Backspace
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// SHORTCUTS => ctrl + KEY ////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// #define SelectAllFilesKey ImGuiKey_A
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// DIALOG EXIT ////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// by ex you can quit the dialog by pressing the key excape
|
||||||
|
// #define USE_DIALOG_EXIT_WITH_KEY
|
||||||
|
// #define IGFD_EXIT_KEY ImGuiKey_Escape
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// WIDGETS ////////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// widget
|
||||||
|
// begin combo widget
|
||||||
|
// #define IMGUI_BEGIN_COMBO ImGui::BeginCombo
|
||||||
|
// when auto resized, FILTER_COMBO_MIN_WIDTH will be considered has minimum width
|
||||||
|
// FILTER_COMBO_AUTO_SIZE is enabled by default now to 1
|
||||||
|
// uncomment if you want disable
|
||||||
|
// #define FILTER_COMBO_AUTO_SIZE 0
|
||||||
|
// filter combobox width
|
||||||
|
// #define FILTER_COMBO_MIN_WIDTH 120.0f
|
||||||
|
// button widget use for compose path
|
||||||
|
// #define IMGUI_PATH_BUTTON ImGui::Button
|
||||||
|
// standard button
|
||||||
|
// #define IMGUI_BUTTON ImGui::Button
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// STRING'S ///////////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// locales string
|
||||||
|
// #define createDirButtonString "+"
|
||||||
|
// #define resetButtonString "R"
|
||||||
|
// #define devicesButtonString "Devices"
|
||||||
|
// #define editPathButtonString "E"
|
||||||
|
// #define searchString "Search"
|
||||||
|
// #define dirEntryString "[DIR] "
|
||||||
|
// #define linkEntryString "[LINK] "
|
||||||
|
// #define fileEntryString "[FILE] "
|
||||||
|
// #define fileNameString "File Name : "
|
||||||
|
// #define dirNameString "Directory Path :"
|
||||||
|
// #define buttonResetSearchString "Reset search"
|
||||||
|
// #define buttonDriveString "Devices"
|
||||||
|
// #define buttonEditPathString "Edit path\nYou can also right click on path buttons"
|
||||||
|
// #define buttonResetPathString "Reset to current directory"
|
||||||
|
// #define buttonCreateDirString "Create Directory"
|
||||||
|
// #define OverWriteDialogTitleString "The file Already Exist !"
|
||||||
|
// #define OverWriteDialogMessageString "Would you like to OverWrite it ?"
|
||||||
|
// #define OverWriteDialogConfirmButtonString "Confirm"
|
||||||
|
// #define OverWriteDialogCancelButtonString "Cancel"
|
||||||
|
|
||||||
|
// Validation buttons
|
||||||
|
// #define okButtonString " OK"
|
||||||
|
// #define okButtonWidth 0.0f
|
||||||
|
// #define cancelButtonString " Cancel"
|
||||||
|
// #define cancelButtonWidth 0.0f
|
||||||
|
// alignement [0:1], 0.0 is left, 0.5 middle, 1.0 right, and other ratios
|
||||||
|
// #define okCancelButtonAlignement 0.0f
|
||||||
|
// #define invertOkAndCancelButtons 0
|
||||||
|
|
||||||
|
// DateTimeFormat
|
||||||
|
// see strftime functionin <ctime> for customize
|
||||||
|
// "%Y/%m/%d %H:%M" give 2021:01:22 11:47
|
||||||
|
// "%Y/%m/%d %i:%M%p" give 2021:01:22 11:45PM
|
||||||
|
// #define DateTimeFormat "%Y/%m/%d %i:%M%p"
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// SORTING ICONS //////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// theses icons will appear in table headers
|
||||||
|
// #define USE_CUSTOM_SORTING_ICON
|
||||||
|
// #define tableHeaderAscendingIcon "A|"
|
||||||
|
// #define tableHeaderDescendingIcon "D|"
|
||||||
|
// #define tableHeaderFileNameString " File name"
|
||||||
|
// #define tableHeaderFileTypeString " Type"
|
||||||
|
// #define tableHeaderFileSizeString " Size"
|
||||||
|
// #define tableHeaderFileDateTimeString " Date"
|
||||||
|
// #define fileSizeBytes "o"
|
||||||
|
// #define fileSizeKiloBytes "Ko"
|
||||||
|
// #define fileSizeMegaBytes "Mo"
|
||||||
|
// #define fileSizeGigaBytes "Go"
|
||||||
|
|
||||||
|
// default table sort field (must be FIELD_FILENAME, FIELD_TYPE, FIELD_SIZE, FIELD_DATE or FIELD_THUMBNAILS)
|
||||||
|
// #define defaultSortField FIELD_FILENAME
|
||||||
|
|
||||||
|
// default table sort order for each field (true => Descending, false => Ascending)
|
||||||
|
// #define defaultSortOrderFilename true
|
||||||
|
// #define defaultSortOrderType true
|
||||||
|
// #define defaultSortOrderSize true
|
||||||
|
// #define defaultSortOrderDate true
|
||||||
|
// #define defaultSortOrderThumbnails true
|
||||||
|
|
||||||
|
/////////////////////////////////
|
||||||
|
//// PLACES FEATURES ////////////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
// #define USE_PLACES_FEATURE
|
||||||
|
// #define PLACES_PANE_DEFAULT_SHOWN false
|
||||||
|
// #define placesPaneWith 150.0f
|
||||||
|
// #define IMGUI_TOGGLE_BUTTON ToggleButton
|
||||||
|
// #define placesButtonString "Place"
|
||||||
|
// #define placesButtonHelpString "Places"
|
||||||
|
// #define addPlaceButtonString "+"
|
||||||
|
// #define removePlaceButtonString "-"
|
||||||
|
// #define validatePlaceButtonString "ok"
|
||||||
|
// #define editPlaceButtonString "E"
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
//// PLACES FEATURES : BOOKMARKS /////
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
// a group for bookmarks will be added by default, but you can also create it yourself and many more
|
||||||
|
// #define USE_PLACES_BOOKMARKS
|
||||||
|
// #define PLACES_BOOKMARK_DEFAULT_OPEPEND true
|
||||||
|
// #define placesBookmarksGroupName "Bookmarks"
|
||||||
|
// #define placesBookmarksDisplayOrder 0 // to the first
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
//// PLACES FEATURES : DEVICES ///////
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
// a group for system devices (returned by IFileSystem), but you can also add yours
|
||||||
|
// by ex if you would like to display a specific icon for some devices
|
||||||
|
// #define USE_PLACES_DEVICES
|
||||||
|
// #define PLACES_DEVICES_DEFAULT_OPEPEND true
|
||||||
|
// #define placesDevicesGroupName "Devices"
|
||||||
|
// #define placesDevicesDisplayOrder 10 // to the end
|
Loading…
Reference in a new issue