// This file Copyright © Transmission authors and contributors. // It may be used under the MIT (SPDX: MIT) license. // License text can be found in the licenses/ folder. #import "GroupToolbarItem.h" @implementation GroupToolbarItem - (void)validate { NSSegmentedControl* control = (NSSegmentedControl*)self.view; NSInteger const count = self.subitems.count; for (NSInteger i = 0; i < count; i++) { NSToolbarItem* item = self.subitems[i]; [control setEnabled:[self.target validateToolbarItem:item] forSegment:i]; } } - (void)createMenu:(NSArray*)labels { NSMenuItem* menuItem = [[NSMenuItem alloc] initWithTitle:self.label action:NULL keyEquivalent:@""]; NSMenu* menu = [[NSMenu alloc] initWithTitle:self.label]; menuItem.submenu = menu; menu.autoenablesItems = NO; NSInteger const count = self.subitems.count; for (NSInteger i = 0; i < count; i++) { NSMenuItem* addItem = [[NSMenuItem alloc] initWithTitle:labels[i] action:self.action keyEquivalent:@""]; addItem.target = self.target; addItem.tag = i; [menu addItem:addItem]; } self.menuFormRepresentation = menuItem; } - (NSMenuItem*)menuFormRepresentation { NSMenuItem* menuItem = super.menuFormRepresentation; NSInteger const count = self.subitems.count; for (NSInteger i = 0; i < count; i++) { NSToolbarItem* item = self.subitems[i]; [menuItem.submenu itemAtIndex:i].enabled = [self.target validateToolbarItem:item]; } return menuItem; } @end