Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Unified Diff: chrome/browser/chromeos/input_method/candidate_window.cc

Issue 8573035: Implement unittest for CandidateWindowView. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/input_method/candidate_window.cc
diff --git a/chrome/browser/chromeos/input_method/candidate_window.cc b/chrome/browser/chromeos/input_method/candidate_window.cc
index 4c35f53995e208242b75fe9a4fe9c493576a7846..350611da156fa5b0dae51c9e362537732958518f 100644
--- a/chrome/browser/chromeos/input_method/candidate_window.cc
+++ b/chrome/browser/chromeos/input_method/candidate_window.cc
@@ -17,6 +17,7 @@
#include "base/timer.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/chromeos/input_method/ibus_ui_controller.h"
+#include "chrome/browser/chromeos/input_method/candidate_window_view.h"
Yusuke Sato 2011/11/17 06:07:39 wrong order
Seigo Nonaka 2011/11/17 07:52:50 Done.
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/canvas.h"
@@ -313,6 +314,8 @@ int ComputeAnnotationColumnWidth(const InputMethodLookupTable& lookup_table) {
return annotation_column_width;
}
+} // namespace
+
// HidableArea is used as an area to place optional information that can be
// turned displaying off if it is unnecessary.
class HidableArea : public views::View {
@@ -412,173 +415,6 @@ class InformationTextArea : public HidableArea {
int minWidth_;
};
-} // namespace
-
-class CandidateView;
-
-// CandidateWindowView is the main container of the candidate window UI.
-class CandidateWindowView : public views::View {
- public:
- // The object can be monitored by the observer.
- class Observer {
- public:
- virtual ~Observer() {}
- // The function is called when a candidate is committed.
- // See comments at NotifyCandidateClicked() in chromeos_input_method_ui.h
- // for details about the parameters.
- virtual void OnCandidateCommitted(int index, int button, int flag) = 0;
- };
-
- explicit CandidateWindowView(views::Widget* parent_frame);
- virtual ~CandidateWindowView() {}
- void Init();
-
- // Adds the given observer. The ownership is not transferred.
- void AddObserver(Observer* observer) {
- observers_.AddObserver(observer);
- }
-
- // Removes the given observer.
- void RemoveObserver(Observer* observer) {
- observers_.RemoveObserver(observer);
- }
-
- // Selects the candidate specified by the index in the current page
- // (zero-origin). Changes the appearance of the selected candidate,
- // updates the information in the candidate window as needed.
- void SelectCandidateAt(int index_in_page);
-
- // The function is called when a candidate is being dragged. From the
- // given point, locates the candidate under the mouse cursor, and
- // selects it.
- void OnCandidatePressed(const gfx::Point& point);
-
- // Commits the candidate currently being selected.
- void CommitCandidate();
-
- // Hides the lookup table.
- void HideLookupTable();
-
- // Hides the auxiliary text.
- void HideAuxiliaryText();
-
- // Hides the preedit text.
- void HidePreeditText();
-
- // Hides whole the candidate window.
- void HideAll();
-
- // Shows the lookup table.
- void ShowLookupTable();
-
- // Shows the auxiliary text.
- void ShowAuxiliaryText();
-
- // Shows the preedit text.
- void ShowPreeditText();
-
- // Updates the auxiliary text.
- void UpdateAuxiliaryText(const std::string& utf8_text);
-
- // Updates the preedit text.
- void UpdatePreeditText(const std::string& utf8_text);
-
- // Returns true if we should update candidate views in the window. For
- // instance, if we are going to show the same candidates as before, we
- // don't have to update candidate views. This happens when the user just
- // moves the cursor in the same page in the candidate window.
- bool ShouldUpdateCandidateViews(
- const InputMethodLookupTable& old_table,
- const InputMethodLookupTable& new_table);
-
- // Updates candidates of the candidate window from |lookup_table|.
- // Candidates are arranged per |orientation|.
- void UpdateCandidates(const InputMethodLookupTable& lookup_table);
-
- // Resizes and moves the parent frame. The two actions should be
- // performed consecutively as resizing may require the candidate window
- // to move. For instance, we may need to move the candidate window from
- // below the cursor to above the cursor, if the candidate window becomes
- // too big to be shown near the bottom of the screen. This function
- // needs to be called when the visible contents of the candidate window
- // are modified.
- void ResizeAndMoveParentFrame();
-
- // Returns the horizontal offset used for placing the vertical candidate
- // window so that the first candidate is aligned with the the text being
- // converted like:
- //
- // XXX <- The user is converting XXX
- // +-----+
- // |1 XXX|
- // |2 YYY|
- // |3 ZZZ|
- //
- // Returns 0 if no candidate is present.
- int GetHorizontalOffset();
-
- void set_cursor_location(const gfx::Rect& cursor_location) {
- cursor_location_ = cursor_location;
- }
-
- const gfx::Rect& cursor_location() const { return cursor_location_; }
-
- protected:
- // Override View::VisibilityChanged()
- virtual void VisibilityChanged(View* starting_from, bool is_visible) OVERRIDE;
-
- // Override View::OnBoundsChanged()
- virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE;
-
- private:
- // Initializes the candidate views if needed.
- void MaybeInitializeCandidateViews(
- const InputMethodLookupTable& lookup_table);
-
- // Returns the appropriate area (header or footer) to put auxiliary texts.
- InformationTextArea* GetAuxiliaryTextArea();
-
- // The lookup table (candidates).
- InputMethodLookupTable lookup_table_;
-
- // The index in the current page of the candidate currently being selected.
- int selected_candidate_index_in_page_;
-
- // The observers of the object.
- ObserverList<Observer> observers_;
-
- // The parent frame.
- views::Widget* parent_frame_;
-
- // Views created in the class will be part of tree of |this|, so these
- // child views will be deleted when |this| is deleted.
-
- // The preedit area is where the preedit text is shown, if it is needed
- // in cases such as the focus is on a plugin that doesn't support in-line
- // preedit drawing.
- InformationTextArea* preedit_area_;
- // The header area is where the auxiliary text is shown, if the
- // orientation is horizontal. If the auxiliary text is not provided, we
- // show nothing. For instance, we show pinyin text like "zhong'guo".
- InformationTextArea* header_area_;
- // The candidate area is where candidates are rendered.
- HidableArea* candidate_area_;
- // The candidate views are used for rendering candidates.
- std::vector<CandidateView*> candidate_views_;
- // The footer area is where the auxiliary text is shown, if the
- // orientation is vertical. Usually the auxiliary text is used for
- // showing candidate number information like 2/19.
- InformationTextArea* footer_area_;
-
- // Current columns width in |candidate_area_|.
- int previous_shortcut_column_width_;
- int previous_candidate_column_width_;
- int previous_annotation_column_width_;
-
- // The last cursor location.
- gfx::Rect cursor_location_;
-};
-
// CandidateRow renderes a row of a candidate.
class CandidateView : public views::View {
public:

Powered by Google App Engine
This is Rietveld 408576698