aboutsummaryrefslogtreecommitdiff
path: root/include/cru
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru')
-rw-r--r--include/cru/base/Osx.h7
-rw-r--r--include/cru/base/StringUtil.h5
-rw-r--r--include/cru/platform/Color.h6
-rw-r--r--include/cru/platform/graphics/quartz/Brush.h2
-rw-r--r--include/cru/platform/graphics/quartz/Convert.h2
-rw-r--r--include/cru/platform/graphics/quartz/Factory.h4
-rw-r--r--include/cru/platform/graphics/quartz/Font.h6
-rw-r--r--include/cru/platform/graphics/quartz/Resource.h4
-rw-r--r--include/cru/platform/graphics/quartz/TextLayout.h14
-rw-r--r--include/cru/platform/gui/osx/Clipboard.h4
-rw-r--r--include/cru/platform/gui/osx/InputMethod.h2
-rw-r--r--include/cru/platform/gui/osx/Menu.h4
-rw-r--r--include/cru/platform/gui/osx/Resource.h4
-rw-r--r--include/cru/platform/gui/osx/UiApplication.h4
-rw-r--r--include/cru/platform/gui/osx/Window.h4
-rw-r--r--include/cru/platform/osx/Resource.h6
16 files changed, 42 insertions, 36 deletions
diff --git a/include/cru/base/Osx.h b/include/cru/base/Osx.h
index fbdffc54..e42a4fe5 100644
--- a/include/cru/base/Osx.h
+++ b/include/cru/base/Osx.h
@@ -7,9 +7,10 @@
#endif
#include "Range.h"
-#include "String.h"
#include <CoreFoundation/CoreFoundation.h>
+#include <string>
+#include <string_view>
namespace cru {
template <typename CFClassRef>
@@ -29,8 +30,8 @@ class CFWrapper {
}
};
-CFWrapper<CFStringRef> ToCFString(StringView string);
-String FromCFStringRef(CFStringRef string);
+CFWrapper<CFStringRef> ToCFString(std::string_view string);
+std::string FromCFStringRef(CFStringRef string);
CFRange ToCFRange(const Range& range);
Range FromCFRange(const CFRange& range);
diff --git a/include/cru/base/StringUtil.h b/include/cru/base/StringUtil.h
index 54e7b6e6..8c7841d7 100644
--- a/include/cru/base/StringUtil.h
+++ b/include/cru/base/StringUtil.h
@@ -375,4 +375,9 @@ class CodePointIterator {
using Utf8CodePointIterator = CodePointIterator<char, &Utf8NextCodePoint>;
using Utf16CodePointIterator =
CodePointIterator<Utf16CodeUnit, &Utf16NextCodePoint>;
+
+Index Utf8IndexCodeUnitToCodePoint(const Utf8CodeUnit* ptr, Index size, Index position);
+Index Utf8IndexCodePointToCodeUnit(const Utf8CodeUnit* ptr, Index size, Index position);
+Index Utf16IndexCodeUnitToCodePoint(const Utf16CodeUnit* ptr, Index size, Index position);
+Index Utf16IndexCodePointToCodeUnit(const Utf16CodeUnit* ptr, Index size, Index position);
} // namespace cru::string
diff --git a/include/cru/platform/Color.h b/include/cru/platform/Color.h
index 53252cc4..f7c82dec 100644
--- a/include/cru/platform/Color.h
+++ b/include/cru/platform/Color.h
@@ -2,8 +2,10 @@
#include "Base.h"
#include <cru/base/Base.h>
+#include <cru/base/StringUtil.h>
#include <cstdint>
+#include <format>
#include <optional>
#include <string_view>
@@ -248,6 +250,10 @@ struct std::hash<cru::platform::Color> {
}
};
+template <>
+struct std::formatter<cru::platform::Color, char>
+ : cru::string::ImplementFormatterByToString<cru::platform::Color> {};
+
namespace cru::platform {
std::optional<Color> GetPredefinedColorByName(std::string_view name);
diff --git a/include/cru/platform/graphics/quartz/Brush.h b/include/cru/platform/graphics/quartz/Brush.h
index 9b29ef59..73aa2f6d 100644
--- a/include/cru/platform/graphics/quartz/Brush.h
+++ b/include/cru/platform/graphics/quartz/Brush.h
@@ -36,7 +36,7 @@ class QuartzSolidColorBrush : public QuartzBrush,
void Select(CGContextRef context) override;
- String GetDebugString() override;
+ std::string GetDebugString() override;
private:
Color color_;
diff --git a/include/cru/platform/graphics/quartz/Convert.h b/include/cru/platform/graphics/quartz/Convert.h
index c5a1a6cc..fd6159a6 100644
--- a/include/cru/platform/graphics/quartz/Convert.h
+++ b/include/cru/platform/graphics/quartz/Convert.h
@@ -1,6 +1,4 @@
#pragma once
-#include "cru/base/Range.h"
-#include "cru/base/String.h"
#include "cru/base/io/Stream.h"
#include "cru/platform/Matrix.h"
diff --git a/include/cru/platform/graphics/quartz/Factory.h b/include/cru/platform/graphics/quartz/Factory.h
index 042e35ca..61d8dbdb 100644
--- a/include/cru/platform/graphics/quartz/Factory.h
+++ b/include/cru/platform/graphics/quartz/Factory.h
@@ -21,11 +21,11 @@ class QuartzGraphicsFactory : public OsxQuartzResource,
std::unique_ptr<IGeometryBuilder> CreateGeometryBuilder() override;
- std::unique_ptr<IFont> CreateFont(String font_family,
+ std::unique_ptr<IFont> CreateFont(std::string font_family,
float font_size) override;
std::unique_ptr<ITextLayout> CreateTextLayout(std::shared_ptr<IFont> font,
- String text) override;
+ std::string text) override;
IImageFactory* GetImageFactory() override;
diff --git a/include/cru/platform/graphics/quartz/Font.h b/include/cru/platform/graphics/quartz/Font.h
index 975607b9..d110b59b 100644
--- a/include/cru/platform/graphics/quartz/Font.h
+++ b/include/cru/platform/graphics/quartz/Font.h
@@ -8,7 +8,7 @@
namespace cru::platform::graphics::quartz {
class OsxCTFont : public OsxQuartzResource, public virtual IFont {
public:
- OsxCTFont(IGraphicsFactory* graphics_factory, const String& name, float size);
+ OsxCTFont(IGraphicsFactory* graphics_factory, const std::string& name, float size);
CRU_DELETE_COPY(OsxCTFont)
CRU_DELETE_MOVE(OsxCTFont)
@@ -17,11 +17,11 @@ class OsxCTFont : public OsxQuartzResource, public virtual IFont {
CTFontRef GetCTFont() const { return ct_font_; }
- String GetFontName() override;
+ std::string GetFontName() override;
float GetFontSize() override;
private:
- String name_;
+ std::string name_;
CTFontRef ct_font_;
};
} // namespace cru::platform::graphics::quartz
diff --git a/include/cru/platform/graphics/quartz/Resource.h b/include/cru/platform/graphics/quartz/Resource.h
index d28e4055..23fe6fa9 100644
--- a/include/cru/platform/graphics/quartz/Resource.h
+++ b/include/cru/platform/graphics/quartz/Resource.h
@@ -1,7 +1,7 @@
#pragma once
-#include "cru/platform/osx/Resource.h"
#include "cru/platform/graphics/Base.h"
#include "cru/platform/graphics/Resource.h"
+#include "cru/platform/osx/Resource.h"
namespace cru::platform::graphics::quartz {
class OsxQuartzResource : public platform::osx::OsxResource,
@@ -15,7 +15,7 @@ class OsxQuartzResource : public platform::osx::OsxResource,
~OsxQuartzResource() override = default;
public:
- String GetPlatformId() const override { return u"OSX Quartz"; }
+ std::string GetPlatformId() const override { return "OSX Quartz"; }
IGraphicsFactory* GetGraphicsFactory() override { return graphics_factory_; }
diff --git a/include/cru/platform/graphics/quartz/TextLayout.h b/include/cru/platform/graphics/quartz/TextLayout.h
index bbb417f6..e53ee464 100644
--- a/include/cru/platform/graphics/quartz/TextLayout.h
+++ b/include/cru/platform/graphics/quartz/TextLayout.h
@@ -11,7 +11,7 @@ namespace cru::platform::graphics::quartz {
class OsxCTTextLayout : public OsxQuartzResource, public virtual ITextLayout {
public:
OsxCTTextLayout(IGraphicsFactory* graphics_factory,
- std::shared_ptr<OsxCTFont> font, const String& str);
+ std::shared_ptr<OsxCTFont> font, const std::string& str);
CRU_DELETE_COPY(OsxCTTextLayout)
CRU_DELETE_MOVE(OsxCTTextLayout)
@@ -19,8 +19,8 @@ class OsxCTTextLayout : public OsxQuartzResource, public virtual ITextLayout {
~OsxCTTextLayout() override;
public:
- String GetText() override { return text_; }
- void SetText(String new_text) override;
+ std::string GetText() override { return text_; }
+ void SetText(std::string new_text) override;
std::shared_ptr<IFont> GetFont() override { return font_; }
void SetFont(std::shared_ptr<IFont> font) override;
@@ -46,10 +46,10 @@ class OsxCTTextLayout : public OsxQuartzResource, public virtual ITextLayout {
Matrix GetTransform() { return transform_; }
- String GetDebugString() override;
+ std::string GetDebugString() override;
private:
- void DoSetText(String text);
+ void DoSetText(std::string text);
void ReleaseResource();
void RecreateFrame();
@@ -68,8 +68,8 @@ class OsxCTTextLayout : public OsxQuartzResource, public virtual ITextLayout {
std::shared_ptr<OsxCTFont> font_;
- String text_;
- String actual_text_;
+ std::string text_;
+ std::string actual_text_;
CFMutableAttributedStringRef cf_attributed_text_;
CTFramesetterRef ct_framesetter_ = nullptr;
diff --git a/include/cru/platform/gui/osx/Clipboard.h b/include/cru/platform/gui/osx/Clipboard.h
index b4dcce4c..6672f84d 100644
--- a/include/cru/platform/gui/osx/Clipboard.h
+++ b/include/cru/platform/gui/osx/Clipboard.h
@@ -22,8 +22,8 @@ class OsxClipboard : public OsxGuiResource, public virtual IClipboard {
~OsxClipboard() override;
public:
- String GetText() override;
- void SetText(String text) override;
+ std::string GetText() override;
+ void SetText(std::string text) override;
private:
std::unique_ptr<details::OsxClipboardPrivate> p_;
diff --git a/include/cru/platform/gui/osx/InputMethod.h b/include/cru/platform/gui/osx/InputMethod.h
index cbfdae6c..067d86ea 100644
--- a/include/cru/platform/gui/osx/InputMethod.h
+++ b/include/cru/platform/gui/osx/InputMethod.h
@@ -46,7 +46,7 @@ class OsxInputMethodContext : public OsxGuiResource,
IEvent<std::nullptr_t>* CompositionEvent() override;
- IEvent<StringView>* TextEvent() override;
+ IEvent<std::string>* TextEvent() override;
bool IsEnabled();
diff --git a/include/cru/platform/gui/osx/Menu.h b/include/cru/platform/gui/osx/Menu.h
index c5cc756a..05f21e1c 100644
--- a/include/cru/platform/gui/osx/Menu.h
+++ b/include/cru/platform/gui/osx/Menu.h
@@ -25,8 +25,8 @@ class OsxMenuItem : public OsxGuiResource, public virtual IMenuItem {
~OsxMenuItem() override;
public:
- String GetTitle() override;
- void SetTitle(String title) override;
+ std::string GetTitle() override;
+ void SetTitle(std::string title) override;
bool IsEnabled() override;
void SetEnabled(bool enabled) override;
IMenu* GetParentMenu() override;
diff --git a/include/cru/platform/gui/osx/Resource.h b/include/cru/platform/gui/osx/Resource.h
index 1eec7d09..1253544c 100644
--- a/include/cru/platform/gui/osx/Resource.h
+++ b/include/cru/platform/gui/osx/Resource.h
@@ -1,7 +1,7 @@
#pragma once
#include "cru/platform/osx/Resource.h"
-#include "cru/platform/gui/Base.h"
+#include <cru/platform/gui/UiApplication.h>
namespace cru::platform::gui::osx {
class OsxGuiResource : public platform::osx::OsxResource {
@@ -14,7 +14,7 @@ class OsxGuiResource : public platform::osx::OsxResource {
~OsxGuiResource() override = default;
public:
- String GetPlatformId() const override { return u"OSX GUI"; }
+ std::string GetPlatformId() const override { return "OSX GUI"; }
IUiApplication* GetUiApplication() const { return ui_application_; }
diff --git a/include/cru/platform/gui/osx/UiApplication.h b/include/cru/platform/gui/osx/UiApplication.h
index 2d2c119c..f0e311dc 100644
--- a/include/cru/platform/gui/osx/UiApplication.h
+++ b/include/cru/platform/gui/osx/UiApplication.h
@@ -51,9 +51,9 @@ class OsxUiApplication : public OsxGuiResource, public virtual IUiApplication {
IMenu* GetApplicationMenu() override;
- std::optional<String> ShowSaveDialog(SaveDialogOptions options) override;
+ std::optional<std::string> ShowSaveDialog(SaveDialogOptions options) override;
- std::optional<std::vector<String>> ShowOpenDialog(
+ std::optional<std::vector<std::string>> ShowOpenDialog(
OpenDialogOptions options) override;
private:
diff --git a/include/cru/platform/gui/osx/Window.h b/include/cru/platform/gui/osx/Window.h
index 6cefbe8e..d00136b0 100644
--- a/include/cru/platform/gui/osx/Window.h
+++ b/include/cru/platform/gui/osx/Window.h
@@ -36,8 +36,8 @@ class OsxWindow : public OsxGuiResource, public INativeWindow {
WindowStyleFlag GetStyleFlag() override;
void SetStyleFlag(WindowStyleFlag flag) override;
- String GetTitle() override;
- void SetTitle(String title) override;
+ std::string GetTitle() override;
+ void SetTitle(std::string title) override;
WindowVisibilityType GetVisibility() override;
void SetVisibility(WindowVisibilityType visibility) override;
diff --git a/include/cru/platform/osx/Resource.h b/include/cru/platform/osx/Resource.h
index d30ee31b..4a3b6b7d 100644
--- a/include/cru/platform/osx/Resource.h
+++ b/include/cru/platform/osx/Resource.h
@@ -4,10 +4,6 @@
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"; }
+ std::string GetPlatformId() const override { return "OSX"; }
};
} // namespace cru::platform::osx