#pragma once #include #include #include "overlay_window.h" // We support only one instance of the overlay extern class OverlayWindow* instance; class TargetState; class OverlayWindow : public PowertoyModuleIface { public: OverlayWindow(); virtual const wchar_t* get_name() override; virtual const wchar_t** get_events() override; virtual bool get_config(wchar_t* buffer, int *buffer_size) override; virtual void set_config(const wchar_t* config) override; virtual void enable() override; virtual void disable() override; virtual bool is_enabled() override; virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override; void on_held(); void on_held_press(DWORD vkCode); void was_hidden(); virtual void destroy() override; private: TargetState* target_state; D2DOverlayWindow *winkey_popup; bool _enabled = false; void init_settings(); struct PressTime { PCWSTR name = L"press_time"; int value = 900; // ms int resourceId = IDS_SETTING_DESCRIPTION_PRESS_TIME; } pressTime; struct OverlayOpacity { PCWSTR name = L"overlay_opacity"; int value = 90; // percent int resourceId = IDS_SETTING_DESCRIPTION_OVERLAY_OPACITY; } overlayOpacity; };