2020-04-30 18:16:08 +08:00
|
|
|
#pragma once
|
|
|
|
|
2020-07-10 17:06:01 +08:00
|
|
|
#include "SecondaryMouseButtonsHook.h"
|
|
|
|
#include "GenericKeyHook.h"
|
|
|
|
|
2020-04-30 18:16:08 +08:00
|
|
|
interface IFancyZonesSettings;
|
|
|
|
interface IZoneWindow;
|
|
|
|
|
|
|
|
class WindowMoveHandler
|
|
|
|
{
|
|
|
|
public:
|
2020-07-10 17:06:01 +08:00
|
|
|
WindowMoveHandler(const winrt::com_ptr<IFancyZonesSettings>& settings, SecondaryMouseButtonsHook* mouseHook, ShiftKeyHook* shiftHook, CtrlKeyHook* ctrlHook);
|
2020-04-30 18:16:08 +08:00
|
|
|
~WindowMoveHandler();
|
|
|
|
|
|
|
|
bool InMoveSize() const noexcept;
|
|
|
|
bool IsDragEnabled() const noexcept;
|
|
|
|
|
2020-06-05 22:53:08 +08:00
|
|
|
void OnMouseDown() noexcept;
|
2020-06-17 21:06:16 +08:00
|
|
|
void OnShiftChangeState(bool state) noexcept; //True for shift down event false for shift up
|
2020-07-10 17:06:01 +08:00
|
|
|
void OnCtrlChangeState(bool state) noexcept; //True for ctrl down event false for ctrl up
|
2020-06-05 22:53:08 +08:00
|
|
|
|
2020-05-31 18:36:45 +08:00
|
|
|
void MoveSizeStart(HWND window, HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IZoneWindow>>& zoneWindowMap) noexcept;
|
|
|
|
void MoveSizeUpdate(HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IZoneWindow>>& zoneWindowMap) noexcept;
|
|
|
|
void MoveSizeEnd(HWND window, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IZoneWindow>>& zoneWindowMap) noexcept;
|
2020-04-30 18:16:08 +08:00
|
|
|
|
2020-05-31 18:36:45 +08:00
|
|
|
void MoveWindowIntoZoneByIndexSet(HWND window, const std::vector<int>& indexSet, winrt::com_ptr<IZoneWindow> zoneWindow) noexcept;
|
2020-08-21 18:53:03 +08:00
|
|
|
bool MoveWindowIntoZoneByDirectionAndIndex(HWND window, DWORD vkCode, bool cycle, winrt::com_ptr<IZoneWindow> zoneWindow);
|
|
|
|
bool MoveWindowIntoZoneByDirectionAndPosition(HWND window, DWORD vkCode, bool cycle, winrt::com_ptr<IZoneWindow> zoneWindow);
|
2020-04-30 18:16:08 +08:00
|
|
|
|
|
|
|
private:
|
|
|
|
class WindowMoveHandlerPrivate* pimpl;
|
|
|
|
};
|