LMMS
Loading...
Searching...
No Matches
juce_FilenameComponent.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//==============================================================================
41{
42public:
44 virtual ~FilenameComponentListener() = default;
45
47 virtual void filenameComponentChanged (FilenameComponent* fileComponentThatHasChanged) = 0;
48};
49
50
51//==============================================================================
70 private AsyncUpdater
71{
72public:
73 //==============================================================================
93 const File& currentFile,
94 bool canEditFilename,
95 bool isDirectory,
96 bool isForSaving,
97 const String& fileBrowserWildcard,
99 const String& textWhenNothingSelected);
100
102 ~FilenameComponent() override;
103
104 //==============================================================================
106 File getCurrentFile() const;
107
110
119 void setCurrentFile (File newFile,
120 bool addToRecentlyUsedList,
122
125 void setFilenameIsEditable (bool shouldBeEditable);
126
131 void setDefaultBrowseTarget (const File& newDefaultDirectory);
132
138 virtual File getLocationToBrowse();
139
148
156 void setRecentlyUsedFilenames (const StringArray& filenames);
157
165 void addRecentlyUsedFile (const File& file);
166
169 void setMaxNumberOfRecentFiles (int newMaximum);
170
178
179 //==============================================================================
181 void addListener (FilenameComponentListener* listener);
182
185
187 void setTooltip (const String& newTooltip) override;
188
189 //==============================================================================
198
199 //==============================================================================
201 void paintOverChildren (Graphics&) override;
203 void resized() override;
205 void lookAndFeelChanged() override;
207 bool isInterestedInFileDrag (const StringArray&) override;
209 void filesDropped (const StringArray&, int, int) override;
211 void fileDragEnter (const StringArray&, int, int) override;
213 void fileDragExit (const StringArray&) override;
215 std::unique_ptr<ComponentTraverser> createKeyboardFocusTraverser() override;
216
217private:
218 //==============================================================================
219 void handleAsyncUpdate() override;
220
221 void showChooser();
222
225 std::unique_ptr<Button> browseButton;
229 ListenerList <FilenameComponentListener> listeners;
231 std::unique_ptr<FileChooser> chooser;
232
234};
235
236} // namespace juce
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_Button.h:43
Definition juce_ComboBox.h:49
Component() noexcept
Definition juce_Component.cpp:517
Definition juce_FileDragAndDropTarget.h:37
Definition juce_File.h:45
Definition juce_FilenameComponent.h:71
void addRecentlyUsedFile(const File &file)
Definition juce_FilenameComponent.cpp:238
void showChooser()
Definition juce_FilenameComponent.cpp:115
void lookAndFeelChanged() override
Definition juce_FilenameComponent.cpp:86
File getCurrentFile() const
Definition juce_FilenameComponent.cpp:169
void setRecentlyUsedFilenames(const StringArray &filenames)
Definition juce_FilenameComponent.cpp:220
bool isInterestedInFileDrag(const StringArray &) override
Definition juce_FilenameComponent.cpp:135
String browseButtonText
Definition juce_FilenameComponent.h:228
int maxRecentFiles
Definition juce_FilenameComponent.h:226
String getCurrentFileText() const
Definition juce_FilenameComponent.cpp:164
String enforcedSuffix
Definition juce_FilenameComponent.h:228
void setDefaultBrowseTarget(const File &newDefaultDirectory)
Definition juce_FilenameComponent.cpp:102
void removeListener(FilenameComponentListener *listener)
Definition juce_FilenameComponent.cpp:257
ComboBox filenameBox
Definition juce_FilenameComponent.h:223
void setFilenameIsEditable(bool shouldBeEditable)
Definition juce_FilenameComponent.cpp:205
void fileDragExit(const StringArray &) override
Definition juce_FilenameComponent.cpp:157
void paintOverChildren(Graphics &) override
Definition juce_FilenameComponent.cpp:59
void fileDragEnter(const StringArray &, int, int) override
Definition juce_FilenameComponent.cpp:151
void setBrowseButtonText(const String &browseButtonText)
Definition juce_FilenameComponent.cpp:80
std::unique_ptr< ComponentTraverser > createKeyboardFocusTraverser() override
Definition juce_FilenameComponent.cpp:73
String lastFilename
Definition juce_FilenameComponent.h:224
StringArray getRecentlyUsedFilenames() const
Definition juce_FilenameComponent.cpp:210
String wildcard
Definition juce_FilenameComponent.h:228
virtual File getLocationToBrowse()
Definition juce_FilenameComponent.cpp:107
bool isSaving
Definition juce_FilenameComponent.h:227
void handleAsyncUpdate() override
Definition juce_FilenameComponent.cpp:262
FilenameComponent(const String &name, const File &currentFile, bool canEditFilename, bool isDirectory, bool isForSaving, const String &fileBrowserWildcard, const String &enforcedSuffix, const String &textWhenNothingSelected)
Definition juce_FilenameComponent.cpp:29
ListenerList< FilenameComponentListener > listeners
Definition juce_FilenameComponent.h:229
bool isFileDragOver
Definition juce_FilenameComponent.h:227
std::unique_ptr< Button > browseButton
Definition juce_FilenameComponent.h:225
void setMaxNumberOfRecentFiles(int newMaximum)
Definition juce_FilenameComponent.cpp:231
void filesDropped(const StringArray &, int, int) override
Definition juce_FilenameComponent.cpp:140
bool isDir
Definition juce_FilenameComponent.h:227
void resized() override
Definition juce_FilenameComponent.cpp:68
std::unique_ptr< FileChooser > chooser
Definition juce_FilenameComponent.h:231
File defaultBrowseFile
Definition juce_FilenameComponent.h:230
void addListener(FilenameComponentListener *listener)
Definition juce_FilenameComponent.cpp:252
void setCurrentFile(File newFile, bool addToRecentlyUsedList, NotificationType notification=sendNotificationAsync)
Definition juce_FilenameComponent.cpp:179
void setTooltip(const String &newTooltip) override
Definition juce_FilenameComponent.cpp:96
Definition juce_FilenameComponent.h:41
virtual void filenameComponentChanged(FilenameComponent *fileComponentThatHasChanged)=0
virtual ~FilenameComponentListener()=default
Definition juce_GraphicsContext.h:45
Definition juce_StringArray.h:35
Definition juce_String.h:53
static const char * name
Definition pugl.h:1582
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
NotificationType
Definition juce_NotificationType.h:32
@ sendNotificationAsync
Definition juce_NotificationType.h:36
Definition juce_FilenameComponent.h:192
virtual Button * createFilenameComponentBrowseButton(const String &text)=0
virtual void layoutFilenameComponent(FilenameComponent &, ComboBox *filenameBox, Button *browseButton)=0
const char * text
Definition swell-functions.h:167
struct zdirent * file
Definition win32.c:1500