widget/cocoa/nsTouchBar.mm
author Harry Twyford <harry.a.twyford@gmail.com>
Tue, 22 Jan 2019 17:13:33 +0000
changeset 454830 099f631b90046b102aa1868455f03b7f9942eaba
child 455225 08b686c04a013ca91738d80f6f34b92a86c130eb
permissions -rw-r--r--
Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod Adds Touch Bar functionality to Firefox across eight commits. Differential Revision: https://phabricator.services.mozilla.com/D5496
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454830
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     1
/* This Source Code Form is subject to the terms of the Mozilla Public
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     4
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     5
#include "nsTouchBar.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     6
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     7
#include "mozilla/MacStringHelpers.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     8
#include "mozilla/Telemetry.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
     9
#include "nsArrayUtils.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    10
#include "nsDirectoryServiceDefs.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    11
#include "nsIArray.h"
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    12
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    13
@implementation nsTouchBar
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    14
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    15
static NSTouchBarItemIdentifier CustomButtonIdentifier =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    16
    @"com.mozilla.firefox.touchbar.button";
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    17
static NSTouchBarItemIdentifier CustomMainButtonIdentifier =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    18
    @"com.mozilla.firefox.touchbar.mainbutton";
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    19
static NSTouchBarItemIdentifier ScrubberIdentifier =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    20
    @"com.mozilla.firefox.touchbar.scrubber";
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    21
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    22
// Non-JS scrubber implemention for the Share Scrubber,
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    23
// since it is defined by an Apple API.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    24
static NSTouchBarItemIdentifier ShareScrubberIdentifier =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    25
  [ScrubberIdentifier stringByAppendingPathExtension:@"share"];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    26
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    27
// Used to tie action strings to buttons.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    28
static char sIdentifierAssociationKey;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    29
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    30
// The system default width for Touch Bar inputs is 128px. This is double.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    31
#define MAIN_BUTTON_WIDTH 256
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    32
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    33
#pragma mark - NSTouchBarDelegate
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    34
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    35
- (instancetype)init
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    36
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    37
  if ((self = [super init])) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    38
    mTouchBarHelper = do_GetService(NS_TOUCHBARHELPER_CID);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    39
    if (!mTouchBarHelper) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    40
      return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    41
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    42
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    43
    self.delegate = self;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    44
    self.mappedLayoutItems = [NSMutableDictionary dictionary];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    45
    nsCOMPtr<nsIArray> layoutItems;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    46
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    47
    nsresult rv = mTouchBarHelper->GetLayout(getter_AddRefs(layoutItems));
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    48
    if (NS_FAILED(rv) || !layoutItems) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    49
      return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    50
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    51
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    52
    uint32_t itemCount = 0;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    53
    layoutItems->GetLength(&itemCount);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    54
    // This is copied to self.defaultItemIdentifiers. Required since 
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    55
    // [self.mappedLayoutItems allKeys] does not preserve order.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    56
    NSMutableArray* orderedLayoutIdentifiers = 
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    57
      [NSMutableArray arrayWithCapacity:itemCount];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    58
    for (uint32_t i = 0; i < itemCount; ++i) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    59
      nsCOMPtr<nsITouchBarInput> input = do_QueryElementAt(layoutItems, i);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    60
      if (!input) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    61
        continue;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    62
      }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    63
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    64
      TouchBarInput* convertedInput =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    65
        [[TouchBarInput alloc] initWithXPCOM:input];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    66
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    67
      // Add new input to dictionary for lookup of properties in delegate.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    68
      self.mappedLayoutItems[[convertedInput nativeIdentifier]] = convertedInput;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    69
      orderedLayoutIdentifiers[i] = [convertedInput nativeIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    70
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    71
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    72
    self.defaultItemIdentifiers = [orderedLayoutIdentifiers copy];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    73
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    74
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    75
  return self;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    76
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    77
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    78
- (void)dealloc
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    79
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    80
  for (NSTouchBarItemIdentifier identifier in self.mappedLayoutItems) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    81
    NSTouchBarItem* item = [self itemForIdentifier:identifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    82
    [item release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    83
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    84
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    85
  [self.defaultItemIdentifiers release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    86
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    87
  [self.mappedLayoutItems removeAllObjects];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    88
  [self.mappedLayoutItems release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    89
  [super dealloc];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    90
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    91
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    92
- (NSTouchBarItem*)touchBar:(NSTouchBar*)aTouchBar
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    93
      makeItemForIdentifier:(NSTouchBarItemIdentifier)aIdentifier
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    94
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    95
  if ([aIdentifier hasPrefix:ScrubberIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    96
    if (![aIdentifier isEqualToString:ShareScrubberIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    97
      // We're only supporting the Share scrubber for now.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    98
      return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
    99
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   100
    return [self makeShareScrubberForIdentifier:aIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   101
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   102
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   103
  // The cases of a button or main button require the same setup.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   104
  NSButton* button = [NSButton buttonWithTitle:@""
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   105
                                        target:self
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   106
                                        action:@selector(touchBarAction:)];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   107
  NSCustomTouchBarItem* item = [[NSCustomTouchBarItem alloc]
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   108
                                  initWithIdentifier:aIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   109
  item.view = button;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   110
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   111
  TouchBarInput* input = self.mappedLayoutItems[aIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   112
  if ([aIdentifier hasPrefix:CustomButtonIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   113
    return [self updateButton:item input:input];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   114
  } else if ([aIdentifier hasPrefix:CustomMainButtonIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   115
    return [self updateMainButton:item input:input];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   116
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   117
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   118
  return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   119
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   120
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   121
- (void)updateItem:(TouchBarInput*)aInput
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   122
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   123
  NSTouchBarItem* item = [self itemForIdentifier:[aInput nativeIdentifier]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   124
  if (!item) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   125
    return;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   126
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   127
  if ([[aInput nativeIdentifier] hasPrefix:CustomButtonIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   128
    [self updateButton:(NSCustomTouchBarItem*)item
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   129
                 input:aInput];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   130
  } else if ([[aInput nativeIdentifier] hasPrefix:CustomMainButtonIdentifier]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   131
    [self updateMainButton:(NSCustomTouchBarItem*)item
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   132
                     input:aInput];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   133
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   134
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   135
  [self.mappedLayoutItems[[aInput nativeIdentifier]] release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   136
  self.mappedLayoutItems[[aInput nativeIdentifier]] = aInput;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   137
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   138
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   139
- (NSTouchBarItem*)updateButton:(NSCustomTouchBarItem*)aButton
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   140
                          input:(TouchBarInput*)aInput
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   141
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   142
  NSButton* button = (NSButton*)aButton.view;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   143
  if (!button) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   144
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   145
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   146
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   147
  button.title = [aInput title];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   148
  if ([aInput image]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   149
    button.image = [aInput image];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   150
    [button setImagePosition:NSImageOnly];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   151
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   152
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   153
  [button setEnabled:![aInput isDisabled]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   154
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   155
  if ([aInput color]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   156
    button.bezelColor = [aInput color];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   157
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   158
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   159
  objc_setAssociatedObject(button,
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   160
    &sIdentifierAssociationKey,
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   161
    [aInput nativeIdentifier], OBJC_ASSOCIATION_RETAIN);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   162
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   163
  aButton.customizationLabel = [aInput title];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   164
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   165
  return aButton;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   166
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   167
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   168
- (NSTouchBarItem*)updateMainButton:(NSCustomTouchBarItem*)aMainButton
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   169
                              input:(TouchBarInput*)aInput
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   170
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   171
  aMainButton = (NSCustomTouchBarItem*)[self updateButton:aMainButton
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   172
                                                    input:aInput];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   173
  NSButton* button = (NSButton*)aMainButton.view;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   174
  button.imageHugsTitle = YES;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   175
  // If empty, string is still being localized. Display a blank input instead.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   176
  if ([button.title isEqualToString:@""]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   177
    [button setImagePosition:NSNoImage];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   178
  } else {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   179
    [button setImagePosition:NSImageLeft];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   180
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   181
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   182
  [button.widthAnchor
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   183
    constraintGreaterThanOrEqualToConstant:MAIN_BUTTON_WIDTH].active = YES;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   184
  [button setContentHuggingPriority:1.0
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   185
                      forOrientation:NSLayoutConstraintOrientationHorizontal];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   186
  return aMainButton;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   187
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   188
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   189
- (NSTouchBarItem*)makeShareScrubberForIdentifier:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   190
                        (NSTouchBarItemIdentifier)aIdentifier 
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   191
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   192
  TouchBarInput* input = self.mappedLayoutItems[aIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   193
  // System-default share menu
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   194
  NSSharingServicePickerTouchBarItem* servicesItem =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   195
      [[NSSharingServicePickerTouchBarItem alloc]
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   196
        initWithIdentifier:aIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   197
  servicesItem.buttonImage = [input image];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   198
  servicesItem.delegate = self;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   199
  return servicesItem;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   200
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   201
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   202
- (void)touchBarAction:(id)aSender
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   203
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   204
  NSTouchBarItemIdentifier identifier =
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   205
    objc_getAssociatedObject(aSender, &sIdentifierAssociationKey);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   206
  if (!identifier || [identifier isEqualToString: @""]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   207
    return;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   208
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   209
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   210
  TouchBarInput* input = self.mappedLayoutItems[identifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   211
  if (!input) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   212
    return;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   213
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   214
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   215
  nsCOMPtr<nsITouchBarInputCallback> callback = [input callback];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   216
  callback->OnCommand();
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   217
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   218
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   219
#pragma mark - TouchBar Utilities
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   220
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   221
+ (NSImage*)getTouchBarIconNamed:(NSString*)aImageName
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   222
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   223
  nsCOMPtr<nsIFile> resDir;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   224
  nsAutoCString resPath;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   225
  NSString* pathToImage;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   226
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   227
  nsresult rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(resDir));
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   228
  resDir->AppendNative(NS_LITERAL_CSTRING("res"));
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   229
  resDir->AppendNative(NS_LITERAL_CSTRING("touchbar"));
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   230
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   231
  rv = resDir->GetNativePath(resPath);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   232
  
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   233
  if (NS_WARN_IF(NS_FAILED(rv))) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   234
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   235
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   236
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   237
  pathToImage = [NSString stringWithUTF8String:(const char*)resPath.get()];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   238
  pathToImage = [pathToImage stringByAppendingPathComponent:aImageName];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   239
  NSImage* image = [[[NSImage alloc]
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   240
                      initWithContentsOfFile:pathToImage] autorelease];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   241
  // A nil image will fail gracefully to a labelled button
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   242
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   243
  return image;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   244
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   245
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   246
#pragma mark - NSSharingServicePickerTouchBarItemDelegate
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   247
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   248
- (NSArray*)itemsForSharingServicePickerTouchBarItem:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   249
                (NSSharingServicePickerTouchBarItem*)aPickerTouchBarItem
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   250
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   251
  NSURL* urlToShare = nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   252
  NSString* titleToShare = @"";
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   253
  nsAutoString url;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   254
  nsAutoString title;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   255
  if (mTouchBarHelper) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   256
    nsresult rv = mTouchBarHelper->GetActiveUrl(url);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   257
    if (!NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   258
      urlToShare = [NSURL URLWithString:nsCocoaUtils::ToNSString(url)];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   259
      // NSURL URLWithString returns nil if the URL is invalid. At this point,
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   260
      // it is too late to simply shut down the share menu, so we default to
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   261
      // about:blank if the share button is clicked when the URL is invalid.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   262
      if (urlToShare == nil) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   263
        urlToShare = [NSURL URLWithString:@"about:blank"];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   264
      }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   265
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   266
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   267
    rv = mTouchBarHelper->GetActiveTitle(title);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   268
    if (!NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   269
      titleToShare = nsCocoaUtils::ToNSString(title);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   270
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   271
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   272
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   273
  // If the user has gotten this far, they have clicked the share button so it
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   274
  // is logged.
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   275
  Telemetry::AccumulateCategorical(
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   276
    Telemetry::LABELS_TOUCHBAR_BUTTON_PRESSES::Share);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   277
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   278
  return @[urlToShare, titleToShare];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   279
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   280
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   281
- (NSArray<NSSharingService*>*)sharingServicePicker:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   282
                           (NSSharingServicePicker*)aSharingServicePicker
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   283
                            sharingServicesForItems:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   284
                                          (NSArray*)aItems
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   285
                            proposedSharingServices:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   286
                       (NSArray<NSSharingService*>*)aProposedServices
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   287
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   288
  // redundant services
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   289
  NSArray* excludedServices = @[
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   290
    @"com.apple.share.System.add-to-safari-reading-list",
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   291
  ];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   292
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   293
  NSArray* sharingServices = [aProposedServices
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   294
    filteredArrayUsingPredicate:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   295
      [NSPredicate predicateWithFormat:@"NOT (name IN %@)", excludedServices]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   296
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   297
  return sharingServices;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   298
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   299
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   300
@end
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   301
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   302
@implementation TouchBarInput
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   303
- (NSString*)key { return mKey; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   304
- (NSString*)title { return mTitle; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   305
- (NSImage*)image { return mImage; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   306
- (NSString*)type { return mType; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   307
- (NSColor*)color { return mColor; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   308
- (BOOL)isDisabled { return mDisabled; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   309
- (NSTouchBarItemIdentifier)nativeIdentifier { return mNativeIdentifier; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   310
- (nsCOMPtr<nsITouchBarInputCallback>)callback { return mCallback; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   311
- (void)setKey:(NSString*)aKey
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   312
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   313
  [aKey retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   314
  [mKey release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   315
  mKey = aKey;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   316
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   317
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   318
- (void)setTitle:(NSString*)aTitle
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   319
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   320
  [aTitle retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   321
  [mTitle release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   322
  mTitle = aTitle;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   323
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   324
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   325
- (void)setImage:(NSImage*)aImage
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   326
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   327
  [aImage retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   328
  [mImage release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   329
  mImage = aImage;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   330
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   331
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   332
- (void)setType:(NSString*)aType
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   333
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   334
  [aType retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   335
  [mType release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   336
  mType = aType;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   337
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   338
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   339
- (void)setColor:(NSColor*)aColor
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   340
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   341
  [aColor retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   342
  [mColor release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   343
  mColor = aColor;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   344
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   345
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   346
- (void)setDisabled:(BOOL)aDisabled { mDisabled = aDisabled; }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   347
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   348
- (void)setNativeIdentifier:(NSTouchBarItemIdentifier)aNativeIdentifier
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   349
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   350
  [aNativeIdentifier retain];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   351
  [mNativeIdentifier release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   352
  mNativeIdentifier = aNativeIdentifier;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   353
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   354
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   355
- (void)setCallback:(nsCOMPtr<nsITouchBarInputCallback>)aCallback
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   356
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   357
  mCallback = aCallback;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   358
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   359
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   360
- (id)initWithKey:(NSString*)aKey
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   361
            title:(NSString*)aTitle
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   362
            image:(NSString*)aImage
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   363
            type:(NSString*)aType
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   364
        callback:(nsCOMPtr<nsITouchBarInputCallback>)aCallback
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   365
           color:(uint32_t)aColor
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   366
        disabled:(BOOL)aDisabled
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   367
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   368
  if (self = [super init]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   369
    [self setKey:aKey];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   370
    [self setTitle:aTitle];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   371
    [self setImage:[nsTouchBar getTouchBarIconNamed:aImage]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   372
    [self setType:aType];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   373
    [self setCallback:aCallback];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   374
    if (aColor) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   375
      [self setColor:[NSColor colorWithDisplayP3Red:((aColor>>16)&0xFF)/255.0
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   376
                                            green:((aColor>>8)&0xFF)/255.0
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   377
                                             blue:((aColor)&0xFF)/255.0
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   378
                                            alpha:1.0]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   379
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   380
    [self setDisabled:aDisabled];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   381
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   382
    NSTouchBarItemIdentifier TypeIdentifier = @"";
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   383
    if ([aType isEqualToString:@"scrubber"]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   384
      TypeIdentifier = ScrubberIdentifier;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   385
    } else if ([aType isEqualToString:@"mainButton"]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   386
      TypeIdentifier = CustomMainButtonIdentifier;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   387
    } else {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   388
      TypeIdentifier = CustomButtonIdentifier;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   389
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   390
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   391
    if (!aKey) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   392
      [self setNativeIdentifier:TypeIdentifier];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   393
    } else if ([aKey isEqualToString:@"share"]) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   394
      [self setNativeIdentifier:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   395
        [TypeIdentifier stringByAppendingPathExtension:aKey]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   396
    } else {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   397
      [self setNativeIdentifier:
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   398
        [TypeIdentifier stringByAppendingPathExtension:aKey]];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   399
    }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   400
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   401
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   402
  return self;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   403
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   404
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   405
- (TouchBarInput*)initWithXPCOM:(nsCOMPtr<nsITouchBarInput>)aInput
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   406
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   407
  nsAutoString keyStr;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   408
  nsresult rv = aInput->GetKey(keyStr);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   409
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   410
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   411
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   412
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   413
  nsAutoString titleStr;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   414
  rv = aInput->GetTitle(titleStr);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   415
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   416
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   417
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   418
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   419
  nsAutoString imageStr;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   420
  rv = aInput->GetImage(imageStr);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   421
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   422
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   423
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   424
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   425
  nsAutoString typeStr;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   426
  rv = aInput->GetType(typeStr);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   427
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   428
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   429
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   430
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   431
  nsCOMPtr<nsITouchBarInputCallback> callback;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   432
  rv = aInput->GetCallback(getter_AddRefs(callback));
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   433
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   434
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   435
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   436
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   437
  uint32_t colorInt;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   438
  rv = aInput->GetColor(&colorInt);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   439
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   440
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   441
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   442
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   443
  bool disabled = false;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   444
  rv = aInput->GetDisabled(&disabled);
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   445
  if (NS_FAILED(rv)) {
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   446
    return nil;
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   447
  }
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   448
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   449
  return [self initWithKey:nsCocoaUtils::ToNSString(keyStr)
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   450
                     title:nsCocoaUtils::ToNSString(titleStr)
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   451
                     image:nsCocoaUtils::ToNSString(imageStr)
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   452
                      type:nsCocoaUtils::ToNSString(typeStr)
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   453
                  callback:callback
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   454
                     color:colorInt
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   455
                  disabled:(BOOL)disabled];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   456
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   457
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   458
- (void)dealloc
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   459
{
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   460
  [mKey release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   461
  [mTitle release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   462
  [mImage release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   463
  [mType release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   464
  [mColor release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   465
  [mNativeIdentifier release];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   466
  [super dealloc];
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   467
}
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   468
099f631b90046b102aa1868455f03b7f9942eaba Bug 1313429 - Add Touch Bar functionality to Firefox r=spohl,mikedeboer,flod
Harry Twyford <harry.a.twyford@gmail.com>
parents:
diff changeset
   469
@end