Hidenori Matsubayashi
2022-03-04 09:13:44 +09:00
committed by GitHub
parent 3050096d46
commit fc4efe0ac2
6 changed files with 81 additions and 30 deletions
@@ -14,18 +14,21 @@
class FlutterEmbedderOptions {
public:
FlutterEmbedderOptions() {
options_.AddString("bundle", "b", "Path to Flutter app bundle", "./",
false);
options_.AddString("bundle", "b", "Path to Flutter project bundle",
"./bundle", true);
options_.AddWithoutValue("no-cursor", "n", "No mouse cursor/pointer",
false);
options_.AddInt("rotation", "r",
"Window rotation(degree) [0(default)|90|180|270]", 0,
false);
#if defined(FLUTTER_TARGET_BACKEND_GBM) || \
defined(FLUTTER_TARGET_BACKEND_EGLSTREAM)
// no more options.
#elif defined(FLUTTER_TARGET_BACKEND_X11)
options_.AddWithoutValue("fullscreen", "f", "Always full-screen display",
false);
options_.AddInt("width", "w", "Flutter app window width", 1280, false);
options_.AddInt("height", "h", "Flutter app window height", 720, false);
options_.AddInt("width", "w", "Window width", 1280, false);
options_.AddInt("height", "h", "Window height", 720, false);
#else // FLUTTER_TARGET_BACKEND_WAYLAND
options_.AddWithoutValue("onscreen-keyboard", "k",
"Enable on-screen keyboard", false);
@@ -33,8 +36,8 @@ class FlutterEmbedderOptions {
"Enable window decorations", false);
options_.AddWithoutValue("fullscreen", "f", "Always full-screen display",
false);
options_.AddInt("width", "w", "Flutter app window width", 1280, false);
options_.AddInt("height", "h", "Flutter app window height", 720, false);
options_.AddInt("width", "w", "Window width", 1280, false);
options_.AddInt("height", "h", "Window height", 720, false);
#endif
}
~FlutterEmbedderOptions() = default;
@@ -48,6 +51,26 @@ class FlutterEmbedderOptions {
bundle_path_ = options_.GetValue<std::string>("bundle");
use_mouse_cursor_ = !options_.Exist("no-cursor");
if (options_.Exist("rotation")) {
switch (options_.GetValue<int>("rotation")) {
case 90:
window_view_rotation_ =
flutter::FlutterViewController::ViewRotation::kRotation_90;
break;
case 180:
window_view_rotation_ =
flutter::FlutterViewController::ViewRotation::kRotation_180;
break;
case 270:
window_view_rotation_ =
flutter::FlutterViewController::ViewRotation::kRotation_270;
break;
default:
window_view_rotation_ =
flutter::FlutterViewController::ViewRotation::kRotation_0;
break;
}
}
#if defined(FLUTTER_TARGET_BACKEND_GBM) || \
defined(FLUTTER_TARGET_BACKEND_EGLSTREAM)
@@ -86,6 +109,9 @@ class FlutterEmbedderOptions {
}
int WindowWidth() const { return window_width_; }
int WindowHeight() const { return window_height_; }
flutter::FlutterViewController::ViewRotation WindowRotation() const {
return window_view_rotation_;
}
private:
commandline::CommandOptions options_;
@@ -98,6 +124,8 @@ class FlutterEmbedderOptions {
flutter::FlutterViewController::ViewMode::kNormal;
int window_width_ = 1280;
int window_height_ = 720;
flutter::FlutterViewController::ViewRotation window_view_rotation_ =
flutter::FlutterViewController::ViewRotation::kRotation_0;
};
#endif // FLUTTER_EMBEDDER_OPTIONS_