1 // Copyright (c) 2010 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 // This file defines the interface class AutocompletePopupView. Each toolkit 6 // will implement the popup view differently, so that code is inheriently 7 // platform specific. However, the AutocompletePopupModel needs to do some 8 // communication with the view. Since the model is shared between platforms, 9 // we need to define an interface that all view implementations will share. 10 11 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_H_ 12 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_H_ 13 #pragma once 14 15 #include "build/build_config.h" 16 17 namespace gfx { 18 class Rect; 19 } 20 21 class AutocompletePopupView { 22 public: ~AutocompletePopupView()23 virtual ~AutocompletePopupView() {} 24 25 // Returns true if the popup is currently open. 26 virtual bool IsOpen() const = 0; 27 28 // Invalidates one line of the autocomplete popup. 29 virtual void InvalidateLine(size_t line) = 0; 30 31 // Redraws the popup window to match any changes in the result set; this may 32 // mean opening or closing the window. 33 virtual void UpdatePopupAppearance() = 0; 34 35 // Returns the target bounds for the popup. This returns the popup's current 36 // bounds when not animating, or the desired target bounds when animating. 37 // The return value is in screen coordinates. 38 virtual gfx::Rect GetTargetBounds() = 0; 39 40 // Paint any pending updates. 41 virtual void PaintUpdatesNow() = 0; 42 43 // This method is called when the view should cancel any active drag (e.g. 44 // because the user pressed ESC). The view may or may not need to take any 45 // action (e.g. releasing mouse capture). Note that this can be called when 46 // no drag is in progress. 47 virtual void OnDragCanceled() = 0; 48 }; 49 50 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_H_ 51