native_context_menu 0.2.2+5 copy "native_context_menu: ^0.2.2+5" to clipboard
native_context_menu: ^0.2.2+5 copied to clipboard

Provides a native context menu for flutter applications. Most useful on desktop.

example/lib/main.dart

import 'package:flutter/material.dart' hide MenuItem;
import 'package:native_context_menu/native_context_menu.dart';
import 'package:window_manager/window_manager.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await windowManager.ensureInitialized();

  runApp(const App());
}

class App extends StatefulWidget {
  const App({Key? key}) : super(key: key);

  @override
  State<App> createState() => _AppState();
}

class _AppState extends State<App> {
  String? action;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: ContextMenuRegion(
          onDismissed: () => setState(() => action = 'Menu was dismissed'),
          onItemSelected: (item) => setState(() {
            action = '${item.title} was selected';
          }),
          menuItems: [
            MenuItem(title: 'First item'),
            MenuItem(title: 'Second item'),
            MenuItem(
              title: 'Third item with submenu',
              items: [
                MenuItem(title: 'First subitem'),
                MenuItem(title: 'Second subitem'),
                MenuItem(title: 'Third subitem'),
              ],
            ),
            MenuItem(title: 'Fourth item'),
          ],
          child: Card(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              mainAxisSize: MainAxisSize.max,
              children: [
                DragToMoveArea(
                  child: Container(
                    width: 300,
                    height: 52,
                    alignment: Alignment.center,
                    margin: const EdgeInsets.all(20),
                    color: Colors.grey.withOpacity(0.3),
                    child: const Text('Drag to move window'),
                  ),
                ),
                Row(
                  mainAxisSize: MainAxisSize.min,
                  children: [
                    const Text('TitleBarStyle: '),
                    TextButton(
                      onPressed: () {
                        windowManager.setTitleBarStyle('default');
                      },
                      child: const Text('default'),
                    ),
                    TextButton(
                      onPressed: () {
                        windowManager.setTitleBarStyle('hidden');
                      },
                      child: const Text('hidden'),
                    ),
                  ],
                ),
                Expanded(
                  child: Center(
                    child: Text(action ?? 'Right click me'),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
104
likes
130
pub points
80%
popularity

Publisher

verified publisherlesnitsky.dev

Provides a native context menu for flutter applications. Most useful on desktop.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on native_context_menu