platformIcon method

Widget platformIcon(
  1. IconData nativeIcon,
  2. String emoji, {
  3. double? size,
  4. Color? color,
})

Returns an icon for cross-platform display. Uses emoji if fonts are available, native Flutter icons otherwise. On Linux, checks for actual emoji font availability. On other platforms, uses emoji with ASCII fallback in tooltip.

Implementation

Widget platformIcon(
  IconData nativeIcon,
  String emoji, {
  double? size,
  Color? color,
}) {
  final fallbackText = emojiFallbacks[emoji] ?? emoji;
  final useEmoji = hasEmojiFonts();

  if (useEmoji) {
    // Use emoji on platforms with good emoji support
    return Tooltip(
      message: fallbackText,
      child: Text(
        emoji,
        style: TextStyle(fontSize: size ?? 16, color: color),
      ),
    );
  } else {
    // Use native Flutter icons as fallback
    return Tooltip(
      message: fallbackText,
      child: Icon(nativeIcon, size: size ?? 24, color: color),
    );
  }
}