feat: responsive layout.
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
import 'package:dde_gesture_manager/models/content_layout.provider.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:dde_gesture_manager/constants/constants.dart';
|
||||
import 'package:dde_gesture_manager/extensions.dart';
|
||||
|
||||
class H {
|
||||
H._();
|
||||
@@ -14,4 +18,48 @@ class H {
|
||||
initSharedPreference() async {
|
||||
_sp = await SharedPreferences.getInstance();
|
||||
}
|
||||
|
||||
static void openPanel(BuildContext context, PanelType panelType) {
|
||||
var windowWidth = MediaQuery.of(context).size.width;
|
||||
if (windowWidth < minWindowSize.width + localManagerPanelWidth + marketPanelWidth) {
|
||||
context.read<ContentLayoutProvider>().setProps(
|
||||
localManagerOpened: panelType == PanelType.local_manager,
|
||||
marketOpened: panelType == PanelType.market,
|
||||
);
|
||||
} else {
|
||||
switch (panelType) {
|
||||
case PanelType.local_manager:
|
||||
return context.read<ContentLayoutProvider>().setProps(localManagerOpened: true);
|
||||
case PanelType.market:
|
||||
return context.read<ContentLayoutProvider>().setProps(marketOpened: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static PreferredPanelsStatus getPreferredPanelsStatus(double windowWidth) {
|
||||
var preferredPanelsStatus = PreferredPanelsStatus(localManagerPanelOpened: true, marketPanelOpened: true);
|
||||
if (windowWidth > minWindowSize.width + localManagerPanelWidth + marketPanelWidth)
|
||||
return preferredPanelsStatus;
|
||||
else if (windowWidth < minWindowSize.width + localManagerPanelWidth)
|
||||
return preferredPanelsStatus
|
||||
..marketPanelOpened = false
|
||||
..localManagerPanelOpened = false;
|
||||
else
|
||||
return preferredPanelsStatus..marketPanelOpened = false;
|
||||
}
|
||||
}
|
||||
|
||||
class PreferredPanelsStatus {
|
||||
bool localManagerPanelOpened;
|
||||
bool marketPanelOpened;
|
||||
|
||||
PreferredPanelsStatus({
|
||||
required this.localManagerPanelOpened,
|
||||
required this.marketPanelOpened,
|
||||
});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'PreferredPanelsStatus{localManagerPanelOpened: $localManagerPanelOpened, marketPanelOpened: $marketPanelOpened}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:dde_gesture_manager/constants/constants.dart';
|
||||
import 'package:dde_gesture_manager/constants/sp_keys.dart';
|
||||
import 'package:dde_gesture_manager/constants/supported_locales.dart';
|
||||
import 'package:dde_gesture_manager/extensions.dart';
|
||||
@@ -40,7 +41,7 @@ Future<void> initConfigs() async {
|
||||
var userLanguageIndex = H().sp.getInt(SPKeys.userLanguage) ?? 0;
|
||||
var locale = supportedLocales[userLanguageIndex];
|
||||
windowManager.setTitle(CodegenLoader.mapLocales[locale.toString()]?[LocaleKeys.app_name]);
|
||||
windowManager.setMinimumSize(const Size(800, 600));
|
||||
windowManager.setMinimumSize(minWindowSize);
|
||||
}
|
||||
|
||||
var windowManager = WindowManager.instance;
|
||||
|
||||
Reference in New Issue
Block a user