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

Unified Diff: chrome/browser/ui/views/extensions/app_base_window_views.h

Issue 11280173: Rename ShellWindow* classes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix mac build Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/extensions/app_base_window_views.h
diff --git a/chrome/browser/ui/views/extensions/shell_window_views.h b/chrome/browser/ui/views/extensions/app_base_window_views.h
similarity index 68%
rename from chrome/browser/ui/views/extensions/shell_window_views.h
rename to chrome/browser/ui/views/extensions/app_base_window_views.h
index 18beabf4d4b353d88d2d5c25beb27e91ef7a69f6..8166bfc645526038c409c59513eecbe4a68fb055 100644
--- a/chrome/browser/ui/views/extensions/shell_window_views.h
+++ b/chrome/browser/ui/views/extensions/app_base_window_views.h
@@ -2,20 +2,18 @@
// 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_EXTENSIONS_SHELL_WINDOW_VIEWS_H_
-#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_SHELL_WINDOW_VIEWS_H_
+#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_APP_BASE_WINDOW_VIEWS_H_
+#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_APP_BASE_WINDOW_VIEWS_H_
-#include "chrome/browser/ui/base_window.h"
-#include "chrome/browser/ui/extensions/native_shell_window.h"
-#include "chrome/browser/ui/extensions/shell_window.h"
+#include "chrome/browser/ui/extensions/app_base_window.h"
#include "chrome/browser/ui/views/unhandled_keyboard_event_handler.h"
-#include "third_party/skia/include/core/SkRegion.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/rect.h"
#include "ui/views/widget/widget_delegate.h"
class ExtensionKeybindingRegistryViews;
class Profile;
+class SkRegion;
namespace content {
class WebContents;
@@ -23,17 +21,22 @@ class WebContents;
namespace extensions {
class Extension;
+class ShellWindow;
}
namespace views {
class WebView;
}
-class ShellWindowViews : public NativeShellWindow,
- public views::WidgetDelegateView {
+class AppBaseWindowViews : public AppBaseWindow,
+ public views::WidgetDelegateView {
public:
- ShellWindowViews(ShellWindow* shell_window,
- const ShellWindow::CreateParams& params);
+ AppBaseWindowViews(ShellWindow* shell_window,
+ const ShellWindow::CreateParams& params);
+ virtual ~AppBaseWindowViews();
+
+ // This must be called after construction (i.e. in AppBaseWindow::Create).
+ void Initialize(const ShellWindow::CreateParams& params);
bool frameless() const { return frameless_; }
SkRegion* draggable_region() { return draggable_region_.get(); }
@@ -61,8 +64,6 @@ class ShellWindowViews : public NativeShellWindow,
// WidgetDelegate implementation.
virtual views::View* GetContentsView() OVERRIDE;
- virtual views::NonClientFrameView* CreateNonClientFrameView(
- views::Widget* widget) OVERRIDE;
virtual bool CanResize() const OVERRIDE;
virtual bool CanMaximize() const OVERRIDE;
virtual views::Widget* GetWidget() OVERRIDE;
@@ -79,13 +80,12 @@ class ShellWindowViews : public NativeShellWindow,
virtual void OnWidgetMove() OVERRIDE;
protected:
- // views::View implementation.
- virtual void Layout() OVERRIDE;
- virtual void ViewHierarchyChanged(
- bool is_add, views::View *parent, views::View *child) OVERRIDE;
- virtual gfx::Size GetMinimumSize() OVERRIDE;
- virtual gfx::Size GetMaximumSize() OVERRIDE;
- virtual void OnFocus() OVERRIDE;
+ ShellWindow* shell_window() { return shell_window_; }
+ views::WebView* web_view() { return web_view_; }
+ views::Widget* window() { return window_; }
+ ExtensionKeybindingRegistryViews* extension_keybinding_registry() {
+ return extension_keybinding_registry_.get();
+ }
Profile* profile() { return shell_window_->profile(); }
content::WebContents* web_contents() {
@@ -95,16 +95,26 @@ class ShellWindowViews : public NativeShellWindow,
return shell_window_->extension();
}
- // views::WidgetDelegate implementation.
- virtual void SaveWindowPlacement(const gfx::Rect& bounds,
- ui::WindowShowState show_state) OVERRIDE;
+ // InitializeWindow() must be implemented by the implementation class.
+ virtual void InitializeWindow(const gfx::Rect& initial_bounds) = 0;
+
+ // Defaults to a noop. Implement to handle any necessary syncing on resize.
+ virtual void OnViewWasResized();
private:
- friend class ShellWindowFrameView;
+ // views::View implementation.
+ virtual void Layout() OVERRIDE;
+ virtual void ViewHierarchyChanged(
+ bool is_add, views::View *parent, views::View *child) OVERRIDE;
+ virtual gfx::Size GetMinimumSize() OVERRIDE;
+ virtual gfx::Size GetMaximumSize() OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
- virtual ~ShellWindowViews();
+ // views::WidgetDelegate implementation.
+ virtual void SaveWindowPlacement(const gfx::Rect& bounds,
+ ui::WindowShowState show_state) OVERRIDE;
- // NativeShellWindow implementation.
+ // AppBaseWindow implementation.
virtual void SetFullscreen(bool fullscreen) OVERRIDE;
virtual bool IsFullscreenOrPending() const OVERRIDE;
virtual void UpdateWindowIcon() OVERRIDE;
@@ -115,26 +125,35 @@ class ShellWindowViews : public NativeShellWindow,
const content::NativeWebKeyboardEvent& event) OVERRIDE;
virtual void RenderViewHostChanged() OVERRIDE;
- void OnViewWasResized();
-
- ShellWindow* shell_window_; // weak - ShellWindow owns NativeShellWindow.
+ // Weak ptr to the ShellWindow instance that owns this.
+ ShellWindow* shell_window_;
+ // Pointer to the child web view (owned by the view hierarchy).
views::WebView* web_view_;
+
+ // Unowned window ptr, initialized in InitializeWindow.
views::Widget* window_;
- bool is_fullscreen_;
- scoped_ptr<SkRegion> draggable_region_;
+ // Tracks the fullscreen state.
+ bool is_fullscreen_;
+ // True if the ShellWindow frame type == FRAME_NONE.
bool frameless_;
+
+ // Minimum / maximum window size.
gfx::Size minimum_size_;
gfx::Size maximum_size_;
+ // Draggable region for frameless windows.
+ scoped_ptr<SkRegion> draggable_region_;
+
// The class that registers for keyboard shortcuts for extension commands.
scoped_ptr<ExtensionKeybindingRegistryViews> extension_keybinding_registry_;
+ // Passes unhandled keyboard events to the focus manager or OS.
UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_;
- DISALLOW_COPY_AND_ASSIGN(ShellWindowViews);
+ DISALLOW_COPY_AND_ASSIGN(AppBaseWindowViews);
};
-#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_SHELL_WINDOW_VIEWS_H_
+#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_APP_BASE_WINDOW_VIEWS_H_

Powered by Google App Engine
This is Rietveld 408576698