v4
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
export 'toly_ui/toly_ui.dart';
|
||||
export 'windows/window_buttons.dart';
|
||||
export 'windows/window_buttons.dart';
|
||||
export 'windows/drag_to_move_area.dart';
|
||||
45
lib/components/toly_ui/button/hover_icon_button.dart
Normal file
45
lib/components/toly_ui/button/hover_icon_button.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class HoverIconButton extends StatefulWidget {
|
||||
final VoidCallback onPressed;
|
||||
final IconData icon;
|
||||
final double size;
|
||||
final Color? hoverColor;
|
||||
final Color? defaultColor;
|
||||
const HoverIconButton({super.key,required this.onPressed ,required this.icon,this.hoverColor,this.size=24,this.defaultColor});
|
||||
|
||||
@override
|
||||
State<HoverIconButton> createState() => _HoverIconButtonState();
|
||||
}
|
||||
|
||||
class _HoverIconButtonState extends State<HoverIconButton> {
|
||||
|
||||
bool _hover = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Color? color = (_hover)?widget.hoverColor??Theme.of(context).primaryColor:(widget.defaultColor??null);
|
||||
|
||||
return MouseRegion(
|
||||
cursor: SystemMouseCursors.click,
|
||||
onEnter: _onEnter,
|
||||
onExit: _onExit,
|
||||
child: GestureDetector(
|
||||
onTap: widget.onPressed,
|
||||
child: Icon(widget.icon,size: widget.size,color: color,)),
|
||||
);
|
||||
}
|
||||
|
||||
void _onEnter(PointerEnterEvent event) {
|
||||
setState(() {
|
||||
_hover = true;
|
||||
});
|
||||
}
|
||||
|
||||
void _onExit(PointerExitEvent event) {
|
||||
setState(() {
|
||||
_hover = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -95,10 +95,3 @@ class BreadcrumbItem {
|
||||
|
||||
BreadcrumbItem( {this.to, required this.label,this.active=false,});
|
||||
}
|
||||
|
||||
//<el-breadcrumb separator="/">
|
||||
// <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
||||
// <el-breadcrumb-item><a href="/">活动管理</a></el-breadcrumb-item>
|
||||
// <el-breadcrumb-item>活动列表</el-breadcrumb-item>
|
||||
// <el-breadcrumb-item>活动详情</el-breadcrumb-item>
|
||||
// </el-breadcrumb>
|
||||
|
||||
@@ -2,37 +2,20 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'menu_meta.dart';
|
||||
|
||||
// final List<NavigationRailDestination> destinations = const [
|
||||
// NavigationRailDestination(icon: Icon(Icons.color_lens_outlined), label: Text("颜色板")),
|
||||
// NavigationRailDestination(icon: Icon(Icons.add_chart), label: Text("计数器")),
|
||||
// NavigationRailDestination(icon: Icon(Icons.person), label: Text("我的")),
|
||||
// NavigationRailDestination(icon: Icon(Icons.settings), label: Text("设置")),
|
||||
// ];
|
||||
|
||||
const List<MenuMeta> kDeskNavBarMenus = [
|
||||
MenuMeta(label: '颜色板', icon: Icons.color_lens_outlined),
|
||||
MenuMeta(
|
||||
label: '计数器',
|
||||
icon: Icons.add_chart,
|
||||
),
|
||||
MenuMeta(
|
||||
label: '我的',
|
||||
icon: Icons.person,
|
||||
),
|
||||
MenuMeta(label: '设置', icon: Icons.settings),
|
||||
];
|
||||
|
||||
class TolyNavigationRail extends StatelessWidget {
|
||||
final ValueChanged<int> onDestinationSelected;
|
||||
final Color backgroundColor;
|
||||
final int? selectedIndex;
|
||||
final Widget? leading;
|
||||
|
||||
final Widget? tail;
|
||||
final List<MenuMeta> items;
|
||||
const TolyNavigationRail({
|
||||
Key? key,
|
||||
required this.onDestinationSelected,
|
||||
required this.selectedIndex,
|
||||
required this.items,
|
||||
this.leading,
|
||||
this.tail,
|
||||
required this.backgroundColor,
|
||||
}) : super(key: key);
|
||||
|
||||
@@ -46,11 +29,11 @@ class TolyNavigationRail extends StatelessWidget {
|
||||
if(leading!=null) leading!,
|
||||
Expanded(
|
||||
child: LeftNavigationMenu(
|
||||
items: kDeskNavBarMenus,
|
||||
items: items,
|
||||
selectedIndex: selectedIndex,
|
||||
onTapItem: onDestinationSelected,
|
||||
)),
|
||||
// if (selectedIndex == 0) HelpButton()
|
||||
if(tail!=null) tail!,
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
22
lib/components/windows/drag_to_move_area.dart
Normal file
22
lib/components/windows/drag_to_move_area.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
class DragToMoveWrap extends StatelessWidget {
|
||||
final Widget child;
|
||||
|
||||
const DragToMoveWrap({
|
||||
Key? key,
|
||||
required this.child,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
behavior: HitTestBehavior.translucent,
|
||||
onPanStart: (details) {
|
||||
windowManager.startDragging();
|
||||
},
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user