// Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_VIEW_H_ #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_VIEW_H_ #include "base/gtest_prod_util.h" #include "chromeos/ime/candidate_window.h" #include "ui/views/controls/label.h" #include "ui/views/view.h" namespace chromeos { namespace input_method { class CandidateWindowView; // CandidateView renderes a row of a candidate. class CandidateView : public views::View { public: CandidateView(CandidateWindowView* parent_candidate_window, int index_in_page, CandidateWindow::Orientation orientation); virtual ~CandidateView() {} // Initializes the candidate view with the given column widths. // A width of 0 means that the column is resizable. void Init(int shortcut_column_width, int candidate_column_width, int annotation_column_width, int column_height); // Sets candidate text to the given text. void SetCandidateText(const base::string16& text); // Sets shortcut text to the given text. void SetShortcutText(const base::string16& text); // Sets annotation text to the given text. void SetAnnotationText(const base::string16& text); // Sets infolist icon. void SetInfolistIcon(bool enable); // Selects the candidate row. Changes the appearance to make it look // like a selected candidate. void Select(); // Unselects the candidate row. Changes the appearance to make it look // like an unselected candidate. void Unselect(); // Enables or disables the candidate row based on |enabled|. Changes the // appearance to make it look like unclickable area. void SetRowEnabled(bool enabled); // Returns the relative position of the candidate label. gfx::Point GetCandidateLabelPosition() const; private: friend class CandidateWindowViewTest; FRIEND_TEST_ALL_PREFIXES(CandidateWindowViewTest, ShortcutSettingTest); // Overridden from View: virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; // Selects the candidate located at the point. void SelectCandidateAt(const gfx::Point& location); // Notifies labels of their new background colors. Called whenever the view's // background color changes. void UpdateLabelBackgroundColors(); // Zero-origin index in the current page. int index_in_page_; // The orientation of the candidate view. CandidateWindow::Orientation orientation_; // The parent candidate window that contains this view. CandidateWindowView* parent_candidate_window_; // Views created in the class will be part of tree of |this|, so these // child views will be deleted when |this| is deleted. // The shortcut label renders shortcut numbers like 1, 2, and 3. views::Label* shortcut_label_; // The candidate label renders candidates. views::Label* candidate_label_; // The annotation label renders annotations. views::Label* annotation_label_; // The infolist icon. views::View* infolist_icon_; bool infolist_icon_enabled_; DISALLOW_COPY_AND_ASSIGN(CandidateView); }; } // namespace input_method } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_VIEW_H_