-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from guchengxi1994/dev
v0.1.4
- Loading branch information
Showing
25 changed files
with
742 additions
and
111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_desktop/components/app_style.dart'; | ||
|
||
mixin DesktopContextMenuMixin { | ||
final ContextMenuController _contextMenuController = ContextMenuController(); | ||
Widget _buildContent(BuildContext context, Offset offset) { | ||
return AdaptiveTextSelectionToolbar( | ||
anchors: TextSelectionToolbarAnchors( | ||
primaryAnchor: offset, | ||
), | ||
children: | ||
_buildDesktopContextMenuItem(offset, MediaQuery.of(context).size), | ||
); | ||
} | ||
|
||
void showContextMenu(Offset position, BuildContext context) { | ||
_contextMenuController.show( | ||
context: context, | ||
contextMenuBuilder: (ctx) => _buildContent(ctx, position), | ||
); | ||
} | ||
|
||
void dismiss() { | ||
ContextMenuController.removeAny(); | ||
} | ||
|
||
final double _types = 1; | ||
|
||
List<Widget> _buildDesktopContextMenuItem(Offset position, Size size) { | ||
double dx = 0; | ||
double dy = 0; | ||
if ((position.dx - size.width).abs() < 250) { | ||
dx = -130; | ||
} else { | ||
dx = 220; | ||
} | ||
|
||
if ((position.dy - size.height).abs() < 200) { | ||
dy = -(_types * 40); | ||
} else { | ||
dy = -40; | ||
} | ||
|
||
return [ | ||
MenuItemButton( | ||
leadingIcon: const Icon( | ||
Icons.refresh, | ||
color: AppStyle.dark, | ||
), | ||
child: const Text("刷新"), | ||
onPressed: () { | ||
dismiss(); | ||
}, | ||
), | ||
const Divider( | ||
height: 1, | ||
color: AppStyle.grey, | ||
), | ||
MenuItemButton( | ||
leadingIcon: const Icon( | ||
Icons.skip_next, | ||
color: AppStyle.dark, | ||
), | ||
child: const Text("下一张壁纸"), | ||
onPressed: () { | ||
dismiss(); | ||
}), | ||
SubmenuButton( | ||
alignmentOffset: Offset(dx, dy), | ||
leadingIcon: const Icon( | ||
Icons.new_releases, | ||
color: AppStyle.dark, | ||
), | ||
trailingIcon: const Icon( | ||
Icons.chevron_right, | ||
color: AppStyle.dark, | ||
), | ||
menuChildren: [ | ||
MenuItemButton( | ||
leadingIcon: const Icon( | ||
Icons.code, | ||
color: AppStyle.dark, | ||
), | ||
child: const Text("新建代码文件"), | ||
onPressed: () { | ||
dismiss(); | ||
}, | ||
) | ||
], | ||
child: const Text("新建"), | ||
), | ||
]; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import 'package:flutter/material.dart'; | ||
import 'package:provider/provider.dart'; | ||
|
||
import '../applications/application_controller.dart'; | ||
import '../future_builder.dart'; | ||
import '../taskbar/taskbar_controller.dart'; | ||
import '../utils.dart'; | ||
import 'desktop_controller.dart'; | ||
import 'desktop_screen.dart' deferred as desktop; | ||
import 'package:flutter_desktop/components/login/login_screen.dart' | ||
deferred as login; | ||
|
||
class Desktop extends StatefulWidget { | ||
const Desktop({super.key}); | ||
|
||
@override | ||
State<Desktop> createState() => _DesktopState(); | ||
} | ||
|
||
class _DesktopState extends State<Desktop> with AutomaticKeepAliveClientMixin { | ||
List<Widget> pages = [ | ||
FutureLoaderWidget( | ||
builder: (context) => login.LoginScreen(), | ||
loadWidgetFuture: login.loadLibrary()), | ||
MultiProvider( | ||
providers: [ | ||
ChangeNotifierProvider(create: (_) => ApplicationController()), | ||
ChangeNotifierProvider(create: (_) => DesktopController()), | ||
ChangeNotifierProvider(create: (_) => TaskbarController()) | ||
], | ||
child: FutureLoaderWidget( | ||
builder: (context) => desktop.DesktopScreen(), | ||
loadWidgetFuture: desktop.loadLibrary()), | ||
) | ||
]; | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
super.build(context); | ||
return PageView( | ||
controller: PageNavigateController.controller, | ||
physics: const NeverScrollableScrollPhysics(), | ||
children: pages, | ||
); | ||
} | ||
|
||
@override | ||
bool get wantKeepAlive => true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.