VSTGUI  4.10
Graphical User Interface Framework not only for VST plugins
CNewFileSelector Class Referenceabstract

New file selector class. More...

+ Inheritance diagram for CNewFileSelector:

Public Types

enum  Style { kSelectFile, kSelectSaveFile, kSelectDirectory }
 

Public Member Functions

CBaseObjectnewCopy () const override
 
CFileSelector setup
void setTitle (const UTF8String &title)
 set title of file selector More...
 
void setInitialDirectory (const UTF8String &path)
 set initial directory (UTF8 string) More...
 
void setDefaultSaveName (const UTF8String &name)
 set initial save name (UTF8 string) More...
 
void setDefaultExtension (const CFileExtension &extension)
 set default file extension More...
 
void setAllowMultiFileSelection (bool state)
 set allow multi file selection (only valid for kSelectFile selector style) More...
 
void addFileExtension (const CFileExtension &extension)
 add a file extension More...
 
void addFileExtension (CFileExtension &&extension)
 add a file extension More...
 
CFileSelector result
uint32_t getNumSelectedFiles () const
 get number of selected files More...
 
UTF8StringPtr getSelectedFile (uint32_t index) const
 get selected file. More...
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()=default
 
 ~CBaseObject () noexcept override=default
 
 CBaseObject (const CBaseObject &o)
 
CBaseObjectoperator= (const CBaseObject &obj)
 
virtual CMessageResult notify (CBaseObject *sender, IdStringPtr message)
 
- Public Member Functions inherited from ReferenceCounted< T >
 ReferenceCounted ()=default
 
virtual ~ReferenceCounted () noexcept=default
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
void forget () override
 decrease refcount and delete object if refcount == 0 More...
 
void remember () override
 increase refcount More...
 
virtual int32_t getNbReference () const
 get refcount More...
 
virtual void beforeDelete ()
 

Static Public Member Functions

static const CFileExtensiongetAllFilesExtension ()
 get the all files extension More...
 

Static Public Attributes

static IdStringPtr kSelectEndMessage = "CNewFileSelector Select End Message"
 

Protected Types

using FileExtensionList = std::list< CFileExtension >
 

Protected Member Functions

 CNewFileSelector (CFrame *frame=nullptr)
 
 ~CNewFileSelector () noexcept override
 
virtual bool runInternal (CBaseObject *delegate)=0
 
virtual void cancelInternal ()=0
 
virtual bool runModalInternal ()=0
 

Protected Attributes

CFrameframe
 
UTF8String title
 
UTF8String initialPath
 
UTF8String defaultSaveName
 
const CFileExtensiondefaultExtension
 
bool allowMultiFileSelection
 
FileExtensionList extensions
 
std::vector< UTF8Stringresult
 

CFileSelector running

using CallbackFunc = std::function< void(CNewFileSelector *)>
 
static CNewFileSelectorcreate (CFrame *parent=nullptr, Style style=kSelectFile)
 create a new instance More...
 
bool run (CallbackFunc &&callback)
 
bool run (CBaseObject *delegate)
 the delegate will get a kSelectEndMessage throu the notify method where the sender is this CNewFileSelector object More...
 
void cancel ()
 cancel running the file selector More...
 
bool runModal ()
 run as modal dialog More...
 

Detailed Description

New file selector class.

Usage

Running the file selector

void MyClass::runFileSelector ()
{
if (selector)
{
selector->addFileExtension (CFileExtension ("AIFF", "aif", "audio/aiff"));
selector->setDefaultExtension (CFileExtension ("WAVE", "wav"));
selector->setTitle("Choose An Audio File");
selector->run (this);
selector->forget ();
}
}

Getting results

CMessageResult MyClass::notify (CBaseObject* sender, IdStringPtr message)
{
{
CNewFileSelector* sel = dynamic_cast<CNewFileSelector*>(sender);
if (sel)
{
// do anything with the selected files here
}
}
return parent::notify (sender, message);
}

Member Typedef Documentation

◆ CallbackFunc

using CallbackFunc = std::function<void(CNewFileSelector*)>

◆ FileExtensionList

using FileExtensionList = std::list<CFileExtension>
protected

Member Enumeration Documentation

◆ Style

enum Style
Enumerator
kSelectFile 

select file(s) selector style

kSelectSaveFile 

select save file selector style

kSelectDirectory 

select directory style

Constructor & Destructor Documentation

◆ CNewFileSelector()

CNewFileSelector ( CFrame frame = nullptr)
explicitprotected

◆ ~CNewFileSelector()

~CNewFileSelector ( )
overrideprotecteddefaultnoexcept

Member Function Documentation

◆ addFileExtension() [1/2]

void addFileExtension ( const CFileExtension extension)

add a file extension

◆ addFileExtension() [2/2]

void addFileExtension ( CFileExtension &&  extension)

add a file extension

◆ cancel()

void cancel ( )

cancel running the file selector

◆ cancelInternal()

virtual void cancelInternal ( )
protectedpure virtual

◆ create()

static CNewFileSelector* create ( CFrame parent = nullptr,
Style  style = kSelectFile 
)
static

create a new instance

◆ getAllFilesExtension()

const CFileExtension & getAllFilesExtension ( )
static

get the all files extension

◆ getNumSelectedFiles()

uint32_t getNumSelectedFiles ( ) const

get number of selected files

◆ getSelectedFile()

UTF8StringPtr getSelectedFile ( uint32_t  index) const

get selected file.

Result is only valid as long as the instance of CNewFileSelector is valid.

◆ newCopy()

CBaseObject* newCopy ( ) const
inlineoverride

◆ run() [1/2]

bool run ( CallbackFunc &&  callback)

◆ run() [2/2]

bool run ( CBaseObject delegate)

the delegate will get a kSelectEndMessage throu the notify method where the sender is this CNewFileSelector object

◆ runInternal()

virtual bool runInternal ( CBaseObject delegate)
protectedpure virtual

◆ runModal()

bool runModal ( )

run as modal dialog

◆ runModalInternal()

virtual bool runModalInternal ( )
protectedpure virtual

◆ setAllowMultiFileSelection()

void setAllowMultiFileSelection ( bool  state)

set allow multi file selection (only valid for kSelectFile selector style)

◆ setDefaultExtension()

void setDefaultExtension ( const CFileExtension extension)

set default file extension

◆ setDefaultSaveName()

void setDefaultSaveName ( const UTF8String name)

set initial save name (UTF8 string)

◆ setInitialDirectory()

void setInitialDirectory ( const UTF8String path)

set initial directory (UTF8 string)

◆ setTitle()

void setTitle ( const UTF8String title)

set title of file selector

Member Data Documentation

◆ allowMultiFileSelection

bool allowMultiFileSelection
protected

◆ defaultExtension

const CFileExtension* defaultExtension
protected

◆ defaultSaveName

UTF8String defaultSaveName
protected

◆ extensions

FileExtensionList extensions
protected

◆ frame

CFrame* frame
protected

◆ initialPath

UTF8String initialPath
protected

◆ kSelectEndMessage

IdStringPtr kSelectEndMessage = "CNewFileSelector Select End Message"
static

◆ result

std::vector<UTF8String> result
protected

◆ title

UTF8String title
protected

The documentation for this class was generated from the following files: