aboutsummaryrefslogtreecommitdiff
path: root/CruUI/ui/controls/text_block.h
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-09-04 20:24:07 +0800
committercrupest <crupest@outlook.com>2018-09-04 20:24:07 +0800
commiteebec8297a8538c40518ceee043edfc41e3b1343 (patch)
tree6050abc691cf99ae623231aeb4749f69610748f3 /CruUI/ui/controls/text_block.h
parentdc1d739f833d594c2bafb6e70e59077756b5d607 (diff)
downloadcru-eebec8297a8538c40518ceee043edfc41e3b1343.tar.gz
cru-eebec8297a8538c40518ceee043edfc41e3b1343.tar.bz2
cru-eebec8297a8538c40518ceee043edfc41e3b1343.zip
...
Diffstat (limited to 'CruUI/ui/controls/text_block.h')
-rw-r--r--CruUI/ui/controls/text_block.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/CruUI/ui/controls/text_block.h b/CruUI/ui/controls/text_block.h
index ff1870c1..85bfe90c 100644
--- a/CruUI/ui/controls/text_block.h
+++ b/CruUI/ui/controls/text_block.h
@@ -1,6 +1,5 @@
#pragma once
-#include "ui/ui_base.h"
#include "ui/control.h"
namespace cru
@@ -12,7 +11,10 @@ namespace cru
class TextBlock : public Control
{
public:
- TextBlock();
+ explicit TextBlock(
+ const Microsoft::WRL::ComPtr<IDWriteTextFormat>& init_text_format = nullptr,
+ const Microsoft::WRL::ComPtr<ID2D1Brush>& init_brush = nullptr
+ );
TextBlock(const TextBlock& other) = delete;
TextBlock(TextBlock&& other) = delete;
TextBlock& operator=(const TextBlock& other) = delete;
@@ -26,19 +28,38 @@ namespace cru
void SetText(const String& text);
+ Microsoft::WRL::ComPtr<ID2D1Brush> GetBrush() const
+ {
+ return brush_;
+ }
+
+ void SetBrush(const Microsoft::WRL::ComPtr<ID2D1Brush>& brush);
+
+ Microsoft::WRL::ComPtr<IDWriteTextFormat> GetTextFormat() const
+ {
+ return text_format_;
+ }
+
+ void SetTextFormat(const Microsoft::WRL::ComPtr<IDWriteTextFormat>& text_format);
+
protected:
void OnSizeChangedCore(events::SizeChangedEventArgs& args) override final;
void OnDraw(ID2D1DeviceContext* device_context) override;
+ Size OnMeasure(const Size& available_size) override;
+
private:
void OnTextChangedCore(const String& old_text, const String& new_text);
- void CreateTextLayout();
+ void CreateDefaultBrush();
+ void CreateDefaultTextFormat();
+ void RecreateTextLayout();
private:
String text_;
Microsoft::WRL::ComPtr<ID2D1Brush> brush_;
+ Microsoft::WRL::ComPtr<IDWriteTextFormat> text_format_;
Microsoft::WRL::ComPtr<IDWriteTextLayout> text_layout_;
};
}