1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_BASE_COCOA_APPKIT_UTILS_H_
#define UI_BASE_COCOA_APPKIT_UTILS_H_
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
#endif // __OBJC__
#include "base/component_export.h"
namespace ui {
// Whether a force-click event on the touchpad should invoke Quick Look.
COMPONENT_EXPORT(UI_BASE) bool ForceClickInvokesQuickLook();
// Returns true if both CGFloat values are equal.
COMPONENT_EXPORT(UI_BASE) bool IsCGFloatEqual(CGFloat a, CGFloat b);
// Returns true if the current application is the active application.
COMPONENT_EXPORT(UI_BASE) bool IsActiveApplication();
// Returns true if it is possible that accessing pasteboard contents
// programmatically will block with a Pasteboard Privacy alert. Returns false if
// it is known for sure that it will not, either because Chromium has been
// granted an exception to Pasteboard Privacy, or because Chromium has been
// locked down with regard to Pasteboard Privacy and it's certain that the
// access would fail.
//
// TODO(https://crbug.com/419266152): Remove this, and use -[NSPasteboard
// detectPatternsForPatterns:completionHandler:] to accurately convey to the
// user what will happen.
COMPONENT_EXPORT(UI_BASE) bool PasteMightBlockWithPrivacyAlert();
// The NSServicesMenuRequestor protocol does not pass modern NSPasteboardType
// constants in the `types` array, but only obsolete "Pboard" constants. This is
// verified through macOS 15 (FB11838671). These are utility functions to
// rewrite obsolete types to modern types.
//
// TODO(https://crbug.com/395661472): When this FB is fixed at the minimum
// requirement for Chromium, remove these utility functions.
#ifdef __OBJC__
// Converts a single string value of either a modern pasteboard type or an
// obsolete PBoard type to the corresponding UTType. Returns nil if nil is
// specified as the type, or if the type cannot be found.
COMPONENT_EXPORT(UI_BASE) UTType* UTTypeForServicesType(NSString* type);
// Converts an array of string values of either modern pasteboard types or
// obsolete PBoard types to a set of the corresponding UTType values. Invalid
// values are dropped, as NSArrays/NSSets cannot contain nils.
COMPONENT_EXPORT(UI_BASE)
NSSet<UTType*>* UTTypesForServicesTypeArray(NSArray* types);
#endif // __OBJC__
} // namespace ui
#endif // UI_BASE_COCOA_APPKIT_UTILS_H_
|