/
iresourcechooser.h
34 lines (27 loc) · 962 Bytes
/
iresourcechooser.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include <string>
#include <memory>
class wxWindow;
namespace ui
{
/**
* A Resource Chooser is a dialog for picking mod resources like
* shaders, animations, sound shaders, particles, etc.
*
* The actual implementation varies a lot, but all resource pickers
* share the ability to return the VFS path or name of the picked object
* and to pre-select an item immediately after its shown.
*/
class IResourceChooser
{
public:
virtual ~IResourceChooser() {}
// Run the dialog and return the selected shader. The dialog will enter a
// new event loop and block the UI until its closed again.
// The returned string will be empty if the user clicks cancel.
virtual std::string chooseResource(const std::string& preselected = std::string()) = 0;
// Destroys the window. Don't rely on the destructor, it won't call Destroy() for you.
virtual void destroyDialog() = 0;
};
typedef std::shared_ptr<IResourceChooser> IResourceChooserPtr;
}