Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: chrome/browser/gtk/status_bubble_gtk.h

Issue 149259: GTK Themes: Status bubble obeys GTK colors now. (Closed)
Patch Set: Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.cc ('k') | chrome/browser/gtk/status_bubble_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_ 5 #ifndef CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_
6 #define CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_ 6 #define CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_
7 7
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 9
10 #include <string> 10 #include <string>
11 11
12 #include "base/scoped_ptr.h" 12 #include "base/scoped_ptr.h"
13 #include "base/task.h" 13 #include "base/task.h"
14 #include "chrome/browser/status_bubble.h" 14 #include "chrome/browser/status_bubble.h"
15 #include "chrome/common/owned_widget_gtk.h" 15 #include "chrome/common/owned_widget_gtk.h"
16 16
17 class GtkThemeProperties;
17 class GURL; 18 class GURL;
19 class Profile;
18 20
19 // GTK implementation of StatusBubble. Unlike Windows, our status bubble 21 // GTK implementation of StatusBubble. Unlike Windows, our status bubble
20 // doesn't have the nice leave-the-window effect since we can't rely on the 22 // doesn't have the nice leave-the-window effect since we can't rely on the
21 // window manager to not try to be "helpful" and center our popups, etc. 23 // window manager to not try to be "helpful" and center our popups, etc.
22 // We therefore position it absolutely in a GtkFixed, that we don't own. 24 // We therefore position it absolutely in a GtkFixed, that we don't own.
23 class StatusBubbleGtk : public StatusBubble { 25 class StatusBubbleGtk : public StatusBubble {
24 public: 26 public:
25 StatusBubbleGtk(); 27 StatusBubbleGtk(Profile* profile);
26 virtual ~StatusBubbleGtk(); 28 virtual ~StatusBubbleGtk();
27 29
28 // StatusBubble implementation. 30 // StatusBubble implementation.
29 virtual void SetStatus(const std::wstring& status); 31 virtual void SetStatus(const std::wstring& status);
30 virtual void SetURL(const GURL& url, const std::wstring& languages); 32 virtual void SetURL(const GURL& url, const std::wstring& languages);
31 virtual void Hide(); 33 virtual void Hide();
32 virtual void MouseMoved(); 34 virtual void MouseMoved();
33 35
34 // Called when the download shelf becomes visible or invisible. 36 // Called when the download shelf becomes visible or invisible.
35 // This is used by to ensure that the status bubble does not obscure 37 // This is used by to ensure that the status bubble does not obscure
36 // the download shelf, when it is visible. 38 // the download shelf, when it is visible.
37 virtual void UpdateDownloadShelfVisibility(bool visible) { } 39 virtual void UpdateDownloadShelfVisibility(bool visible) { }
38 40
39 // Top of the widget hierarchy for a StatusBubble. This top level widget is 41 // Top of the widget hierarchy for a StatusBubble. This top level widget is
40 // guarenteed to have its gtk_widget_name set to "status-bubble" for 42 // guarenteed to have its gtk_widget_name set to "status-bubble" for
41 // identification. 43 // identification.
42 GtkWidget* widget() { return container_.get(); } 44 GtkWidget* widget() { return container_.get(); }
43 45
46 // Notification from the window that we should retheme ourself.
47 void UserChangedTheme(GtkThemeProperties* properties);
48
44 private: 49 private:
45 // Sets the text of the label widget and controls visibility. (As contrasted 50 // Sets the text of the label widget and controls visibility. (As contrasted
46 // with setting the current status or URL text, which may be ignored for now). 51 // with setting the current status or URL text, which may be ignored for now).
47 void SetStatusTextTo(const std::string& status_utf8); 52 void SetStatusTextTo(const std::string& status_utf8);
48 53
49 // Sets the status bubble's location in the parent GtkFixed, shows the widget 54 // Sets the status bubble's location in the parent GtkFixed, shows the widget
50 // and makes sure that the status bubble has the highest z-order. 55 // and makes sure that the status bubble has the highest z-order.
51 void Show(); 56 void Show();
52 57
53 // Sets an internal timer to hide the status bubble after a delay. 58 // Sets an internal timer to hide the status bubble after a delay.
54 void HideInASecond(); 59 void HideInASecond();
55 60
56 // Builds the widgets, containers, etc. 61 // Builds the widgets, containers, etc.
57 void InitWidgets(); 62 void InitWidgets();
58 63
59 // A GtkAlignment that is the child of |slide_widget_|. 64 // A GtkAlignment that is the child of |slide_widget_|.
60 OwnedWidgetGtk container_; 65 OwnedWidgetGtk container_;
61 66
62 // The GtkLabel holding the text. 67 // The GtkLabel holding the text.
63 GtkWidget* label_; 68 GtkWidget* label_;
64 69
70 // The background event box. We keep this so we can change it's background
Evan Martin 2009/07/07 17:35:25 s/it's/its/
71 // color.
72 GtkWidget* bg_box_;
73
65 // The status text we want to display when there are no URLs to display. 74 // The status text we want to display when there are no URLs to display.
66 std::string status_text_; 75 std::string status_text_;
67 76
68 // The url we want to display when there is no status text to display. 77 // The url we want to display when there is no status text to display.
69 std::string url_text_; 78 std::string url_text_;
70 79
71 // A timer that hides our window after a delay. 80 // A timer that hides our window after a delay.
72 ScopedRunnableMethodFactory<StatusBubbleGtk> timer_factory_; 81 ScopedRunnableMethodFactory<StatusBubbleGtk> timer_factory_;
73 }; 82 };
74 83
75 #endif // CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_ 84 #endif // CHROME_BROWSER_GTK_STATUS_BUBBLE_GTK_H_
OLDNEW
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.cc ('k') | chrome/browser/gtk/status_bubble_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698