import 'package:flutter/material.dart'; /// Runder Icon-Button ueber dunklem Kartenhintergrund, geteilt zwischen den /// Plan- (MapSearchControls: Home/Fit) und Fly-Modus-Kartensteuerungen /// (FlyMapControls: Drohne/Fit). class NavIconButton extends StatelessWidget { const NavIconButton({ super.key, this.icon, this.iconWidget, required this.onTap, }) : assert( icon != null || iconWidget != null, 'Entweder icon oder iconWidget angeben.', ); final IconData? icon; /// Individuelles Icon-Widget statt eines Material-[IconData], z.B. /// [DroneFollowIcon] fuer den Kartenfolge-Knopf (FlyMapControls). Hat /// Vorrang vor [icon], falls beides gesetzt ist. final Widget? iconWidget; final VoidCallback onTap; @override Widget build(BuildContext context) { return GestureDetector( onTap: onTap, child: Container( // 38 statt vorher 34, deckungsgleich mit HeaderWindPill/ // MapSearchControls/FlightModePill (Nutzerwunsch: einheitliche // Kopfleisten-Hoehe wie im HTML-Demonstrator vermessen: #homeBtn/ // #fitBtn nutzen dort ebenfalls width/height:38px). width: 38, height: 38, decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.black.withValues(alpha: 0.55), ), child: iconWidget ?? Icon(icon, color: Colors.white, size: 16), ), ); } }