aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-09-15 00:03:11 +0800
committer杨宇千 <crupest@outlook.com>2019-09-15 00:03:11 +0800
commit73f13dd60f51ff05e31a64fba89fe31ab3ab185d (patch)
treed674041629f328c2357ed85e3e564dec06757f3a /include
parent401ca68f7d9d62d195c558edfeda4ece985805e1 (diff)
downloadcru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.tar.gz
cru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.tar.bz2
cru-73f13dd60f51ff05e31a64fba89fe31ab3ab185d.zip
...
Diffstat (limited to 'include')
-rw-r--r--include/cru/common/base.hpp6
-rw-r--r--include/cru/platform/native/cursor.hpp2
-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.hpp2
-rw-r--r--include/cru/ui/controls/button.hpp8
-rw-r--r--include/cru/win/native/ui_application.hpp2
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"