of static method
Returns the nearest ContextMenuTheme.
Implementation
static ContextMenuThemeData of(BuildContext context) {
final ContextMenuTheme? contextMenuTheme =
context.dependOnInheritedWidgetOfExactType<ContextMenuTheme>();
ContextMenuThemeData? contextMenuThemeData = contextMenuTheme?.data;
if (contextMenuThemeData == null || !contextMenuThemeData._isConcrete) {
final ThemeData themeData = Theme.of(context);
final TextTheme textTheme = themeData.textTheme;
final ColorScheme colorScheme = themeData.colorScheme;
contextMenuThemeData ??= themeData.contextMenuTheme;
final contextMenuValue =
_ContextMenuThemeData(textTheme: textTheme, colorScheme: colorScheme);
final IconThemeData iconThemeData =
contextMenuThemeData.iconThemeData ?? contextMenuValue.iconThemeData;
final double menuWidthStep =
contextMenuThemeData.menuWidthStep ?? contextMenuValue.menuWidthStep;
final double itemHeight =
contextMenuThemeData.itemHeight ?? contextMenuValue.itemHeight;
final double minMenuWidth =
contextMenuThemeData.minMenuWidth ?? contextMenuValue.minMenuWidth;
final double maxMenuWidth =
contextMenuThemeData.maxMenuWidth ?? contextMenuValue.maxMenuWidth;
final double menuHorizontalPadding =
contextMenuThemeData.menuHorizontalPadding ??
contextMenuValue.menuHorizontalPadding;
final TextStyle textStyle =
contextMenuThemeData.textStyle ?? contextMenuValue.textStyle;
final Color selectedColor =
contextMenuThemeData.selectedColor ?? contextMenuValue.selectedColor;
final Color selectedHighlightColor =
contextMenuThemeData.selectedHighlightColor ??
contextMenuValue.selectedHighlightColor;
final Color selectedHoverColor =
contextMenuThemeData.selectedHoverColor ??
contextMenuValue.selectedHoverColor;
final Color selectedForeground =
contextMenuThemeData.selectedForeground ??
contextMenuValue.selectedForeground;
final Color hoverColor =
contextMenuThemeData.hoverColor ?? contextMenuValue.hoverColor;
final Color highlightColor = contextMenuThemeData.highlightColor ??
contextMenuValue.highlightColor;
final Color background =
contextMenuThemeData.background ?? contextMenuValue.background;
final Color color = contextMenuThemeData.color ?? contextMenuValue.color;
return contextMenuThemeData.copyWith(
iconThemeData: iconThemeData,
menuWidthStep: menuWidthStep,
itemHeight: itemHeight,
minMenuWidth: minMenuWidth,
maxMenuWidth: maxMenuWidth,
menuHorizontalPadding: menuHorizontalPadding,
textStyle: textStyle,
selectedColor: selectedColor,
selectedHighlightColor: selectedHighlightColor,
selectedHoverColor: selectedHoverColor,
selectedForeground: selectedForeground,
hoverColor: hoverColor,
highlightColor: highlightColor,
background: background,
color: color,
);
}
assert(contextMenuThemeData._isConcrete);
return contextMenuThemeData;
}