diff options
Diffstat (limited to 'examples/org.eclipse.swt.snippets')
3 files changed, 158 insertions, 5 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet347.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet347.java index 19fe2cf8ae..1ea7a293a0 100644 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet347.java +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet347.java @@ -35,7 +35,7 @@ public class Snippet347 { final Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); - Menu appMenuBar = display.getAppMenuBar(); + Menu appMenuBar = display.getMenuBar(); if (appMenuBar == null) { appMenuBar = new Menu(shell, SWT.BAR); shell.setMenuBar(appMenuBar); diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet348.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet348.java index 8e322c134b..04d755ab8f 100644 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet348.java +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet348.java @@ -11,8 +11,8 @@ package org.eclipse.swt.snippets; /* - * Display snippet: slightly more complex example for getAppMenuBar() (compared to Snippet347) - * Shows how to write a more cross-platform multi-window application using getAppMenuBar(). + * Display snippet: slightly more complex example for Display.getMenuBar() (compared to Snippet347) + * Shows how to write a more cross-platform multi-window application using Display.getMenuBar(). * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ @@ -28,7 +28,7 @@ public class Snippet348 { static boolean createdScreenBar = false; static void createMenuBar(Shell s) { - Menu bar = Display.getCurrent().getAppMenuBar(); + Menu bar = Display.getCurrent().getMenuBar(); boolean hasAppMenuBar = (bar != null); if (bar == null) { bar = new Menu(s, SWT.BAR); @@ -86,7 +86,7 @@ public class Snippet348 { shell.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { Display d = Display.getCurrent(); - Menu bar = d.getAppMenuBar(); + Menu bar = d.getMenuBar(); boolean hasAppMenuBar = (bar != null); if (!hasAppMenuBar) { shell.getMenuBar().dispose(); diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet354.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet354.java new file mode 100644 index 0000000000..3a774c826b --- /dev/null +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet354.java @@ -0,0 +1,153 @@ +// +/******************************************************************************* + * Copyright (c) 2000, 2010 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +package org.eclipse.swt.snippets; + +import org.eclipse.swt.*; +import org.eclipse.swt.events.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.widgets.*; + +/* + * Display snippet: use the application system menu when available. + * + * For a list of all SWT example snippets see + * http://www.eclipse.org/swt/snippets/ + */ + +public class Snippet354 { + + static MenuItem getItem(Menu menu, int id) { + MenuItem[] items = menu.getItems(); + for (int i = 0; i < items.length; i++) { + if (items[i].getID() == id) return items[i]; + } + return null; + } + + public static void main(String[] args) { + final Display display = new Display(); + Shell shell = new Shell(display); + shell.setLayout(new GridLayout(1, false)); + + Menu appMenuBar = display.getMenuBar(); + if (appMenuBar == null) { + appMenuBar = new Menu(shell, SWT.BAR); + shell.setMenuBar(appMenuBar); + } + 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(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + display.dispose(); + }; + }); + + Listener keyDownFilter = new Listener() { + public void handleEvent(Event event) { + System.out.println("Key event!"); + } + + }; + display.addFilter(SWT.KeyDown, keyDownFilter); + display.addFilter(SWT.KeyUp, keyDownFilter); + + ArmListener armListener = new ArmListener() { + public void widgetArmed(ArmEvent e) { + System.out.println(e); + } + }; + + Menu systemMenu = display.getSystemMenu(); + if (systemMenu != null) { + systemMenu.addMenuListener(new MenuListener() { + public void menuHidden(MenuEvent e) { + System.out.println("App menu closed"); + } + + public void menuShown(MenuEvent e) { + System.out.println("App menu opened"); + } + }); + + MenuItem sysItem = getItem(systemMenu, SWT.ID_QUIT); + sysItem.addArmListener(armListener); + sysItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + System.out.println("Quit selected"); + }; + }); + sysItem = getItem(systemMenu, SWT.ID_HIDE_OTHERS); + sysItem.addArmListener(armListener); + sysItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + System.out.println("Hide others selected -- and blocked!"); + e.doit = false; + }; + }); + sysItem = getItem(systemMenu, SWT.ID_HIDE); + sysItem.addArmListener(armListener); + sysItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + System.out.println("Hide selected -- and blocked!"); + e.doit = false; + }; + }); + sysItem = getItem(systemMenu, SWT.ID_PREFERENCES); + sysItem.addArmListener(armListener); + sysItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + System.out.println("Preferences selected"); + }; + }); + sysItem = getItem(systemMenu, SWT.ID_ABOUT); + sysItem.addArmListener(armListener); + sysItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent 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(new SelectionAdapter() { + public void widgetSelected(SelectionEvent 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(); + } +}
\ No newline at end of file |