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)
|
||||
|
||||
# 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
|
||||
|
||||
add_executable(yeti3dpro-editor)
|
||||
|
@ -32,4 +43,4 @@ target_sources(yeti3dpro-editor PRIVATE
|
|||
${PROJECT_SOURCE_DIR}/source/main.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