summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/frame/browser_frame_gtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/views/frame/browser_frame_gtk.h')
-rw-r--r--chrome/browser/ui/views/frame/browser_frame_gtk.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/frame/browser_frame_gtk.h b/chrome/browser/ui/views/frame/browser_frame_gtk.h
new file mode 100644
index 0000000..77d346c8
--- /dev/null
+++ b/chrome/browser/ui/views/frame/browser_frame_gtk.h
@@ -0,0 +1,85 @@
+// Copyright (c) 2010 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_VIEWS_FRAME_BROWSER_FRAME_GTK_H_
+#define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_FRAME_GTK_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "chrome/browser/views/frame/browser_frame.h"
+#include "views/window/window_gtk.h"
+
+class BrowserNonClientFrameView;
+class BrowserRootView;
+
+class BrowserFrameGtk : public BrowserFrame,
+ public views::WindowGtk {
+ public:
+ // Normally you will create this class by calling BrowserFrame::Create.
+ // Init must be called before using this class, which Create will do for you.
+ BrowserFrameGtk(BrowserView* browser_view, Profile* profile);
+ virtual ~BrowserFrameGtk();
+
+ // Creates a frame view and initializes the window. This
+ // initialization function must be called after construction, it is
+ // separate to avoid recursive calling of the frame from its
+ // constructor.
+ virtual void Init();
+
+ // Overridden from BrowserFrame:
+ virtual views::Window* GetWindow();
+ virtual int GetMinimizeButtonOffset() const;
+ virtual gfx::Rect GetBoundsForTabStrip(BaseTabStrip* tabstrip) const;
+ virtual int GetHorizontalTabStripVerticalOffset(bool restored) const;
+ virtual void UpdateThrobber(bool running);
+ virtual void ContinueDraggingDetachedTab();
+ virtual ThemeProvider* GetThemeProviderForFrame() const;
+ virtual bool AlwaysUseNativeFrame() const;
+ virtual views::View* GetFrameView() const;
+ virtual void TabStripDisplayModeChanged();
+
+ // Overridden from views::Widget:
+ virtual ThemeProvider* GetThemeProvider() const;
+ virtual ThemeProvider* GetDefaultThemeProvider() const;
+ virtual void IsActiveChanged();
+ virtual void SetInitialFocus();
+
+ protected:
+ void set_browser_frame_view(BrowserNonClientFrameView* browser_frame_view) {
+ browser_frame_view_ = browser_frame_view;
+ }
+
+ // Overridden from views::WidgetGtk:
+ virtual views::RootView* CreateRootView();
+ virtual bool GetAccelerator(int cmd_id, menus::Accelerator* accelerator);
+
+ // Overriden from views::WindowGtk:
+ virtual gboolean OnWindowStateEvent(GtkWidget* widget,
+ GdkEventWindowState* event);
+ virtual gboolean OnConfigureEvent(GtkWidget* widget,
+ GdkEventConfigure* event);
+
+ protected:
+ BrowserView* browser_view() const {
+ return browser_view_;
+ }
+
+ private:
+ // The BrowserView is our ClientView. This is a pointer to it.
+ BrowserView* browser_view_;
+
+ // A pointer to our NonClientFrameView as a BrowserNonClientFrameView.
+ BrowserNonClientFrameView* browser_frame_view_;
+
+ // An unowning reference to the root view associated with the window. We save
+ // a copy as a BrowserRootView to avoid evil casting later, when we need to
+ // call functions that only exist on BrowserRootView (versus RootView).
+ BrowserRootView* root_view_;
+
+ Profile* profile_;
+
+ DISALLOW_COPY_AND_ASSIGN(BrowserFrameGtk);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_FRAME_GTK_H_