PowerToys/src/modules/fancyzones/lib/ZoneWindowDrawing.h

44 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include <map>
#include <vector>
#include <wil\resource.h>
#include <winrt/base.h>
2020-10-14 20:45:50 +08:00
#include <d2d1.h>
#include "util.h"
#include "Zone.h"
#include "ZoneSet.h"
2020-10-14 20:45:50 +08:00
namespace ZoneWindowDrawingNS
{
struct ColorSetting
{
BYTE fillAlpha{};
COLORREF fill{};
BYTE borderAlpha{};
COLORREF border{};
int thickness{};
};
void DrawBackdrop(wil::unique_hdc& hdc, RECT const& clientRect) noexcept;
void DrawActiveZoneSet(wil::unique_hdc& hdc,
COLORREF zoneColor,
COLORREF zoneBorderColor,
COLORREF highlightColor,
int zoneOpacity,
const IZoneSet::ZonesMap& zones,
const std::vector<size_t>& highlightZones,
bool flashMode) noexcept;
}
2020-10-14 20:45:50 +08:00
class ZoneWindowDrawing
{
HWND m_window;
winrt::com_ptr<IZoneWindowHost> m_host;
public:
ZoneWindowDrawing(HWND window);
void StartAnimation(unsigned millis);
void DrawActiveZoneSet(const std::vector<winrt::com_ptr<IZone>>& zones, const std::vector<size_t>& highlightZones);
};