#pragma once #ifndef GWEN_CONTROLS_DIALOGS_FILESAVE_H #define GWEN_CONTROLS_DIALOGS_FILESAVE_H #include "Gwen/Gwen.h" namespace Gwen { namespace Dialogs { // Usage: // // Gwen::Dialogs::FileOpen( true, "Open Map", "C:\my\folder\", "My Map Format|*.bmf", this, &MyClass::OpenFilename ); // // // Callback function, for success // typedef void (Event::Handler::*FileSaveSuccessCallback)( const String& filename ); // // The REAL function. // If bUseSystem is used, it may use the system's modal dialog - which // will steal focus and pause the rest of GWEN until it's continued. // void GWEN_EXPORT FileSaveEx( bool bUseSystem, const String& Name, const String& StartPath, const String& Extension, Gwen::Event::Handler* pHandler = NULL, Gwen::Event::Handler::FunctionStr fnCallback = NULL ); // // Templated function simply to avoid having to manually cast the callback function. // template< typename A> void FileSave( bool bUseSystem, const String& Name, const String& StartPath, const String& Extension, Gwen::Event::Handler* pHandler = NULL, A fnCallback = NULL ) { FileSaveEx( bUseSystem, Name, StartPath, Extension, pHandler, (Gwen::Event::Handler::FunctionStr)fnCallback ); } } } #endif