1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
// 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_INSTANT_INSTANT_CONTROLLER_DELEGATE_H_
#define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_DELEGATE_H_
#include "base/string16.h"
#include "chrome/common/instant_types.h"
class TabContents;
namespace gfx {
class Rect;
}
// InstantController calls these methods on its delegate (Browser, via
// BrowserInstantController) to ask for the Instant preview to be shown,
// hidden, etc. In the following methods, if a TabContents argument is
// explicitly supplied, the delegate MUST use it. Otherwise, the preview
// TabContents can be gotten by calling InstantController::GetPreviewContents()
// (note that it may return NULL).
class InstantControllerDelegate {
public:
// Show the preview with the given |height|.
virtual void ShowInstant(int height, InstantSizeUnits units) = 0;
// Hide any preview currently being shown.
virtual void HideInstant() = 0;
// Commit the |preview| by merging it into the active tab or adding it as a
// new tab, based on |in_new_tab|. Delegate takes ownership of |preview|.
virtual void CommitInstant(TabContents* preview, bool in_new_tab) = 0;
// Autocomplete the Instant suggested |text| into the omnibox, using the
// specified |behavior| (see instant_types.h for details).
virtual void SetSuggestedText(const string16& text,
InstantCompleteBehavior behavior) = 0;
// Return the bounds that the preview is placed at, in screen coordinates.
virtual gfx::Rect GetInstantBounds() = 0;
// Notification that the preview gained focus, usually due to the user
// clicking on it.
virtual void InstantPreviewFocused() = 0;
// Return the currently active tab, over which any preview would be shown.
virtual TabContents* GetActiveTabContents() const = 0;
protected:
virtual ~InstantControllerDelegate() {}
};
#endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_DELEGATE_H_
|