HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Window_vulkan_win32.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/GUI/Window_vulkan.hpp"
7#include <unordered_map>
8
9namespace tt {
10class Application_win32;
11}
12
13namespace tt {
14
15class Window_vulkan_win32 final : public Window_vulkan {
16public:
17 void *win32Window = nullptr;
18
21
23 Window_vulkan_win32 &operator=(const Window_vulkan_win32 &) = delete;
25 Window_vulkan_win32 &operator=(Window_vulkan_win32 &&) = delete;
26
27 void closingWindow() override;
28 void openingWindow() override;
29
30 void createWindow(const std::string &title, vec extent);
31 int windowProc(unsigned int uMsg, uint64_t wParam, int64_t lParam);
32
33 vk::SurfaceKHR getSurface() const override;
34
35 void setCursor(Cursor cursor) noexcept override;
36
37 void closeWindow() override;
38
39 void minimizeWindow() override;
40
41 void maximizeWindow() override;
42
43 void normalizeWindow() override;
44
45 void setWindowSize(ivec extent) override;
46
47
48 [[nodiscard]] std::string getTextFromClipboard() const noexcept override;
49
50 void setTextOnClipboard(std::string str) noexcept override;
51
52private:
53 void setOSWindowRectangleFromRECT(RECT aarect) noexcept;
54
55 TRACKMOUSEEVENT trackMouseLeaveEventParameters;
56 bool trackingMouseLeaveEvent = false;
57 char32_t highSurrogate = 0;
58 MouseEvent mouseButtonEvent;
59 hires_utc_clock::time_point doubleClickTimePoint;
60 hires_utc_clock::duration doubleClickMaximumDuration;
61
62 [[nodiscard]] KeyboardState getKeyboardState() noexcept;
63 [[nodiscard]] KeyboardModifiers getKeyboardModifiers() noexcept;
64
65 [[nodiscard]] char32_t handleSuragates(char32_t c) noexcept;
66 [[nodiscard]] MouseEvent createMouseEvent(unsigned int uMsg, uint64_t wParam, int64_t lParam) noexcept;
67
68
69};
70
71}
STL namespace.
Definition Label.hpp:12
Class which represents an axis-aligned rectangle.
Definition aarect.hpp:13
Definition hires_utc_clock.hpp:15
A 4D vector.
Definition ivec.hpp:37
A 4D vector.
Definition vec.hpp:37
Definition MouseEvent.hpp:12
Definition Window_vulkan.hpp:29
Definition Window_vulkan_win32.hpp:15
void openingWindow() override
vk::SurfaceKHR getSurface() const override
void closingWindow() override