OLD | NEW |
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_BROWSER_WINDOW_GTK_H_ | 5 #ifndef CHROME_BROWSER_GTK_BROWSER_WINDOW_GTK_H_ |
6 #define CHROME_BROWSER_GTK_BROWSER_WINDOW_GTK_H_ | 6 #define CHROME_BROWSER_GTK_BROWSER_WINDOW_GTK_H_ |
7 | 7 |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
11 | 11 |
12 #include "base/gfx/rect.h" | 12 #include "base/gfx/rect.h" |
13 #include "base/scoped_ptr.h" | 13 #include "base/scoped_ptr.h" |
14 #include "base/timer.h" | 14 #include "base/timer.h" |
| 15 #include "build/build_config.h" |
15 #include "chrome/browser/browser_window.h" | 16 #include "chrome/browser/browser_window.h" |
16 #include "chrome/browser/tabs/tab_strip_model.h" | 17 #include "chrome/browser/tabs/tab_strip_model.h" |
17 #include "chrome/common/notification_registrar.h" | 18 #include "chrome/common/notification_registrar.h" |
18 #include "chrome/common/pref_member.h" | 19 #include "chrome/common/pref_member.h" |
19 #include "chrome/common/x11_util.h" | 20 #include "chrome/common/x11_util.h" |
20 | 21 |
21 class BookmarkBarGtk; | 22 class BookmarkBarGtk; |
22 class Browser; | 23 class Browser; |
23 class BrowserTitlebar; | 24 class BrowserTitlebar; |
24 class BrowserToolbarGtk; | 25 class BrowserToolbarGtk; |
25 class CustomDrawButton; | 26 class CustomDrawButton; |
26 class DownloadShelfGtk; | 27 class DownloadShelfGtk; |
27 class FindBarGtk; | 28 class FindBarGtk; |
28 class InfoBarContainerGtk; | 29 class InfoBarContainerGtk; |
29 class LocationBar; | 30 class LocationBar; |
30 class StatusBubbleGtk; | 31 class StatusBubbleGtk; |
31 class TabContentsContainerGtk; | 32 class TabContentsContainerGtk; |
32 class TabStripGtk; | 33 class TabStripGtk; |
33 | 34 |
| 35 #ifdef LINUX2 |
| 36 class PanelController; |
| 37 #endif |
| 38 |
34 // An implementation of BrowserWindow for GTK. | 39 // An implementation of BrowserWindow for GTK. |
35 // Cross-platform code will interact with this object when | 40 // Cross-platform code will interact with this object when |
36 // it needs to manipulate the window. | 41 // it needs to manipulate the window. |
37 | 42 |
38 class BrowserWindowGtk : public BrowserWindow, | 43 class BrowserWindowGtk : public BrowserWindow, |
39 public NotificationObserver, | 44 public NotificationObserver, |
40 public TabStripModelObserver { | 45 public TabStripModelObserver { |
41 public: | 46 public: |
42 explicit BrowserWindowGtk(Browser* browser); | 47 explicit BrowserWindowGtk(Browser* browser); |
43 virtual ~BrowserWindowGtk(); | 48 virtual ~BrowserWindowGtk(); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 gfx::NativeWindow window); | 147 gfx::NativeWindow window); |
143 | 148 |
144 // Retrieves the GtkWindow associated with |xid|, which is the X Window | 149 // Retrieves the GtkWindow associated with |xid|, which is the X Window |
145 // ID of the top-level X window of this object. | 150 // ID of the top-level X window of this object. |
146 static GtkWindow* GetBrowserWindowForXID(XID xid); | 151 static GtkWindow* GetBrowserWindowForXID(XID xid); |
147 | 152 |
148 Browser* browser() { | 153 Browser* browser() { |
149 return browser_.get(); | 154 return browser_.get(); |
150 } | 155 } |
151 | 156 |
| 157 GtkWindow* window() { return window_; } |
| 158 |
152 protected: | 159 protected: |
153 virtual void DestroyBrowser(); | 160 virtual void DestroyBrowser(); |
154 // Top level window. | 161 // Top level window. |
155 GtkWindow* window_; | 162 GtkWindow* window_; |
156 // GtkAlignment that holds the interior components of the chromium window. | 163 // GtkAlignment that holds the interior components of the chromium window. |
157 GtkWidget* window_container_; | 164 GtkWidget* window_container_; |
158 // VBox that holds everything below the tabs. | 165 // VBox that holds everything below the tabs. |
159 GtkWidget* content_vbox_; | 166 GtkWidget* content_vbox_; |
160 // VBox that holds everything below the toolbar. | 167 // VBox that holds everything below the toolbar. |
161 GtkWidget* render_area_vbox_; | 168 GtkWidget* render_area_vbox_; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 // The timer used to update frames for the Loading Animation. | 292 // The timer used to update frames for the Loading Animation. |
286 base::RepeatingTimer<BrowserWindowGtk> loading_animation_timer_; | 293 base::RepeatingTimer<BrowserWindowGtk> loading_animation_timer_; |
287 | 294 |
288 // Whether we're showing the custom chrome frame or the window manager | 295 // Whether we're showing the custom chrome frame or the window manager |
289 // decorations. | 296 // decorations. |
290 BooleanPrefMember use_custom_frame_; | 297 BooleanPrefMember use_custom_frame_; |
291 | 298 |
292 #if defined(LINUX2) | 299 #if defined(LINUX2) |
293 // True if a drag is active. See description above setter for details. | 300 // True if a drag is active. See description above setter for details. |
294 bool drag_active_; | 301 bool drag_active_; |
| 302 // Controls interactions with the window manager for popup panels. |
| 303 PanelController* panel_controller_; |
295 #endif | 304 #endif |
296 | 305 |
297 // A map which translates an X Window ID into its respective GtkWindow. | 306 // A map which translates an X Window ID into its respective GtkWindow. |
298 static std::map<XID, GtkWindow*> xid_map_; | 307 static std::map<XID, GtkWindow*> xid_map_; |
299 | 308 |
300 // The current window cursor. We set it to a resize cursor when over the | 309 // The current window cursor. We set it to a resize cursor when over the |
301 // custom frame border. We set it to NULL if we want the default cursor. | 310 // custom frame border. We set it to NULL if we want the default cursor. |
302 GdkCursor* frame_cursor_; | 311 GdkCursor* frame_cursor_; |
303 | 312 |
304 DISALLOW_COPY_AND_ASSIGN(BrowserWindowGtk); | 313 DISALLOW_COPY_AND_ASSIGN(BrowserWindowGtk); |
305 }; | 314 }; |
306 | 315 |
307 #endif // CHROME_BROWSER_GTK_BROWSER_WINDOW_GTK_H_ | 316 #endif // CHROME_BROWSER_GTK_BROWSER_WINDOW_GTK_H_ |
OLD | NEW |