46 bool operator== (
Pimpl*
object)
const noexcept {
return ptr.get() ==
object; }
47 bool operator!= (
Pimpl*
object)
const noexcept {
return ptr.get() !=
object; }
62 const String& fileExtension_,
63 const String& fileWildcard_,
64 const String& openFileDialogTitle_,
65 const String& saveFileDialogTitle_)
102 showMessageOnFailure,
110 bool showMessageOnFailure,
116 showMessageOnFailure,
121 parent->document.loadDocumentAsync (
file, std::move (cb));
127 #if JUCE_MODAL_LOOPS_PERMITTED
128 Result loadFromUserSpecifiedFile (
bool showMessageOnFailure)
134 if (fc.browseForFileToOpen())
135 return loadFrom (fc.getResult(), showMessageOnFailure);
152 if (chosenFile ==
File{})
172 #if JUCE_MODAL_LOOPS_PERMITTED
174 bool showMessageOnFailure)
176 return saveAs (documentFile,
178 askUserForFileIfNotSpecified,
179 showMessageOnFailure);
184 bool showMessageOnFailure,
189 askUserForFileIfNotSpecified,
190 showMessageOnFailure,
195 #if JUCE_MODAL_LOOPS_PERMITTED
198 SafeParentPointer
parent {
this,
false };
200 saveIfNeededAndUserAgreesImpl (
parent,
202 AskToSaveChangesSync { *
this },
217 ptr->askToSaveChanges (
ptr, std::move (cb));
219 [
parent] (
bool askUserForFileIfNotSpecified,
220 bool showMessageOnFailure,
224 parent->saveAsync (askUserForFileIfNotSpecified,
225 showMessageOnFailure,
231 #if JUCE_MODAL_LOOPS_PERMITTED
233 bool warnAboutOverwritingExistingFiles,
234 bool askUserForFileIfNotSpecified,
235 bool showMessageOnFailure,
236 bool showWaitCursor =
true)
238 SafeParentPointer
parent {
this,
false };
242 warnAboutOverwritingExistingFiles,
243 askUserForFileIfNotSpecified,
244 showMessageOnFailure,
252 bool warnAboutOverwritingExistingFiles,
253 bool askUserForFileIfNotSpecified,
254 bool showMessageOnFailure,
260 warnAboutOverwritingExistingFiles,
261 askUserForFileIfNotSpecified,
262 showMessageOnFailure,
268 #if JUCE_MODAL_LOOPS_PERMITTED
271 SafeParentPointer
parent {
this,
false };
273 saveAsInteractiveSyncImpl (
parent,
274 warnAboutOverwritingExistingFiles,
285 warnAboutOverwritingExistingFiles,
312 template <
typename DoLoadDocument>
315 bool showMessageOnFailure,
317 DoLoadDocument&& doLoadDocument,
318 std::function<
void (
Result)> completed)
320 if (
parent.shouldExitAsyncCallback())
329 auto tidyUp = [
parent, newFile, oldFile, showMessageOnFailure, showWaitCursor, completed] (
Result result)
331 if (
parent.shouldExitAsyncCallback())
334 parent->documentFile = oldFile;
339 if (showMessageOnFailure)
341 TRANS (
"Failed to open file..."),
342 TRANS (
"There was an error while trying to load the file: FLNM")
343 .replace (
"FLNM",
"\n" + newFile.getFullPathName())
345 +
result.getErrorMessage());
347 if (completed !=
nullptr)
351 if (newFile.existsAsFile())
353 auto afterLoading = [
parent,
356 completed = std::move (completed),
361 parent->setChangedFlag (
false);
366 parent->document.setLastDocumentOpened (newFile);
368 if (completed !=
nullptr)
377 doLoadDocument (newFile, std::move (afterLoading));
386 template <
typename DoAskToSaveChanges,
typename DoSave>
389 DoAskToSaveChanges&& doAskToSaveChanges,
392 if (
parent.shouldExitAsyncCallback())
397 if (completed !=
nullptr)
403 auto afterAsking = [doSave = std::forward<DoSave> (doSave),
407 if (
ptr.shouldExitAsyncCallback())
415 if (
ptr.shouldExitAsyncCallback())
418 if (completed !=
nullptr)
424 if (completed !=
nullptr)
430 if (completed !=
nullptr)
434 doAskToSaveChanges (
parent, std::move (afterAsking));
441 auto* modalCallback =
callback ==
nullptr
450 TRANS (
"Closing document..."),
451 TRANS (
"Do you want to save the changes to \"DCNM\"?")
452 .replace (
"DCNM",
document.getDocumentTitle()),
454 TRANS (
"Discard changes"),
461 template <
typename DoSaveDocument>
464 bool showMessageOnFailure,
467 DoSaveDocument&& doSaveDocument)
475 doSaveDocument (newFile, [
parent,
476 showMessageOnFailure,
482 if (
parent.shouldExitAsyncCallback())
492 parent->setChangedFlag (
false);
497 parent->document.sendChangeMessage();
499 if (afterSave !=
nullptr)
505 parent->documentFile = oldFile;
510 if (showMessageOnFailure)
512 TRANS (
"Error writing to file..."),
513 TRANS (
"An error occurred while trying to save \"DCNM\" to the file: FLNM")
514 .replace (
"DCNM",
parent->document.getDocumentTitle())
517 +
result.getErrorMessage());
519 parent->document.sendChangeMessage();
521 if (afterSave !=
nullptr)
526 template <
typename DoSaveAsInteractive,
typename DoAskToOverwriteFile,
typename DoSaveDocument>
529 bool warnAboutOverwritingExistingFiles,
530 bool askUserForFileIfNotSpecified,
531 bool showMessageOnFailure,
534 DoSaveAsInteractive&& doSaveAsInteractive,
535 DoAskToOverwriteFile&& doAskToOverwriteFile,
536 DoSaveDocument&& doSaveDocument)
538 if (
parent.shouldExitAsyncCallback())
541 if (newFile ==
File())
543 if (askUserForFileIfNotSpecified)
558 auto saveInternalHelper = [
parent,
561 showMessageOnFailure,
563 doSaveDocument = std::forward<DoSaveDocument> (doSaveDocument)]
565 if (!
parent.shouldExitAsyncCallback())
568 showMessageOnFailure,
574 if (warnAboutOverwritingExistingFiles && newFile.exists())
578 bool shouldOverwrite)
580 if (
ptr.shouldExitAsyncCallback())
584 saveInternalHelper();
588 doAskToOverwriteFile (
parent, newFile, std::move (afterAsking));
592 saveInternalHelper();
597 bool warnAboutOverwritingExistingFiles,
598 bool askUserForFileIfNotSpecified,
599 bool showMessageOnFailure,
605 warnAboutOverwritingExistingFiles,
606 askUserForFileIfNotSpecified,
607 showMessageOnFailure,
613 ptr->saveAsInteractiveAsyncImpl (
ptr, warnAboutOverwriting, std::move (cb));
618 ptr->askToOverwriteFile (
ptr, destination, std::move (cb));
623 parent->document.saveDocumentAsync (destination, std::move (cb));
629 bool warnAboutOverwritingExistingFiles,
636 warnAboutOverwritingExistingFiles,
641 ptr->getSaveAsFilenameAsync (
ptr, warnAboutOverwriting, std::move (cb));
645 bool warnAboutOverwriting,
646 bool askUserForFileIfNotSpecified,
647 bool showMessageOnFailure,
652 ptr->saveAsAsyncImpl (
ptr,
654 warnAboutOverwriting,
655 askUserForFileIfNotSpecified,
656 showMessageOnFailure,
663 ptr->askToOverwriteFile (
ptr, destination, std::move (cb));
675 auto* modalCallback =
callback ==
nullptr
684 TRANS (
"File already exists"),
685 TRANS (
"There's already a file called: FLNM")
688 +
TRANS (
"Are you sure you want to overwrite it?"),
697 bool warnAboutOverwritingExistingFiles,
704 if (warnAboutOverwritingExistingFiles)
714 template <
typename DoSelectFilename,
typename DoSaveAs,
typename DoAskToOverwriteFile>
716 bool warnAboutOverwritingExistingFiles,
718 DoSelectFilename&& doSelectFilename,
720 DoAskToOverwriteFile&& doAskToOverwriteFile)
723 warnAboutOverwritingExistingFiles,
724 [doSaveAs = std::forward<DoSaveAs> (doSaveAs),
725 doAskToOverwriteFile = std::forward<DoAskToOverwriteFile> (doAskToOverwriteFile),
731 if (chosen ==
File{})
739 auto updateAndSaveAs = [parentPtr, doSaveAs,
callback] (
const File& chosenFile)
745 doSaveAs (parentPtr, chosenFile,
false,
false,
true,
callback,
false);
757 if (overwritePtr.shouldExitAsyncCallback())
761 updateAndSaveAs (chosen);
766 doAskToOverwriteFile (parentPtr, chosen, std::move (afterAsking));
771 updateAndSaveAs (chosen);
782 if (legalFilename.isEmpty())
783 legalFilename =
"unnamed";
785 f = (
f.existsAsFile() ||
f.getParentDirectory().isDirectory())
786 ?
f.getSiblingFile (legalFilename)
797 #if JUCE_MODAL_LOOPS_PERMITTED
798 struct SaveAsInteractiveSyncImpl
800 template <
typename... Ts>
801 void operator() (Ts&&... ts)
const noexcept
803 p.saveAsInteractiveSyncImpl (std::forward<Ts> (ts)...);
809 struct AskToOverwriteFileSync
811 template <
typename... Ts>
812 void operator() (Ts&&... ts)
const noexcept
814 p.askToOverwriteFileSync (std::forward<Ts> (ts)...);
820 struct AskToSaveChangesSync
822 template <
typename... Ts>
823 void operator() (Ts&&... ts)
const noexcept
825 p.askToSaveChangesSync (std::forward<Ts> (ts)...);
833 template <
typename... Ts>
834 void operator() (Ts&&... ts)
const noexcept
836 p.saveSync (std::forward<Ts> (ts)...);
842 struct GetSaveAsFilenameSync
844 template <
typename... Ts>
845 void operator() (Ts&&... ts)
const noexcept
847 p.getSaveAsFilenameSync (std::forward<Ts> (ts)...);
853 struct SaveAsSyncImpl
855 template <
typename... Ts>
856 void operator() (Ts&&... ts)
const noexcept
858 p.saveAsSyncImpl (std::forward<Ts> (ts)...);
865 void saveAsSyncImpl (SafeParentPointer
parent,
867 bool warnAboutOverwritingExistingFiles,
868 bool askUserForFileIfNotSpecified,
869 bool showMessageOnFailure,
870 std::function<
void (SaveResult)>
callback,
875 warnAboutOverwritingExistingFiles,
876 askUserForFileIfNotSpecified,
877 showMessageOnFailure,
880 SaveAsInteractiveSyncImpl { *
this },
881 AskToOverwriteFileSync { *
this },
886 template <
typename Callback>
887 void askToSaveChangesSync (SafeParentPointer
parent, Callback&&
callback)
893 void saveAsInteractiveSyncImpl (SafeParentPointer
parent,
894 bool warnAboutOverwritingExistingFiles,
895 std::function<
void (SaveResult)>
callback)
898 warnAboutOverwritingExistingFiles,
900 GetSaveAsFilenameSync { *
this },
901 SaveAsSyncImpl { *
this },
902 AskToOverwriteFileSync { *
this });
906 template <
typename Callback>
907 void askToOverwriteFileSync (SafeParentPointer
parent,
915 template <
typename Callback>
916 void saveSync (
bool askUserForFileIfNotSpecified,
917 bool showMessageOnFailure,
920 callback (
save (askUserForFileIfNotSpecified, showMessageOnFailure));
924 template <
typename Callback>
925 void getSaveAsFilenameSync (SafeParentPointer
parent,
926 bool warnAboutOverwritingExistingFiles,
931 if (fc->browseForFileToSave (warnAboutOverwritingExistingFiles))
955 const String& fileWildcard,
956 const String& openFileDialogTitle,
957 const String& saveFileDialogTitle)
962 saveFileDialogTitle))
971 return pimpl->hasChangedSinceSaved();
976 pimpl->setChangedFlag (hasChanged);
986 bool showMessageOnFailure,
989 return pimpl->loadFrom (fileToLoadFrom, showMessageOnFailure, showWaitCursor);
993 bool showMessageOnFailure,
996 pimpl->loadFromAsync (fileToLoadFrom, showMessageOnFailure, std::move (
callback));
1000#if JUCE_MODAL_LOOPS_PERMITTED
1001Result FileBasedDocument::loadFromUserSpecifiedFile (
bool showMessageOnFailure)
1003 return pimpl->loadFromUserSpecifiedFile (showMessageOnFailure);
1010 pimpl->loadFromUserSpecifiedFileAsync (showMessageOnFailure, std::move (
callback));
1014#if JUCE_MODAL_LOOPS_PERMITTED
1016 bool showMessageOnFailure)
1018 return pimpl->save (askUserForFileIfNotSpecified, showMessageOnFailure);
1023 bool showMessageOnFailure,
1026 pimpl->saveAsync (askUserForFileIfNotSpecified, showMessageOnFailure, std::move (
callback));
1030#if JUCE_MODAL_LOOPS_PERMITTED
1033 return pimpl->saveIfNeededAndUserAgrees();
1039 pimpl->saveIfNeededAndUserAgreesAsync (std::move (
callback));
1043#if JUCE_MODAL_LOOPS_PERMITTED
1045 bool warnAboutOverwritingExistingFiles,
1046 bool askUserForFileIfNotSpecified,
1047 bool showMessageOnFailure,
1048 bool showWaitCursor)
1050 return pimpl->saveAs (newFile,
1051 warnAboutOverwritingExistingFiles,
1052 askUserForFileIfNotSpecified,
1053 showMessageOnFailure,
1059 bool warnAboutOverwritingExistingFiles,
1060 bool askUserForFileIfNotSpecified,
1061 bool showMessageOnFailure,
1064 pimpl->saveAsAsync (newFile,
1065 warnAboutOverwritingExistingFiles,
1066 askUserForFileIfNotSpecified,
1067 showMessageOnFailure,
1072#if JUCE_MODAL_LOOPS_PERMITTED
1075 return pimpl->saveAsInteractive (warnAboutOverwritingExistingFiles);
1082 pimpl->saveAsInteractiveAsync (warnAboutOverwritingExistingFiles, std::move (
callback));
1088 return pimpl->getFile();
1093 pimpl->setFile (newFile);
#define noexcept
Definition DistrhoDefines.h:72
#define nullptr
Definition DistrhoDefines.h:75
static String createLegalFileName(const String &fileNameToFix)
Definition File.cpp:848
static File getSpecialLocation(const SpecialLocationType type)
Definition File.cpp:1642
static Result ok() noexcept
Definition Result.h:68
static Result fail(const std::string &errorMessage) noexcept
Definition Result.cpp:58
static int JUCE_CALLTYPE showYesNoCancelBox(MessageBoxIconType iconType, const String &title, const String &message, const String &button1Text, const String &button2Text, const String &button3Text, Component *associatedComponent, ModalComponentManager::Callback *callback)
Definition juce_AlertWindow.cpp:773
static bool JUCE_CALLTYPE showOkCancelBox(MessageBoxIconType iconType, const String &title, const String &message, const String &button1Text, const String &button2Text, Component *associatedComponent, ModalComponentManager::Callback *callback)
Definition juce_AlertWindow.cpp:752
static void JUCE_CALLTYPE showMessageBoxAsync(MessageBoxIconType iconType, const String &title, const String &message, const String &buttonText=String(), Component *associatedComponent=nullptr, ModalComponentManager::Callback *callback=nullptr)
Definition juce_AlertWindow.cpp:712
Definition juce_FileBasedDocument.cpp:35
SafeParentPointer(Pimpl *parent, bool isAsync)
Definition juce_FileBasedDocument.cpp:37
WeakReference< Pimpl > ptr
Definition juce_FileBasedDocument.cpp:55
bool shouldExitAsyncCallback() const noexcept
Definition juce_FileBasedDocument.cpp:49
Pimpl * operator->() const noexcept
Definition juce_FileBasedDocument.cpp:41
bool shouldCheck
Definition juce_FileBasedDocument.cpp:56
Definition juce_FileBasedDocument.cpp:31
void loadFromAsync(const File &newFile, bool showMessageOnFailure, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:109
void saveAsInteractiveImpl(SafeParentPointer parent, bool warnAboutOverwritingExistingFiles, std::function< void(SaveResult)> callback, DoSelectFilename &&doSelectFilename, DoSaveAs &&doSaveAs, DoAskToOverwriteFile &&doAskToOverwriteFile)
Definition juce_FileBasedDocument.cpp:715
const String & getFileExtension() const
Definition juce_FileBasedDocument.cpp:305
String fileExtension
Definition juce_FileBasedDocument.cpp:946
void saveAsInteractiveAsyncImpl(SafeParentPointer parent, bool warnAboutOverwritingExistingFiles, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:628
Pimpl(FileBasedDocument &parent_, const String &fileExtension_, const String &fileWildcard_, const String &openFileDialogTitle_, const String &saveFileDialogTitle_)
Definition juce_FileBasedDocument.cpp:61
std::unique_ptr< FileChooser > asyncFc
Definition juce_FileBasedDocument.cpp:947
std::unique_ptr< FileChooser > getInteractiveFileChooser()
Definition juce_FileBasedDocument.cpp:776
void setFile(const File &newFile)
Definition juce_FileBasedDocument.cpp:295
String saveFileDialogTitle
Definition juce_FileBasedDocument.cpp:946
const File & getFile() const
Definition juce_FileBasedDocument.cpp:290
String openFileDialogTitle
Definition juce_FileBasedDocument.cpp:946
File documentFile
Definition juce_FileBasedDocument.cpp:944
bool changedSinceSave
Definition juce_FileBasedDocument.cpp:945
Result loadFrom(const File &newFile, bool showMessageOnFailure, bool showWaitCursor=true)
Definition juce_FileBasedDocument.cpp:96
void saveAsAsync(const File &newFile, bool warnAboutOverwritingExistingFiles, bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:251
void saveAsAsyncImpl(SafeParentPointer parent, const File &newFile, bool warnAboutOverwritingExistingFiles, bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback, bool showWaitCursor)
Definition juce_FileBasedDocument.cpp:595
void setChangedFlag(bool hasChanged)
Definition juce_FileBasedDocument.cpp:80
void saveAsImpl(SafeParentPointer parent, const File &newFile, bool warnAboutOverwritingExistingFiles, bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback, bool showWaitCursor, DoSaveAsInteractive &&doSaveAsInteractive, DoAskToOverwriteFile &&doAskToOverwriteFile, DoSaveDocument &&doSaveDocument)
Definition juce_FileBasedDocument.cpp:527
void saveAsInteractiveAsync(bool warnAboutOverwritingExistingFiles, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:280
String fileWildcard
Definition juce_FileBasedDocument.cpp:946
void saveAsync(bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:183
void loadFromUserSpecifiedFileAsync(const bool showMessageOnFailure, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:141
int askToSaveChanges(SafeParentPointer parent, std::function< void(SafeParentPointer, int)> callback)
Definition juce_FileBasedDocument.cpp:438
void getSaveAsFilenameAsync(SafeParentPointer parent, bool warnAboutOverwritingExistingFiles, std::function< void(SafeParentPointer, const File &)> callback)
Definition juce_FileBasedDocument.cpp:696
void saveIfNeededAndUserAgreesAsync(std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:208
void saveIfNeededAndUserAgreesImpl(SafeParentPointer parent, std::function< void(SaveResult)> completed, DoAskToSaveChanges &&doAskToSaveChanges, DoSave &&doSave)
Definition juce_FileBasedDocument.cpp:387
void changed()
Definition juce_FileBasedDocument.cpp:89
bool hasChangedSinceSaved() const
Definition juce_FileBasedDocument.cpp:75
FileBasedDocument & document
Definition juce_FileBasedDocument.cpp:942
void loadFromImpl(SafeParentPointer parent, const File &newFile, bool showMessageOnFailure, bool showWaitCursor, DoLoadDocument &&doLoadDocument, std::function< void(Result)> completed)
Definition juce_FileBasedDocument.cpp:313
bool askToOverwriteFile(SafeParentPointer parent, const File &newFile, std::function< void(SafeParentPointer, bool)> callback)
Definition juce_FileBasedDocument.cpp:668
void saveInternal(SafeParentPointer parent, const File &newFile, bool showMessageOnFailure, bool showWaitCursor, std::function< void(SaveResult)> afterSave, DoSaveDocument &&doSaveDocument)
Definition juce_FileBasedDocument.cpp:462
void loadFromAsync(const File &fileToLoadFrom, bool showMessageOnFailure, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:992
virtual Result loadDocument(const File &file)=0
void saveIfNeededAndUserAgreesAsync(std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:1037
void saveAsync(bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:1022
~FileBasedDocument() override
virtual void changed()
Definition juce_FileBasedDocument.cpp:979
bool hasChangedSinceSaved() const
Definition juce_FileBasedDocument.cpp:969
virtual void loadDocumentAsync(const File &file, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:1097
void loadFromUserSpecifiedFileAsync(bool showMessageOnFailure, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:1007
virtual File getSuggestedSaveAsFile(const File &defaultFile)
Definition juce_FileBasedDocument.cpp:1113
Result loadFrom(const File &fileToLoadFrom, bool showMessageOnFailure, bool showWaitCursor=true)
Definition juce_FileBasedDocument.cpp:985
std::unique_ptr< Pimpl > pimpl
Definition juce_FileBasedDocument.h:426
virtual void saveDocumentAsync(const File &file, std::function< void(Result)> callback)
Definition juce_FileBasedDocument.cpp:1105
SaveResult
Definition juce_FileBasedDocument.h:159
@ userCancelledSave
Definition juce_FileBasedDocument.h:161
@ failedToWriteToFile
Definition juce_FileBasedDocument.h:162
@ savedOk
Definition juce_FileBasedDocument.h:160
void setChangedFlag(bool hasChanged)
Definition juce_FileBasedDocument.cpp:974
void saveAsInteractiveAsync(bool warnAboutOverwritingExistingFiles, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:1079
virtual Result saveDocument(const File &file)=0
const File & getFile() const
Definition juce_FileBasedDocument.cpp:1086
void setFile(const File &newFile)
Definition juce_FileBasedDocument.cpp:1091
virtual void setLastDocumentOpened(const File &file)=0
virtual File getLastDocumentOpened()=0
FileBasedDocument(const String &fileExtension, const String &fileWildCard, const String &openFileDialogTitle, const String &saveFileDialogTitle)
Definition juce_FileBasedDocument.cpp:954
void saveAsAsync(const File &newFile, bool warnAboutOverwritingExistingFiles, bool askUserForFileIfNotSpecified, bool showMessageOnFailure, std::function< void(SaveResult)> callback)
Definition juce_FileBasedDocument.cpp:1058
@ saveMode
Definition juce_FileBrowserComponent.h:56
@ warnAboutOverwriting
Definition juce_FileBrowserComponent.h:65
@ canSelectFiles
Definition juce_FileBrowserComponent.h:58
@ openMode
Definition juce_FileBrowserComponent.h:54
Definition juce_FileChooser.h:56
File getResult() const
Definition juce_FileChooser.cpp:240
Definition juce_File.h:45
String getFileExtension() const
Definition juce_File.cpp:664
const String & getFullPathName() const noexcept
Definition juce_File.h:153
File getNonexistentSibling(bool putNumbersInBrackets=true) const
Definition juce_File.cpp:653
@ userDocumentsDirectory
Definition juce_File.h:869
File withFileExtension(StringRef newExtension) const
Definition juce_File.cpp:699
bool exists() const
Definition juce_posix_SharedCode.h:246
static ModalComponentManager::Callback * create(CallbackFn &&fn)
Definition juce_ModalComponentManager.h:174
static void hideWaitCursor()
Definition juce_MouseCursor.cpp:138
static void showWaitCursor()
Definition juce_MouseCursor.cpp:133
Definition juce_Result.h:57
static Result fail(const String &errorMessage) noexcept
Definition juce_Result.cpp:65
Definition juce_String.h:53
bool isEmpty() const noexcept
Definition juce_String.h:310
Definition juce_WeakReference.h:78
File getChildFile(StringRef relativeOrAbsolutePath) const
Definition File.cpp:418
unsigned f
Definition inflate.c:1572
static uintptr_t parent
Definition pugl.h:1644
void * object
Definition jmemsys.h:50
#define TRANS(stringLiteral)
Definition juce_LocalisedStrings.h:208
#define JUCE_DECLARE_WEAK_REFERENCEABLE(Class)
Definition juce_WeakReference.h:234
Definition carla_juce.cpp:31
@ WarningIcon
Definition juce_MessageBoxOptions.h:35
@ QuestionIcon
Definition juce_MessageBoxOptions.h:33
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 const jack_port_t port jack_client_t jack_port_id_t port_id const jack_port_t const char port_name const jack_port_t port void * ptr
Definition juce_linux_JackAudio.cpp:79
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
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
uch * p
Definition crypt.c:594
int r
Definition crypt.c:458
int result
Definition process.c:1455
#define void
Definition unzip.h:396
struct zdirent * file
Definition win32.c:1500
#define const
Definition zconf.h:137