LMMS
Loading...
Searching...
No Matches
juce_FileChooser.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
56{
57public:
58 //==============================================================================
115 FileChooser (const String& dialogBoxTitle,
116 const File& initialFileOrDirectory = File(),
117 const String& filePatternsAllowed = String(),
118 bool useOSNativeDialogBox = true,
119 bool treatFilePackagesAsDirectories = false,
120 Component* parentComponent = nullptr);
121
123 ~FileChooser();
124
125 //==============================================================================
126 #if JUCE_MODAL_LOOPS_PERMITTED
140 bool browseForFileToOpen (FilePreviewComponent* previewComponent = nullptr);
141
147 bool browseForMultipleFilesToOpen (FilePreviewComponent* previewComponent = nullptr);
148
162 bool browseForFileToSave (bool warnAboutOverwritingExistingFiles);
163
174 bool browseForDirectory();
175
181 bool browseForMultipleFilesOrDirectories (FilePreviewComponent* previewComponent = nullptr);
182
183 //==============================================================================
192 bool showDialog (int flags, FilePreviewComponent* previewComponent);
193 #endif
194
207 void launchAsync (int flags,
208 std::function<void (const FileChooser&)>,
209 FilePreviewComponent* previewComponent = nullptr);
210
211 //==============================================================================
228 File getResult() const;
229
241 Array<File> getResults() const noexcept;
242
243 //==============================================================================
261 URL getURLResult() const;
262
285
286 //==============================================================================
294 static bool isPlatformDialogAvailable();
295
296 //==============================================================================
297 #ifndef DOXYGEN
298 class Native;
299 #endif
300
301private:
302 //==============================================================================
309 std::function<void (const FileChooser&)> asyncCallback;
310
311 //==============================================================================
312 void finished (const Array<URL>&);
313
314 //==============================================================================
315 struct Pimpl
316 {
317 virtual ~Pimpl() = default;
318
319 virtual void launch() = 0;
320 virtual void runModally() = 0;
321 };
322
323 std::shared_ptr<Pimpl> pimpl;
324
325 //==============================================================================
326 std::shared_ptr<Pimpl> createPimpl (int, FilePreviewComponent*);
327 static std::shared_ptr<Pimpl> showPlatformDialog (FileChooser&, int, FilePreviewComponent*);
328
329 class NonNative;
330 friend class NonNative;
331 friend class Native;
332
334};
335
336} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
Definition juce_Component.h:36
Definition juce_win32_FileChooser.cpp:782
Definition juce_FileChooser.cpp:32
const Array< URL > & getURLResults() const noexcept
Definition juce_FileChooser.h:284
Array< URL > results
Definition juce_FileChooser.h:306
Component * parent
Definition juce_FileChooser.h:305
const bool useNativeDialogBox
Definition juce_FileChooser.h:307
const bool treatFilePackagesAsDirs
Definition juce_FileChooser.h:308
String title
Definition juce_FileChooser.h:303
URL getURLResult() const
Definition juce_FileChooser.cpp:251
Array< File > getResults() const noexcept
Definition juce_FileChooser.cpp:229
void launchAsync(int flags, std::function< void(const FileChooser &)>, FilePreviewComponent *previewComponent=nullptr)
Definition juce_FileChooser.cpp:180
String filters
Definition juce_FileChooser.h:303
std::shared_ptr< Pimpl > createPimpl(int, FilePreviewComponent *)
Definition juce_FileChooser.cpp:195
static std::shared_ptr< Pimpl > showPlatformDialog(FileChooser &, int, FilePreviewComponent *)
Definition juce_linux_FileChooser.cpp:271
std::shared_ptr< Pimpl > pimpl
Definition juce_FileChooser.h:323
File startingFile
Definition juce_FileChooser.h:304
File getResult() const
Definition juce_FileChooser.cpp:240
FileChooser(const String &dialogBoxTitle, const File &initialFileOrDirectory=File(), const String &filePatternsAllowed=String(), bool useOSNativeDialogBox=true, bool treatFilePackagesAsDirectories=false, Component *parentComponent=nullptr)
Definition juce_FileChooser.cpp:100
std::function< void(const FileChooser &)> asyncCallback
Definition juce_FileChooser.h:309
Definition juce_File.h:45
Definition juce_FilePreviewComponent.h:44
Definition juce_String.h:53
Definition juce_URL.h:38
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
static int finished(SordWorld *world, SordModel *sord, int status)
Definition sord_test.c:390
Definition carla_juce.cpp:31
static int showDialog(const MessageBoxOptions &options, ModalComponentManager::Callback *callback, Async async)
Definition juce_linux_Windowing.cpp:815
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback void arg jack_client_t jack_port_t port void func jack_client_t const char const char unsigned long flags
Definition juce_linux_JackAudio.cpp:69
Definition juce_FileChooser.h:316
virtual ~Pimpl()=default
virtual void runModally()=0
virtual void launch()=0
#define void
Definition unzip.h:396
#define const
Definition zconf.h:137