actionWindowWidget static method

Widget actionWindowWidget({
  1. required BuildContext context,
  2. required GeneralLibFlutterApp generalLibFlutterApp,
})

Implementation

static Widget actionWindowWidget({
  required BuildContext context,
  required GeneralLibFlutterApp generalLibFlutterApp,
}) {
  if (Dart.isDesktop == false || Dart.isWeb) {
    return const SizedBox.shrink();
  }
  final children = [
    // WindowCaptionButton.minimize(
    //   brightness: platformBrightness(context: context, generalLibFlutterApp: generalLibFlutterApp),
    //   onPressed: () async {
    //     try {
    //       await windowManager.setAlwaysOnBottom(false);
    //       await windowManager.setFullScreen(false);
    //       // bool isMinimized = await windowManager.();
    //       // if (isMinimized) {
    //       //   await windowManager.restore();
    //       // } else {
    //       //   await windowManager.minimize();
    //       // }
    //     } catch (e) {}
    //   },
    // ),
    WindowCaptionButton.minimize(
      brightness: platformBrightness(
          context: context, generalLibFlutterApp: generalLibFlutterApp),
      onPressed: () async {
        try {
          bool isMinimized = await windowManager.isMinimized();
          if (isMinimized) {
            await windowManager.restore();
          } else {
            await windowManager.minimize();
          }
        } catch (e) {}
      },
    ),
    FutureBuilder<bool>(
      future: () async {
        try {
          return windowManager.isMaximized();
        } catch (e) {
          return false;
        }
      }(),
      builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
        if (snapshot.data == true) {
          return WindowCaptionButton.unmaximize(
            brightness: platformBrightness(
                context: context, generalLibFlutterApp: generalLibFlutterApp),
            onPressed: () async {
              try {
                await windowManager.unmaximize();
              } catch (e) {}
            },
          );
        }
        return WindowCaptionButton.maximize(
          brightness: platformBrightness(
              context: context, generalLibFlutterApp: generalLibFlutterApp),
          onPressed: () async {
            try {
              await windowManager.maximize();
            } catch (e) {}
          },
        );
      },
    ),
    WindowCaptionButton.close(
      brightness: platformBrightness(
          context: context, generalLibFlutterApp: generalLibFlutterApp),
      onPressed: () async {
        context.theme;
        try {
          await windowManager.close();
        } catch (e) {}
      },
    ),
  ];
  if (context.orientation.isPortrait) {
    if (context.width < 300) {
      return PopupMenuButton(
        itemBuilder: (context) {
          return children.map((e) {
            return PopupMenuItem(
              child: e,
            );
          }).toList();
        },
      );
    }
  }
  return Row(
    mainAxisSize: MainAxisSize.min,
    children: children,
  );
}