// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'utils.dart'; class MaskConstant { const MaskConstant({required this.name, required this.value, required this.description}); const MaskConstant.platform({required String platform, required int value}) : this( name: '$platform Plane', value: value, description: 'The plane value for the private keys defined by the $platform embedding.' ); final String name; final int value; final String description; String get upperCamelName { return name .split(' ') .map((String word) => lowerCamelToUpperCamel(word.toLowerCase())) .join(); } String get lowerCamelName { final String upperCamel = upperCamelName; return upperCamel.substring(0, 1).toLowerCase() + upperCamel.substring(1); } } const MaskConstant kValueMask = MaskConstant( name: 'Value Mask', value: 0x00FFFFFFFF, description: 'Mask for the 32-bit value portion of the key code.', ); const MaskConstant kPlaneMask = MaskConstant( name: 'Plane Mask', value: 0xFF00000000, description: 'Mask for the plane prefix portion of the key code.', ); const MaskConstant kUnicodePlane = MaskConstant( name: 'Unicode Plane', value: 0x0000000000, description: 'The plane value for keys which have a Unicode representation.', ); const MaskConstant kUnprintablePlane = MaskConstant( name: 'Unprintable Plane', value: 0x0100000000, description: 'The plane value for keys defined by Chromium and does not have a Unicode representation.', ); const MaskConstant kFlutterPlane = MaskConstant( name: 'Flutter Plane', value: 0x0200000000, description: 'The plane value for keys defined by Flutter.', ); const MaskConstant kStartOfPlatformPlanes = MaskConstant( name: 'Start Of Platform Planes', value: 0x1100000000, description: 'The platform plane with the lowest mask value, beyond which the keys are considered autogenerated.', ); const MaskConstant kAndroidPlane = MaskConstant.platform( platform: 'Android', value: 0x1100000000, ); const MaskConstant kFuchsiaPlane = MaskConstant.platform( platform: 'Fuchsia', value: 0x1200000000, ); const MaskConstant kIosPlane = MaskConstant.platform( platform: 'iOS', value: 0x1300000000, ); const MaskConstant kMacosPlane = MaskConstant.platform( platform: 'macOS', value: 0x1400000000, ); const MaskConstant kGtkPlane = MaskConstant.platform( platform: 'Gtk', value: 0x1500000000, ); const MaskConstant kWindowsPlane = MaskConstant.platform( platform: 'Windows', value: 0x1600000000, ); const MaskConstant kWebPlane = MaskConstant.platform( platform: 'Web', value: 0x1700000000, ); const MaskConstant kGlfwPlane = MaskConstant.platform( platform: 'GLFW', value: 0x1800000000, );