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

Unified Diff: chrome/views/window.h

Issue 27317: Support DWM switching.... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 | « chrome/views/widget_win.cc ('k') | chrome/views/window.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/views/window.h
===================================================================
--- chrome/views/window.h (revision 10688)
+++ chrome/views/window.h (working copy)
@@ -68,7 +68,7 @@
void SetBounds(const gfx::Rect& bounds, HWND other_hwnd);
// Closes the window, ultimately destroying it.
- virtual void Close();
+ void Close();
// Whether or not the window is maximized or minimized.
bool IsMaximized() const;
@@ -76,35 +76,46 @@
// Toggles the enable state for the Close button (and the Close menu item in
// the system menu).
- virtual void EnableClose(bool enable);
+ void EnableClose(bool enable);
- // Prevents the window from being rendered as deactivated when |disable| is
- // true, until called with |disable| false. Used when a sub-window is to be
- // shown that shouldn't visually de-activate the window.
- // Subclasses can override this to perform additional actions when this value
- // changes.
- virtual void DisableInactiveRendering(bool disable);
+ // Prevents the window from being rendered as deactivated the next time it is.
+ // This state is reset automatically as soon as the window becomes actiated
+ // again. There is no ability to control the state through this API as this
+ // leads to sync problems.
+ void DisableInactiveRendering();
- WindowDelegate* window_delegate() const { return window_delegate_; }
-
- void set_focus_on_creation(bool focus_on_creation) {
- focus_on_creation_ = focus_on_creation;
- }
-
// Tell the window to update its title from the delegate.
- virtual void UpdateWindowTitle();
+ void UpdateWindowTitle();
// Tell the window to update its icon from the delegate.
- virtual void UpdateWindowIcon();
+ void UpdateWindowIcon();
// Executes the specified SC_command.
void ExecuteSystemMenuCommand(int command);
- // The parent of this window.
+ // Shortcut to access the determination of whether or not we're using a
+ // native frame. This triggers different rendering modes in certain views and
+ // should be used in preference to calling win_util::ShouldUseVistaFrame.
+ bool UseNativeFrame() const { return non_client_view_->UseNativeFrame(); }
+
+ // Returns the bounds of the window required to display the content area
+ // at the specified bounds.
+ gfx::Rect GetWindowBoundsForClientBounds(const gfx::Rect& client_bounds);
+
+ // Creates an appropriate NonClientFrameView for this window.
+ virtual NonClientFrameView* CreateFrameViewForWindow();
+
+ // Updates the frame after an event caused it to be changed.
+ virtual void UpdateFrameAfterFrameChange();
+
+ // Accessors and setters for various properties.
+ WindowDelegate* window_delegate() const { return window_delegate_; }
HWND owning_window() const { return owning_hwnd_; }
-
- // Shortcut to access the ClientView associated with this window.
ClientView* client_view() const { return non_client_view_->client_view(); }
+ bool is_active() const { return is_active_; }
+ void set_focus_on_creation(bool focus_on_creation) {
+ focus_on_creation_ = focus_on_creation;
+ }
// Returns the preferred size of the contents view of this window based on
// its localized size data. The width in cols is held in a localized string
@@ -144,25 +155,30 @@
// Overridden from WidgetWin:
virtual void OnActivate(UINT action, BOOL minimized, HWND window);
+ virtual void OnActivateApp(BOOL active, DWORD thread_id);
virtual LRESULT OnAppCommand(HWND window, short app_command, WORD device,
int keystate);
virtual void OnCommand(UINT notification_code, int command_id, HWND window);
virtual void OnDestroy();
+ virtual LRESULT OnDwmCompositionChanged(UINT msg, WPARAM w_param,
+ LPARAM l_param);
virtual void OnInitMenu(HMENU menu);
virtual void OnMouseLeave();
virtual LRESULT OnNCActivate(BOOL active);
virtual LRESULT OnNCCalcSize(BOOL mode, LPARAM l_param);
virtual LRESULT OnNCHitTest(const CPoint& point);
- virtual LRESULT OnNCUAHDrawCaption(UINT msg, WPARAM w_param, LPARAM l_param);
- virtual LRESULT OnNCUAHDrawFrame(UINT msg, WPARAM w_param, LPARAM l_param);
virtual void OnNCPaint(HRGN rgn);
virtual void OnNCLButtonDown(UINT ht_component, const CPoint& point);
virtual void OnNCRButtonDown(UINT ht_component, const CPoint& point);
+ virtual LRESULT OnNCUAHDrawCaption(UINT msg, WPARAM w_param, LPARAM l_param);
+ virtual LRESULT OnNCUAHDrawFrame(UINT msg, WPARAM w_param, LPARAM l_param);
virtual LRESULT OnSetCursor(HWND window, UINT hittest_code, UINT message);
virtual LRESULT OnSetIcon(UINT size_type, HICON new_icon);
virtual LRESULT OnSetText(const wchar_t* text);
virtual void OnSize(UINT size_param, const CSize& new_size);
virtual void OnSysCommand(UINT notification_code, CPoint click);
+ virtual Window* AsWindow() { return this; }
+ virtual const Window* AsWindow() const { return this; }
// The View that provides the non-client area of the window (title bar,
// window controls, sizing borders etc). To use an implementation other than
@@ -176,15 +192,6 @@
}
private:
- // Sets the specified view as the ClientView of this Window. The ClientView
- // is responsible for laying out the Window's contents view, as well as
- // performing basic hit-testing, and perhaps other responsibilities depending
- // on the implementation. The Window's view hierarchy takes ownership of the
- // ClientView unless the ClientView specifies otherwise. This must be called
- // only once, and after the native window has been created.
- // This is called by Init. |client_view| cannot be NULL.
- void SetClientView(ClientView* client_view);
-
// Set the window as modal (by disabling all the other windows).
void BecomeModal();
@@ -224,7 +231,9 @@
void UnlockUpdates();
// Resets the window region for the current window bounds if necessary.
- void ResetWindowRegion();
+ // If |force| is true, the window region is reset to NULL even for native
+ // frame windows.
+ void ResetWindowRegion(bool force);
// Converts a non-client mouse down message to a regular ChromeViews event
// and handle it. |point| is the mouse position of the message in screen
@@ -233,6 +242,11 @@
// combined with flags relating to the current key state.
void ProcessNCMousePress(const CPoint& point, int flags);
+ // Calls the default WM_NCACTIVATE handler with the specified activation
+ // value, safely wrapping the call in a ScopedRedrawLock to prevent frame
+ // flicker.
+ LRESULT CallDefaultNCActivateHandler(BOOL active);
+
// Static resource initialization.
static void InitClass();
enum ResizeCursor {
« no previous file with comments | « chrome/views/widget_win.cc ('k') | chrome/views/window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698