blob: 1f4e10aac287d69799817254f65ee8800dc0e2d8 [file] [log] [blame]
// Copyright 2013 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.
part of ui;
abstract class Display {
int get id;
double get devicePixelRatio;
Size get size;
double get refreshRate;
}
abstract class FlutterView {
PlatformDispatcher get platformDispatcher;
int get viewId;
double get devicePixelRatio;
ViewConstraints get physicalConstraints;
Size get physicalSize;
ViewPadding get viewInsets;
ViewPadding get viewPadding;
ViewPadding get systemGestureInsets;
ViewPadding get padding;
GestureSettings get gestureSettings;
List<DisplayFeature> get displayFeatures;
Display get display;
void render(Scene scene, {Size? size});
void updateSemantics(SemanticsUpdate update) => platformDispatcher.updateSemantics(update);
}
abstract class SingletonFlutterWindow extends FlutterView {
VoidCallback? get onMetricsChanged;
set onMetricsChanged(VoidCallback? callback);
Locale get locale;
List<Locale> get locales;
Locale? computePlatformResolvedLocale(List<Locale> supportedLocales);
VoidCallback? get onLocaleChanged;
set onLocaleChanged(VoidCallback? callback);
String get initialLifecycleState;
double get textScaleFactor;
bool get nativeSpellCheckServiceDefined;
bool get brieflyShowPassword;
bool get alwaysUse24HourFormat;
VoidCallback? get onTextScaleFactorChanged;
set onTextScaleFactorChanged(VoidCallback? callback);
Brightness get platformBrightness;
VoidCallback? get onPlatformBrightnessChanged;
set onPlatformBrightnessChanged(VoidCallback? callback);
String? get systemFontFamily;
VoidCallback? get onSystemFontFamilyChanged;
set onSystemFontFamilyChanged(VoidCallback? callback);
FrameCallback? get onBeginFrame;
set onBeginFrame(FrameCallback? callback);
VoidCallback? get onDrawFrame;
set onDrawFrame(VoidCallback? callback);
TimingsCallback? get onReportTimings;
set onReportTimings(TimingsCallback? callback);
PointerDataPacketCallback? get onPointerDataPacket;
set onPointerDataPacket(PointerDataPacketCallback? callback);
KeyDataCallback? get onKeyData;
set onKeyData(KeyDataCallback? callback);
String get defaultRouteName;
void scheduleFrame();
bool get semanticsEnabled;
VoidCallback? get onSemanticsEnabledChanged;
set onSemanticsEnabledChanged(VoidCallback? callback);
FrameData get frameData;
VoidCallback? get onFrameDataChanged;
set onFrameDataChanged(VoidCallback? callback);
AccessibilityFeatures get accessibilityFeatures;
VoidCallback? get onAccessibilityFeaturesChanged;
set onAccessibilityFeaturesChanged(VoidCallback? callback);
void sendPlatformMessage(
String name,
ByteData? data,
PlatformMessageResponseCallback? callback,
);
PlatformMessageCallback? get onPlatformMessage;
set onPlatformMessage(PlatformMessageCallback? callback);
void setIsolateDebugName(String name);
}
abstract class AccessibilityFeatures {
bool get accessibleNavigation;
bool get invertColors;
bool get disableAnimations;
bool get boldText;
bool get reduceMotion;
bool get highContrast;
bool get onOffSwitchLabels;
}
enum Brightness {
dark,
light,
}
// Unimplemented classes.
// TODO(dit): see https://github.com/flutter/flutter/issues/33614.
class CallbackHandle {
CallbackHandle.fromRawHandle(this._handle);
final int _handle;
int toRawHandle() => _handle;
@override
bool operator ==(Object other) => identical(this, other);
@override
// ignore: unnecessary_overrides
int get hashCode => super.hashCode;
}
// TODO(dit): see https://github.com/flutter/flutter/issues/33615.
abstract final class PluginUtilities {
static CallbackHandle? getCallbackHandle(Function callback) {
throw UnimplementedError();
}
static Function? getCallbackFromHandle(CallbackHandle handle) {
throw UnimplementedError();
}
}
abstract final class IsolateNameServer {
static dynamic lookupPortByName(String name) {
throw UnimplementedError();
}
static bool registerPortWithName(dynamic port, String name) {
throw UnimplementedError();
}
static bool removePortNameMapping(String name) {
throw UnimplementedError();
}
}
SingletonFlutterWindow get window => engine.window;
class FrameData {
const FrameData.webOnly();
int get frameNumber => -1;
}
class GestureSettings {
const GestureSettings({
this.physicalTouchSlop,
this.physicalDoubleTapSlop,
});
final double? physicalTouchSlop;
final double? physicalDoubleTapSlop;
GestureSettings copyWith({
double? physicalTouchSlop,
double? physicalDoubleTapSlop,
}) {
return GestureSettings(
physicalTouchSlop: physicalTouchSlop ?? this.physicalTouchSlop,
physicalDoubleTapSlop: physicalDoubleTapSlop ?? this.physicalDoubleTapSlop,
);
}
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
return other is GestureSettings &&
other.physicalTouchSlop == physicalTouchSlop &&
other.physicalDoubleTapSlop == physicalDoubleTapSlop;
}
@override
int get hashCode => Object.hash(physicalTouchSlop, physicalDoubleTapSlop);
@override
String toString() => 'GestureSettings(physicalTouchSlop: $physicalTouchSlop, physicalDoubleTapSlop: $physicalDoubleTapSlop)';
}