Index: ui/views/controls/views_text_services_context_menu_mac.h |
diff --git a/ui/views/controls/views_text_services_context_menu_mac.h b/ui/views/controls/views_text_services_context_menu_mac.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5a3fcc7ef4969dc4c1d1893b3a39679f654d218f |
--- /dev/null |
+++ b/ui/views/controls/views_text_services_context_menu_mac.h |
@@ -0,0 +1,72 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef UI_VIEWS_CONTROLS_VIEWS_TEXT_SERVICES_CONTEXT_MENU_MAC_H_ |
tapted
2016/12/13 05:11:24
Is this header required?
(can all of ViewsTextSer
spqchan
2016/12/15 23:29:02
Done.
|
+#define UI_VIEWS_CONTROLS_VIEWS_TEXT_SERVICES_CONTEXT_MENU_MAC_H_ |
+ |
+#include "ui/base/cocoa/text_services_context_menu.h" |
+#include "ui/views/controls/views_text_services_context_menu.h" |
+ |
+namespace ui { |
+class SimpleMenuModel; |
+class TextInputClient; |
+} |
+ |
+namespace views { |
+ |
+class View; |
+class WordLookupClient; |
+ |
+// This class serves as a bridge to TextServicesContextMenu to add and handle |
+// text service items in the context menu. The items include Speech, Look Up |
+// and BiDi. |
+class ViewsTextServicesContextMenuMac |
+ : public ViewsTextServicesContextMenu, |
+ public ui::TextServicesContextMenu::Delegate { |
+ public: |
+ explicit ViewsTextServicesContextMenuMac(ui::TextInputClient* text_client, |
tapted
2016/12/13 05:11:24
nit: explicit not required
spqchan
2016/12/15 23:29:01
Done.
|
+ WordLookupClient* lookup_client, |
+ ui::SimpleMenuModel* menu, |
+ View* view); |
+ ~ViewsTextServicesContextMenuMac() override; |
+ |
+ // ViewsTextContextMenu: |
tapted
2016/12/13 05:11:24
ViewsTextServicesContextMenu:
spqchan
2016/12/15 23:29:02
Done.
|
+ bool ShouldUpdateMenu() const override; |
+ bool IsTextServicesCommandId(int command_id) const override; |
+ void ExecuteCommand(int command_id, int event_flags) override; |
+ bool IsCommandIdChecked(int command_id) const override; |
+ bool IsCommandIdEnabled(int command_id) const override; |
+ |
+ // TextServicesContextMenu::Delegate |
tapted
2016/12/13 05:11:24
nit: colon at end
spqchan
2016/12/15 23:29:01
Done.
|
+ base::string16 GetSelectedText() const override; |
+ void OnSpeakRequested() override; |
+ bool IsLookUpAvailable() const override; |
+ void LookUpInDictionary() override; |
+ bool IsWritingDirectionEnabled(ui::WritingDirection direction) const override; |
+ bool IsWritingDirectionChecked(ui::WritingDirection direction) const override; |
+ void UpdateTextDirection(ui::WritingDirection direction) override; |
+ |
+ private: |
+ // Used to retrieve the selected text. Weak. |
+ ui::TextInputClient* text_client_; |
+ |
+ // Used to retrieve the decorated text for Look Up. Weak. |
+ WordLookupClient* lookup_client_; |
tapted
2016/12/13 05:11:24
I think text_client_ and lookup_client_ will both
spqchan
2016/12/15 23:29:01
Done.
|
+ |
+ // Appends and handles the text service menu. |
+ ui::TextServicesContextMenu menu_; |
+ |
+ // The view associated with the menu. Weak. |
+ View* view_; |
tapted
2016/12/13 05:11:24
ah, this is probably the TextField too?
spqchan
2016/12/15 23:29:01
Done.
|
+ |
+ // The selected text that appears in the context menu. This is used to |
+ // determine if the context menu needs to updated. |
tapted
2016/12/13 05:11:24
insert "be" -> "needs to be updated"
spqchan
2016/12/15 23:29:02
Done.
|
+ base::string16 selection_text_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ViewsTextServicesContextMenuMac); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // UI_VIEWS_CONTROLS_VIEWS_TEXT_SERVICES_CONTEXT_MENU_MAC_H_ |