From c6c9899a780e3a43aadecbe19bf20a3f3ee582ad Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Thu, 3 Jun 2021 12:37:17 -0700 Subject: [PATCH] windows: .ico and app name and menu name --- README.md | 14 ++++++++++---- windows/CMakeLists.txt | 4 ++-- .../flutter/generated_plugin_registrant.cc | 5 +++-- windows/flutter/generated_plugin_registrant.h | 2 -- windows/flutter/generated_plugins.cmake | 1 + windows/runner/Runner.rc | 12 ++++++------ windows/runner/main.cpp | 2 +- windows/runner/resources/app_icon.ico | Bin 33772 -> 67646 bytes 8 files changed, 23 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 3830e2b..da68d86 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # flwtch -A new Flutter application. +A Flutter based Cwtch UI ## Getting Started @@ -8,13 +8,19 @@ click the play button in android studio ### Linux -- libCwtch-go: the result of `make linux`, `libCwtch.so` should be in the link path +- libCwtch-go: required to be on the link path (linux/cwtch.destktop demonstrates with `env LD_LIBRARY_PATH=./lib/` on the front of the comman) + - fetch-libcwtch-go.sh will fetch a prebuilt version + - or compile from source from libcwtch-go with `make linux` - `tor` should be in the PATH ### Windows -- libCwtch-go: the result of `make windows`, `libCwtch.dll` should be placed in the source root -- tor is bundled in `windors/Tor` +- run `fetch-libcwtch-go.ps1` to get `libCwtch.dll` which is required to run +- run `fetch-tor-win.ps1` to fetch Tor for windows + +#### Issues + +- Flutter engine has a [known bug](https://github.com/flutter/flutter/issues/75675) around the Right Shift key being sticky. We have implemented the mostly work around, but until it is fixed, right shift occasionally acts permenent. If this happens, just tap left shift and it will reset ## l10n diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index a8e51aa..a1c031b 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.15) -project(flutter_app LANGUAGES CXX) +project(cwtch LANGUAGES CXX) -set(BINARY_NAME "flutter_app") +set(BINARY_NAME "cwtch") cmake_policy(SET CMP0063 NEW) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..9deaa4e 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -2,10 +2,11 @@ // Generated file. Do not edit. // -// clang-format off - #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + WindowSizePluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowSizePlugin")); } diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h index dc139d8..9846246 100644 --- a/windows/flutter/generated_plugin_registrant.h +++ b/windows/flutter/generated_plugin_registrant.h @@ -2,8 +2,6 @@ // Generated file. Do not edit. // -// clang-format off - #ifndef GENERATED_PLUGIN_REGISTRANT_ #define GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 4d10c25..154f238 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + window_size ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index 930c3e7..345f820 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -89,13 +89,13 @@ BEGIN BEGIN BLOCK "040904e4" BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "A new Flutter project." "\0" + VALUE "CompanyName", "Open Privacy Research Society" "\0" + VALUE "FileDescription", "Cwtch Instant Messenger" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "flutter_app" "\0" - VALUE "LegalCopyright", "Copyright (C) 2021 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "flutter_app.exe" "\0" - VALUE "ProductName", "flutter_app" "\0" + VALUE "InternalName", "cwtch" "\0" + VALUE "LegalCopyright", "Copyright (C) 2021 Open Privacy Research Society. All rights reserved." "\0" + VALUE "OriginalFilename", "cwtch.exe" "\0" + VALUE "ProductName", "Cwtch" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index b67fe12..f52513a 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -30,7 +30,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(&run_loop, project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"flutter_app", origin, size)) { + if (!window.CreateAndShow(L"cwtch", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico index c04e20caf6370ebb9253ad831cc31de4a9c965f6..7e2acda6c8744da8d2b3757e5036779a0c96c916 100644 GIT binary patch literal 67646 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