2017-01-20 08:36:52 -05:00
|
|
|
#pragma once
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
namespace Components
|
|
|
|
{
|
|
|
|
class Toast : public Component
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Toast();
|
|
|
|
~Toast();
|
2017-02-18 11:25:54 -05:00
|
|
|
void preDestroy() override;
|
|
|
|
|
|
|
|
typedef WinToastLib::WinToastTemplate Template;
|
2017-01-19 16:23:59 -05:00
|
|
|
|
|
|
|
#if defined(DEBUG) || defined(FORCE_UNIT_TESTS)
|
2017-01-20 08:36:52 -05:00
|
|
|
const char* getName() override { return "Toast"; };
|
2017-01-19 16:23:59 -05:00
|
|
|
#endif
|
|
|
|
|
|
|
|
static void Show(std::string image, std::string title, std::string description, int length);
|
2017-02-18 11:25:54 -05:00
|
|
|
static bool ShowNative(const WinToastLib::WinToastTemplate& toast);
|
2017-01-19 16:23:59 -05:00
|
|
|
|
2017-02-18 13:42:36 -05:00
|
|
|
static std::string GetIcon();
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
private:
|
|
|
|
class UIToast
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
std::string image;
|
|
|
|
std::string title;
|
|
|
|
std::string desc;
|
|
|
|
int length;
|
|
|
|
int start;
|
|
|
|
};
|
|
|
|
|
2017-05-12 13:52:42 -04:00
|
|
|
class WinToastHandler: public WinToastLib::IWinToastHandler {
|
|
|
|
public:
|
|
|
|
void toastActivated() const override {};
|
|
|
|
void toastDismissed(WinToastLib::IWinToastHandler::WinToastDismissalReason /*state*/) const override {};
|
|
|
|
void toastFailed() const override {};
|
|
|
|
};
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
static void Handler();
|
|
|
|
static void Draw(UIToast* toast);
|
|
|
|
|
|
|
|
static std::queue<UIToast> Queue;
|
|
|
|
static std::mutex Mutex;
|
2017-02-18 11:25:54 -05:00
|
|
|
|
2017-05-12 13:52:42 -04:00
|
|
|
static WinToastHandler* ToastHandler;
|
2017-01-19 16:23:59 -05:00
|
|
|
};
|
|
|
|
}
|