--- chimera/BrowserWindowController.mm 2002/02/07 05:11:38 1.18 +++ chimera/BrowserWindowController.mm 2002/02/11 07:22:13 1.28 @@ -30,11 +30,16 @@ static NSString *PrintToolbarItemIdentif - (void)windowWillClose:(NSNotification *)notification { [self autorelease]; + [mSidebarBookmarksDataSource windowClosing]; } - (void)dealloc { + printf("Browser controller died.\n"); + [mBrowserView windowClosed]; + [mSidebarBrowserView windowClosed]; + [super dealloc]; } @@ -49,13 +54,30 @@ static NSString *PrintToolbarItemIdentif } [mSidebarDrawer setDelegate: self]; + + // Our initial view is our primary view. Connect it up. + NSTabViewItem* tab = [mTabBrowser tabViewItemAtIndex: 0]; + [mBrowserView makePrimaryBrowserView: tab urlbar: mURLBar status: mStatus + progress: mProgress windowController: self]; +} + +- (void)drawerWillOpen: (NSNotification*)aNotification +{ + [mSidebarBookmarksDataSource ensureBookmarks]; } - (void)drawerDidOpen:(NSNotification *)aNotification { + // XXXdwh This is temporary. [[mSidebarBrowserView getBrowserView] loadURI: [NSURL URLWithString: @"http://tinderbox.mozilla.org/SeaMonkey/panel.html"] flags:NSLoadFlagsNone]; } +- (void)drawerDidClose:(NSNotification *)aNotification +{ + // Unload the Gecko web page in "My Panels" to save memory. + [[mSidebarBrowserView getBrowserView] loadURI: [NSURL URLWithString: @"about:blank"] flags:NSLoadFlagsNone]; +} + - (void)setupToolbar { NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier:BrowserToolbarIdentifier] autorelease]; @@ -263,6 +285,14 @@ static NSString *PrintToolbarItemIdentif [[mBrowserView getBrowserView] findAgain]; } +- (void)addBookmark +{ + // XXXdwh Hack. Just go to the sidebar for now until we get our + // menu data source going. + [mSidebarBookmarksDataSource ensureBookmarks]; + [mSidebarBookmarksDataSource addBookmark: self]; +} + - (IBAction)back:(id)aSender { [[mBrowserView getBrowserView] goBack]; @@ -325,5 +355,33 @@ static NSString *PrintToolbarItemIdentif [[self window] update]; [[self window] display]; } + +-(void)newTab +{ + NSTabViewItem* newTab = [[[NSTabViewItem alloc] initWithIdentifier: nil] autorelease]; + [mTabBrowser addTabViewItem: newTab]; + + MyBrowserView* newView = [[[MyBrowserView alloc] initWithFrame: [mBrowserView frame]] autorelease]; + [newTab setView: newView]; + [newTab setLabel: @"Untitled"]; + + [[newView getBrowserView] loadURI:[NSURL URLWithString:@"about:blank"] flags:NSLoadFlagsNone]; + + [mTabBrowser selectLastTabViewItem: self]; +} + +- (void)tabView:(NSTabView *)aTabView didSelectTabViewItem:(NSTabViewItem *)aTabViewItem +{ + // Disconnect the old view. + [mBrowserView disconnectView]; + + // Connect up the new view + mBrowserView = [aTabViewItem view]; + + // Make the new view the primary content area. + [mBrowserView makePrimaryBrowserView: aTabViewItem urlbar: mURLBar status: mStatus + progress: mProgress windowController: self]; +} + @end