| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef UI_BASE_IME_CANDIDATE_WINDOW_H_ | |
| 6 #define UI_BASE_IME_CANDIDATE_WINDOW_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 #include <vector> | |
| 10 #include "base/basictypes.h" | |
| 11 #include "base/memory/scoped_ptr.h" | |
| 12 #include "ui/base/ui_base_export.h" | |
| 13 | |
| 14 namespace ui { | |
| 15 | |
| 16 // CandidateWindow represents the structure of candidates generated from IME. | |
| 17 class UI_BASE_EXPORT CandidateWindow { | |
| 18 public: | |
| 19 enum Orientation { | |
| 20 HORIZONTAL = 0, | |
| 21 VERTICAL = 1, | |
| 22 }; | |
| 23 | |
| 24 struct UI_BASE_EXPORT CandidateWindowProperty { | |
| 25 CandidateWindowProperty(); | |
| 26 virtual ~CandidateWindowProperty(); | |
| 27 int page_size; | |
| 28 int cursor_position; | |
| 29 bool is_cursor_visible; | |
| 30 bool is_vertical; | |
| 31 bool show_window_at_composition; | |
| 32 | |
| 33 // Auxiliary text is typically displayed in the footer of the candidate | |
| 34 // window. | |
| 35 std::string auxiliary_text; | |
| 36 bool is_auxiliary_text_visible; | |
| 37 }; | |
| 38 | |
| 39 // Represents a candidate entry. | |
| 40 struct UI_BASE_EXPORT Entry { | |
| 41 Entry(); | |
| 42 virtual ~Entry(); | |
| 43 std::string value; | |
| 44 std::string label; | |
| 45 std::string annotation; | |
| 46 std::string description_title; | |
| 47 std::string description_body; | |
| 48 }; | |
| 49 | |
| 50 CandidateWindow(); | |
| 51 virtual ~CandidateWindow(); | |
| 52 | |
| 53 // Returns true if the given |candidate_window| is equal to myself. | |
| 54 bool IsEqual(const CandidateWindow& candidate_window) const; | |
| 55 | |
| 56 // Copies |candidate_window| to myself. | |
| 57 void CopyFrom(const CandidateWindow& candidate_window); | |
| 58 | |
| 59 const CandidateWindowProperty& GetProperty() const { | |
| 60 return *property_; | |
| 61 } | |
| 62 void SetProperty(const CandidateWindowProperty& property) { | |
| 63 *property_ = property; | |
| 64 } | |
| 65 | |
| 66 // Returns the number of candidates in one page. | |
| 67 uint32 page_size() const { return property_->page_size; } | |
| 68 void set_page_size(uint32 page_size) { property_->page_size = page_size; } | |
| 69 | |
| 70 // Returns the cursor index of the currently selected candidate. | |
| 71 uint32 cursor_position() const { return property_->cursor_position; } | |
| 72 void set_cursor_position(uint32 cursor_position) { | |
| 73 property_->cursor_position = cursor_position; | |
| 74 } | |
| 75 | |
| 76 // Returns true if the cursor is visible. | |
| 77 bool is_cursor_visible() const { return property_->is_cursor_visible; } | |
| 78 void set_is_cursor_visible(bool is_cursor_visible) { | |
| 79 property_->is_cursor_visible = is_cursor_visible; | |
| 80 } | |
| 81 | |
| 82 // Returns the orientation of the candidate window. | |
| 83 Orientation orientation() const { | |
| 84 return property_->is_vertical ? VERTICAL : HORIZONTAL; | |
| 85 } | |
| 86 void set_orientation(Orientation orientation) { | |
| 87 property_->is_vertical = (orientation == VERTICAL); | |
| 88 } | |
| 89 | |
| 90 // Returns true if the auxiliary text is visible. | |
| 91 bool is_auxiliary_text_visible() const { | |
| 92 return property_->is_auxiliary_text_visible; | |
| 93 } | |
| 94 void set_is_auxiliary_text_visible(bool is_auxiliary_text_visible) const { | |
| 95 property_->is_auxiliary_text_visible = is_auxiliary_text_visible; | |
| 96 } | |
| 97 | |
| 98 // Accessors of auxiliary_text. | |
| 99 const std::string& auxiliary_text() const { | |
| 100 return property_->auxiliary_text; | |
| 101 } | |
| 102 void set_auxiliary_text(const std::string& auxiliary_text) const { | |
| 103 property_->auxiliary_text = auxiliary_text; | |
| 104 } | |
| 105 | |
| 106 const std::vector<Entry>& candidates() const { return candidates_; } | |
| 107 std::vector<Entry>* mutable_candidates() { return &candidates_; } | |
| 108 | |
| 109 bool show_window_at_composition() const { | |
| 110 return property_->show_window_at_composition; | |
| 111 } | |
| 112 void set_show_window_at_composition(bool show_window_at_composition) { | |
| 113 property_->show_window_at_composition = show_window_at_composition; | |
| 114 } | |
| 115 | |
| 116 private: | |
| 117 scoped_ptr<CandidateWindowProperty> property_; | |
| 118 std::vector<Entry> candidates_; | |
| 119 | |
| 120 DISALLOW_COPY_AND_ASSIGN(CandidateWindow); | |
| 121 }; | |
| 122 | |
| 123 } // namespace ui | |
| 124 | |
| 125 #endif // UI_BASE_IME_CANDIDATE_WINDOW_H_ | |
| OLD | NEW |