Coder Social home page Coder Social logo

Comments (3)

Jamminroot avatar Jamminroot commented on August 19, 2024 2

Suggested workaround didn't really work for me.
However, I made a dirty trick to work this through.
Locate CreateWindow() call in windows\runner\win32_window.cpp, and adjust styles to WS_POPUP|WS_VISIBLE|WS_SYSMENU:

HWND window = CreateWindow(
      window_class, title.c_str(), WS_POPUP|WS_VISIBLE|WS_SYSMENU,
      Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),
      Scale(size.width, scale_factor), Scale(size.height, scale_factor),
      nullptr, nullptr, GetModuleHandle(nullptr), this);

SO reference

from flutter_acrylic.

alexmercerind avatar alexmercerind commented on August 19, 2024 1

Tell Microsoft.

from flutter_acrylic.

Sushma-Shrestha avatar Sushma-Shrestha commented on August 19, 2024 1

I figured out how to do this,

import 'dart:io';

import 'package:bitsdojo_window/bitsdojo_window.dart';
import 'package:flutter/material.dart';
import 'package:flutter_acrylic/flutter_acrylic.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:window_manager/window_manager.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Window.initialize();
  await windowManager.ensureInitialized();

  await Window.setEffect(effect: WindowEffect.acrylic);

  var initialSize = const Size(375, 750);
  WindowOptions windowOptions = WindowOptions(
    size: initialSize,
    center: false,
  );

  await windowManager.waitUntilReadyToShow(
    windowOptions,
    () async {
      await windowManager.setAsFrameless();
      await windowManager.show();
    },
  );

  runApp(
    const MyApp(),
  );

  if (Platform.isWindows) {
    doWhenWindowReady(() {
      const initialSize = Size(375, 750);
      appWindow.minSize = initialSize;
      appWindow.size = initialSize;
      appWindow.alignment = Alignment.bottomRight;
      appWindow.show();
    });
  }
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with WindowListener {
  @override
  void initState() {
    super.initState();
    Window.setEffect(effect: WindowEffect.acrylic);
    setState(() {});
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
        designSize: const Size(375, 750),
        builder: ((context, child) {
          ScreenUtil.init(context);
          return MaterialApp(
              home: Scaffold(
                  backgroundColor: Colors.transparent,
                  appBar: AppBar(title: const Text('Test')),
                  body: const Center(
                    child: Text('Hello World'),
                  )));
        }));
  }
}

Here, main point is to add:
await windowManager.setAsFrameless();
Then:
We can add custom controls [minimize, maximize and close]

Also, is WindowEffect.aero applicable for Window versions below Window 11, since i don't have window 10?
I tried using acrylic, but it was applicable to only Windows 11 and macos,
I will really appreciate your answer.

from flutter_acrylic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.