diff options
author | crupest <crupest@outlook.com> | 2018-10-07 17:15:32 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-10-07 17:15:32 +0800 |
commit | 00abb6f0c8678086860c07eedb17aa348b13fd76 (patch) | |
tree | 45976fd277758fbc6be8c2e38e1f560118ff8efc /src/application.cpp | |
parent | 508c69d6706ddfdba5bac7970ea95b8158992323 (diff) | |
download | cru-00abb6f0c8678086860c07eedb17aa348b13fd76.tar.gz cru-00abb6f0c8678086860c07eedb17aa348b13fd76.tar.bz2 cru-00abb6f0c8678086860c07eedb17aa348b13fd76.zip |
Add cursor.
Diffstat (limited to 'src/application.cpp')
-rw-r--r-- | src/application.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/application.cpp b/src/application.cpp index f53a002d..7658a340 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -5,6 +5,7 @@ #include "exception.h" #include "timer.h" #include "ui/window.h" +#include "ui/cursor.h" #include "graph/graph.h" #include "ui/animations/animation.h" @@ -86,6 +87,16 @@ namespace cru { return instance_; } + namespace + { + void LoadSystemCursor(HINSTANCE h_instance) + { + ui::cursors[ui::cursor_arrow_key] = std::make_shared<ui::Cursor>(::LoadCursorW(h_instance, MAKEINTRESOURCEW(IDC_ARROW)), false); + ui::cursors[ui::cursor_hand_key] = std::make_shared<ui::Cursor>(::LoadCursorW(h_instance, MAKEINTRESOURCEW(IDC_HAND)), false); + ui::cursors[ui::cursor_i_beam_key] = std::make_shared<ui::Cursor>(::LoadCursorW(h_instance, MAKEINTRESOURCEW(IDC_IBEAM)), false); + } + } + Application::Application(HINSTANCE h_instance) : h_instance_(h_instance) { @@ -112,10 +123,14 @@ namespace cru { if (!::SystemParametersInfoW(SPI_GETCARETWIDTH, 0 , &caret_width, 0)) throw Win32Error(::GetLastError(), "Failed to get system caret width."); caret_info_.half_caret_width = caret_width / 2.0f; + + LoadSystemCursor(h_instance); } Application::~Application() { + ui::cursors.clear(); + animation_manager_.reset(); instance_ = nullptr; } |