diff options
Diffstat (limited to 'src/platform/gui')
-rw-r--r-- | src/platform/gui/osx/Clipboard.mm | 12 | ||||
-rw-r--r-- | src/platform/gui/osx/ClipboardPrivate.h | 4 | ||||
-rw-r--r-- | src/platform/gui/osx/InputMethod.mm | 4 | ||||
-rw-r--r-- | src/platform/gui/osx/InputMethodPrivate.h | 4 | ||||
-rw-r--r-- | src/platform/gui/osx/Keyboard.mm | 8 | ||||
-rw-r--r-- | src/platform/gui/osx/Menu.mm | 4 | ||||
-rw-r--r-- | src/platform/gui/osx/UiApplication.mm | 6 | ||||
-rw-r--r-- | src/platform/gui/osx/Window.mm | 34 | ||||
-rw-r--r-- | src/platform/gui/osx/WindowPrivate.h | 2 |
9 files changed, 40 insertions, 38 deletions
diff --git a/src/platform/gui/osx/Clipboard.mm b/src/platform/gui/osx/Clipboard.mm index d87ab7e3..a09bca1c 100644 --- a/src/platform/gui/osx/Clipboard.mm +++ b/src/platform/gui/osx/Clipboard.mm @@ -13,30 +13,30 @@ OsxClipboard::OsxClipboard(cru::platform::gui::IUiApplication* ui_application, OsxClipboard::~OsxClipboard() {} -String OsxClipboard::GetText() { return p_->GetText(); } +std::string OsxClipboard::GetText() { return p_->GetText(); } -void OsxClipboard::SetText(String text) { p_->SetText(text); } +void OsxClipboard::SetText(std::string text) { p_->SetText(text); } namespace details { OsxClipboardPrivate::OsxClipboardPrivate(NSPasteboard* pasteboard) : pasteboard_(pasteboard) {} OsxClipboardPrivate::~OsxClipboardPrivate() {} -String OsxClipboardPrivate::GetText() { +std::string OsxClipboardPrivate::GetText() { auto result = [pasteboard_ readObjectsForClasses:@[ NSString.class ] options:nil]; if (result == nil) { CRU_LOG_TAG_WARN("Failed to get text from clipboard"); - return u""; + return ""; } else { if (result.count == 0) { - return u""; + return ""; } else { return FromCFStringRef((CFStringRef)result[0]); } } } -void OsxClipboardPrivate::SetText(String text) { +void OsxClipboardPrivate::SetText(std::string text) { auto cf_string = ToCFString(text); [pasteboard_ clearContents]; [pasteboard_ writeObjects:@[ (NSString*)cf_string.ref ]]; diff --git a/src/platform/gui/osx/ClipboardPrivate.h b/src/platform/gui/osx/ClipboardPrivate.h index 41554297..5019ba17 100644 --- a/src/platform/gui/osx/ClipboardPrivate.h +++ b/src/platform/gui/osx/ClipboardPrivate.h @@ -17,8 +17,8 @@ class OsxClipboardPrivate : public Object { ~OsxClipboardPrivate(); public: - String GetText(); - void SetText(String text); + std::string GetText(); + void SetText(std::string text); private: NSPasteboard* pasteboard_; diff --git a/src/platform/gui/osx/InputMethod.mm b/src/platform/gui/osx/InputMethod.mm index c3532ab6..c17dab3d 100644 --- a/src/platform/gui/osx/InputMethod.mm +++ b/src/platform/gui/osx/InputMethod.mm @@ -24,7 +24,7 @@ void OsxInputMethodContextPrivate::RaiseCompositionEndEvent() { } void OsxInputMethodContextPrivate::RaiseCompositionEvent() { composition_event_.Raise(nullptr); } -void OsxInputMethodContextPrivate::RaiseTextEvent(StringView text) { text_event_.Raise(text); } +void OsxInputMethodContextPrivate::RaiseTextEvent(std::string text) { text_event_.Raise(text); } void OsxInputMethodContextPrivate::PerformSel(SEL sel) { // [window_->p_->GetNSWindow() performSelector:sel]; @@ -77,7 +77,7 @@ IEvent<std::nullptr_t>* OsxInputMethodContext::CompositionEvent() { return &p_->composition_event_; } -IEvent<StringView>* OsxInputMethodContext::TextEvent() { return &p_->text_event_; } +IEvent<std::string>* OsxInputMethodContext::TextEvent() { return &p_->text_event_; } bool OsxInputMethodContext::IsEnabled() { return p_->is_enabled_; } } diff --git a/src/platform/gui/osx/InputMethodPrivate.h b/src/platform/gui/osx/InputMethodPrivate.h index ac2d1bf4..39f3be02 100644 --- a/src/platform/gui/osx/InputMethodPrivate.h +++ b/src/platform/gui/osx/InputMethodPrivate.h @@ -24,7 +24,7 @@ class OsxInputMethodContextPrivate { void RaiseCompositionStartEvent(); void RaiseCompositionEndEvent(); void RaiseCompositionEvent(); - void RaiseTextEvent(StringView text); + void RaiseTextEvent(std::string text); Point GetCandidateWindowPosition() const { return candidate_window_point_; } void SetCandidateWindowPosition(const Point& p) { @@ -56,7 +56,7 @@ class OsxInputMethodContextPrivate { Event<std::nullptr_t> composition_start_event_; Event<std::nullptr_t> composition_event_; Event<std::nullptr_t> composition_end_event_; - Event<StringView> text_event_; + Event<std::string> text_event_; bool is_enabled_ = false; }; diff --git a/src/platform/gui/osx/Keyboard.mm b/src/platform/gui/osx/Keyboard.mm index da4c85f0..ea1d2d4e 100644 --- a/src/platform/gui/osx/Keyboard.mm +++ b/src/platform/gui/osx/Keyboard.mm @@ -267,16 +267,16 @@ NSString* ConvertKeyCodeToKeyEquivalent(KeyCode key_code) { NSEventModifierFlags ConvertKeyModifier(KeyModifier k) { NSEventModifierFlags flags = 0; - if (k & KeyModifiers::shift) { + if (k & KeyModifiers::Shift) { flags |= NSEventModifierFlagShift; } - if (k & KeyModifiers::ctrl) { + if (k & KeyModifiers::Ctrl) { flags |= NSEventModifierFlagControl; } - if (k & KeyModifiers::alt) { + if (k & KeyModifiers::Alt) { flags |= NSEventModifierFlagOption; } - if (k & KeyModifiers::command) { + if (k & KeyModifiers::Command) { flags |= NSEventModifierFlagCommand; } return flags; diff --git a/src/platform/gui/osx/Menu.mm b/src/platform/gui/osx/Menu.mm index 45beddee..0eea19ec 100644 --- a/src/platform/gui/osx/Menu.mm +++ b/src/platform/gui/osx/Menu.mm @@ -60,9 +60,9 @@ OsxMenuItem::OsxMenuItem(IUiApplication* ui_application) : OsxGuiResource(ui_app OsxMenuItem::~OsxMenuItem() { delete p_; } -String OsxMenuItem::GetTitle() { return FromCFStringRef((CFStringRef)[p_->menu_item_ title]); } +std::string OsxMenuItem::GetTitle() { return FromCFStringRef((CFStringRef)[p_->menu_item_ title]); } -void OsxMenuItem::SetTitle(String title) { +void OsxMenuItem::SetTitle(std::string title) { auto cf_title = ToCFString(title); [p_->menu_item_ setTitle:(NSString*)(cf_title.ref)]; } diff --git a/src/platform/gui/osx/UiApplication.mm b/src/platform/gui/osx/UiApplication.mm index 7e744928..fca21075 100644 --- a/src/platform/gui/osx/UiApplication.mm +++ b/src/platform/gui/osx/UiApplication.mm @@ -177,7 +177,7 @@ graphics::IGraphicsFactory* OsxUiApplication::GetGraphicsFactory() { return p_->quartz_graphics_factory_.get(); } -std::optional<String> OsxUiApplication::ShowSaveDialog(SaveDialogOptions options) { +std::optional<std::string> OsxUiApplication::ShowSaveDialog(SaveDialogOptions options) { NSSavePanel* panel = [NSSavePanel savePanel]; [panel setTitle:(NSString*)ToCFString(options.title).ref]; [panel setPrompt:(NSString*)ToCFString(options.prompt).ref]; @@ -201,7 +201,7 @@ std::optional<String> OsxUiApplication::ShowSaveDialog(SaveDialogOptions options } } -std::optional<std::vector<String>> OsxUiApplication::ShowOpenDialog(OpenDialogOptions options) { +std::optional<std::vector<std::string>> OsxUiApplication::ShowOpenDialog(OpenDialogOptions options) { NSOpenPanel* panel = [NSOpenPanel openPanel]; [panel setTitle:(NSString*)ToCFString(options.title).ref]; [panel setPrompt:(NSString*)ToCFString(options.prompt).ref]; @@ -223,7 +223,7 @@ std::optional<std::vector<String>> OsxUiApplication::ShowOpenDialog(OpenDialogOp auto model_result = [panel runModal]; if (model_result == NSModalResponseOK) { - std::vector<String> result; + std::vector<std::string> result; for (NSURL* url in [panel URLs]) { result.push_back(FromCFStringRef((CFStringRef)[url path])); } diff --git a/src/platform/gui/osx/Window.mm b/src/platform/gui/osx/Window.mm index 6559cf70..65d31ab8 100644 --- a/src/platform/gui/osx/Window.mm +++ b/src/platform/gui/osx/Window.mm @@ -10,6 +10,7 @@ #include "cru/platform/graphics/NullPainter.h" #include "cru/platform/graphics/quartz/Convert.h" #include "cru/platform/graphics/quartz/Painter.h" +#include "cru/platform/gui/Input.h" #include "cru/platform/gui/TimerHelper.h" #include "cru/platform/gui/osx/Cursor.h" #include "cru/platform/gui/osx/InputMethod.h" @@ -29,7 +30,6 @@ constexpr int key_down_debug = 0; } using ::cru::FromCFStringRef; -using ::cru::ToCFString; using cru::platform::graphics::quartz::Convert; namespace cru::platform::gui::osx { namespace { @@ -250,9 +250,9 @@ void OsxWindow::SetStyleFlag(WindowStyleFlag flag) { } } -String OsxWindow::GetTitle() { return p_->title_; } +std::string OsxWindow::GetTitle() { return p_->title_; } -void OsxWindow::SetTitle(String title) { +void OsxWindow::SetTitle(std::string title) { p_->title_ = title; if (p_->window_) { @@ -401,13 +401,13 @@ namespace { cru::platform::gui::KeyModifier GetKeyModifier(NSEvent* event) { cru::platform::gui::KeyModifier key_modifier; if (event.modifierFlags & NSEventModifierFlagControl) - key_modifier |= cru::platform::gui::KeyModifiers::ctrl; + key_modifier |= cru::platform::gui::KeyModifiers::Ctrl; if (event.modifierFlags & NSEventModifierFlagOption) - key_modifier |= cru::platform::gui::KeyModifiers::alt; + key_modifier |= cru::platform::gui::KeyModifiers::Alt; if (event.modifierFlags & NSEventModifierFlagShift) - key_modifier |= cru::platform::gui::KeyModifiers::shift; + key_modifier |= cru::platform::gui::KeyModifiers::Shift; if (event.modifierFlags & NSEventModifierFlagCommand) - key_modifier |= cru::platform::gui::KeyModifiers::command; + key_modifier |= cru::platform::gui::KeyModifiers::Command; return key_modifier; } } // namespace @@ -504,28 +504,28 @@ cru::platform::gui::KeyModifier GetKeyModifier(NSEvent* event) { auto key_modifier = GetKeyModifier(event); cru::platform::Point p(event.locationInWindow.x, event.locationInWindow.y); - _p->OnMouseDown(cru::platform::gui::mouse_buttons::left, p, key_modifier); + _p->OnMouseDown(cru::platform::gui::MouseButtons::Left, p, key_modifier); } - (void)mouseUp:(NSEvent*)event { auto key_modifier = GetKeyModifier(event); cru::platform::Point p(event.locationInWindow.x, event.locationInWindow.y); - _p->OnMouseUp(cru::platform::gui::mouse_buttons::left, p, key_modifier); + _p->OnMouseUp(cru::platform::gui::MouseButtons::Left, p, key_modifier); } - (void)rightMouseDown:(NSEvent*)event { auto key_modifier = GetKeyModifier(event); cru::platform::Point p(event.locationInWindow.x, event.locationInWindow.y); - _p->OnMouseDown(cru::platform::gui::mouse_buttons::right, p, key_modifier); + _p->OnMouseDown(cru::platform::gui::MouseButtons::Right, p, key_modifier); } - (void)rightMouseUp:(NSEvent*)event { auto key_modifier = GetKeyModifier(event); cru::platform::Point p(event.locationInWindow.x, event.locationInWindow.y); - _p->OnMouseUp(cru::platform::gui::mouse_buttons::right, p, key_modifier); + _p->OnMouseUp(cru::platform::gui::MouseButtons::Right, p, key_modifier); } - (void)scrollWheel:(NSEvent*)event { @@ -611,17 +611,17 @@ const std::unordered_set<KeyCode> input_context_handle_codes_when_has_text{ if (input_context->IsEnabled()) { if (input_context_handle_codes.count(c) && - !(key_modifier & ~cru::platform::gui::KeyModifiers::shift)) { + !(key_modifier & ~cru::platform::gui::KeyModifiers::Shift)) { handled = [[self inputContext] handleEvent:event]; } else if (input_context_handle_codes_when_has_text.count(c) && !key_modifier) { if (!input_context->GetCompositionText().text.empty()) { handled = [[self inputContext] handleEvent:event]; } else { if (c == KeyCode::Return) { - _input_context_p->RaiseTextEvent(u"\n"); + _input_context_p->RaiseTextEvent("\n"); handled = true; } else if (c == KeyCode::Space) { - _input_context_p->RaiseTextEvent(u" "); + _input_context_p->RaiseTextEvent(" "); handled = true; } } @@ -688,9 +688,11 @@ const std::unordered_set<KeyCode> input_context_handle_codes_when_has_text{ cru::platform::gui::CompositionText composition_text; composition_text.text = FromCFStringRef((CFStringRef)[_input_context_text string]); - composition_text.selection.position = ss.IndexFromCodePointToCodeUnit(selectedRange.location); + composition_text.selection.position = + cru::string::Utf8IndexCodePointToCodeUnit(ss.data(), ss.size(), selectedRange.location); composition_text.selection.count = - ss.IndexFromCodePointToCodeUnit(selectedRange.location + selectedRange.length) - + cru::string::Utf8IndexCodePointToCodeUnit(ss.data(), ss.size(), + selectedRange.location + selectedRange.length) - composition_text.selection.position; _input_context_p->SetCompositionText(composition_text); _input_context_p->RaiseCompositionEvent(); diff --git a/src/platform/gui/osx/WindowPrivate.h b/src/platform/gui/osx/WindowPrivate.h index 478ce4e5..9e1b2a6c 100644 --- a/src/platform/gui/osx/WindowPrivate.h +++ b/src/platform/gui/osx/WindowPrivate.h @@ -83,7 +83,7 @@ class OsxWindowPrivate { INativeWindow* parent_ = nullptr; WindowStyleFlag style_flag_ = WindowStyleFlag{}; - String title_; + std::string title_; Rect content_rect_; |