diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..74a3666 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,21 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "windowsSdkVersion": "10.0.19041.0", + "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/lib/event_widget.dart b/lib/event_widget.dart index 1126c32..1a31b7c 100644 --- a/lib/event_widget.dart +++ b/lib/event_widget.dart @@ -90,44 +90,46 @@ class _EventWidgetState extends State { debugPrint("onSend result: $result"); } - return Column( - children: [ - Expanded( - child: ListView.builder( - itemCount: messages.length, - reverse: true, - itemBuilder: (context, index) => - _MessageItemWidget(item: messages[index]), + return Scaffold( + body: Column( + children: [ + Expanded( + child: ListView.builder( + itemCount: messages.length, + reverse: true, + itemBuilder: (context, index) => + _MessageItemWidget(item: messages[index]), + ), ), - ), - Row( - children: [ - SizedBox( - width: 100, - child: TextField( - controller: windowInputController, - decoration: const InputDecoration( - labelText: 'Window ID', + Row( + children: [ + SizedBox( + width: 100, + child: TextField( + controller: windowInputController, + decoration: const InputDecoration( + labelText: 'Window ID', + ), + inputFormatters: [FilteringTextInputFormatter.digitsOnly], ), - inputFormatters: [FilteringTextInputFormatter.digitsOnly], ), - ), - Expanded( - child: TextField( - controller: textInputController, - decoration: const InputDecoration( - hintText: 'Enter message', + Expanded( + child: TextField( + controller: textInputController, + decoration: const InputDecoration( + hintText: 'Enter message', + ), + onSubmitted: (text) => submit(), ), - onSubmitted: (text) => submit(), ), - ), - IconButton( - icon: const Icon(Icons.send), - onPressed: submit, - ), - ], - ), - ], + IconButton( + icon: const Icon(Icons.send), + onPressed: submit, + ), + ], + ), + ], + ), ); } } diff --git a/lib/main.dart b/lib/main.dart index 04532a2..8b83900 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,6 +7,8 @@ import 'package:flutter/material.dart'; import 'package:atlantas_windows/event_widget.dart'; import 'dart:ui'; +import 'package:bitsdojo_window/bitsdojo_window.dart'; + void main(List args) { if (args.firstOrNull == 'multi_window') { final windowId = int.parse(args[1]); @@ -20,6 +22,13 @@ void main(List args) { } else { runApp(const _ExampleMainWindow()); } + doWhenWindowReady(() { + const initialSize = Size(600, 450); + appWindow.minSize = initialSize; + appWindow.size = initialSize; + appWindow.alignment = Alignment.center; + appWindow.show(); + }); } class _ExampleMainWindow extends StatefulWidget { diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 01a8f29..67eed84 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,10 +6,14 @@ #include "generated_plugin_registrant.h" +#include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) bitsdojo_window_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "BitsdojoWindowPlugin"); + bitsdojo_window_plugin_register_with_registrar(bitsdojo_window_linux_registrar); g_autoptr(FlPluginRegistrar) desktop_lifecycle_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopLifecyclePlugin"); desktop_lifecycle_plugin_register_with_registrar(desktop_lifecycle_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 70b9aee..065e3cf 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + bitsdojo_window_linux desktop_lifecycle desktop_multi_window ) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index a74bc08..4727f44 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,10 +5,12 @@ import FlutterMacOS import Foundation +import bitsdojo_window_macos import desktop_lifecycle import desktop_multi_window func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + BitsdojoWindowPlugin.register(with: registry.registrar(forPlugin: "BitsdojoWindowPlugin")) DesktopLifecyclePlugin.register(with: registry.registrar(forPlugin: "DesktopLifecyclePlugin")) FlutterMultiWindowPlugin.register(with: registry.registrar(forPlugin: "FlutterMultiWindowPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index c7b48d0..2a90a38 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -8,6 +8,41 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.8.2" + bitsdojo_window: + dependency: "direct main" + description: + name: bitsdojo_window + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + bitsdojo_window_linux: + dependency: transitive + description: + name: bitsdojo_window_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + bitsdojo_window_macos: + dependency: transitive + description: + name: bitsdojo_window_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + bitsdojo_window_platform_interface: + dependency: transitive + description: + name: bitsdojo_window_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + bitsdojo_window_windows: + dependency: transitive + description: + name: bitsdojo_window_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" boolean_selector: dependency: transitive description: @@ -71,6 +106,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" flutter: dependency: "direct main" description: flutter @@ -123,6 +165,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.1" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" sky_engine: dependency: transitive description: flutter @@ -177,6 +226,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.2" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.6.1" sdks: dart: ">=2.17.1 <3.0.0" flutter: ">=2.5.0" diff --git a/pubspec.yaml b/pubspec.yaml index 91dd292..66cc8b5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: cupertino_icons: ^1.0.2 desktop_lifecycle: ^0.1.0 desktop_multi_window: ^0.0.2 + bitsdojo_window: ^0.1.2 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index d5c8301..3f84d5f 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,10 +6,13 @@ #include "generated_plugin_registrant.h" +#include #include #include void RegisterPlugins(flutter::PluginRegistry* registry) { + BitsdojoWindowPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("BitsdojoWindowPlugin")); DesktopLifecyclePluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("DesktopLifecyclePlugin")); DesktopMultiWindowPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 89bbd9d..7d717c2 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + bitsdojo_window_windows desktop_lifecycle desktop_multi_window ) diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index 018d0e3..ae88c5f 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -1,3 +1,6 @@ +#include +auto bdw = bitsdojo_window_configure(BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP); + #include #include #include