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

Unified Diff: views/widget/widget_win.h

Issue 165022: Factor out window creation into base::WindowImpl. This class will be used in... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/window_impl.cc ('k') | views/widget/widget_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/widget/widget_win.h
===================================================================
--- views/widget/widget_win.h (revision 22547)
+++ views/widget/widget_win.h (working copy)
@@ -12,6 +12,7 @@
#include "base/message_loop.h"
#include "base/system_monitor.h"
+#include "base/window_impl.h"
#include "views/focus/focus_manager.h"
#include "views/layout_manager.h"
#include "views/widget/widget.h"
@@ -63,7 +64,8 @@
// then responsible for cleaning up after it.
//
///////////////////////////////////////////////////////////////////////////////
-class WidgetWin : public Widget,
+class WidgetWin : public base::WindowImpl,
+ public Widget,
public MessageLoopForUI::Observer,
public FocusTraversable,
public AcceleratorTarget {
@@ -71,23 +73,12 @@
WidgetWin();
virtual ~WidgetWin();
- // Sets the window styles. This is ONLY used when the window is created.
- // In other words, if you invoke this after invoking Init, nothing happens.
- void set_window_style(DWORD style) { window_style_ = style; }
- DWORD window_style() const { return window_style_; }
+ // Returns the RootView associated with the specified HWND (if any).
+ static RootView* FindRootView(HWND hwnd);
- // Sets the extended window styles. See comment about |set_window_style|.
- void set_window_ex_style(DWORD style) { window_ex_style_ = style; }
- DWORD window_ex_style() const { return window_ex_style_; };
+ // Returns the Widget associated with the specified HWND (if any).
+ static WidgetWin* GetWidget(HWND hwnd);
- // Sets the class style to use. The default is CS_DBLCLKS.
- void set_initial_class_style(UINT class_style) {
- // We dynamically generate the class name, so don't register it globally!
- DCHECK((class_style & CS_GLOBALCLASS) == 0);
- class_style_ = class_style;
- }
- UINT initial_class_style() { return class_style_; }
-
void set_delete_on_destroy(bool delete_on_destroy) {
delete_on_destroy_ = delete_on_destroy;
}
@@ -100,16 +91,7 @@
can_update_layered_window_ = can_update_layered_window;
}
- // Returns the RootView associated with the specified HWND (if any).
- static RootView* FindRootView(HWND hwnd);
-
- // Returns the Widget associated with the specified HWND (if any).
- static WidgetWin* GetWidget(HWND hwnd);
-
- // All classes registered by WidgetWin start with this name.
- static const wchar_t* const kBaseClassName;
-
- BEGIN_MSG_MAP_EX(0)
+ BEGIN_MSG_MAP_EX(WidgetWin)
// Range handlers must go first!
MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange)
MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE, WM_NCMOUSEMOVE, OnMouseRange)
@@ -316,11 +298,9 @@
}
protected:
- // Call close instead of this to Destroy the window.
- BOOL DestroyWindow() {
- DCHECK(::IsWindow(GetNativeView()));
- return ::DestroyWindow(GetNativeView());
- }
+ // Overridden from WindowImpl:
+ virtual HICON GetDefaultWindowIcon() const;
+ virtual LRESULT OnWndProc(UINT message, WPARAM w_param, LPARAM l_param);
// Message Handlers
// These are all virtual so that specialized Widgets can modify or augment
@@ -545,21 +525,11 @@
// so that subclasses can do any cleanup they need to.
void OnDestroyImpl();
- // The windows procedure used by all WidgetWins.
- static LRESULT CALLBACK WndProc(HWND window,
- UINT message,
- WPARAM w_param,
- LPARAM l_param);
-
// Called after the WM_ACTIVATE message has been processed by the default
// windows procedure.
static void PostProcessActivateMessage(WidgetWin* widget,
int activation_state);
- // Gets the window class name to use when creating the corresponding HWND.
- // If necessary, this registers the window class.
- std::wstring GetWindowClassName();
-
// The following factory is used for calls to close the WidgetWin
// instance.
ScopedRunnableMethodFactory<WidgetWin> close_widget_factory_;
@@ -571,15 +541,6 @@
bool opaque_;
- // Window Styles used when creating the window.
- DWORD window_style_;
-
- // Window Extended Styles used when creating the window.
- DWORD window_ex_style_;
-
- // Style of the class to use.
- UINT class_style_;
-
// Should we keep an offscreen buffer? This is initially true and if the
// window has WS_EX_LAYERED then it remains true. You can set this to false
// at any time to ditch the buffer, and similarly set back to true to force
@@ -624,11 +585,8 @@
CComPtr<IAccessible> accessibility_root_;
scoped_ptr<DefaultThemeProvider> default_theme_provider_;
-
- // Our hwnd.
- HWND hwnd_;
};
} // namespace views
-#endif // #ifndef VIEWS_WIDGET_WIDGET_WIN_H_
+#endif // VIEWS_WIDGET_WIDGET_WIN_H_
« no previous file with comments | « base/window_impl.cc ('k') | views/widget/widget_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698