Support setting the initial/available colors

This commit is contained in:
Kevin Sawicki 2017-03-01 12:50:36 -08:00
parent f9dd91d54d
commit f153d08297
3 changed files with 26 additions and 4 deletions

View file

@ -245,7 +245,7 @@ static NSTouchBarItemIdentifier SliderIdentifier = @"com.electron.touchbar.slide
}
- (NSTouchBarItem*)makeColorPickerForID:(NSString*)id
withIdentifier:(NSString*)identifier {
withIdentifier:(NSString*)identifier {
std::string s_id([id UTF8String]);
if (![self hasItemWithID:s_id]) return nil;
@ -253,6 +253,25 @@ static NSTouchBarItemIdentifier SliderIdentifier = @"com.electron.touchbar.slide
NSColorPickerTouchBarItem* item = [[NSClassFromString(@"NSColorPickerTouchBarItem") alloc] initWithIdentifier:identifier];
item.target = self;
item.action = @selector(colorPickerAction:);
std::string selectedColor;
if (settings.Get("selectedColor", &selectedColor)) {
item.color = [self colorFromHexColorString:selectedColor];
}
std::vector<std::string> colors;
if (settings.Get("availableColors", &colors) && colors.size() > 0) {
NSColorList* color_list = [[[NSColorList alloc] initWithName:identifier] autorelease];
for (size_t i = 0; i < colors.size(); ++i) {
[color_list insertColor:[self colorFromHexColorString:colors[i]]
key:base::SysUTF8ToNSString(colors[i])
atIndex:i];
}
item.colorList = color_list;
}
item.showsAlpha = NO;
[self updateColorPicker:item withSettings:settings];
return item;
}

View file

@ -98,6 +98,7 @@ static const NSTouchBarItemIdentifier NSTouchBarItemIdentifierOtherItemsProxy =
@property SEL action;
@property(weak) id target;
@property(copy) NSColor *color;
@property(strong) NSColorList *colorList;
@end