Home | History | Annotate | Download | only in ui
      1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_UI_STATUS_BUBBLE_H_
      6 #define CHROME_BROWSER_UI_STATUS_BUBBLE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/strings/string16.h"
     11 
     12 class GURL;
     13 namespace gfx {
     14 class Point;
     15 }
     16 
     17 ////////////////////////////////////////////////////////////////////////////////
     18 // StatusBubble interface
     19 //  An interface implemented by an object providing the status display area of
     20 //  the browser window.
     21 //
     22 class StatusBubble {
     23  public:
     24   // On hover, expand status bubble to fit long URL after this delay.
     25   static const int kExpandHoverDelayMS = 1600;
     26 
     27   virtual ~StatusBubble() {}
     28 
     29   // Sets the bubble contents to a specific string and causes the bubble
     30   // to display immediately. Subsequent empty SetURL calls (typically called
     31   // when the cursor exits a link) will set the status bubble back to its
     32   // status text. To hide the status bubble again, either call SetStatus
     33   // with an empty string, or call Hide().
     34   virtual void SetStatus(const base::string16& status) = 0;
     35 
     36   // Sets the bubble text to a URL - if given a non-empty URL, this will cause
     37   // the bubble to fade in and remain open until given an empty URL or until
     38   // the Hide() method is called. languages is the value of Accept-Language
     39   // to determine what characters are understood by a user.
     40   virtual void SetURL(const GURL& url, const std::string& languages) = 0;
     41 
     42   // Skip the fade and instant-hide the bubble.
     43   virtual void Hide() = 0;
     44 
     45   // Called when the user's mouse has moved over web content. This is used to
     46   // determine when the status area should move out of the way of the user's
     47   // mouse. |position| is the absolute position of the pointer, and
     48   // |left_content| is true if the mouse just left the content area.
     49   virtual void MouseMoved(const gfx::Point& position, bool left_content) = 0;
     50 
     51   // Called when the download shelf becomes visible or invisible.
     52   // This is used by to ensure that the status bubble does not obscure
     53   // the download shelf, when it is visible.
     54   virtual void UpdateDownloadShelfVisibility(bool visible) = 0;
     55 };
     56 
     57 #endif  // CHROME_BROWSER_UI_STATUS_BUBBLE_H_
     58