board_toolbar.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:app_flowy/plugins/grid/application/field/field_controller.dart';
  2. import 'package:flowy_infra/image.dart';
  3. import 'package:flowy_infra/theme.dart';
  4. import 'package:flowy_infra_ui/style_widget/icon_button.dart';
  5. import 'package:flutter/widgets.dart';
  6. import 'package:provider/provider.dart';
  7. import 'board_setting.dart';
  8. class BoardToolbarContext {
  9. final String viewId;
  10. final GridFieldController fieldController;
  11. BoardToolbarContext({
  12. required this.viewId,
  13. required this.fieldController,
  14. });
  15. }
  16. class BoardToolbar extends StatelessWidget {
  17. final BoardToolbarContext toolbarContext;
  18. const BoardToolbar({
  19. required this.toolbarContext,
  20. Key? key,
  21. }) : super(key: key);
  22. @override
  23. Widget build(BuildContext context) {
  24. return SizedBox(
  25. height: 40,
  26. child: Row(
  27. children: [
  28. _SettingButton(
  29. settingContext: BoardSettingContext.from(toolbarContext),
  30. ),
  31. ],
  32. ),
  33. );
  34. }
  35. }
  36. class _SettingButton extends StatelessWidget {
  37. final BoardSettingContext settingContext;
  38. const _SettingButton({required this.settingContext, Key? key})
  39. : super(key: key);
  40. @override
  41. Widget build(BuildContext context) {
  42. final theme = context.read<AppTheme>();
  43. return FlowyIconButton(
  44. hoverColor: theme.hover,
  45. width: 22,
  46. onPressed: () => BoardSettingList.show(context, settingContext),
  47. icon: Padding(
  48. padding: const EdgeInsets.symmetric(vertical: 3.0, horizontal: 3.0),
  49. child: svgWidget("grid/setting/setting"),
  50. ),
  51. );
  52. }
  53. }