Example usage for org.eclipse.swt.widgets Display getSystemMenu

List of usage examples for org.eclipse.swt.widgets Display getSystemMenu

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Display getSystemMenu.

Prototype

public Menu getSystemMenu() 

Source Link

Document

Returns the single instance of the system-provided menu for the application.

Usage

From source file:org.eclipse.swt.snippets.Snippet354.java

public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 354");
    shell.setLayout(new GridLayout(1, false));

    Menu appMenuBar = display.getMenuBar();
    if (appMenuBar == null) {
        appMenuBar = new Menu(shell, SWT.BAR);
        shell.setMenuBar(appMenuBar);/*from ww w.  j  a  v  a  2s .c  o m*/
    }
    MenuItem file = new MenuItem(appMenuBar, SWT.CASCADE);
    file.setText("File");
    Menu dropdown = new Menu(appMenuBar);
    file.setMenu(dropdown);
    MenuItem exit = new MenuItem(dropdown, SWT.PUSH);
    exit.setText("Exit");
    exit.addSelectionListener(widgetSelectedAdapter(e -> display.dispose()));

    Listener keyDownFilter = event -> System.out.println("Key event!");
    display.addFilter(SWT.KeyDown, keyDownFilter);
    display.addFilter(SWT.KeyUp, keyDownFilter);

    ArmListener armListener = e -> System.out.println(e);

    Menu systemMenu = display.getSystemMenu();
    if (systemMenu != null) {
        systemMenu.addMenuListener(new MenuListener() {
            @Override
            public void menuHidden(MenuEvent e) {
                System.out.println("App menu closed");
            }

            @Override
            public void menuShown(MenuEvent e) {
                System.out.println("App menu opened");
            }
        });

        MenuItem sysItem = getItem(systemMenu, SWT.ID_QUIT);
        sysItem.addArmListener(armListener);
        sysItem.addSelectionListener(widgetSelectedAdapter(e -> System.out.println("Quit selected")));
        sysItem = getItem(systemMenu, SWT.ID_HIDE_OTHERS);
        sysItem.addArmListener(armListener);
        sysItem.addSelectionListener(widgetSelectedAdapter(e -> {
            System.out.println("Hide others selected -- and blocked!");
            e.doit = false;
        }));
        sysItem = getItem(systemMenu, SWT.ID_HIDE);
        sysItem.addArmListener(armListener);
        sysItem.addSelectionListener(widgetSelectedAdapter(e -> {
            System.out.println("Hide selected -- and blocked!");
            e.doit = false;
        }));
        sysItem = getItem(systemMenu, SWT.ID_PREFERENCES);
        sysItem.addArmListener(armListener);
        sysItem.addSelectionListener(widgetSelectedAdapter(e -> System.out.println("Preferences selected")));
        sysItem = getItem(systemMenu, SWT.ID_ABOUT);
        sysItem.addArmListener(armListener);
        sysItem.addSelectionListener(widgetSelectedAdapter(e -> System.out.println("About selected")));

        int prefsIndex = systemMenu.indexOf(getItem(systemMenu, SWT.ID_PREFERENCES));
        MenuItem newAppMenuItem = new MenuItem(systemMenu, SWT.CASCADE, prefsIndex + 1);
        newAppMenuItem.setText("SWT-added item");
        newAppMenuItem.setAccelerator(SWT.MOD1 | 'i');
        newAppMenuItem.addArmListener(armListener);
        newAppMenuItem.addSelectionListener(
                widgetSelectedAdapter(e -> System.out.println("SWT-added item selected")));
        Menu subMenu = new Menu(systemMenu);

        for (int i = 0; i < 4; i++) {
            MenuItem subItem = new MenuItem(subMenu, SWT.PUSH);
            subItem.setText("Item " + i);
        }
        newAppMenuItem.setMenu(subMenu);
    }
    Button b = new Button(shell, SWT.PUSH);
    b.setText("Test");
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}