Browse Source

Add support for setting TouchBarLabel text color

Kevin Sawicki 8 years ago
parent
commit
2680ee9f8f

+ 9 - 1
atom/browser/ui/cocoa/atom_touch_bar.mm

@@ -247,10 +247,18 @@ static NSTouchBarItemIdentifier SliderIdentifier = @"com.electron.touchbar.slide
 
 - (void)updateLabel:(NSCustomTouchBarItem*)item
        withSettings:(const mate::PersistentDictionary&)settings {
+  NSTextField* text_field = (NSTextField*)item.view;
+
   std::string label;
   settings.Get("label", &label);
-  NSTextField* text_field = (NSTextField*)item.view;
   text_field.stringValue = base::SysUTF8ToNSString(label);
+
+  std::string textColor;
+  if (settings.Get("textColor", &textColor) && !textColor.empty()) {
+    text_field.textColor = [self colorFromHexColorString:textColor];
+  } else {
+    text_field.textColor = nil;
+  }
 }
 
 - (NSTouchBarItem*)makeColorPickerForID:(NSString*)id

+ 6 - 0
docs/api/touch-bar-label.md

@@ -8,6 +8,7 @@ Process: [Main](../tutorial/quick-start.md#main-process)
 
 * `options` Object
   * `label` String (optional) - Text to display.
+  * `textColor` String (optional) - Hex color of text, i.e `#ABCDEF`.
 
 ### Instance Properties
 
@@ -17,3 +18,8 @@ The following properties are available on instances of `TouchBarLabel`:
 
 The label's current text. Changing this value immediately updates the label in
 the touch bar.
+
+#### `touchBarLabel.textColor`
+
+The label's current text color. Changing this value immediately updates the
+label in the touch bar.

+ 5 - 0
docs/api/touch-bar.md

@@ -80,12 +80,15 @@ const finishSpin = () => {
   if (uniqueValues === 1) {
     // All 3 values are the same
     result.label = '💰 Jackpot!'
+    result.textColor = '#FDFF00'
   } else if (uniqueValues === 2) {
     // 2 values are the same
     result.label = '😍 Winner!'
+    result.textColor = '#FDFF00'
   } else {
     // No values are the same
     result.label = '🙁 Spin Again'
+    result.textColor = null
   }
   spinning = false
 }
@@ -94,7 +97,9 @@ const touchBar = new TouchBar([
   spin,
   new TouchBarSpacer({size: 'large'}),
   reel1,
+  new TouchBarSpacer({size: 'small'}),
   reel2,
+  new TouchBarSpacer({size: 'small'}),
   reel3,
   new TouchBarSpacer({size: 'large'}),
   result

+ 1 - 0
lib/browser/api/touch-bar.js

@@ -164,6 +164,7 @@ TouchBar.TouchBarLabel = class TouchBarLabel extends TouchBarItem {
     if (config == null) config = {}
     this.type = 'label'
     this._addLiveProperty('label', config.label)
+    this._addLiveProperty('textColor', config.textColor)
   }
 }