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

Side by Side Diff: chrome/browser/ui/panels/panel_manager.h

Issue 7242017: Support minimizing the panel into 3-pixel line on Windows. Also support bringing up/down the titl... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 6 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_ 5 #ifndef CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
6 #define CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_ 6 #define CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <deque> 9 #include <deque>
10 #include <vector> 10 #include <vector>
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "ui/gfx/rect.h" 13 #include "ui/gfx/rect.h"
14 14
15 class Browser; 15 class Browser;
16 class Panel; 16 class Panel;
17 17
18 // This class manages a set of panels. 18 // This class manages a set of panels.
19 class PanelManager { 19 class PanelManager {
20 public: 20 public:
21 // Returns a single instance. 21 // Returns a single instance.
22 static PanelManager* GetInstance(); 22 static PanelManager* GetInstance();
23 23
24 ~PanelManager(); 24 virtual ~PanelManager();
25
26 // Removes the given panel. Both active and pending panel lists are checked.
27 // If an active panel is removed, pending panels could put on display if we
jennb 2011/06/27 23:18:02 Fix grammar in "pending planels could put on displ
jianli 2011/06/29 01:28:12 Could you suggest what need to change?
jennb 2011/06/29 21:10:09 ..., pending panels will be displayed if space all
28 // have spaces.
29 virtual void Remove(Panel* panel);
30
31 // Minimizes the given panel to full extent, that is, we only show 3-pixel
32 // lines.
33 virtual void Minimize(Panel* panel);
34
35 // Restores the given panel. If |titlebar_only| is true, we restore the panel
36 // to show the title bar only. Otherwise, we restore the panel fully.
37 virtual void Restore(Panel* panel, bool titlebar_only);
25 38
26 // Called when the display is changed, i.e. work area is updated. 39 // Called when the display is changed, i.e. work area is updated.
27 void OnDisplayChanged(); 40 void OnDisplayChanged();
28 41
29 // Creates a panel and returns it. The panel might be queued for display 42 // Creates a panel and returns it. The panel might be queued for display
30 // later. 43 // later.
31 Panel* CreatePanel(Browser* browser); 44 Panel* CreatePanel(Browser* browser);
32 45
33 // Removes the given panel. Both active and pending panel lists are checked.
34 // If an active panel is removed, pending panels could put on display if we
35 // have spaces.
36 void Remove(Panel* panel);
37
38 // Minimizes all panels. This only applies to active panels since only them 46 // Minimizes all panels. This only applies to active panels since only them
39 // are visible. 47 // are visible.
40 void MinimizeAll(); 48 void MinimizeAll();
41 49
42 // Restores all panels. This only applies to active panels since only them 50 // Restores all panels. This only applies to active panels since only them
43 // are visible. 51 // are visible.
44 void RestoreAll(); 52 void RestoreAll();
45 53
46 // Removes all active panels. Pending panels will be processed for display. 54 // Removes all active panels. Pending panels will be processed for display.
47 void RemoveAllActive(); 55 void RemoveAllActive();
48 56
49 // Drags the given active panel. 57 // Drags the given active panel.
50 void StartDragging(Panel* panel); 58 void StartDragging(Panel* panel);
51 void Drag(int delta_x); 59 void Drag(int delta_x);
52 void EndDragging(bool cancelled); 60 void EndDragging(bool cancelled);
53 61
54 // Returns the number of active panels. 62 // Returns the number of active panels.
55 int active_count() const { return active_panels_.size(); } 63 int active_count() const { return active_panels_.size(); }
56 64
57 private: 65 protected:
dcheng 2011/06/24 08:13:18 I think the C++ guide prefers that data members be
jianli 2011/06/29 01:28:12 Not needed. Reverted.
66 static PanelManager* Create();
67
58 typedef std::vector<Panel*> ActivePanels; 68 typedef std::vector<Panel*> ActivePanels;
59 typedef std::deque<Panel*> PendingPanels; 69 typedef std::deque<Panel*> PendingPanels;
60 70
61 PanelManager(); 71 PanelManager();
62 72
63 // Handles all the panels that're delayed to be removed. 73 // Handles all the panels that're delayed to be removed.
64 void DelayedRemove(); 74 void DelayedRemove();
65 75
66 // Does the remove. Called from Remove and DelayedRemove. 76 // Does the remove. Called from Remove and DelayedRemove.
67 void DoRemove(Panel* panel); 77 void DoRemove(Panel* panel);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 119
110 // Original x coordinate of the panel to drag. This is used to get back to 120 // Original x coordinate of the panel to drag. This is used to get back to
111 // the original position when we cancel the dragging. 121 // the original position when we cancel the dragging.
112 int dragging_panel_original_x_; 122 int dragging_panel_original_x_;
113 123
114 // Bounds of the panel to drag. It is first set to the original bounds when 124 // Bounds of the panel to drag. It is first set to the original bounds when
115 // the dragging happens. Then it is updated to the position that will be set 125 // the dragging happens. Then it is updated to the position that will be set
116 // to when the dragging ends. 126 // to when the dragging ends.
117 gfx::Rect dragging_panel_bounds_; 127 gfx::Rect dragging_panel_bounds_;
118 128
129 private:
119 DISALLOW_COPY_AND_ASSIGN(PanelManager); 130 DISALLOW_COPY_AND_ASSIGN(PanelManager);
120 }; 131 };
121 132
122 #endif // CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_ 133 #endif // CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698