| // 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. |
| |
| // This file defines the interface class OmniboxPopupView. Each toolkit |
| // will implement the popup view differently, so that code is inheriently |
| // platform specific. However, the OmniboxPopupModel needs to do some |
| // communication with the view. Since the model is shared between platforms, |
| // we need to define an interface that all view implementations will share. |
| |
| #ifndef CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_POPUP_VIEW_H_ |
| #define CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_POPUP_VIEW_H_ |
| |
| #include "build/build_config.h" |
| |
| namespace gfx { |
| class Rect; |
| } |
| |
| class OmniboxPopupView { |
| public: |
| virtual ~OmniboxPopupView() {} |
| |
| // Returns true if the popup is currently open. |
| virtual bool IsOpen() const = 0; |
| |
| // Invalidates one line of the autocomplete popup. |
| virtual void InvalidateLine(size_t line) = 0; |
| |
| // Redraws the popup window to match any changes in the result set; this may |
| // mean opening or closing the window. |
| virtual void UpdatePopupAppearance() = 0; |
| |
| // Returns the target bounds for the popup. This returns the popup's current |
| // bounds when not animating, or the desired target bounds when animating. |
| // The return value is in screen coordinates. |
| virtual gfx::Rect GetTargetBounds() = 0; |
| |
| // Paint any pending updates. |
| virtual void PaintUpdatesNow() = 0; |
| |
| // This method is called when the view should cancel any active drag (e.g. |
| // because the user pressed ESC). The view may or may not need to take any |
| // action (e.g. releasing mouse capture). Note that this can be called when |
| // no drag is in progress. |
| virtual void OnDragCanceled() = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_POPUP_VIEW_H_ |