Skip to content

A Flutter plugin that provides access to macOS menu bar actions, allowing Flutter applications to handle standard menu items like Cut, Copy, Paste, and Select All.

License

Notifications You must be signed in to change notification settings

DeTuksa/mac_menu_bar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mac Menu Bar Plugin for Flutter

pub package License: MIT

A Flutter plugin that provides access to macOS menu bar actions, allowing Flutter applications to handle standard menu items like Cut, Copy, Paste, and Select All.

Features

  • Intercept and handle standard macOS menu bar actions
  • Support for Cut, Copy, Paste, and Select All menu items
  • Fallback to default system behavior when actions aren't handled
  • Clean and simple API for handling menu actions

Installation

Add mac_menu_bar to your pubspec.yaml file:

dependencies:
  mac_menu_bar: ^1.0.0

Then run flutter pub get to install the package.

Usage

Basic Setup

Import the package in your Dart code:

import 'package:mac_menu_bar/mac_menu_bar.dart';

Handling Menu Actions

Set up handlers for the menu actions in your app's initialization:

@override
void initState() {
  super.initState();
  
  // Handle Cut menu item
  MacMenuBar.onCut(() async {
    debugPrint('Cut menu item selected');
    // Implement your cut logic here
    return true; // Return true to indicate the action was handled
  });

  // Handle Copy menu item
  MacMenuBar.onCopy(() async {
    debugPrint('Copy menu item selected');
    // Implement your copy logic here
    return true;
  });

  // Handle Paste menu item
  MacMenuBar.onPaste(() async {
    debugPrint('Paste menu item selected');
    // Implement your paste logic here
    return true;
  });

  // Handle Select All menu item
  MacMenuBar.onSelectAll(() async {
    debugPrint('Select All menu item selected');
    // Implement your select all logic here
    return true;
  });
}

Handling Menu Actions Selectively

Return false from a handler to let the system handle the action:

MacMenuBar.onPaste(() async {
  if (shouldHandlePaste) {
    // Handle paste operation
    return true;
  }
  // Let the system handle the paste operation
  return false;
});

Platform Support

This plugin is only supported on macOS. It will have no effect on other platforms.

Example

For a complete example, see the example directory in this repository.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A Flutter plugin that provides access to macOS menu bar actions, allowing Flutter applications to handle standard menu items like Cut, Copy, Paste, and Select All.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published