/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsTouchBarInput_h_ #define nsTouchBarInput_h_ #import #include "nsITouchBarInput.h" #include "nsTouchBarNativeAPIDefines.h" using namespace mozilla::dom; enum class TouchBarInputBaseType : uint8_t { kButton, kLabel, kMainButton, kPopover, kScrollView, kScrubber }; class nsTouchBarInputIcon; /** * NSObject representation of nsITouchBarInput. */ @interface TouchBarInput : NSObject { NSString* mKey; NSString* mTitle; nsCOMPtr mImageURI; RefPtr mIcon; NSString* mType; TouchBarInputBaseType mBaseType; NSColor* mColor; BOOL mDisabled; nsCOMPtr mCallback; NSMutableArray* mChildren; } - (NSString*)key; - (NSString*)title; - (nsCOMPtr)imageURI; - (RefPtr)icon; - (NSString*)type; - (TouchBarInputBaseType)baseType; - (NSColor*)color; - (BOOL)isDisabled; - (NSTouchBarItemIdentifier)nativeIdentifier; - (nsCOMPtr)callback; - (NSMutableArray*)children; - (void)setKey:(NSString*)aKey; - (void)setTitle:(NSString*)aTitle; - (void)setImageURI:(nsCOMPtr)aImageURI; - (void)setIcon:(RefPtr)aIcon; - (void)setType:(NSString*)aType; - (void)setColor:(NSColor*)aColor; - (void)setDisabled:(BOOL)aDisabled; - (void)setCallback:(nsCOMPtr)aCallback; - (void)setChildren:(NSMutableArray*)aChildren; - (id)initWithKey:(NSString*)aKey title:(NSString*)aTitle imageURI:(nsCOMPtr)aImageURI type:(NSString*)aType callback:(nsCOMPtr)aCallback color:(uint32_t)aColor disabled:(BOOL)aDisabled children:(nsCOMPtr)aChildren; - (TouchBarInput*)initWithXPCOM:(nsCOMPtr)aInput; - (void)releaseJSObjects; - (void)dealloc; /** * We make these helper methods static so that other classes can query a * TouchBarInput's nativeIdentifier (e.g. nsTouchBarUpdater looking up a * popover in mappedLayoutItems). */ + (NSTouchBarItemIdentifier)nativeIdentifierWithType:(NSString*)aType withKey:(NSString*)aKey; + (NSTouchBarItemIdentifier)nativeIdentifierWithXPCOM:(nsCOMPtr)aInput; @end #endif // nsTouchBarInput_h_