Files
sousa-gecko/widget/cocoa/nsTouchBarInput.h
T
Emilio Cobos Álvarez 2861287f6d Bug 2054311 - Sort headers in widget/. r=stransky,win-reviewers,geckoview-reviewers,gstoll,owlish
Autogenerated with:

    cp dom/.clang-format widget/ && mach format widget/**.{cpp,h,mm}

Manual changes:

 * Had to add a manual override in nsWaylandDisplay.h /
   DMABufFormats.cpp to include mozwayland before protocols.
 * Missing includes in nsWindowWayland/X11.h / nsDragService.
 * nsFilePicker missed an nsWindow forward declaration.
 * Various overrides in widget/windows because windows headers are order
   dependent.

Differential Revision: https://phabricator.services.mozilla.com/D311688
2026-07-14 16:17:37 +00:00

92 lines
2.7 KiB
Objective-C

/* 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 <Cocoa/Cocoa.h>
#include "nsCOMPtr.h"
#include "nsITouchBarInput.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 {
nsCOMPtr<nsIURI> mImageURI;
RefPtr<nsTouchBarInputIcon> mIcon;
TouchBarInputBaseType mBaseType;
NSString* mType;
nsCOMPtr<nsITouchBarInputCallback> mCallback;
NSMutableArray<TouchBarInput*>* mChildren;
}
@property(strong) NSString* key;
@property(strong) NSString* type;
@property(strong) NSString* title;
@property(strong) NSColor* color;
@property(nonatomic, getter=isDisabled) BOOL disabled;
- (nsCOMPtr<nsIURI>)imageURI;
- (RefPtr<nsTouchBarInputIcon>)icon;
- (TouchBarInputBaseType)baseType;
- (NSTouchBarItemIdentifier)nativeIdentifier;
- (nsCOMPtr<nsITouchBarInputCallback>)callback;
- (NSMutableArray<TouchBarInput*>*)children;
- (void)setImageURI:(nsCOMPtr<nsIURI>)aImageURI;
- (void)setIcon:(RefPtr<nsTouchBarInputIcon>)aIcon;
- (void)setCallback:(nsCOMPtr<nsITouchBarInputCallback>)aCallback;
- (void)setChildren:(NSMutableArray<TouchBarInput*>*)aChildren;
- (id)initWithKey:(NSString*)aKey
title:(NSString*)aTitle
imageURI:(nsCOMPtr<nsIURI>)aImageURI
type:(NSString*)aType
callback:(nsCOMPtr<nsITouchBarInputCallback>)aCallback
color:(uint32_t)aColor
disabled:(BOOL)aDisabled
children:(nsCOMPtr<nsIArray>)aChildren;
- (TouchBarInput*)initWithXPCOM:(nsCOMPtr<nsITouchBarInput>)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<nsITouchBarInput>)aInput;
// Non-JS scrubber implementation for the Share Scrubber,
// since it is defined by an Apple API.
+ (NSTouchBarItemIdentifier)shareScrubberIdentifier;
// The search popover needs to show/hide depending on if the Urlbar is focused
// when it is created. We keep track of its identifier to accommodate this
// special handling.
+ (NSTouchBarItemIdentifier)searchPopoverIdentifier;
@end
#endif // nsTouchBarInput_h_