@@ -101,8 +101,8 @@ A filter is recognized only if it respects theses rules :
1011011 ) a regex must be in (( and ))
1021022 ) a , will separate filters except if between a ( and )
1031033 ) name{filter1, filter2} is a special form for collection filters
104- 3.1) the name can be composed of what you want except { and }
105- 3.2) a filter can be a regex
104+ - the name can be composed of what you want except { and }
105+ - a filter can be a regex
1061064 ) the filters cannot integrate these chars '(' ')' '{' '}' ' ' except for a regex with respect to rule 1)
1071075 ) the filters cannot integrate a ','
108108
@@ -137,7 +137,9 @@ void drawGui()
137137{
138138 // open Dialog Simple
139139 if (ImGui::Button("Open File Dialog"))
140- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp", ".");
140+ IGFD::FileDialogConfig config;
141+ config.path = ".";
142+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp", config);
141143
142144 // display
143145 if (ImGuiFileDialog::Instance()->Display("ChooseFileDlgKey"))
@@ -172,8 +174,11 @@ ImGuiFileDialogFlags_Modal
172174you can use it like that :
173175
174176``` cpp
175- ImGuiFileDialog::Instance ()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp",
176- ".", 1, nullptr, ImGuiFileDialogFlags_Modal);
177+ IGFD::FileDialogConfig config;
178+ config.path = " ." ;
179+ config.countSelectionMax = 1 ;
180+ config.flags = ImGuiFileDialogFlags_Modal;
181+ ImGuiFileDialog::Instance ()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp", config);
177182```
178183
179184</blockquote></details>
@@ -183,7 +188,9 @@ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp
183188To have a directory chooser, set the file extension filter to nullptr:
184189
185190```cpp
186- ImGuiFileDialog::Instance()->OpenDialog("ChooseDirDlgKey", "Choose a Directory", nullptr, ".");
191+ IGFD::FileDialogConfig config;
192+ config.path = ".";
193+ ImGuiFileDialog::Instance()->OpenDialog("ChooseDirDlgKey", "Choose a Directory", nullptr, config);
187194```
188195
189196In this mode you can select any directory with one click and open a directory with a double-click.
@@ -227,8 +234,14 @@ void drawGui()
227234{
228235 // open Dialog with Pane
229236 if (ImGui::Button("Open File Dialog with a custom pane"))
230- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp",
231- ".", "", std::bind(&InfosPane, std::placeholders::_ 1, std::placeholders::_ 2, std::placeholders::_ 3), 350, 1, UserDatas("InfosPane"));
237+ IGFD::FileDialogConfig config;
238+ config.path = ".";
239+ config.countSelectionMax = 1;
240+ config.sidePane = std::bind(&InfosPane, std::placeholders::_ 1, std::placeholders::_ 2, std::placeholders::_ 3);
241+ config.sidePaneWidth = 350.0f;
242+ config.useDatas = UserDatas("InfosPane");
243+ config.flags = ImGuiFileDialogFlags_Modal;
244+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".cpp,.h,.hpp", config);
232245
233246 // display and action if ok
234247 if (ImGuiFileDialog::Instance()->Display("ChooseFileDlgKey"))
@@ -401,7 +414,9 @@ this code :
401414
402415```cpp
403416const char *filters = "Source files (*.cpp *.h *.hpp){.cpp,.h,.hpp},Image files (*.png *.gif *.jpg *.jpeg){.png,.gif,.jpg,.jpeg},.md";
404- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", ICON_IMFDLG_FOLDER_OPEN " Choose a File", filters, ".");
417+ IGFD::FileDialogConfig config;
418+ config.path = ".";
419+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", ICON_IMFDLG_FOLDER_OPEN " Choose a File", filters, config);
405420```
406421
407422will produce :
@@ -420,12 +435,24 @@ You can define in OpenDialog call the count file you want to select :
420435See the define at the end of these funcs after path.
421436
422437``` cpp
423- ImGuiFileDialog::Instance ()->OpenDialog("ChooseFileDlgKey", "Choose File", ".* ,.cpp,.h,.hpp", ".");
424- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose 1 File", ".* ,.cpp,.h,.hpp", ".", 1);
425- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose 5 File", ".* ,.cpp,.h,.hpp", ".", 5);
426- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose many File", ".* ,.cpp,.h,.hpp", ".", 0);
427- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".png,.jpg",
428- ".", "", std::bind(&InfosPane, std::placeholders::_ 1, std::placeholders::_ 2, std::placeholders::_ 3), 350, 1, "SaveFile"); // 1 file
438+ IGFD::FileDialogConfig config; config.path = " ." ;
439+
440+ ImGuiFileDialog::Instance ()->OpenDialog("ChooseFileDlgKey", "Choose File", ".* ,.cpp,.h,.hpp", config);
441+
442+ config.countSelectionMax = 1;
443+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose 1 File", ".* ,.cpp,.h,.hpp", config);
444+
445+ config.countSelectionMax = 5;
446+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose 5 File", ".* ,.cpp,.h,.hpp", config);
447+
448+ config.countSelectionMax = 0;
449+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose many File", ".* ,.cpp,.h,.hpp", config);
450+
451+ config.countSelectionMax = 1;
452+ config.sidePane = std::bind(&InfosPane, std::placeholders::_ 1, std::placeholders::_ 2, std::placeholders::_ 3);
453+ config.sidePaneWidth = 350.0f;
454+ config.useDatas = UserDatas("SaveFile");
455+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Choose File", ".png,.jpg", config); // 1 file
429456```
430457
431458
@@ -538,17 +565,20 @@ behavior. (by design! :) )
538565Example code For Standard Dialog :
539566
540567``` cpp
568+ IGFD::FileDialogConfig config;
569+ config.path = " ." ;
570+ config.flags = ImGuiFileDialogFlags_ConfirmOverwrite;
541571ImGuiFileDialog::Instance ()->OpenDialog("ChooseFileDlgKey",
542- ICON_IGFD_SAVE " Choose a File", filters,
543- ".", "", 1, nullptr, ImGuiFileDialogFlags_ConfirmOverwrite);
572+ ICON_IGFD_SAVE " Choose a File", filters, config);
544573```
545574
546575Example code For Modal Dialog :
547576
548577```cpp
549- ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey",
550- ICON_IGFD_SAVE " Choose a File", filters,
551- ".", "", 1, nullptr, ImGuiFileDialogFlags_Modal | ImGuiFileDialogFlags_ConfirmOverwrite);
578+ IGFD::FileDialogConfig config;
579+ config.path = ".";
580+ config.flags = ImGuiFileDialogFlags_Modal | ImGuiFileDialogFlags_ConfirmOverwrite;
581+ ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", ICON_IGFD_SAVE " Choose a File", filters, config);
552582```
553583
554584This dialog will only verify the file in the file field, not with ` GetSelection() ` .
@@ -700,11 +730,14 @@ ImGuiFileDialog fileDialog;
700730
701731// open dialog; in this case, Bookmark, directory creation are disabled with, and also the file input field is readonly.
702732// btw you can od what you want
703- fileDialog.OpenDialog(" embedded" , " Select File" , " .*" , " " , -1 , nullptr ,
704- ImGuiFileDialogFlags_NoDialog |
733+ IGFD::FileDialogConfig config;
734+ config.path = " ." ;
735+ config.countSelectionMax = -1 ;
736+ config.flags = ImGuiFileDialogFlags_NoDialog |
705737 ImGuiFileDialogFlags_DisableBookmarkMode |
706738 ImGuiFileDialogFlags_DisableCreateDirectoryButton |
707739 ImGuiFileDialogFlags_ReadOnlyFileNameField);
740+ fileDialog.OpenDialog(" embedded" , " Select File" , " .*" , config);
708741// then display, here
709742// to note, when embedded the ImVec2(0,0) (MinSize) do nothing, only the ImVec2(0,350) (MaxSize) can size the dialog frame
710743fileDialog.Display(" embedded" , ImGuiWindowFlags_NoCollapse, ImVec2(0 ,0 ), ImVec2(0 ,350 )))
@@ -976,19 +1009,15 @@ Sample code with cimgui :
9761009ImGuiFileDialog *cfileDialog = IGFD_Create();
9771010
9781011// open dialog
979- if (igButton(" Open File" , buttonSize))
980- {
1012+ if (igButton(" Open File" , buttonSize)) {
1013+ IGFD_FileDialog_Config config = IGFD_FileDialog_Config_Get();
1014+ config.path = ".";
1015+ config.flags = ImGuiFileDialogFlags_ConfirmOverwrite; // ImGuiFileDialogFlags
9811016 IGFD_OpenDialog (cfiledialog,
9821017 "filedlg", // dialog key (make it possible to have different treatment reagrding the dialog key
9831018 "Open a File", // dialog title
9841019 "c files(* .c * .h){.c,.h}", // dialog filter syntax : simple => .h,.c,.pp, etc and collections : text1{filter0,filter1,filter2}, text2{filter0,filter1,filter2}, etc..
985- ".", // base directory for files scan
986- "", // base filename
987- 0, // a fucntion for display a right pane if you want
988- 0.0f, // base width of the pane
989- 0, // count selection : 0 infinite, 1 one file (default), n (n files)
990- "User data !", // some user datas
991- ImGuiFileDialogFlags_ConfirmOverwrite); // ImGuiFileDialogFlags
1020+ config); // the file dialog config
9921021}
9931022
9941023ImGuiIO* ioptr = igGetIO();
0 commit comments