Mounir Bouaiche

Add fontSizeResolver to init + helpers

@@ -39,6 +39,28 @@ abstract class RebuildFactors { @@ -39,6 +39,28 @@ abstract class RebuildFactors {
39 } 39 }
40 } 40 }
41 41
  42 +abstract class FontSizeResolvers {
  43 + static double width(num fontSize, ScreenUtil instance) {
  44 + return instance.setWidth(fontSize);
  45 + }
  46 +
  47 + static double height(num fontSize, ScreenUtil instance) {
  48 + return instance.setHeight(fontSize);
  49 + }
  50 +
  51 + static double raduis(num fontSize, ScreenUtil instance) {
  52 + return instance.radius(fontSize);
  53 + }
  54 +
  55 + static double diameter(num fontSize, ScreenUtil instance) {
  56 + return instance.diameter(fontSize);
  57 + }
  58 +
  59 + static double diagonal(num fontSize, ScreenUtil instance) {
  60 + return instance.diagonal(fontSize);
  61 + }
  62 +}
  63 +
42 class ScreenUtilInit extends StatefulWidget { 64 class ScreenUtilInit extends StatefulWidget {
43 /// A helper widget that initializes [ScreenUtil] 65 /// A helper widget that initializes [ScreenUtil]
44 const ScreenUtilInit({ 66 const ScreenUtilInit({
@@ -52,6 +74,7 @@ class ScreenUtilInit extends StatefulWidget { @@ -52,6 +74,7 @@ class ScreenUtilInit extends StatefulWidget {
52 this.useInheritedMediaQuery = false, 74 this.useInheritedMediaQuery = false,
53 this.ensureScreenSize, 75 this.ensureScreenSize,
54 this.responsiveWidgets, 76 this.responsiveWidgets,
  77 + this.fontSizeResolver = FontSizeResolvers.width,
55 }) : super(key: key); 78 }) : super(key: key);
56 79
57 final ScreenUtilInitBuilder? builder; 80 final ScreenUtilInitBuilder? builder;
@@ -61,6 +84,7 @@ class ScreenUtilInit extends StatefulWidget { @@ -61,6 +84,7 @@ class ScreenUtilInit extends StatefulWidget {
61 final bool useInheritedMediaQuery; 84 final bool useInheritedMediaQuery;
62 final bool? ensureScreenSize; 85 final bool? ensureScreenSize;
63 final RebuildFactor rebuildFactor; 86 final RebuildFactor rebuildFactor;
  87 + final FontSizeResolver fontSizeResolver;
64 88
65 /// The [Size] of the device in the design draft, in dp 89 /// The [Size] of the device in the design draft, in dp
66 final Size designSize; 90 final Size designSize;
@@ -146,6 +170,7 @@ class _ScreenUtilInitState extends State<ScreenUtilInit> @@ -146,6 +170,7 @@ class _ScreenUtilInitState extends State<ScreenUtilInit>
146 splitScreenMode: widget.splitScreenMode, 170 splitScreenMode: widget.splitScreenMode,
147 minTextAdapt: widget.minTextAdapt, 171 minTextAdapt: widget.minTextAdapt,
148 ensureScreenHasSize: widget.ensureScreenSize, 172 ensureScreenHasSize: widget.ensureScreenSize,
  173 + fontSizeResolver: widget.fontSizeResolver,
149 ); 174 );
150 175
151 return widget.builder?.call(context, widget.child) ?? widget.child!; 176 return widget.builder?.call(context, widget.child) ?? widget.child!;