aboutsummaryrefslogtreecommitdiff
path: root/include/cru/osx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-05-15 14:08:06 +0800
committercrupest <crupest@outlook.com>2022-05-15 14:08:06 +0800
commit8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6 (patch)
tree77e41cc14264060517c0f7ed95837012afb8342e /include/cru/osx
parent9e0c9d3499bc50c3534b4dc500d8b5d0b5f22752 (diff)
downloadcru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.tar.gz
cru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.tar.bz2
cru-8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6.zip
...
Diffstat (limited to 'include/cru/osx')
-rw-r--r--include/cru/osx/Convert.h2
-rw-r--r--include/cru/osx/Exception.h3
-rw-r--r--include/cru/osx/Resource.h13
-rw-r--r--include/cru/osx/graphics/quartz/Brush.h47
-rw-r--r--include/cru/osx/graphics/quartz/Convert.h24
-rw-r--r--include/cru/osx/graphics/quartz/Factory.h35
-rw-r--r--include/cru/osx/graphics/quartz/Font.h27
-rw-r--r--include/cru/osx/graphics/quartz/Geometry.h57
-rw-r--r--include/cru/osx/graphics/quartz/Image.h37
-rw-r--r--include/cru/osx/graphics/quartz/ImageFactory.h22
-rw-r--r--include/cru/osx/graphics/quartz/Painter.h82
-rw-r--r--include/cru/osx/graphics/quartz/Resource.h25
-rw-r--r--include/cru/osx/graphics/quartz/TextLayout.h95
-rw-r--r--include/cru/osx/gui/Clipboard.h31
-rw-r--r--include/cru/osx/gui/Cursor.h43
-rw-r--r--include/cru/osx/gui/InputMethod.h56
-rw-r--r--include/cru/osx/gui/Keyboard.h7
-rw-r--r--include/cru/osx/gui/Menu.h67
-rw-r--r--include/cru/osx/gui/Resource.h24
-rw-r--r--include/cru/osx/gui/UiApplication.h64
-rw-r--r--include/cru/osx/gui/Window.h90
21 files changed, 0 insertions, 851 deletions
diff --git a/include/cru/osx/Convert.h b/include/cru/osx/Convert.h
deleted file mode 100644
index bf32174a..00000000
--- a/include/cru/osx/Convert.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-#include "cru/common/platform/osx/Convert.h"
diff --git a/include/cru/osx/Exception.h b/include/cru/osx/Exception.h
deleted file mode 100644
index c346b970..00000000
--- a/include/cru/osx/Exception.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-#include "cru/common/platform/osx/Exception.h"
-#include "cru/platform/Exception.h"
diff --git a/include/cru/osx/Resource.h b/include/cru/osx/Resource.h
deleted file mode 100644
index d30ee31b..00000000
--- a/include/cru/osx/Resource.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-#include "cru/platform/Resource.h"
-
-namespace cru::platform::osx {
-class OsxResource : public Object, public virtual IPlatformResource {
- public:
- CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(OsxResource)
- CRU_DELETE_COPY(OsxResource)
- CRU_DELETE_MOVE(OsxResource)
-
- String GetPlatformId() const override { return u"OSX"; }
-};
-} // namespace cru::platform::osx
diff --git a/include/cru/osx/graphics/quartz/Brush.h b/include/cru/osx/graphics/quartz/Brush.h
deleted file mode 100644
index 677a0b6c..00000000
--- a/include/cru/osx/graphics/quartz/Brush.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/common/Base.h"
-#include "cru/platform/graphics/Base.h"
-#include "cru/platform/graphics/Brush.h"
-
-#include <CoreGraphics/CoreGraphics.h>
-
-#include <functional>
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzBrush : public OsxQuartzResource, public virtual IBrush {
- public:
- QuartzBrush(IGraphicsFactory* graphics_factory)
- : OsxQuartzResource(graphics_factory) {}
- CRU_DELETE_COPY(QuartzBrush)
- CRU_DELETE_MOVE(QuartzBrush)
- ~QuartzBrush() override = default;
-
- public:
- virtual void Select(CGContextRef context) = 0;
-};
-
-class QuartzSolidColorBrush : public QuartzBrush,
- public virtual ISolidColorBrush {
- public:
- QuartzSolidColorBrush(IGraphicsFactory* graphics_factory, const Color& color);
-
- CRU_DELETE_COPY(QuartzSolidColorBrush)
- CRU_DELETE_MOVE(QuartzSolidColorBrush)
-
- ~QuartzSolidColorBrush() override;
-
- Color GetColor() override { return color_; }
- void SetColor(const Color& color) override;
-
- CGColorRef GetCGColorRef() const { return cg_color_; }
-
- void Select(CGContextRef context) override;
-
- String GetDebugString() override;
-
- private:
- Color color_;
- CGColorRef cg_color_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Convert.h b/include/cru/osx/graphics/quartz/Convert.h
deleted file mode 100644
index be56b959..00000000
--- a/include/cru/osx/graphics/quartz/Convert.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-#include "cru/common/Range.h"
-#include "cru/common/String.h"
-#include "cru/common/io/Stream.h"
-#include "cru/platform/Matrix.h"
-
-#include <CoreGraphics/CoreGraphics.h>
-
-namespace cru::platform::graphics::osx::quartz {
-CGAffineTransform Convert(const Matrix& matrix);
-Matrix Convert(const CGAffineTransform& matrix);
-
-CGPoint Convert(const Point& point);
-Point Convert(const CGPoint& point);
-
-CGSize Convert(const Size& size);
-Size Convert(const CGSize& size);
-
-CGRect Convert(const Rect& rect);
-Rect Convert(const CGRect& rect);
-
-CGDataProviderRef ConvertStreamToCGDataProvider(io::Stream* stream);
-CGDataConsumerRef ConvertStreamToCGDataConsumer(io::Stream* stream);
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Factory.h b/include/cru/osx/graphics/quartz/Factory.h
deleted file mode 100644
index 1a5abdc1..00000000
--- a/include/cru/osx/graphics/quartz/Factory.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/common/Base.h"
-#include "cru/osx/graphics/quartz/ImageFactory.h"
-#include "cru/platform/graphics/Factory.h"
-#include "cru/platform/graphics/ImageFactory.h"
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzGraphicsFactory : public OsxQuartzResource,
- public virtual IGraphicsFactory {
- public:
- QuartzGraphicsFactory();
-
- CRU_DELETE_COPY(QuartzGraphicsFactory)
- CRU_DELETE_MOVE(QuartzGraphicsFactory)
-
- ~QuartzGraphicsFactory() override;
-
- public:
- std::unique_ptr<ISolidColorBrush> CreateSolidColorBrush() override;
-
- std::unique_ptr<IGeometryBuilder> CreateGeometryBuilder() override;
-
- std::unique_ptr<IFont> CreateFont(String font_family,
- float font_size) override;
-
- std::unique_ptr<ITextLayout> CreateTextLayout(std::shared_ptr<IFont> font,
- String text) override;
-
- IImageFactory* GetImageFactory() override;
-
- private:
- std::unique_ptr<QuartzImageFactory> image_factory_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Font.h b/include/cru/osx/graphics/quartz/Font.h
deleted file mode 100644
index 50703dfe..00000000
--- a/include/cru/osx/graphics/quartz/Font.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/common/Base.h"
-#include "cru/platform/graphics/Font.h"
-
-#include <CoreText/CoreText.h>
-
-namespace cru::platform::graphics::osx::quartz {
-class OsxCTFont : public OsxQuartzResource, public virtual IFont {
- public:
- OsxCTFont(IGraphicsFactory* graphics_factory, const String& name, float size);
-
- CRU_DELETE_COPY(OsxCTFont)
- CRU_DELETE_MOVE(OsxCTFont)
-
- ~OsxCTFont() override;
-
- CTFontRef GetCTFont() const { return ct_font_; }
-
- String GetFontName() override;
- float GetFontSize() override;
-
- private:
- String name_;
- CTFontRef ct_font_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Geometry.h b/include/cru/osx/graphics/quartz/Geometry.h
deleted file mode 100644
index e0bdd5b6..00000000
--- a/include/cru/osx/graphics/quartz/Geometry.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/graphics/Geometry.h"
-
-#include <memory>
-
-#include <CoreGraphics/CoreGraphics.h>
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzGeometry : public OsxQuartzResource, public virtual IGeometry {
- public:
- QuartzGeometry(IGraphicsFactory *graphics_factory, CGPathRef cg_path);
-
- CRU_DELETE_COPY(QuartzGeometry)
- CRU_DELETE_MOVE(QuartzGeometry)
-
- ~QuartzGeometry() override;
-
- CGPathRef GetCGPath() const { return cg_path_; }
-
- bool FillContains(const Point &point) override;
- Rect GetBounds() override;
-
- std::unique_ptr<IGeometry> Transform(const Matrix &matrix) override;
- std::unique_ptr<IGeometry> CreateStrokeGeometry(float width) override;
-
- private:
- CGPathRef cg_path_;
-};
-
-class QuartzGeometryBuilder : public OsxQuartzResource,
- public virtual IGeometryBuilder {
- public:
- explicit QuartzGeometryBuilder(IGraphicsFactory *graphics_factory);
-
- CRU_DELETE_COPY(QuartzGeometryBuilder)
- CRU_DELETE_MOVE(QuartzGeometryBuilder)
-
- ~QuartzGeometryBuilder() override;
-
- Point GetCurrentPosition() override;
-
- void MoveTo(const Point &point) override;
- void LineTo(const Point &point) override;
- void CubicBezierTo(const Point &start_control_point,
- const Point &end_control_point,
- const Point &end_point) override;
- void QuadraticBezierTo(const Point &control_point,
- const Point &end_point) override;
- void CloseFigure(bool close) override;
-
- std::unique_ptr<IGeometry> Build() override;
-
- private:
- CGMutablePathRef cg_mutable_path_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Image.h b/include/cru/osx/graphics/quartz/Image.h
deleted file mode 100644
index 5b3aead9..00000000
--- a/include/cru/osx/graphics/quartz/Image.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/graphics/Image.h"
-#include "cru/platform/graphics/ImageFactory.h"
-
-#include <CoreGraphics/CoreGraphics.h>
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzImage : public OsxQuartzResource, public virtual IImage {
- public:
- QuartzImage(IGraphicsFactory* graphics_factory, IImageFactory* image_factory,
- CGImageRef image, bool auto_release,
- unsigned char* buffer = nullptr);
-
- CRU_DELETE_COPY(QuartzImage)
- CRU_DELETE_MOVE(QuartzImage)
-
- ~QuartzImage() override;
-
- public:
- float GetWidth() override;
- float GetHeight() override;
-
- std::unique_ptr<IImage> CreateWithRect(const Rect& rect) override;
-
- std::unique_ptr<IPainter> CreatePainter() override;
-
- CGImageRef GetCGImage() const { return image_; }
-
- private:
- IImageFactory* image_factory_;
- CGImageRef image_;
- bool auto_release_ = false;
-
- unsigned char* buffer_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/ImageFactory.h b/include/cru/osx/graphics/quartz/ImageFactory.h
deleted file mode 100644
index 23d14332..00000000
--- a/include/cru/osx/graphics/quartz/ImageFactory.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/graphics/ImageFactory.h"
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzImageFactory : public OsxQuartzResource,
- public virtual IImageFactory {
- public:
- explicit QuartzImageFactory(IGraphicsFactory* graphics_factory);
-
- CRU_DELETE_COPY(QuartzImageFactory)
- CRU_DELETE_MOVE(QuartzImageFactory)
-
- ~QuartzImageFactory() override;
-
- public:
- std::unique_ptr<IImage> DecodeFromStream(io::Stream* stream) override;
- void EncodeToStream(IImage* image, io::Stream* stream, ImageFormat format,
- float quality) override;
- std::unique_ptr<IImage> CreateBitmap(int width, int height) override;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Painter.h b/include/cru/osx/graphics/quartz/Painter.h
deleted file mode 100644
index 87389437..00000000
--- a/include/cru/osx/graphics/quartz/Painter.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/common/Base.h"
-#include "cru/platform/graphics/Base.h"
-#include "cru/platform/graphics/Painter.h"
-
-#include <CoreGraphics/CoreGraphics.h>
-
-#include <functional>
-
-namespace cru::platform::graphics::osx::quartz {
-class QuartzCGContextPainter : public OsxQuartzResource,
- public virtual IPainter {
- CRU_DEFINE_CLASS_LOG_TAG(u"QuartzCGContextPainter")
-
- public:
- explicit QuartzCGContextPainter(
- IGraphicsFactory* graphics_factory, CGContextRef cg_context,
- bool auto_release, const Size& size,
- std::function<void(QuartzCGContextPainter*)> on_end_draw);
-
- CRU_DELETE_COPY(QuartzCGContextPainter)
- CRU_DELETE_MOVE(QuartzCGContextPainter)
-
- ~QuartzCGContextPainter() override;
-
- public:
- Matrix GetTransform() override;
- void SetTransform(const Matrix& matrix) override;
-
- void ConcatTransform(const Matrix& matrix) override;
-
- void Clear(const Color& color) override;
-
- void DrawLine(const Point& start, const Point& end, IBrush* brush,
- float width) override;
- void StrokeRectangle(const Rect& rectangle, IBrush* brush,
- float width) override;
- void FillRectangle(const Rect& rectangle, IBrush* brush) override;
- void StrokeEllipse(const Rect& outline_rect, IBrush* brush,
- float width) override;
- void FillEllipse(const Rect& outline_rect, IBrush* brush) override;
-
- void StrokeGeometry(IGeometry* geometry, IBrush* brush, float width) override;
- void FillGeometry(IGeometry* geometry, IBrush* brush) override;
-
- void DrawText(const Point& offset, ITextLayout* text_layout,
- IBrush* brush) override;
-
- void DrawImage(const Point& offset, IImage* image) override;
-
- void PushLayer(const Rect& bounds) override;
-
- void PopLayer() override;
-
- void EndDraw() override;
-
- void PushState() override;
-
- void PopState() override;
-
- private:
- void SetLineWidth(float width);
-
- void DoEndDraw();
-
- void Validate();
-
- private:
- CGContextRef cg_context_;
-
- bool auto_release_;
-
- Size size_;
-
- Matrix transform_;
-
- std::function<void(QuartzCGContextPainter*)> on_end_draw_;
-
- std::vector<Rect> clip_stack_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/Resource.h b/include/cru/osx/graphics/quartz/Resource.h
deleted file mode 100644
index 916a376f..00000000
--- a/include/cru/osx/graphics/quartz/Resource.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-#include "cru/osx/Resource.h"
-#include "cru/platform/graphics/Base.h"
-#include "cru/platform/graphics/Resource.h"
-
-namespace cru::platform::graphics::osx::quartz {
-class OsxQuartzResource : public platform::osx::OsxResource,
- public virtual IGraphicsResource {
- public:
- explicit OsxQuartzResource(IGraphicsFactory* graphics_factory)
- : graphics_factory_(graphics_factory) {}
-
- CRU_DELETE_COPY(OsxQuartzResource)
- CRU_DELETE_MOVE(OsxQuartzResource)
- ~OsxQuartzResource() override = default;
-
- public:
- String GetPlatformId() const override { return u"OSX Quartz"; }
-
- IGraphicsFactory* GetGraphicsFactory() override { return graphics_factory_; }
-
- private:
- IGraphicsFactory* graphics_factory_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/graphics/quartz/TextLayout.h b/include/cru/osx/graphics/quartz/TextLayout.h
deleted file mode 100644
index c0abc7f9..00000000
--- a/include/cru/osx/graphics/quartz/TextLayout.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#pragma once
-#include "Resource.h"
-
-#include "Font.h"
-#include "cru/common/Base.h"
-#include "cru/platform/graphics/TextLayout.h"
-
-#include <memory>
-
-namespace cru::platform::graphics::osx::quartz {
-class OsxCTTextLayout : public OsxQuartzResource, public virtual ITextLayout {
- public:
- OsxCTTextLayout(IGraphicsFactory* graphics_factory,
- std::shared_ptr<OsxCTFont> font, const String& str);
-
- CRU_DELETE_COPY(OsxCTTextLayout)
- CRU_DELETE_MOVE(OsxCTTextLayout)
-
- ~OsxCTTextLayout() override;
-
- public:
- String GetText() override { return text_; }
- void SetText(String new_text) override;
-
- std::shared_ptr<IFont> GetFont() override { return font_; }
- void SetFont(std::shared_ptr<IFont> font) override;
-
- void SetMaxWidth(float max_width) override;
- void SetMaxHeight(float max_height) override;
-
- bool IsEditMode() override;
- void SetEditMode(bool enable) override;
-
- Index GetLineIndexFromCharIndex(Index char_index) override;
- Index GetLineCount() override;
- float GetLineHeight(Index line_index) override;
-
- Rect GetTextBounds(bool includingTrailingSpace = false) override;
- std::vector<Rect> TextRangeRect(const TextRange& text_range) override;
- Rect TextSinglePoint(Index position, bool trailing) override;
- TextHitTestResult HitTest(const Point& point) override;
-
- CTFrameRef GetCTFrameRef() const { return ct_frame_; }
-
- CTFrameRef CreateFrameWithColor(const Color& color);
-
- Matrix GetTransform() { return transform_; }
-
- String GetDebugString() override;
-
- private:
- void DoSetText(String text);
-
- void ReleaseResource();
- void RecreateFrame();
-
- CGRect DoGetTextBounds(bool includingTrailingSpace = false);
- CGRect DoGetTextBoundsIncludingEmptyLines(
- bool includingTrailingSpace = false);
- std::vector<CGRect> DoTextRangeRect(const TextRange& text_range);
- CGRect DoTextSinglePoint(Index position, bool trailing);
-
- private:
- float max_width_;
- float max_height_;
-
- bool edit_mode_;
-
- std::shared_ptr<OsxCTFont> font_;
-
- String text_;
- String actual_text_;
- CFMutableAttributedStringRef cf_attributed_text_;
-
- CTFramesetterRef ct_framesetter_ = nullptr;
- float suggest_height_;
- CTFrameRef ct_frame_ = nullptr;
- int line_count_;
- std::vector<CGPoint> line_origins_;
- std::vector<CTLineRef> lines_;
- std::vector<float> line_ascents_;
- std::vector<float> line_descents_;
- std::vector<float> line_heights_;
- // The empty line count in the front of the lines.
- int head_empty_line_count_;
- // The trailing empty line count in the back of the lines.
- int tail_empty_line_count_;
-
- // Just for cache.
- CGRect text_bounds_without_trailing_space_;
- CGRect text_bounds_with_trailing_space_;
-
- Matrix transform_;
-};
-} // namespace cru::platform::graphics::osx::quartz
diff --git a/include/cru/osx/gui/Clipboard.h b/include/cru/osx/gui/Clipboard.h
deleted file mode 100644
index b4dcce4c..00000000
--- a/include/cru/osx/gui/Clipboard.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-#include "Resource.h"
-
-#include "cru/platform/gui/Base.h"
-#include "cru/platform/gui/Clipboard.h"
-
-#include <memory>
-
-namespace cru::platform::gui::osx {
-namespace details {
-class OsxClipboardPrivate;
-}
-
-class OsxClipboard : public OsxGuiResource, public virtual IClipboard {
- public:
- OsxClipboard(cru::platform::gui::IUiApplication* ui_application,
- std::unique_ptr<details::OsxClipboardPrivate> p);
-
- CRU_DELETE_COPY(OsxClipboard)
- CRU_DELETE_MOVE(OsxClipboard)
-
- ~OsxClipboard() override;
-
- public:
- String GetText() override;
- void SetText(String text) override;
-
- private:
- std::unique_ptr<details::OsxClipboardPrivate> p_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/Cursor.h b/include/cru/osx/gui/Cursor.h
deleted file mode 100644
index 6cfd400a..00000000
--- a/include/cru/osx/gui/Cursor.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/gui/Cursor.h"
-
-#include <memory>
-
-namespace cru::platform::gui::osx {
-namespace details {
-class OsxWindowPrivate;
-class OsxCursorPrivate;
-class OsxCursorManagerPrivate;
-} // namespace details
-
-class OsxCursor : public OsxGuiResource, public virtual ICursor {
- friend class OsxWindow;
- friend class details::OsxWindowPrivate;
-
- public:
- OsxCursor(IUiApplication* ui_application, SystemCursorType cursor_type);
- CRU_DELETE_COPY(OsxCursor)
- CRU_DELETE_MOVE(OsxCursor)
-
- ~OsxCursor() override;
-
- private:
- std::unique_ptr<details::OsxCursorPrivate> p_;
-};
-
-class OsxCursorManager : public OsxGuiResource, public virtual ICursorManager {
- public:
- explicit OsxCursorManager(IUiApplication* ui_application);
-
- CRU_DELETE_COPY(OsxCursorManager)
- CRU_DELETE_MOVE(OsxCursorManager)
-
- ~OsxCursorManager() override;
-
- std::shared_ptr<ICursor> GetSystemCursor(SystemCursorType type) override;
-
- private:
- std::unique_ptr<details::OsxCursorManagerPrivate> p_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/InputMethod.h b/include/cru/osx/gui/InputMethod.h
deleted file mode 100644
index cbfdae6c..00000000
--- a/include/cru/osx/gui/InputMethod.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-#include "Resource.h"
-
-#include "cru/platform/gui/InputMethod.h"
-
-namespace cru::platform::gui::osx {
-class OsxWindow;
-
-namespace details {
-class OsxWindowPrivate;
-class OsxInputMethodContextPrivate;
-} // namespace details
-
-class OsxInputMethodContext : public OsxGuiResource,
- public virtual IInputMethodContext {
- friend OsxWindow;
- friend details::OsxWindowPrivate;
- friend details::OsxInputMethodContextPrivate;
-
- public:
- explicit OsxInputMethodContext(OsxWindow* window);
-
- CRU_DELETE_COPY(OsxInputMethodContext)
- CRU_DELETE_MOVE(OsxInputMethodContext)
-
- ~OsxInputMethodContext() override;
-
- public:
- bool ShouldManuallyDrawCompositionText() override;
-
- void EnableIME() override;
-
- void DisableIME() override;
-
- void CompleteComposition() override;
-
- void CancelComposition() override;
-
- CompositionText GetCompositionText() override;
-
- void SetCandidateWindowPosition(const Point& point) override;
-
- IEvent<std::nullptr_t>* CompositionStartEvent() override;
-
- IEvent<std::nullptr_t>* CompositionEndEvent() override;
-
- IEvent<std::nullptr_t>* CompositionEvent() override;
-
- IEvent<StringView>* TextEvent() override;
-
- bool IsEnabled();
-
- private:
- std::unique_ptr<details::OsxInputMethodContextPrivate> p_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/Keyboard.h b/include/cru/osx/gui/Keyboard.h
deleted file mode 100644
index 89e0fa05..00000000
--- a/include/cru/osx/gui/Keyboard.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-#include "cru/platform/gui/Keyboard.h"
-
-namespace cru::platform::gui::osx {
-KeyCode KeyCodeFromOsxToCru(unsigned short n);
-unsigned short KeyCodeFromCruToOsx(KeyCode k);
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/Menu.h b/include/cru/osx/gui/Menu.h
deleted file mode 100644
index c5cc756a..00000000
--- a/include/cru/osx/gui/Menu.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-#include "Resource.h"
-
-#include "cru/platform/gui/Menu.h"
-
-namespace cru::platform::gui::osx {
-namespace details {
-struct OsxMenuItemPrivate;
-struct OsxMenuPrivate;
-} // namespace details
-
-class OsxMenu;
-
-class OsxMenuItem : public OsxGuiResource, public virtual IMenuItem {
- friend OsxMenu;
- friend details::OsxMenuPrivate;
-
- private:
- explicit OsxMenuItem(IUiApplication* ui_application);
-
- public:
- CRU_DELETE_COPY(OsxMenuItem)
- CRU_DELETE_MOVE(OsxMenuItem)
-
- ~OsxMenuItem() override;
-
- public:
- String GetTitle() override;
- void SetTitle(String title) override;
- bool IsEnabled() override;
- void SetEnabled(bool enabled) override;
- IMenu* GetParentMenu() override;
- IMenu* GetSubmenu() override;
- void SetKeyboardShortcut(KeyCode key, KeyModifier modifiers) override;
- void DeleteKeyboardShortcut() override;
- void SetOnClickHandler(std::function<void()> handler) override;
-
- private:
- details::OsxMenuItemPrivate* p_;
-};
-
-class OsxMenu : public OsxGuiResource, public virtual IMenu {
- friend OsxMenuItem;
- friend details::OsxMenuPrivate;
- friend details::OsxMenuItemPrivate;
-
- private:
- explicit OsxMenu(IUiApplication* ui_application);
-
- public:
- static OsxMenu* CreateOrGetApplicationMenu(IUiApplication* ui_application);
-
- CRU_DELETE_COPY(OsxMenu)
- CRU_DELETE_MOVE(OsxMenu)
-
- ~OsxMenu() override;
-
- public:
- IMenuItem* GetItemAt(int index) override;
- int GetItemCount() override;
- IMenuItem* CreateItemAt(int index) override;
- void RemoveItemAt(int index) override;
-
- private:
- details::OsxMenuPrivate* p_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/Resource.h b/include/cru/osx/gui/Resource.h
deleted file mode 100644
index bc3f9cd6..00000000
--- a/include/cru/osx/gui/Resource.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-#include "../Resource.h"
-
-#include "cru/platform/gui/Base.h"
-
-namespace cru::platform::gui::osx {
-class OsxGuiResource : public platform::osx::OsxResource {
- public:
- explicit OsxGuiResource(IUiApplication* ui_application);
-
- CRU_DELETE_COPY(OsxGuiResource)
- CRU_DELETE_MOVE(OsxGuiResource)
-
- ~OsxGuiResource() override = default;
-
- public:
- String GetPlatformId() const override { return u"OSX GUI"; }
-
- IUiApplication* GetUiApplication() const { return ui_application_; }
-
- private:
- IUiApplication* ui_application_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/UiApplication.h b/include/cru/osx/gui/UiApplication.h
deleted file mode 100644
index 2d2c119c..00000000
--- a/include/cru/osx/gui/UiApplication.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/gui/UiApplication.h"
-
-#include <functional>
-#include <memory>
-
-namespace cru::platform::gui::osx {
-class OsxWindow;
-
-namespace details {
-class OsxUiApplicationPrivate;
-}
-
-class OsxUiApplication : public OsxGuiResource, public virtual IUiApplication {
- friend details::OsxUiApplicationPrivate;
- friend OsxWindow;
-
- public:
- OsxUiApplication();
-
- CRU_DELETE_COPY(OsxUiApplication)
- CRU_DELETE_MOVE(OsxUiApplication)
-
- ~OsxUiApplication() override;
-
- public:
- int Run() override;
-
- void RequestQuit(int quit_code) override;
- void AddOnQuitHandler(std::function<void()> handler) override;
- bool IsQuitOnAllWindowClosed() override;
- void SetQuitOnAllWindowClosed(bool quit_on_all_window_closed) override;
-
- long long SetImmediate(std::function<void()> action) override;
- long long SetTimeout(std::chrono::milliseconds milliseconds,
- std::function<void()> action) override;
- long long SetInterval(std::chrono::milliseconds milliseconds,
- std::function<void()> action) override;
- void CancelTimer(long long id) override;
-
- std::vector<INativeWindow*> GetAllWindow() override;
-
- INativeWindow* CreateWindow() override;
-
- cru::platform::graphics::IGraphicsFactory* GetGraphicsFactory() override;
-
- ICursorManager* GetCursorManager() override;
-
- IClipboard* GetClipboard() override;
-
- IMenu* GetApplicationMenu() override;
-
- std::optional<String> ShowSaveDialog(SaveDialogOptions options) override;
-
- std::optional<std::vector<String>> ShowOpenDialog(
- OpenDialogOptions options) override;
-
- private:
- void UnregisterWindow(OsxWindow* window);
-
- std::unique_ptr<details::OsxUiApplicationPrivate> p_;
-};
-} // namespace cru::platform::gui::osx
diff --git a/include/cru/osx/gui/Window.h b/include/cru/osx/gui/Window.h
deleted file mode 100644
index 6cefbe8e..00000000
--- a/include/cru/osx/gui/Window.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-#include "Resource.h"
-#include "cru/platform/gui/Base.h"
-#include "cru/platform/gui/InputMethod.h"
-#include "cru/platform/gui/Window.h"
-
-#include <memory>
-
-namespace cru::platform::gui::osx {
-namespace details {
-class OsxWindowPrivate;
-class OsxInputMethodContextPrivate;
-} // namespace details
-
-class OsxUiApplication;
-class OsxInputMethodContext;
-
-class OsxWindow : public OsxGuiResource, public INativeWindow {
- friend details::OsxWindowPrivate;
- friend details::OsxInputMethodContextPrivate;
-
- public:
- OsxWindow(OsxUiApplication* ui_application);
-
- CRU_DELETE_COPY(OsxWindow)
- CRU_DELETE_MOVE(OsxWindow)
-
- ~OsxWindow() override;
-
- public:
- void Close() override;
-
- INativeWindow* GetParent() override;
- void SetParent(INativeWindow* parent) override;
-
- WindowStyleFlag GetStyleFlag() override;
- void SetStyleFlag(WindowStyleFlag flag) override;
-
- String GetTitle() override;
- void SetTitle(String title) override;
-
- WindowVisibilityType GetVisibility() override;
- void SetVisibility(WindowVisibilityType visibility) override;
-
- Size GetClientSize() override;
- void SetClientSize(const Size& size) override;
-
- Rect GetClientRect() override;
- void SetClientRect(const Rect& rect) override;
-
- Rect GetWindowRect() override;
- void SetWindowRect(const Rect& rect) override;
-
- bool RequestFocus() override;
-
- Point GetMousePosition() override;
-
- bool CaptureMouse() override;
- bool ReleaseMouse() override;
-
- void SetCursor(std::shared_ptr<ICursor> cursor) override;
-
- void SetToForeground() override;
-
- void RequestRepaint() override;
-
- std::unique_ptr<graphics::IPainter> BeginPaint() override;
-
- IEvent<std::nullptr_t>* CreateEvent() override;
- IEvent<std::nullptr_t>* DestroyEvent() override;
- IEvent<std::nullptr_t>* PaintEvent() override;
-
- IEvent<WindowVisibilityType>* VisibilityChangeEvent() override;
- IEvent<Size>* ResizeEvent() override;
- IEvent<FocusChangeType>* FocusEvent() override;
-
- IEvent<MouseEnterLeaveType>* MouseEnterLeaveEvent() override;
- IEvent<Point>* MouseMoveEvent() override;
- IEvent<NativeMouseButtonEventArgs>* MouseDownEvent() override;
- IEvent<NativeMouseButtonEventArgs>* MouseUpEvent() override;
- IEvent<NativeMouseWheelEventArgs>* MouseWheelEvent() override;
- IEvent<NativeKeyEventArgs>* KeyDownEvent() override;
- IEvent<NativeKeyEventArgs>* KeyUpEvent() override;
-
- IInputMethodContext* GetInputMethodContext() override;
-
- private:
- std::unique_ptr<details::OsxWindowPrivate> p_;
-};
-} // namespace cru::platform::gui::osx