aboutsummaryrefslogtreecommitdiff
path: root/CruUI/ui/controls
diff options
context:
space:
mode:
Diffstat (limited to 'CruUI/ui/controls')
-rw-r--r--CruUI/ui/controls/text_block.cpp22
-rw-r--r--CruUI/ui/controls/text_block.h9
2 files changed, 28 insertions, 3 deletions
diff --git a/CruUI/ui/controls/text_block.cpp b/CruUI/ui/controls/text_block.cpp
index 132bd3e7..04166f32 100644
--- a/CruUI/ui/controls/text_block.cpp
+++ b/CruUI/ui/controls/text_block.cpp
@@ -25,7 +25,14 @@ namespace cru
}
TextBlock::TextBlock(const Microsoft::WRL::ComPtr<IDWriteTextFormat>& init_text_format,
- const Microsoft::WRL::ComPtr<ID2D1Brush>& init_brush) : Control(false)
+ const Microsoft::WRL::ComPtr<ID2D1Brush>& init_brush) : Control(false),
+ window_deactivated_handler_(new events::UiEvent::EventHandler([this](events::UiEvent::ArgsType& args)
+ {
+ if (is_selecting_)
+ {
+ is_selecting_ = false;
+ }
+ }))
{
text_format_ = init_text_format;
if (init_brush == nullptr)
@@ -59,6 +66,19 @@ namespace cru
Repaint();
}
+ void TextBlock::OnAttachToWindow(Window* window)
+ {
+ window->deactivated_event.AddHandler([](auto args)
+ {
+
+ });
+ }
+
+ void TextBlock::OnDetachToWindow(Window* window)
+ {
+
+ }
+
void TextBlock::OnSizeChangedCore(events::SizeChangedEventArgs& args)
{
text_layout_->SetMaxWidth(args.GetNewSize().width);
diff --git a/CruUI/ui/controls/text_block.h b/CruUI/ui/controls/text_block.h
index c817104e..4c1f1fb1 100644
--- a/CruUI/ui/controls/text_block.h
+++ b/CruUI/ui/controls/text_block.h
@@ -27,9 +27,9 @@ namespace cru
unsigned position;
unsigned count;
- operator DWRITE_TEXT_RANGE() const
+ explicit operator DWRITE_TEXT_RANGE() const
{
- DWRITE_TEXT_RANGE result;
+ DWRITE_TEXT_RANGE result{};
result.startPosition = position;
result.length = count;
return result;
@@ -97,6 +97,9 @@ namespace cru
}
protected:
+ void OnAttachToWindow(Window* window) override;
+ void OnDetachToWindow(Window* window) override;
+
void OnSizeChangedCore(events::SizeChangedEventArgs& args) override final;
void OnDraw(ID2D1DeviceContext* device_context) override;
@@ -130,6 +133,8 @@ namespace cru
std::optional<TextRange> selected_range_ = std::nullopt;
bool is_selecting_ = false;
+
+ events::UiEvent::EventHandlerPtr window_deactivated_handler_;
};
}
}