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

Unified Diff: chrome/browser/ui/cocoa/sidebar_controller.h

Issue 1171873003: [Mac] Add cocoa implementation for sidebar extension action support Base URL: https://chromium.googlesource.com/chromium/src.git@patch-b
Patch Set: Rebased patch set to 1169823005/#ps200001 Created 5 years, 3 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
Index: chrome/browser/ui/cocoa/sidebar_controller.h
diff --git a/chrome/browser/ui/cocoa/sidebar_controller.h b/chrome/browser/ui/cocoa/sidebar_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..5ca42a0664e7e398eac28bb3f4f87fa9764687d7
--- /dev/null
+++ b/chrome/browser/ui/cocoa/sidebar_controller.h
@@ -0,0 +1,51 @@
+// Copyright (c) 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_COCOA_SIDEBAR_CONTROLLER_H_
+#define CHROME_BROWSER_UI_COCOA_SIDEBAR_CONTROLLER_H_
+
+#import "base/mac/cocoa_protocols.h"
+#include "base/mac/scoped_nsobject.h"
+#import "chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.h"
+
+@class NSSplitView;
+@class NSView;
+namespace content {
+class BrowserContext;
+class WebContents;
+}
+
+// A class that handles updates of the sidebar view within a browser window.
+// It swaps in the relevant sidebar contents for a given TabContents or removes
+// the vew, if there's no sidebar contents to show.
+@interface SidebarController : NSObject<NSSplitViewDelegate> {
+ @private
+ // A view hosting sidebar contents.
+ base::scoped_nsobject<NSSplitView> splitView_;
+
+ // Manages currently displayed sidebar contents.
+ base::scoped_nsobject<TabContentsController> contentsController_;
+}
+
+- (id)initWithParentViewController:(id)parentController
+ andContentsController:(id)contentsController;
+
+// This controller's view.
+- (NSSplitView*)view;
+
+// Depending on |contents|'s state, decides whether the sidebar
+// should be shown or hidden and adjusts its width (|delegate_| handles
+// the actual resize).
+- (void)updateSidebarForTabContents:(content::WebContents*)tabContents
+ sidebar_contents:(content::WebContents*)sidebarContents;
+
+// Call when the sidebar view is properly sized and the render widget host view
+// should be put into the view hierarchy.
+- (void)ensureContentsVisible;
+
+// This controller's current sidebar contents. Return nil if it is inactivated.
+- (content::WebContents*)currentSidebarContents;
+@end
+
+#endif // CHROME_BROWSER_UI_COCOA_SIDEBAR_CONTROLLER_H_

Powered by Google App Engine
This is Rietveld 408576698