1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/extras/Projucer/Source/ComponentEditor/Properties/jucer_FilePropertyComponent.h
2022-05-16 17:55:48 +01:00

63 lines
2 KiB
C++

/*
==============================================================================
This file is part of the JUCE library.
Copyright (c) 2022 - Raw Material Software Limited
JUCE is an open source library subject to commercial or open-source
licensing.
By using JUCE, you agree to the terms of both the JUCE 7 End-User License
Agreement and JUCE Privacy Policy.
End User License Agreement: www.juce.com/juce-7-licence
Privacy Policy: www.juce.com/juce-privacy-policy
Or: You may also use this code under the terms of the GPL v3 (see
www.gnu.org/licenses).
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
DISCLAIMED.
==============================================================================
*/
#pragma once
//==============================================================================
class FilePropertyComponent : public PropertyComponent,
private FilenameComponentListener
{
public:
FilePropertyComponent (const String& name,
const bool isDirectory,
const bool allowEditingOfFilename,
const String& fileBrowserWildcard = "*")
: PropertyComponent (name),
filenameComp (name, File(), allowEditingOfFilename,
isDirectory, false, fileBrowserWildcard,
String(), String())
{
addAndMakeVisible (filenameComp);
filenameComp.addListener (this);
}
virtual void setFile (const File& newFile) = 0;
virtual File getFile() const = 0;
void refresh() override
{
filenameComp.setCurrentFile (getFile(), false);
}
private:
void filenameComponentChanged (FilenameComponent*) override
{
if (getFile() != filenameComp.getCurrentFile())
setFile (filenameComp.getCurrentFile());
}
FilenameComponent filenameComp;
};