blob: e7ddc1586207da836780c90fa7cff18c9cc4c1ac [file] [log] [blame]
[email protected]efa71ab22010-05-14 18:06:181// Copyright (c) 2010 The Chromium Authors. All rights reserved.
[email protected]feb3cf72009-01-22 22:57:192// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_STATUS_BUBBLE_H_
6#define CHROME_BROWSER_STATUS_BUBBLE_H_
[email protected]32b76ef2010-07-26 23:08:247#pragma once
[email protected]feb3cf72009-01-22 22:57:198
[email protected]43d259d2010-09-03 21:37:469#include "base/string16.h"
[email protected]51096b32009-01-22 23:09:4410
[email protected]feb3cf72009-01-22 22:57:1911class GURL;
[email protected]b8595e92009-11-14 01:18:0012namespace gfx {
13class Point;
14}
[email protected]feb3cf72009-01-22 22:57:1915
16////////////////////////////////////////////////////////////////////////////////
17// StatusBubble interface
18// An interface implemented by an object providing the status display area of
19// the browser window.
20//
21class StatusBubble {
22 public:
[email protected]efa71ab22010-05-14 18:06:1823 // On hover, expand status bubble to fit long URL after this delay.
24 static const int kExpandHoverDelay = 1600;
25
[email protected]cbd7dcc72009-10-21 21:30:4126 virtual ~StatusBubble() {}
[email protected]c9b0cbd2009-04-13 12:53:0327
[email protected]feb3cf72009-01-22 22:57:1928 // Sets the bubble contents to a specific string and causes the bubble
29 // to display immediately. Subsequent empty SetURL calls (typically called
30 // when the cursor exits a link) will set the status bubble back to its
31 // status text. To hide the status bubble again, either call SetStatus
32 // with an empty string, or call Hide().
[email protected]43d259d2010-09-03 21:37:4633 virtual void SetStatus(const string16& status) = 0;
[email protected]feb3cf72009-01-22 22:57:1934
35 // Sets the bubble text to a URL - if given a non-empty URL, this will cause
36 // the bubble to fade in and remain open until given an empty URL or until
37 // the Hide() method is called. languages is the value of Accept-Language
38 // to determine what characters are understood by a user.
[email protected]43d259d2010-09-03 21:37:4639 virtual void SetURL(const GURL& url, const string16& languages) = 0;
[email protected]feb3cf72009-01-22 22:57:1940
41 // Skip the fade and instant-hide the bubble.
42 virtual void Hide() = 0;
43
44 // Called when the user's mouse has moved over web content. This is used to
45 // determine when the status area should move out of the way of the user's
46 // mouse. This may be windows specific pain due to the way messages are
[email protected]b8595e92009-11-14 01:18:0047 // processed for child HWNDs. |position| is the absolute position of the
48 // pointer, and |left_content| is true if the mouse just left the content
49 // area.
50 virtual void MouseMoved(const gfx::Point& position, bool left_content) = 0;
[email protected]3a6a3b62009-05-27 21:36:2051
52 // Called when the download shelf becomes visible or invisible.
53 // This is used by to ensure that the status bubble does not obscure
54 // the download shelf, when it is visible.
55 virtual void UpdateDownloadShelfVisibility(bool visible) = 0;
[email protected]feb3cf72009-01-22 22:57:1956};
57
[email protected]11f4857282009-11-13 19:56:1758#endif // CHROME_BROWSER_STATUS_BUBBLE_H_