marco.pms.mobile/lib/helpers/widgets/my_container.dart
Vaibhav Surve 99902e743c Flutter application
- Created generated_plugin_registrant.cc and generated_plugin_registrant.h to manage plugin registration.
- Added generated_plugins.cmake for plugin configuration in CMake.
- Implemented CMakeLists.txt for the Windows runner, defining build settings and dependencies.
- Created Runner.rc for application resources including versioning and icons.
- Developed flutter_window.cpp and flutter_window.h to manage the Flutter window lifecycle.
- Implemented main.cpp as the entry point for the Windows application.
- Added resource.h for resource definitions.
- Included app icon in resources.
- Created runner.exe.manifest for application settings.
- Developed utils.cpp and utils.h for console management and command line argument handling.
- Implemented win32_window.cpp and win32_window.h for high DPI-aware window management.
2025-04-17 12:30:38 +05:30

198 lines
5.0 KiB
Dart

import 'package:marco/helpers/theme/app_theme.dart';
import 'package:marco/helpers/widgets/my_constant.dart';
import 'package:marco/helpers/widgets/my_spacing.dart';
import 'package:flutter/material.dart';
class MyContainer extends StatelessWidget {
final Widget? child;
final BorderRadius? borderRadius;
final double? borderRadiusAll, paddingAll, marginAll;
final EdgeInsetsGeometry? padding, margin;
final Color? color;
final Color? borderColor;
final bool bordered;
final Border? border;
final Clip? clipBehavior;
final BoxShape shape;
final double? width, height;
final AlignmentGeometry? alignment;
final GestureTapCallback? onTap;
final Color? splashColor;
final bool enableBorderRadius;
const MyContainer(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll,
this.paddingAll,
this.border,
this.bordered = false,
this.clipBehavior,
this.color,
this.shape = BoxShape.rectangle,
this.width,
this.height,
this.alignment,
this.enableBorderRadius = true,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
const MyContainer.transparent(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll,
this.paddingAll,
this.border,
this.bordered = false,
this.clipBehavior,
this.color = Colors.transparent,
this.shape = BoxShape.rectangle,
this.width,
this.height,
this.alignment,
this.enableBorderRadius = true,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
const MyContainer.none(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll = 0,
this.paddingAll = 0,
this.border,
this.bordered = false,
this.clipBehavior,
this.enableBorderRadius = true,
this.color,
this.shape = BoxShape.rectangle,
this.width,
this.height,
this.alignment,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
const MyContainer.bordered(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll,
this.paddingAll,
this.border,
this.bordered = true,
this.enableBorderRadius = true,
this.clipBehavior,
this.color,
this.shape = BoxShape.rectangle,
this.width,
this.height,
this.alignment,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
const MyContainer.roundBordered(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll,
this.enableBorderRadius = true,
this.paddingAll,
this.border,
this.bordered = true,
this.clipBehavior,
this.color,
this.shape = BoxShape.circle,
this.width,
this.height,
this.alignment,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
const MyContainer.rounded(
{super.key,
this.child,
this.borderRadius,
this.padding,
this.borderRadiusAll,
this.enableBorderRadius = true,
this.paddingAll,
this.border,
this.bordered = false,
this.clipBehavior = Clip.antiAliasWithSaveLayer,
this.color,
this.shape = BoxShape.circle,
this.width,
this.height,
this.alignment,
this.onTap,
this.marginAll,
this.margin,
this.splashColor,
this.borderColor});
@override
Widget build(BuildContext context) {
Widget base = Container(
width: width,
height: height,
alignment: alignment,
margin: margin ?? MySpacing.all(marginAll ?? 0),
decoration: BoxDecoration(
color: color ?? theme.cardTheme.color,
shape: shape,
borderRadius: enableBorderRadius
? (shape == BoxShape.rectangle
? borderRadius ??
BorderRadius.all(Radius.circular(borderRadiusAll ??
MyConstant.constant.containerRadius))
: null)
: null,
border: bordered
? border ??
Border.all(color: borderColor ?? theme.dividerColor, width: 1)
: null),
padding: padding ?? MySpacing.all(paddingAll ?? 16),
clipBehavior: clipBehavior ?? Clip.none,
child: child,
);
if (onTap != null) {
return InkWell(
borderRadius: shape != BoxShape.circle
? borderRadius ??
BorderRadius.all(Radius.circular(
borderRadiusAll ?? MyConstant.constant.containerRadius))
: null,
onTap: onTap,
splashColor: splashColor ?? Colors.transparent,
highlightColor: splashColor ?? Colors.transparent,
child: base,
);
} else {
return base;
}
}
}