// 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. // This file serves as the interface between the public and private APIs for // animated icons. // The AnimatedIcons class is public and is used to specify available icons, // while the _AnimatedIconData interface which used to deliver the icon data is // kept private. part of material_animated_icons; // ignore: use_string_in_part_of_directives /// Identifier for the supported Material Design animated icons. /// /// Use with [AnimatedIcon] class to show specific animated icons. /// /// {@tool dartpad} /// This example shows how to create an animated icon. The icon is animated /// forward and reverse in a loop. /// /// ** See code in examples/api/lib/material/animated_icon/animated_icons_data.0.dart ** /// {@end-tool} /// /// See also: /// /// * [Icons], for the list of available static Material Icons. abstract class AnimatedIcons { /// The Material Design add to event icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/add_event.mp4} static const AnimatedIconData add_event = _$add_event; /// The Material Design arrow to menu icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/arrow_menu.mp4} static const AnimatedIconData arrow_menu = _$arrow_menu; /// The Material Design close to menu icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/close_menu.mp4} static const AnimatedIconData close_menu = _$close_menu; /// The Material Design ellipsis to search icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/ellipsis_search.mp4} static const AnimatedIconData ellipsis_search = _$ellipsis_search; /// The Material Design event to add icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/event_add.mp4} static const AnimatedIconData event_add = _$event_add; /// The Material Design home to menu icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/home_menu.mp4} static const AnimatedIconData home_menu = _$home_menu; /// The Material Design list to view icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/list_view.mp4} static const AnimatedIconData list_view = _$list_view; /// The Material Design menu to arrow icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/menu_arrow.mp4} static const AnimatedIconData menu_arrow = _$menu_arrow; /// The Material Design menu to close icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/menu_close.mp4} static const AnimatedIconData menu_close = _$menu_close; /// The Material Design menu to home icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/menu_home.mp4} static const AnimatedIconData menu_home = _$menu_home; /// The Material Design pause to play icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/pause_play.mp4} static const AnimatedIconData pause_play = _$pause_play; /// The Material Design play to pause icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/play_pause.mp4} static const AnimatedIconData play_pause = _$play_pause; /// The Material Design search to ellipsis icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/search_ellipsis.mp4} static const AnimatedIconData search_ellipsis = _$search_ellipsis; /// The Material Design view to list icon animation. /// /// {@animation 72 72 https://flutter.github.io/assets-for-api-docs/assets/widgets/view_list.mp4} static const AnimatedIconData view_list = _$view_list; } /// Vector graphics data for icons used by [AnimatedIcon]. /// /// Instances of this class are currently opaque because we have not committed to a specific /// animated vector graphics format. /// /// See also: /// /// * [AnimatedIcons], a class that contains constants that implement this interface. abstract class AnimatedIconData { /// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so that they can be used in const expressions. const AnimatedIconData(); /// Whether this icon should be mirrored horizontally when text direction is /// right-to-left. /// /// See also: /// /// * [TextDirection], which discusses concerns regarding reading direction /// in Flutter. /// * [Directionality], a widget which determines the ambient directionality. bool get matchTextDirection; } class _AnimatedIconData extends AnimatedIconData { const _AnimatedIconData(this.size, this.paths, {this.matchTextDirection = false}); final Size size; final List<_PathFrames> paths; @override final bool matchTextDirection; }