| Index: chrome/browser/ui/gtk/status_bubble_gtk.h
|
| diff --git a/chrome/browser/ui/gtk/status_bubble_gtk.h b/chrome/browser/ui/gtk/status_bubble_gtk.h
|
| deleted file mode 100644
|
| index 0d9460b303eaf3930e46caf0f620689f534cf67f..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/gtk/status_bubble_gtk.h
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -// 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_UI_GTK_STATUS_BUBBLE_GTK_H_
|
| -#define CHROME_BROWSER_UI_GTK_STATUS_BUBBLE_GTK_H_
|
| -
|
| -#include <gtk/gtk.h>
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/timer/timer.h"
|
| -#include "chrome/browser/ui/status_bubble.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "ui/base/gtk/gtk_signal.h"
|
| -#include "ui/base/gtk/owned_widget_gtk.h"
|
| -#include "ui/gfx/animation/animation_delegate.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "url/gurl.h"
|
| -
|
| -class GtkThemeService;
|
| -class Profile;
|
| -
|
| -namespace gfx {
|
| -class SlideAnimation;
|
| -}
|
| -
|
| -// GTK implementation of StatusBubble. Unlike Windows, our status bubble
|
| -// doesn't have the nice leave-the-window effect since we can't rely on the
|
| -// window manager to not try to be "helpful" and center our popups, etc.
|
| -// We therefore position it absolutely in a GtkFixed, that we don't own.
|
| -class StatusBubbleGtk : public StatusBubble,
|
| - public content::NotificationObserver,
|
| - public gfx::AnimationDelegate {
|
| - public:
|
| - explicit StatusBubbleGtk(Profile* profile);
|
| - virtual ~StatusBubbleGtk();
|
| -
|
| - bool flip_horizontally() const { return flip_horizontally_; }
|
| - int y_offset() const { return y_offset_; }
|
| -
|
| - // StatusBubble implementation.
|
| - virtual void SetStatus(const base::string16& status) OVERRIDE;
|
| - virtual void SetURL(const GURL& url, const std::string& languages) OVERRIDE;
|
| - virtual void Hide() OVERRIDE;
|
| - virtual void MouseMoved(const gfx::Point& location,
|
| - bool left_content) OVERRIDE;
|
| -
|
| - // gfx::AnimationDelegate implementation.
|
| - virtual void AnimationEnded(const gfx::Animation* animation) OVERRIDE;
|
| - virtual void AnimationProgressed(const gfx::Animation* animation) OVERRIDE;
|
| -
|
| - // Called when the download shelf becomes visible or invisible.
|
| - // This is used by to ensure that the status bubble does not obscure
|
| - // the download shelf, when it is visible.
|
| - virtual void UpdateDownloadShelfVisibility(bool visible) OVERRIDE;
|
| -
|
| - // Overridden from content::NotificationObserver:
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Top of the widget hierarchy for a StatusBubble. This top level widget is
|
| - // guarenteed to have its gtk_widget_name set to "status-bubble" for
|
| - // identification.
|
| - GtkWidget* widget() { return container_.get(); }
|
| -
|
| - private:
|
| - // Sets the text of the label widget and controls visibility. (As contrasted
|
| - // with setting the current status or URL text, which may be ignored for now).
|
| - void SetStatusTextTo(const std::string& status_utf8);
|
| -
|
| - // Sets the status text to the current value of |url_|, eliding it as
|
| - // necessary.
|
| - void SetStatusTextToURL();
|
| -
|
| - // Sets the status bubble's location in the parent GtkFixed, shows the widget
|
| - // and makes sure that the status bubble has the highest z-order.
|
| - void Show();
|
| -
|
| - // Builds the widgets, containers, etc.
|
| - void InitWidgets();
|
| -
|
| - // Notification from the window that we should retheme ourself.
|
| - void UserChangedTheme();
|
| -
|
| - // Sets whether the bubble should be flipped horizontally and displayed on the
|
| - // opposite side of the tab contents. Reshapes the container and queues a
|
| - // redraw if necessary.
|
| - void SetFlipHorizontally(bool flip_horizontally);
|
| -
|
| - // Expand the bubble up to the full width of the browser, so that the entire
|
| - // URL may be seen. Called after the user hovers over a link for sufficient
|
| - // time.
|
| - void ExpandURL();
|
| -
|
| - // Adjust the actual size of the bubble by changing the label's size request.
|
| - void UpdateLabelSizeRequest();
|
| -
|
| - // Returns true if the status bubble is in the expand-state (i.e., is
|
| - // currently expanded or in the process of expanding).
|
| - bool expanded() {
|
| - return expand_animation_.get();
|
| - }
|
| -
|
| - CHROMEGTK_CALLBACK_1(StatusBubbleGtk, gboolean, HandleMotionNotify,
|
| - GdkEventMotion*);
|
| -
|
| - CHROMEGTK_CALLBACK_1(StatusBubbleGtk, gboolean, HandleEnterNotify,
|
| - GdkEventCrossing*);
|
| -
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - // Provides colors.
|
| - GtkThemeService* theme_service_;
|
| -
|
| - // The toplevel event box.
|
| - ui::OwnedWidgetGtk container_;
|
| -
|
| - // The GtkAlignment holding |label_|.
|
| - GtkWidget* padding_;
|
| -
|
| - // The GtkLabel holding the text.
|
| - ui::OwnedWidgetGtk label_;
|
| -
|
| - // The status text we want to display when there are no URLs to display.
|
| - std::string status_text_;
|
| -
|
| - // The URL we are displaying for.
|
| - GURL url_;
|
| -
|
| - // The possibly elided url text we want to display.
|
| - std::string url_text_;
|
| -
|
| - // Used to determine the character set that the user can read (for eliding
|
| - // the url text).
|
| - std::string languages_;
|
| -
|
| - // A timer that hides our window after a delay.
|
| - base::OneShotTimer<StatusBubbleGtk> hide_timer_;
|
| -
|
| - // A timer that expands our window after a delay.
|
| - base::OneShotTimer<StatusBubbleGtk> expand_timer_;
|
| -
|
| - // The animation for resizing the status bubble on long hovers.
|
| - scoped_ptr<gfx::SlideAnimation> expand_animation_;
|
| -
|
| - // The start and end width of the current resize animation.
|
| - int start_width_;
|
| - int desired_width_;
|
| -
|
| - // Should the bubble be flipped horizontally (e.g. displayed on the right for
|
| - // an LTR language)? We move the bubble to the other side of the tab contents
|
| - // rather than sliding it down when the download shelf is visible.
|
| - bool flip_horizontally_;
|
| -
|
| - // Vertical offset used to hide the status bubble as the pointer nears it.
|
| - int y_offset_;
|
| -
|
| - // If the download shelf is visible, do not obscure it.
|
| - bool download_shelf_is_visible_;
|
| -
|
| - // 'location' and 'left_content' values from the last invocation of
|
| - // MouseMoved(). We hang onto these so we can move the bubble if necessary
|
| - // when its text changes, triggering a size change.
|
| - gfx::Point last_mouse_location_;
|
| - bool last_mouse_left_content_;
|
| -
|
| - // Shortly after the cursor enters the status bubble, we'll get a message
|
| - // that the cursor left the content area. This lets us ignore that.
|
| - bool ignore_next_left_content_;
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_UI_GTK_STATUS_BUBBLE_GTK_H_
|
|
|