OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ | 5 #ifndef CHROME_BROWSER_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ |
6 #define CHROME_BROWSER_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ | 6 #define CHROME_BROWSER_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 20 matching lines...) Expand all Loading... |
31 // | 31 // |
32 // Due to how X11/GTK+ works, this class owns the methods to draw arrows on top | 32 // Due to how X11/GTK+ works, this class owns the methods to draw arrows on top |
33 // of other widgets. Since most bars in the top of the window have their own | 33 // of other widgets. Since most bars in the top of the window have their own |
34 // event boxes, we can't just draw over the coordinates in the toplevel window | 34 // event boxes, we can't just draw over the coordinates in the toplevel window |
35 // as event boxes get their own canvases (and they need to have their own event | 35 // as event boxes get their own canvases (and they need to have their own event |
36 // boxes for a mixture of handling mouse events and themeing). And because they | 36 // boxes for a mixture of handling mouse events and themeing). And because they |
37 // have their own event boxes and event boxes can't be partially transparent, | 37 // have their own event boxes and event boxes can't be partially transparent, |
38 // we can't just overlap the widgets. | 38 // we can't just overlap the widgets. |
39 class InfoBarContainerGtk : public InfoBarContainer { | 39 class InfoBarContainerGtk : public InfoBarContainer { |
40 public: | 40 public: |
41 explicit InfoBarContainerGtk(InfoBarContainer::Delegate* delegate, | 41 InfoBarContainerGtk(InfoBarContainer::Delegate* delegate, Profile* profile); |
42 Profile* profile); | |
43 virtual ~InfoBarContainerGtk(); | 42 virtual ~InfoBarContainerGtk(); |
44 | 43 |
45 // Get the native widget. | 44 // Get the native widget. |
46 GtkWidget* widget() const { return container_.get(); } | 45 GtkWidget* widget() const { return container_.get(); } |
47 | 46 |
48 // Remove the specified InfoBarDelegate from the selected TabContents. This | 47 // Remove the specified InfoBarDelegate from the selected TabContents. This |
49 // will notify us back and cause us to close the View. This is called from | 48 // will notify us back and cause us to close the View. This is called from |
50 // the InfoBar's close button handler. | 49 // the InfoBar's close button handler. |
51 void RemoveDelegate(InfoBarDelegate* delegate); | 50 void RemoveDelegate(InfoBarDelegate* delegate); |
52 | 51 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 // which InfoBarGtk supplies information about drawing the arrows. | 85 // which InfoBarGtk supplies information about drawing the arrows. |
87 std::vector<InfoBarGtk*> infobars_gtk_; | 86 std::vector<InfoBarGtk*> infobars_gtk_; |
88 | 87 |
89 // VBox that holds the info bars. | 88 // VBox that holds the info bars. |
90 OwnedWidgetGtk container_; | 89 OwnedWidgetGtk container_; |
91 | 90 |
92 DISALLOW_COPY_AND_ASSIGN(InfoBarContainerGtk); | 91 DISALLOW_COPY_AND_ASSIGN(InfoBarContainerGtk); |
93 }; | 92 }; |
94 | 93 |
95 #endif // CHROME_BROWSER_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ | 94 #endif // CHROME_BROWSER_UI_GTK_INFOBARS_INFOBAR_CONTAINER_GTK_H_ |
OLD | NEW |