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

Side by Side Diff: views/widget/widget_win.h

Issue 114054: Splits TooltipManager so that it can be ported and stubs out the GTK... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « views/widget/widget_gtk.cc ('k') | views/widget/widget_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 VIEWS_WIDGET_WIDGET_WIN_H_ 5 #ifndef VIEWS_WIDGET_WIDGET_WIN_H_
6 #define VIEWS_WIDGET_WIDGET_WIN_H_ 6 #define VIEWS_WIDGET_WIDGET_WIN_H_
7 7
8 #include <atlbase.h> 8 #include <atlbase.h>
9 #include <atlapp.h> 9 #include <atlapp.h>
10 #include <atlcrack.h> 10 #include <atlcrack.h>
11 #include <atlmisc.h> 11 #include <atlmisc.h>
12 12
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/system_monitor.h" 14 #include "base/system_monitor.h"
15 #include "views/focus/focus_manager.h" 15 #include "views/focus/focus_manager.h"
16 #include "views/layout_manager.h" 16 #include "views/layout_manager.h"
17 #include "views/widget/widget.h" 17 #include "views/widget/widget.h"
18 18
19 namespace gfx { 19 namespace gfx {
20 class Canvas; 20 class Canvas;
21 class Rect; 21 class Rect;
22 } 22 }
23 23
24 namespace views { 24 namespace views {
25 25
26 class RootView; 26 class RootView;
27 class TooltipManager; 27 class TooltipManagerWin;
28 class DefaultThemeProvider; 28 class DefaultThemeProvider;
29 class Window; 29 class Window;
30 30
31 bool SetRootViewForHWND(HWND hwnd, RootView* root_view); 31 bool SetRootViewForHWND(HWND hwnd, RootView* root_view);
32 RootView* GetRootViewForHWND(HWND hwnd); 32 RootView* GetRootViewForHWND(HWND hwnd);
33 33
34 // A Windows message reflected from other windows. This message is sent 34 // A Windows message reflected from other windows. This message is sent
35 // with the following arguments: 35 // with the following arguments:
36 // hWnd - Target window 36 // hWnd - Target window
37 // uMsg - kReflectedMessage 37 // uMsg - kReflectedMessage
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 // is true. 499 // is true.
500 virtual bool ReleaseCaptureOnMouseReleased() { return true; } 500 virtual bool ReleaseCaptureOnMouseReleased() { return true; }
501 501
502 // Creates the RootView to be used within this Widget. Can be overridden to 502 // Creates the RootView to be used within this Widget. Can be overridden to
503 // create specialized RootView implementations. 503 // create specialized RootView implementations.
504 virtual RootView* CreateRootView(); 504 virtual RootView* CreateRootView();
505 505
506 // Returns true if this WidgetWin is opaque. 506 // Returns true if this WidgetWin is opaque.
507 bool opaque() const { return opaque_; } 507 bool opaque() const { return opaque_; }
508 508
509 // The TooltipManager.
510 // WARNING: RootView's destructor calls into the TooltipManager. As such, this
511 // must be destroyed AFTER root_view_. This really only matters during
512 // WM_SESSIONEND, as normally the hwnd is destroyed which tiggers unsetting
513 // the widget in the RootView so that RootView's destructor doesn't call into
514 // the TooltipManager.
515 scoped_ptr<TooltipManagerWin> tooltip_manager_;
516
509 // The root of the View hierarchy attached to this window. 517 // The root of the View hierarchy attached to this window.
518 // WARNING: see warning in tooltip_manager_ for ordering dependencies with
519 // this and tooltip_manager_.
510 scoped_ptr<RootView> root_view_; 520 scoped_ptr<RootView> root_view_;
511 521
512 // Whether or not we have capture the mouse. 522 // Whether or not we have capture the mouse.
513 bool has_capture_; 523 bool has_capture_;
514 524
515 // If true, the mouse is currently down. 525 // If true, the mouse is currently down.
516 bool is_mouse_down_; 526 bool is_mouse_down_;
517 527
518 scoped_ptr<TooltipManager> tooltip_manager_;
519
520 // Are a subclass of WindowWin? 528 // Are a subclass of WindowWin?
521 bool is_window_; 529 bool is_window_;
522 530
523 private: 531 private:
524 // Implementation of GetWindow. Ascends the parents of |hwnd| returning the 532 // Implementation of GetWindow. Ascends the parents of |hwnd| returning the
525 // first ancestor that is a Window. 533 // first ancestor that is a Window.
526 static Window* GetWindowImpl(HWND hwnd); 534 static Window* GetWindowImpl(HWND hwnd);
527 535
528 // Resize the bitmap used to contain the contents of the layered window. This 536 // Resize the bitmap used to contain the contents of the layered window. This
529 // recreates the entire bitmap. 537 // recreates the entire bitmap.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 623
616 scoped_ptr<DefaultThemeProvider> default_theme_provider_; 624 scoped_ptr<DefaultThemeProvider> default_theme_provider_;
617 625
618 // Our hwnd. 626 // Our hwnd.
619 HWND hwnd_; 627 HWND hwnd_;
620 }; 628 };
621 629
622 } // namespace views 630 } // namespace views
623 631
624 #endif // #ifndef VIEWS_WIDGET_WIDGET_WIN_H_ 632 #endif // #ifndef VIEWS_WIDGET_WIDGET_WIN_H_
OLDNEW
« no previous file with comments | « views/widget/widget_gtk.cc ('k') | views/widget/widget_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698