Add more options
This commit is contained in:
parent
5e70adb511
commit
a55cddaa53
3 changed files with 85 additions and 3 deletions
|
@ -515,7 +515,6 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
|
||||||
scrubber.delegate = self;
|
scrubber.delegate = self;
|
||||||
scrubber.dataSource = self;
|
scrubber.dataSource = self;
|
||||||
scrubber.identifier = id;
|
scrubber.identifier = id;
|
||||||
scrubber.mode = NSScrubberModeFree;
|
|
||||||
|
|
||||||
[item setView:scrubber];
|
[item setView:scrubber];
|
||||||
[self updateScrubber:item withSettings:settings];
|
[self updateScrubber:item withSettings:settings];
|
||||||
|
@ -526,6 +525,44 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
|
||||||
- (void)updateScrubber:(NSCustomTouchBarItem*)item
|
- (void)updateScrubber:(NSCustomTouchBarItem*)item
|
||||||
withSettings:(const mate::PersistentDictionary&)settings {
|
withSettings:(const mate::PersistentDictionary&)settings {
|
||||||
NSScrubber* scrubber = item.view;
|
NSScrubber* scrubber = item.view;
|
||||||
|
|
||||||
|
bool showsArrowButtons = false;
|
||||||
|
settings.Get("showArrowButtons", &showsArrowButtons);
|
||||||
|
scrubber.showsArrowButtons = showsArrowButtons;
|
||||||
|
|
||||||
|
std::string selectedStyle;
|
||||||
|
std::string overlayStyle;
|
||||||
|
settings.Get("selectedStyle", &selectedStyle);
|
||||||
|
settings.Get("overlayStyle", &overlayStyle);
|
||||||
|
|
||||||
|
if (selectedStyle == "outline") {
|
||||||
|
scrubber.selectionBackgroundStyle = [NSScrubberSelectionStyle outlineOverlayStyle];
|
||||||
|
} else if (selectedStyle == "background") {
|
||||||
|
scrubber.selectionBackgroundStyle = [NSScrubberSelectionStyle roundedBackgroundStyle];
|
||||||
|
} else {
|
||||||
|
scrubber.selectionBackgroundStyle = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlayStyle == "outline") {
|
||||||
|
scrubber.selectionOverlayStyle = [NSScrubberSelectionStyle outlineOverlayStyle];
|
||||||
|
} else if (overlayStyle == "background") {
|
||||||
|
scrubber.selectionOverlayStyle = [NSScrubberSelectionStyle roundedBackgroundStyle];
|
||||||
|
} else {
|
||||||
|
scrubber.selectionOverlayStyle = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string mode;
|
||||||
|
settings.Get("mode", &mode);
|
||||||
|
if (mode == "fixed") {
|
||||||
|
scrubber.mode = NSScrubberModeFixed;
|
||||||
|
} else {
|
||||||
|
scrubber.mode = NSScrubberModeFree;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool continuous = true;
|
||||||
|
settings.Get("continuous", &continuous);
|
||||||
|
scrubber.continuous = continuous;
|
||||||
|
|
||||||
[scrubber reloadData];
|
[scrubber reloadData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,7 +583,10 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item";
|
||||||
|
|
||||||
mate::PersistentDictionary settings = settings_[s_id];
|
mate::PersistentDictionary settings = settings_[s_id];
|
||||||
std::vector<mate::PersistentDictionary> items;
|
std::vector<mate::PersistentDictionary> items;
|
||||||
settings.Get("items", &items);
|
if (!settings.Get("items", &items)) return nil;
|
||||||
|
|
||||||
|
if ((long)index >= (long)items.size()) return nil;
|
||||||
|
|
||||||
mate::PersistentDictionary item = items[index];
|
mate::PersistentDictionary item = items[index];
|
||||||
|
|
||||||
NSScrubberItemView* itemView;
|
NSScrubberItemView* itemView;
|
||||||
|
|
|
@ -21,3 +21,40 @@ The following properties are available on instances of `TouchBarScrubber`:
|
||||||
|
|
||||||
A `ScrubberItem[]` array representing the items in this scrubber. Updating this value immediately
|
A `ScrubberItem[]` array representing the items in this scrubber. Updating this value immediately
|
||||||
updates the control in the touch bar. Updating deep properties inside this array **does not update the touch bar**.
|
updates the control in the touch bar. Updating deep properties inside this array **does not update the touch bar**.
|
||||||
|
|
||||||
|
#### `touchBarSegmentedControl.selectedStyle`
|
||||||
|
|
||||||
|
A `String` representing the style that selected items in the scrubber should have. Updating this value immediately
|
||||||
|
updates the control in the touch bar. Possible values:
|
||||||
|
|
||||||
|
* `background` - Maps to `[NSScrubberSelectionStyle roundedBackgroundStyle]`
|
||||||
|
* `outline` - Maps to `[NSScrubberSelectionStyle outlineOverlayStyle]`
|
||||||
|
* `null` - Actually null, not a string, removes all styles
|
||||||
|
|
||||||
|
#### `touchBarSegmentedControl.overlayStyle`
|
||||||
|
|
||||||
|
A `String` retpresenting the style that selected items in the scrubber should have. This style is overlayed on top
|
||||||
|
of the scrubber item instead of being placed behind it Updating this value immediately updates the control in the
|
||||||
|
touch bar. Possible values:
|
||||||
|
|
||||||
|
* `background` - Maps to `[NSScrubberSelectionStyle roundedBackgroundStyle]`
|
||||||
|
* `outline` - Maps to `[NSScrubberSelectionStyle outlineOverlayStyle]`
|
||||||
|
* `null` - Actually null, not a string, removes all styles
|
||||||
|
|
||||||
|
#### `touchBarSegmentedControl.showArrowButtons`
|
||||||
|
|
||||||
|
A `Boolean` representing whether to show the left / right selection arrows in this scrubber. Updating this value
|
||||||
|
immediately updates the control in the touch bar.
|
||||||
|
|
||||||
|
#### `touchBarSegmentedControl.mode`
|
||||||
|
|
||||||
|
A `String` representing the mode of this scrubber. Updating this value immediately
|
||||||
|
updates the control in the touch bar. Possible values:
|
||||||
|
|
||||||
|
* `fixed` - Maps to `NSScrubberModeFixed`
|
||||||
|
* `free` - Maps to `NSScrubberModeFree`
|
||||||
|
|
||||||
|
#### `touchBarSegmentedControl.continuous`
|
||||||
|
|
||||||
|
A `Boolean` representing whether this scrubber is continous or not. Updating this value immediately
|
||||||
|
updates the control in the touch bar.
|
|
@ -236,9 +236,14 @@ TouchBar.TouchBarScrubber = class TouchBarScrubber extends TouchBarItem {
|
||||||
super()
|
super()
|
||||||
if (config == null) config = {}
|
if (config == null) config = {}
|
||||||
const {items} = config
|
const {items} = config
|
||||||
let {onSelect, onHighlight} = config
|
let {onSelect, onHighlight, selectedStyle, highlightedStyle, showArrowButtons, continuous, mode} = config
|
||||||
this.type = 'scrubber'
|
this.type = 'scrubber'
|
||||||
this._addLiveProperty('items', items)
|
this._addLiveProperty('items', items)
|
||||||
|
this._addLiveProperty('selectedStyle', selectedStyle || null)
|
||||||
|
this._addLiveProperty('overlayStyle', highlightedStyle || null)
|
||||||
|
this._addLiveProperty('showArrowButtons', showArrowButtons || false)
|
||||||
|
this._addLiveProperty('mode', mode || 'free')
|
||||||
|
this._addLiveProperty('continuous', continuous || true)
|
||||||
|
|
||||||
if (typeof onSelect === 'function' || typeof onHighlight === 'function') {
|
if (typeof onSelect === 'function' || typeof onHighlight === 'function') {
|
||||||
if (onSelect == null) onSelect = () => {}
|
if (onSelect == null) onSelect = () => {}
|
||||||
|
|
Loading…
Reference in a new issue