diff options
author | 杨宇千 <crupest@outlook.com> | 2019-09-15 00:03:11 +0800 |
---|---|---|
committer | 杨宇千 <crupest@outlook.com> | 2019-09-15 00:03:11 +0800 |
commit | 73f13dd60f51ff05e31a64fba89fe31ab3ab185d (patch) | |
tree | d674041629f328c2357ed85e3e564dec06757f3a /include | |
parent | 401ca68f7d9d62d195c558edfeda4ece985805e1 (diff) | |
download | cru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.tar.gz cru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.tar.bz2 cru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.zip |
...
Diffstat (limited to 'include')
-rw-r--r-- | include/cru/common/base.hpp | 6 | ||||
-rw-r--r-- | include/cru/platform/native/cursor.hpp | 2 | ||||
-rw-r--r-- | include/cru/platform/native/ui_application.hpp (renamed from include/cru/platform/native/ui_applicaition.hpp) | 0 | ||||
-rw-r--r-- | include/cru/ui/click_detector.hpp | 2 | ||||
-rw-r--r-- | include/cru/ui/controls/button.hpp | 8 | ||||
-rw-r--r-- | include/cru/win/native/ui_application.hpp | 2 |
6 files changed, 16 insertions, 4 deletions
diff --git a/include/cru/common/base.hpp b/include/cru/common/base.hpp index 920fe569..55f43e5c 100644 --- a/include/cru/common/base.hpp +++ b/include/cru/common/base.hpp @@ -1,6 +1,8 @@ #pragma once #include "pre_config.hpp" +#include <stdexcept> + #define CRU_DEFAULT_COPY(classname) \ classname(const classname&) = default; \ classname& operator=(const classname&) = default; @@ -36,4 +38,8 @@ struct Interface { Interface& operator=(Interface&& other) = delete; virtual ~Interface() = default; }; + +[[noreturn]] inline void UnreachableCode() { + throw std::runtime_error("Unreachable code."); +} } // namespace cru diff --git a/include/cru/platform/native/cursor.hpp b/include/cru/platform/native/cursor.hpp index b0ff4494..b8604ecb 100644 --- a/include/cru/platform/native/cursor.hpp +++ b/include/cru/platform/native/cursor.hpp @@ -34,4 +34,6 @@ class CursorManager : public NativeResource { //TODO: Add method to create cursor. }; + +std::shared_ptr<Cursor> GetSystemCursor(SystemCursor type); } // namespace cru::platform::native diff --git a/include/cru/platform/native/ui_applicaition.hpp b/include/cru/platform/native/ui_application.hpp index 923fbaf7..923fbaf7 100644 --- a/include/cru/platform/native/ui_applicaition.hpp +++ b/include/cru/platform/native/ui_application.hpp diff --git a/include/cru/ui/click_detector.hpp b/include/cru/ui/click_detector.hpp index 3806dd82..1a88b8a6 100644 --- a/include/cru/ui/click_detector.hpp +++ b/include/cru/ui/click_detector.hpp @@ -70,7 +70,7 @@ class ClickDetector : public Object { case MouseButton::Right: return click_map_.right; default: - std::abort(); + UnreachableCode(); } } diff --git a/include/cru/ui/controls/button.hpp b/include/cru/ui/controls/button.hpp index ca3dcae9..b5cca7dc 100644 --- a/include/cru/ui/controls/button.hpp +++ b/include/cru/ui/controls/button.hpp @@ -20,6 +20,8 @@ struct ButtonBorderStyle { render::BorderStyle hover; // corresponds to ButtonState::Press render::BorderStyle press; + // corresponds to ButtonState::PressCancel + render::BorderStyle press_cancel; }; enum class ButtonState { @@ -27,8 +29,10 @@ enum class ButtonState { Normal, // mouse is in it and not pressed Hover, - // mouse is pressed in it (click begins) - Press + // mouse is pressed in it + Press, + // mouse is pressed outside button + PressCancel, }; class Button : public ContentControl { diff --git a/include/cru/win/native/ui_application.hpp b/include/cru/win/native/ui_application.hpp index d7da4409..addf2c93 100644 --- a/include/cru/win/native/ui_application.hpp +++ b/include/cru/win/native/ui_application.hpp @@ -1,7 +1,7 @@ #pragma once #include "../win_pre_config.hpp" -#include "cru/platform/native/ui_applicaition.hpp" +#include "cru/platform/native/ui_application.hpp" #include "platform_id.hpp" #include "cursor.hpp" |