Initial commit
This commit is contained in:
81
app_code/lib/custom_ui/Button.dart
Normal file
81
app_code/lib/custom_ui/Button.dart
Normal file
@@ -0,0 +1,81 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:grostore/configs/theme_config.dart';
|
||||
|
||||
class Button extends StatelessWidget {
|
||||
final Color? color;
|
||||
final OutlinedBorder? shape;
|
||||
final Widget child;
|
||||
final EdgeInsetsGeometry? padding;
|
||||
final dynamic? minWidth;
|
||||
final dynamic? minHeight;
|
||||
final dynamic? onPressed;
|
||||
final AlignmentGeometry alignment;
|
||||
|
||||
const Button({Key? key, this.color = const Color.fromARGB(0, 0, 0, 0),
|
||||
this.shape = const RoundedRectangleBorder(),
|
||||
required this.child,
|
||||
this.alignment = Alignment.center,
|
||||
this.padding = EdgeInsets.zero,
|
||||
this.minHeight,
|
||||
this.minWidth,
|
||||
|
||||
this.onPressed}) : super(key: key);
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return _basic();
|
||||
}
|
||||
|
||||
|
||||
Widget _basic() {
|
||||
//if (width != null && height != null)
|
||||
return TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: ThemeConfig.fontColor,
|
||||
padding: padding,
|
||||
backgroundColor: color,
|
||||
minimumSize: minWidth == null ? null : Size(minWidth.toDouble(),minHeight?? 10),
|
||||
alignment: alignment,
|
||||
shape: shape),
|
||||
onPressed: onPressed,
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
|
||||
static Widget minSize(
|
||||
{required width,
|
||||
required double height,
|
||||
color,
|
||||
shape,
|
||||
child,
|
||||
EdgeInsetsGeometry padding=EdgeInsets.zero,
|
||||
dynamic onPressed}) {
|
||||
return TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
padding: padding,
|
||||
foregroundColor: ThemeConfig.noColor,
|
||||
minimumSize: Size(width.toDouble(), height.toDouble()),
|
||||
backgroundColor: onPressed != null ? color : ThemeConfig.grey,
|
||||
shape: shape,
|
||||
disabledForegroundColor: Colors.blue),
|
||||
child: child,
|
||||
onPressed: onPressed,
|
||||
);
|
||||
}
|
||||
|
||||
static Widget maxSize(
|
||||
{width, height, color, shape, child, dynamic onPressed}) {
|
||||
return TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: ThemeConfig.noColor,
|
||||
maximumSize: Size(width, height),
|
||||
backgroundColor: color,
|
||||
shape: shape),
|
||||
child: child,
|
||||
onPressed: onPressed,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user