Index: chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h |
=================================================================== |
--- chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h (revision 0) |
+++ chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h (revision 0) |
@@ -0,0 +1,67 @@ |
+// Copyright (c) 2009 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_VIEWS_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ |
+#define CHROME_BROWSER_VIEWS_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ |
+ |
+#include "chrome/browser/autocomplete/autocomplete.h" |
+#include "chrome/views/view.h" |
+ |
+class AutocompletePopupWin; |
+ |
+// TODO(beng): documentation, finalize |
+class AutocompleteResultViewModel { |
+ public: |
+ virtual bool IsSelectedIndex(size_t index) = 0; |
+ |
+ virtual AutocompleteMatch::Type GetResultTypeAtIndex(size_t index) = 0; |
+ |
+ virtual void OpenIndex(size_t index, WindowOpenDisposition disposition) = 0; |
+ |
+ virtual void SetHoveredLine(size_t index) = 0; |
+ virtual void SetSelectedLine(size_t index, bool revert_to_default) = 0; |
+}; |
+ |
+// TODO(beng): documentation |
+class AutocompletePopupContentsView : public views::View, |
+ public AutocompleteResultViewModel { |
+ public: |
+ explicit AutocompletePopupContentsView(AutocompletePopupWin* popup); |
+ virtual ~AutocompletePopupContentsView() {} |
+ |
+ // Update the presentation with the latest result. |
+ void SetAutocompleteResult(const AutocompleteResult& result); |
+ |
+ // Schedule a repaint for the specified row. |
+ void InvalidateLine(int index); |
+ |
+ // Overridden from AutocompleteResultViewModel: |
+ virtual bool IsSelectedIndex(size_t index); |
+ virtual AutocompleteMatch::Type GetResultTypeAtIndex(size_t index); |
+ virtual void OpenIndex(size_t index, WindowOpenDisposition disposition); |
+ virtual void SetHoveredLine(size_t index); |
+ virtual void SetSelectedLine(size_t index, bool revert_to_default); |
+ |
+ // Overridden from views::View: |
+ virtual void PaintChildren(ChromeCanvas* canvas); |
+ virtual void Layout(); |
+ |
+ private: |
+ // Fill a path for the contents' roundrect. |bounding_rect| is the rect that |
+ // bounds the path. |
+ void MakeContentsPath(gfx::Path* path, const gfx::Rect& bounding_rect); |
+ |
+ // Updates the window's blur region for the current size. |
+ void UpdateBlurRegion(); |
+ |
+ // Makes the contents of the canvas slightly transparent. |
+ void MakeCanvasTransparent(ChromeCanvas* canvas); |
+ |
+ AutocompletePopupWin* popup_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AutocompletePopupContentsView); |
+}; |
+ |
+ |
+#endif // #ifndef CHROME_BROWSER_VIEWS_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_CONTENTS_VIEW_H_ |