| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" | 5 #import "chrome/browser/ui/cocoa/dev_tools_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include <Cocoa/Cocoa.h> | 9 #include <Cocoa/Cocoa.h> |
| 10 | 10 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 | 48 |
| 49 - (NSView*)hitTest:(NSPoint)point { | 49 - (NSView*)hitTest:(NSPoint)point { |
| 50 NSPoint viewPoint = [self convertPoint:point fromView:[self superview]]; | 50 NSPoint viewPoint = [self convertPoint:point fromView:[self superview]]; |
| 51 if (viewPoint.y < topContentOffset_) | 51 if (viewPoint.y < topContentOffset_) |
| 52 return nil; | 52 return nil; |
| 53 return [super hitTest:point]; | 53 return [super hitTest:point]; |
| 54 } | 54 } |
| 55 | 55 |
| 56 @end | 56 @end |
| 57 | 57 |
| 58 // Superview for the dev tools contents view. This class ensures that dev tools | |
| 59 // view doesn't overlap the toolbar when split vertically. | |
| 60 @interface DevToolsContainerView : NSView | |
| 61 @end | |
| 62 | |
| 63 @implementation DevToolsContainerView | |
| 64 | |
| 65 - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize { | |
| 66 NSRect subviewFrame = [self bounds]; | |
| 67 GraySplitView* splitView = | |
| 68 base::mac::ObjCCastStrict<GraySplitView>([self superview]); | |
| 69 if ([splitView isVertical]) | |
| 70 subviewFrame.size.height -= [splitView topContentOffset]; | |
| 71 | |
| 72 DCHECK_EQ(1u, [[self subviews] count]); | |
| 73 [[[self subviews] lastObject] setFrame:subviewFrame]; | |
| 74 } | |
| 75 | |
| 76 @end | |
| 77 | |
| 78 | |
| 79 @interface DevToolsController (Private) | 58 @interface DevToolsController (Private) |
| 80 - (void)showDevToolsContainer; | 59 - (void)showDevToolsContainer; |
| 81 - (void)hideDevToolsContainer; | 60 - (void)hideDevToolsContainer; |
| 82 - (void)updateDevToolsSplitPosition; | 61 - (void)updateDevToolsSplitPosition; |
| 83 @end | 62 @end |
| 84 | 63 |
| 85 | 64 |
| 86 @implementation DevToolsController | 65 @implementation DevToolsController |
| 87 | 66 |
| 88 - (id)init { | 67 - (id)init { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 NSArray* subviews = [splitView_ subviews]; | 135 NSArray* subviews = [splitView_ subviews]; |
| 157 DCHECK_EQ([subviews count], 1u); | 136 DCHECK_EQ([subviews count], 1u); |
| 158 WebContents* devToolsContents = devToolsWindow_->web_contents(); | 137 WebContents* devToolsContents = devToolsWindow_->web_contents(); |
| 159 | 138 |
| 160 // |devToolsView| is a TabContentsViewCocoa object, whose ViewID was | 139 // |devToolsView| is a TabContentsViewCocoa object, whose ViewID was |
| 161 // set to VIEW_ID_TAB_CONTAINER initially, so we need to change it to | 140 // set to VIEW_ID_TAB_CONTAINER initially, so we need to change it to |
| 162 // VIEW_ID_DEV_TOOLS_DOCKED here. | 141 // VIEW_ID_DEV_TOOLS_DOCKED here. |
| 163 NSView* devToolsView = devToolsContents->GetNativeView(); | 142 NSView* devToolsView = devToolsContents->GetNativeView(); |
| 164 view_id_util::SetID(devToolsView, VIEW_ID_DEV_TOOLS_DOCKED); | 143 view_id_util::SetID(devToolsView, VIEW_ID_DEV_TOOLS_DOCKED); |
| 165 | 144 |
| 166 scoped_nsobject<DevToolsContainerView> devToolsContainerView( | 145 NSRect containerRect = NSMakeRect(0, 0, 100, 100); |
| 167 [[DevToolsContainerView alloc] initWithFrame:[devToolsView bounds]]); | 146 scoped_nsobject<NSView> devToolsContainerView( |
| 147 [[NSView alloc] initWithFrame:containerRect]); |
| 148 |
| 149 NSRect devToolsRect = containerRect; |
| 150 if (devToolsWindow_->dock_side() == DEVTOOLS_DOCK_SIDE_RIGHT) { |
| 151 devToolsRect.size.height -= [splitView_ topContentOffset]; |
| 152 } |
| 153 [devToolsView setFrame:devToolsRect]; |
| 154 [devToolsView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; |
| 155 |
| 168 [devToolsContainerView addSubview:devToolsView]; | 156 [devToolsContainerView addSubview:devToolsView]; |
| 169 [splitView_ addSubview:devToolsContainerView]; | 157 [splitView_ addSubview:devToolsContainerView]; |
| 170 | 158 |
| 171 BOOL isVertical = devToolsWindow_->dock_side() == DEVTOOLS_DOCK_SIDE_RIGHT; | 159 BOOL isVertical = devToolsWindow_->dock_side() == DEVTOOLS_DOCK_SIDE_RIGHT; |
| 172 [splitView_ setVertical:isVertical]; | 160 [splitView_ setVertical:isVertical]; |
| 173 [self updateDevToolsSplitPosition]; | 161 [self updateDevToolsSplitPosition]; |
| 174 } | 162 } |
| 175 | 163 |
| 176 - (void)hideDevToolsContainer { | 164 - (void)hideDevToolsContainer { |
| 177 NSArray* subviews = [splitView_ subviews]; | 165 NSArray* subviews = [splitView_ subviews]; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 return [splitView_ topContentOffset]; | 220 return [splitView_ topContentOffset]; |
| 233 } | 221 } |
| 234 return proposedPosition; | 222 return proposedPosition; |
| 235 } | 223 } |
| 236 | 224 |
| 237 -(void)splitViewWillResizeSubviews:(NSNotification *)notification { | 225 -(void)splitViewWillResizeSubviews:(NSNotification *)notification { |
| 238 [[splitView_ window] disableScreenUpdatesUntilFlush]; | 226 [[splitView_ window] disableScreenUpdatesUntilFlush]; |
| 239 } | 227 } |
| 240 | 228 |
| 241 @end | 229 @end |
| OLD | NEW |