/* SSToolbar.m - Toolbar used in the Main Window of SolarSeek * SolarSeek * * Created by Takumi Murayama on 30.12.05. * Copyright (C) 2005 SolarSeek * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #import "SSToolbar.h" @implementation SSToolbar -(void)awakeFromNib { toolbar = [[NSToolbar alloc] initWithIdentifier:@"SSToolbar"]; [toolbar setDelegate:self]; [toolbar setAllowsUserCustomization:YES]; [toolbar setAutosavesConfiguration:YES]; [window setToolbar:[toolbar autorelease]]; [toolbar setDisplayMode: NSToolbarDisplayModeIconOnly]; } - (IBAction)customize:(id)sender { [toolbar runCustomizationPalette:sender]; } - (IBAction)showhide:(id)sender { [toolbar setVisible:![toolbar isVisible]]; } - (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag { NSToolbarItem *item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier]; if ( [itemIdentifier isEqualToString:@"SearchItem"] ) { [item setLabel:@"Search"]; [item setPaletteLabel:[item label]]; [item setView:searchItemView]; [item setMinSize:(NSSize){190, 22}]; [item setMaxSize:(NSSize){190, 22}]; } else if ( [itemIdentifier isEqualToString:@"DownloadFileItem"] ) { [item setLabel:@"Download"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarDownload"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } else if ( [itemIdentifier isEqualToString:@"ViewItem"] ) { // don't know how to implement the view switch // the nib file needs to be adapted to let it work properly // thanks [item setLabel:@"View"]; [item setPaletteLabel:[item label]]; [item setView:viewItemView]; } else if ( [itemIdentifier isEqualToString:@"DownloadFolderItem"] ) { [item setLabel:@"Download Folder"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarDownloadFolder"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } else if ( [itemIdentifier isEqualToString:@"PauseItem"] ) { [item setLabel:@"Pause"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarStop"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } else if ( [itemIdentifier isEqualToString:@"StartItem"] ) { [item setLabel:@"Start"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarReload"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } else if ( [itemIdentifier isEqualToString:@"DeleteItem"] ) { [item setLabel:@"Delete"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarDelete"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } else if ( [itemIdentifier isEqualToString:@"InfoItem"] ) { [item setLabel:@"Information"]; [item setPaletteLabel:[item label]]; [item setImage:[NSImage imageNamed:@"ToolbarGetInfo"]]; [item setTarget:self]; [item setAction:@selector(showhide:)]; // Need to implement this in a separate file? } return [item autorelease]; } - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar { return [NSArray arrayWithObjects:@"SearchItem", @"ViewItem", @"DownloadFileItem", @"DownloadFolderItem", @"PauseItem", @"StartItem", @"InfoItem", NSToolbarSeparatorItemIdentifier, NSToolbarSpaceItemIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil]; } - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar { return [NSArray arrayWithObjects:@"SearchItem", @"ViewItem", NSToolbarFlexibleSpaceItemIdentifier, @"DownloadFileItem", nil]; } - (void) toolbarWillAddItem: (NSNotification *) notification { //NSToolbarItem *addedItem = [[notification userInfo] objectForKey:@"item"]; // set up the item here } - (void)toolbarDidRemoveItem:(NSNotification *)notification { //NSToolbarItem *addedItem = [[notification userInfo] objectForKey:@"item"]; // clear associated info here } @end