diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java | 790 |
1 files changed, 395 insertions, 395 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java index fab7f3a7db..357ea3c399 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java @@ -1,18 +1,18 @@ -package org.eclipse.swt.widgets;
-
-/*
+package org.eclipse.swt.widgets; + +/* * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. * This file is made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.internal.*;
-import org.eclipse.swt.internal.gtk.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-
+ * http://www.eclipse.org/legal/cpl-v10.html + */ + +import org.eclipse.swt.internal.*; +import org.eclipse.swt.internal.gtk.*; +import org.eclipse.swt.*; +import org.eclipse.swt.events.*; +import org.eclipse.swt.graphics.*; + /** * Instances of this class are user interface objects that contain * menu items. @@ -28,13 +28,13 @@ import org.eclipse.swt.graphics.*; * IMPORTANT: This class is <em>not</em> intended to be subclassed. * </p> */ -public class Menu extends Widget {
- int x, y;
- boolean hasLocation;
- MenuItem cascade, selectedItem;
- Decorations parent;
- int imItem, imSeparator, imHandle;
-
+public class Menu extends Widget { + int x, y; + boolean hasLocation; + MenuItem cascade, selectedItem; + Decorations parent; + int imItem, imSeparator, imHandle; + /** * Constructs a new instance of this class given its parent, * and sets the style for the instance so that the instance @@ -54,10 +54,10 @@ public class Menu extends Widget { * @see Widget#checkSubclass * @see Widget#getStyle */ -public Menu (Control parent) {
- this (parent.getShell (), SWT.POP_UP);
-}
-
+public Menu (Control parent) { + this (parent.getShell (), SWT.POP_UP); +} + /** * Constructs a new instance of this class given its parent * (which must be a <code>Decorations</code>) and a style value @@ -89,12 +89,12 @@ public Menu (Control parent) { * @see Widget#checkSubclass * @see Widget#getStyle */ -public Menu (Decorations parent, int style) {
- super (parent, checkStyle (style));
- this.parent = parent;
- createWidget (0);
-}
-
+public Menu (Decorations parent, int style) { + super (parent, checkStyle (style)); + this.parent = parent; + createWidget (0); +} + /** * Constructs a new instance of this class given its parent * (which must be a <code>Menu</code>) and sets the style @@ -115,10 +115,10 @@ public Menu (Decorations parent, int style) { * @see Widget#checkSubclass * @see Widget#getStyle */ -public Menu (Menu parentMenu) {
- this (parentMenu.parent, SWT.DROP_DOWN);
-}
-
+public Menu (Menu parentMenu) { + this (parentMenu.parent, SWT.DROP_DOWN); +} + /** * Constructs a new instance of this class given its parent * (which must be a <code>MenuItem</code>) and sets the style @@ -139,22 +139,22 @@ public Menu (Menu parentMenu) { * @see Widget#checkSubclass * @see Widget#getStyle */ -public Menu (MenuItem parentItem) {
- this (parentItem.parent);
-}
-
-static int checkStyle (int style) {
- return checkBits (style, SWT.POP_UP, SWT.BAR, SWT.DROP_DOWN, 0, 0, 0);
-}
-
-void addAccelerators (int accelGroup) {
- MenuItem [] items = getItems ();
+public Menu (MenuItem parentItem) { + this (parentItem.parent); +} + +static int checkStyle (int style) { + return checkBits (style, SWT.POP_UP, SWT.BAR, SWT.DROP_DOWN, 0, 0, 0); +} + +void addAccelerators (int accelGroup) { + MenuItem [] items = getItems (); for (int i = 0; i < items.length; i++) { MenuItem item = items[i]; item.addAccelerators (accelGroup); - }
-}
-
+ } +} + /** * Adds the listener to the collection of listeners who will * be notified when menus are hidden or shown, by sending it @@ -174,14 +174,14 @@ void addAccelerators (int accelGroup) { * @see MenuListener * @see #removeMenuListener */ -public void addMenuListener (MenuListener listener) {
- checkWidget();
- if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- TypedListener typedListener = new TypedListener (listener);
- addListener (SWT.Hide,typedListener);
- addListener (SWT.Show,typedListener);
-}
-
+public void addMenuListener (MenuListener listener) { + checkWidget(); + if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + TypedListener typedListener = new TypedListener (listener); + addListener (SWT.Hide,typedListener); + addListener (SWT.Show,typedListener); +} + /** * Adds the listener to the collection of listeners who will * be notified when help events are generated for the control, @@ -201,62 +201,62 @@ public void addMenuListener (MenuListener listener) { * @see HelpListener * @see #removeHelpListener */ -public void addHelpListener (HelpListener listener) {
- checkWidget();
- if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- TypedListener typedListener = new TypedListener (listener);
- addListener (SWT.Help, typedListener);
-}
-
-void createHandle (int index) {
- state |= HANDLE;
- if ((style & SWT.BAR) != 0) {
- handle = OS.gtk_menu_bar_new ();
- if (handle == 0) error (SWT.ERROR_NO_HANDLES);
- int parentHandle = parent.fixedHandle;
- OS.gtk_container_add (parentHandle, handle);
- } else {
- handle = OS.gtk_menu_new ();
- if (handle == 0) error (SWT.ERROR_NO_HANDLES);
- }
-}
-
-void createIMMenu (int imHandle) {
- if (this.imHandle == imHandle) return;
- this.imHandle = imHandle;
- if (imHandle == 0) {
- if (imItem != 0) {
- OS.gtk_widget_destroy (imItem);
- imItem = 0;
- }
- if (imSeparator != 0) {
- OS.gtk_widget_destroy (imSeparator);
- imSeparator = 0;
- }
- return;
- }
- if (imSeparator == 0) {
- imSeparator = OS.gtk_separator_menu_item_new ();
- OS.gtk_widget_show (imSeparator);
- OS.gtk_menu_shell_insert (handle, imSeparator, -1);
- }
- if (imItem == 0) {
- byte[] buffer = Converter.wcsToMbcs (null, SWT.getMessage("SWT_InputMethods"), true);
- imItem = OS.gtk_image_menu_item_new_with_label (buffer);
- OS.gtk_widget_show (imItem);
- OS.gtk_menu_shell_insert (handle, imItem, -1);
- }
- int imSubmenu = OS.gtk_menu_new ();
- OS.gtk_im_multicontext_append_menuitems (imHandle, imSubmenu);
- OS.gtk_menu_item_set_submenu (imItem, imSubmenu);
-}
-
-void createWidget (int index) {
- checkOrientation (parent);
- super.createWidget (index);
- parent.add (this);
-}
-
+public void addHelpListener (HelpListener listener) { + checkWidget(); + if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + TypedListener typedListener = new TypedListener (listener); + addListener (SWT.Help, typedListener); +} + +void createHandle (int index) { + state |= HANDLE; + if ((style & SWT.BAR) != 0) { + handle = OS.gtk_menu_bar_new (); + if (handle == 0) error (SWT.ERROR_NO_HANDLES); + int parentHandle = parent.fixedHandle; + OS.gtk_container_add (parentHandle, handle); + } else { + handle = OS.gtk_menu_new (); + if (handle == 0) error (SWT.ERROR_NO_HANDLES); + } +} + +void createIMMenu (int imHandle) { + if (this.imHandle == imHandle) return; + this.imHandle = imHandle; + if (imHandle == 0) { + if (imItem != 0) { + OS.gtk_widget_destroy (imItem); + imItem = 0; + } + if (imSeparator != 0) { + OS.gtk_widget_destroy (imSeparator); + imSeparator = 0; + } + return; + } + if (imSeparator == 0) { + imSeparator = OS.gtk_separator_menu_item_new (); + OS.gtk_widget_show (imSeparator); + OS.gtk_menu_shell_insert (handle, imSeparator, -1); + } + if (imItem == 0) { + byte[] buffer = Converter.wcsToMbcs (null, SWT.getMessage("SWT_InputMethods"), true); + imItem = OS.gtk_image_menu_item_new_with_label (buffer); + OS.gtk_widget_show (imItem); + OS.gtk_menu_shell_insert (handle, imItem, -1); + } + int imSubmenu = OS.gtk_menu_new (); + OS.gtk_im_multicontext_append_menuitems (imHandle, imSubmenu); + OS.gtk_menu_item_set_submenu (imItem, imSubmenu); +} + +void createWidget (int index) { + checkOrientation (parent); + super.createWidget (index); + parent.add (this); +} + /** * Returns the default menu item or null if none has * been previously set. @@ -269,17 +269,17 @@ void createWidget (int index) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public MenuItem getDefaultItem () {
- checkWidget();
- return null;
-}
-
-public Display getDisplay () {
- Decorations parent = this.parent;
- if (parent == null) error (SWT.ERROR_WIDGET_DISPOSED);
- return parent.getDisplay ();
-}
-
+public MenuItem getDefaultItem () { + checkWidget(); + return null; +} + +public Display getDisplay () { + Decorations parent = this.parent; + if (parent == null) error (SWT.ERROR_WIDGET_DISPOSED); + return parent.getDisplay (); +} + /** * Returns <code>true</code> if the receiver is enabled, and * <code>false</code> otherwise. A disabled control is typically @@ -293,11 +293,11 @@ public Display getDisplay () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean getEnabled () {
- checkWidget();
- return OS.GTK_WIDGET_SENSITIVE (handle);
-}
-
+public boolean getEnabled () { + checkWidget(); + return OS.GTK_WIDGET_SENSITIVE (handle); +} + /** * Returns the item at the given, zero-relative index in the * receiver. Throws an exception if the index is out of range. @@ -313,20 +313,20 @@ public boolean getEnabled () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public MenuItem getItem (int index) {
- checkWidget();
- int list = OS.gtk_container_get_children (handle);
- if (list == 0) error (SWT.ERROR_CANNOT_GET_ITEM);
- int count = OS.g_list_length (list);
- if (imSeparator != 0) count--;
- if (imItem != 0) count--;
- if (!(0 <= index && index < count)) error (SWT.ERROR_INVALID_RANGE);
- int data = OS.g_list_nth_data (list, index);
- OS.g_list_free (list);
- if (data == 0) error (SWT.ERROR_CANNOT_GET_ITEM);
- return (MenuItem) WidgetTable.get (data);
-}
-
+public MenuItem getItem (int index) { + checkWidget(); + int list = OS.gtk_container_get_children (handle); + if (list == 0) error (SWT.ERROR_CANNOT_GET_ITEM); + int count = OS.g_list_length (list); + if (imSeparator != 0) count--; + if (imItem != 0) count--; + if (!(0 <= index && index < count)) error (SWT.ERROR_INVALID_RANGE); + int data = OS.g_list_nth_data (list, index); + OS.g_list_free (list); + if (data == 0) error (SWT.ERROR_CANNOT_GET_ITEM); + return (MenuItem) WidgetTable.get (data); +} + /** * Returns the number of items contained in the receiver. * @@ -337,17 +337,17 @@ public MenuItem getItem (int index) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public int getItemCount () {
- checkWidget();
- int list = OS.gtk_container_get_children (handle);
- if (list == 0) return 0;
- int count = OS.g_list_length (list);
- OS.g_list_free (list);
- if (imSeparator != 0) count--;
- if (imItem != 0) count--;
- return count;
-}
-
+public int getItemCount () { + checkWidget(); + int list = OS.gtk_container_get_children (handle); + if (list == 0) return 0; + int count = OS.g_list_length (list); + OS.g_list_free (list); + if (imSeparator != 0) count--; + if (imItem != 0) count--; + return count; +} + /** * Returns an array of <code>MenuItem</code>s which are the items * in the receiver. @@ -364,35 +364,35 @@ public int getItemCount () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public MenuItem [] getItems () {
- checkWidget();
- int list = OS.gtk_container_get_children (handle);
- if (list == 0) return new MenuItem [0];
- int count = OS.g_list_length (list);
- if (imSeparator != 0) count--;
- if (imItem != 0) count--;
- MenuItem [] items = new MenuItem [count];
- for (int i=0; i<count; i++) {
- int data = OS.g_list_nth_data (list, i);
- items [i] = (MenuItem) WidgetTable.get (data);
- }
- OS.g_list_free (list);
- return items;
-}
-
-String getNameText () {
- String result = "";
- MenuItem [] items = getItems ();
- int length = items.length;
- if (length > 0) {
- for (int i=0; i<length-1; i++) {
- result = result + items [i].getNameText() + ", ";
- }
- result = result + items [length-1].getNameText ();
- }
- return result;
-}
-
+public MenuItem [] getItems () { + checkWidget(); + int list = OS.gtk_container_get_children (handle); + if (list == 0) return new MenuItem [0]; + int count = OS.g_list_length (list); + if (imSeparator != 0) count--; + if (imItem != 0) count--; + MenuItem [] items = new MenuItem [count]; + for (int i=0; i<count; i++) { + int data = OS.g_list_nth_data (list, i); + items [i] = (MenuItem) WidgetTable.get (data); + } + OS.g_list_free (list); + return items; +} + +String getNameText () { + String result = ""; + MenuItem [] items = getItems (); + int length = items.length; + if (length > 0) { + for (int i=0; i<length-1; i++) { + result = result + items [i].getNameText() + ", "; + } + result = result + items [length-1].getNameText (); + } + return result; +} + /** * Returns the receiver's parent, which must be a <code>Decorations</code>. * @@ -403,11 +403,11 @@ String getNameText () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public Decorations getParent () {
- checkWidget();
- return parent;
-}
-
+public Decorations getParent () { + checkWidget(); + return parent; +} + /** * Returns the receiver's parent item, which must be a * <code>MenuItem</code> or null when the receiver is a @@ -420,11 +420,11 @@ public Decorations getParent () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public MenuItem getParentItem () {
- checkWidget();
- return cascade;
-}
-
+public MenuItem getParentItem () { + checkWidget(); + return cascade; +} + /** * Returns the receiver's parent item, which must be a * <code>Menu</code> or null when the receiver is a @@ -437,12 +437,12 @@ public MenuItem getParentItem () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public Menu getParentMenu () {
- checkWidget();
- if (cascade == null) return null;
- return cascade.getParent ();
-}
-
+public Menu getParentMenu () { + checkWidget(); + if (cascade == null) return null; + return cascade.getParent (); +} + /** * Returns the receiver's shell. For all controls other than * shells, this simply returns the control's nearest ancestor @@ -458,11 +458,11 @@ public Menu getParentMenu () { * * @see #getParent */ -public Shell getShell () {
- checkWidget();
- return parent.getShell ();
-}
-
+public Shell getShell () { + checkWidget(); + return parent.getShell (); +} + /** * Returns <code>true</code> if the receiver is visible, and * <code>false</code> otherwise. @@ -480,43 +480,43 @@ public Shell getShell () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean getVisible () {
- checkWidget();
- return OS.GTK_WIDGET_MAPPED (handle);
-}
-
-int GtkMenuPositionFunc (int menu, int x, int y, int push_in, int user_data) {
- if (x != 0) OS.memmove (x, new int [] {this.x}, 4);
- if (y != 0) OS.memmove (y, new int [] {this.y}, 4);
- return 0;
-}
-
-int gtk_hide (int widget) {
- sendEvent (SWT.Hide);
- return 0;
-}
-
-int gtk_show (int widget) {
- if ((style & SWT.POP_UP) != 0) return 0;
- sendEvent (SWT.Show);
- return 0;
-}
-
-int gtk_show_help (int widget, int helpType) {
- if (sendHelpEvent (helpType)) OS.gtk_menu_shell_deactivate (handle);
- return 0;
-}
-
-void hookEvents () {
- super.hookEvents ();
- Display display = getDisplay ();
- int windowProc2 = display.windowProc2;
- int windowProc3 = display.windowProc3;
- OS.g_signal_connect (handle, OS.show, windowProc2, SHOW);
- OS.g_signal_connect (handle, OS.hide, windowProc2, HIDE);
- OS.g_signal_connect (handle, OS.show_help, windowProc3, SHOW_HELP);
-}
-
+public boolean getVisible () { + checkWidget(); + return OS.GTK_WIDGET_MAPPED (handle); +} + +int GtkMenuPositionFunc (int menu, int x, int y, int push_in, int user_data) { + if (x != 0) OS.memmove (x, new int [] {this.x}, 4); + if (y != 0) OS.memmove (y, new int [] {this.y}, 4); + return 0; +} + +int gtk_hide (int widget) { + sendEvent (SWT.Hide); + return 0; +} + +int gtk_show (int widget) { + if ((style & SWT.POP_UP) != 0) return 0; + sendEvent (SWT.Show); + return 0; +} + +int gtk_show_help (int widget, int helpType) { + if (sendHelpEvent (helpType)) OS.gtk_menu_shell_deactivate (handle); + return 0; +} + +void hookEvents () { + super.hookEvents (); + Display display = getDisplay (); + int windowProc2 = display.windowProc2; + int windowProc3 = display.windowProc3; + OS.g_signal_connect (handle, OS.show, windowProc2, SHOW); + OS.g_signal_connect (handle, OS.hide, windowProc2, HIDE); + OS.g_signal_connect (handle, OS.show_help, windowProc3, SHOW_HELP); +} + /** * Searches the receiver's list starting at the first item * (index 0) until an item is found that is equal to the @@ -534,78 +534,78 @@ void hookEvents () { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public int indexOf (MenuItem item) {
- checkWidget();
- if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
- MenuItem [] items = getItems ();
- for (int i=0; i<items.length; i++) {
- if (items [i] == item) return i;
- }
- return -1;
-}
-
-/**
- * Returns <code>true</code> if the receiver is enabled and all
- * of the receiver's ancestors are enabled, and <code>false</code>
- * otherwise. A disabled control is typically not selectable from the
- * user interface and draws with an inactive or "grayed" look.
- *
- * @return the receiver's enabled state
- *
- * @exception SWTException <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #getEnabled
+public int indexOf (MenuItem item) { + checkWidget(); + if (item == null) error (SWT.ERROR_NULL_ARGUMENT); + MenuItem [] items = getItems (); + for (int i=0; i<items.length; i++) { + if (items [i] == item) return i; + } + return -1; +} + +/** + * Returns <code>true</code> if the receiver is enabled and all + * of the receiver's ancestors are enabled, and <code>false</code> + * otherwise. A disabled control is typically not selectable from the + * user interface and draws with an inactive or "grayed" look. + * + * @return the receiver's enabled state + * + * @exception SWTException <ul> + * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> + * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> + * </ul> + * + * @see #getEnabled */ -public boolean isEnabled () {
- checkWidget();
- Menu parentMenu = getParentMenu ();
- if (parentMenu == null) return getEnabled ();
- return getEnabled () && parentMenu.isEnabled ();
-}
-
-/**
- * Returns <code>true</code> if the receiver is visible and all
- * of the receiver's ancestors are visible and <code>false</code>
- * otherwise.
- *
- * @return the receiver's visibility state
- *
- * @exception SWTException <ul>
- * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #getVisible
+public boolean isEnabled () { + checkWidget(); + Menu parentMenu = getParentMenu (); + if (parentMenu == null) return getEnabled (); + return getEnabled () && parentMenu.isEnabled (); +} + +/** + * Returns <code>true</code> if the receiver is visible and all + * of the receiver's ancestors are visible and <code>false</code> + * otherwise. + * + * @return the receiver's visibility state + * + * @exception SWTException <ul> + * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> + * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> + * </ul> + * + * @see #getVisible */ -public boolean isVisible () {
- checkWidget();
- return getVisible ();
-}
-
-void releaseChild () {
- super.releaseChild ();
- if (cascade != null) cascade.setMenu (null);
- if ((style & SWT.BAR) != 0 && this == parent.menuBar) {
- parent.setMenuBar (null);
- }
-}
-
-void releaseWidget () {
- MenuItem [] items = getItems ();
- for (int i=0; i<items.length; i++) {
- MenuItem item = items [i];
- if (!item.isDisposed ()) item.releaseResources ();
- }
- if (parent != null) parent.remove (this);
- super.releaseWidget ();
- parent = null;
- cascade = null;
- imItem = imSeparator = imHandle = 0;
-}
-
+public boolean isVisible () { + checkWidget(); + return getVisible (); +} + +void releaseChild () { + super.releaseChild (); + if (cascade != null) cascade.setMenu (null); + if ((style & SWT.BAR) != 0 && this == parent.menuBar) { + parent.setMenuBar (null); + } +} + +void releaseWidget () { + MenuItem [] items = getItems (); + for (int i=0; i<items.length; i++) { + MenuItem item = items [i]; + if (!item.isDisposed ()) item.releaseResources (); + } + if (parent != null) parent.remove (this); + super.releaseWidget (); + parent = null; + cascade = null; + imItem = imSeparator = imHandle = 0; +} + /** * Removes the listener from the collection of listeners who will * be notified when the menu events are generated for the control. @@ -623,22 +623,22 @@ void releaseWidget () { * @see MenuListener * @see #addMenuListener */ -public void removeMenuListener (MenuListener listener) {
- checkWidget();
- if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- if (eventTable == null) return;
- eventTable.unhook (SWT.Hide, listener);
- eventTable.unhook (SWT.Show, listener);
-}
-
-void removeAccelerators (int accelGroup) {
- MenuItem [] items = getItems ();
- for (int i = 0; i < items.length; i++) {
- MenuItem item = items[i];
- item.removeAccelerators (accelGroup);
- }
-}
-
+public void removeMenuListener (MenuListener listener) { + checkWidget(); + if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable == null) return; + eventTable.unhook (SWT.Hide, listener); + eventTable.unhook (SWT.Show, listener); +} + +void removeAccelerators (int accelGroup) { + MenuItem [] items = getItems (); + for (int i = 0; i < items.length; i++) { + MenuItem item = items[i]; + item.removeAccelerators (accelGroup); + } +} + /** * Removes the listener from the collection of listeners who will * be notified when the help events are generated for the control. @@ -656,27 +656,27 @@ void removeAccelerators (int accelGroup) { * @see HelpListener * @see #addHelpListener */ -public void removeHelpListener (HelpListener listener) {
- checkWidget();
- if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
- if (eventTable == null) return;
- eventTable.unhook (SWT.Help, listener);
-}
-
-boolean sendHelpEvent (int helpType) {
- if (selectedItem != null && !selectedItem.isDisposed()) {
- if (selectedItem.hooks (SWT.Help)) {
- selectedItem.postEvent (SWT.Help);
- return true;
- }
- }
- if (hooks (SWT.Help)) {
- postEvent (SWT.Help);
- return true;
- }
- return parent.sendHelpEvent (helpType);
-}
-
+public void removeHelpListener (HelpListener listener) { + checkWidget(); + if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable == null) return; + eventTable.unhook (SWT.Help, listener); +} + +boolean sendHelpEvent (int helpType) { + if (selectedItem != null && !selectedItem.isDisposed()) { + if (selectedItem.hooks (SWT.Help)) { + selectedItem.postEvent (SWT.Help); + return true; + } + } + if (hooks (SWT.Help)) { + postEvent (SWT.Help); + return true; + } + return parent.sendHelpEvent (helpType); +} + /** * Sets the default menu item to the argument or removes * the default emphasis when the argument is <code>null</code>. @@ -691,10 +691,10 @@ boolean sendHelpEvent (int helpType) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setDefaultItem (MenuItem item) {
- checkWidget();
-}
-
+public void setDefaultItem (MenuItem item) { + checkWidget(); +} + /** * Enables the receiver if the argument is <code>true</code>, * and disables it otherwise. A disabled control is typically @@ -708,15 +708,15 @@ public void setDefaultItem (MenuItem item) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setEnabled (boolean enabled) {
- checkWidget();
- if (enabled) {
- OS.GTK_WIDGET_SET_FLAGS (handle, OS.GTK_SENSITIVE);
- } else {
- OS.GTK_WIDGET_UNSET_FLAGS (handle, OS.GTK_SENSITIVE);
- }
-}
-
+public void setEnabled (boolean enabled) { + checkWidget(); + if (enabled) { + OS.GTK_WIDGET_SET_FLAGS (handle, OS.GTK_SENSITIVE); + } else { + OS.GTK_WIDGET_UNSET_FLAGS (handle, OS.GTK_SENSITIVE); + } +} + /** * Sets the receiver's location to the point specified by * the arguments which are relative to the display. @@ -733,20 +733,20 @@ public void setEnabled (boolean enabled) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setLocation (int x, int y) {
- checkWidget();
- if ((style & (SWT.BAR | SWT.DROP_DOWN)) != 0) return;
- this.x = x;
- this.y = y;
- hasLocation = true;
-}
-
-public void setLocation (Point location) {
- checkWidget();
- if (location == null) error (SWT.ERROR_NULL_ARGUMENT);
- setLocation (location.x, location.y);
-}
-
+public void setLocation (int x, int y) { + checkWidget(); + if ((style & (SWT.BAR | SWT.DROP_DOWN)) != 0) return; + this.x = x; + this.y = y; + hasLocation = true; +} + +public void setLocation (Point location) { + checkWidget(); + if (location == null) error (SWT.ERROR_NULL_ARGUMENT); + setLocation (location.x, location.y); +} + /** * Marks the receiver as visible if the argument is <code>true</code>, * and marks it invisible otherwise. @@ -763,26 +763,26 @@ public void setLocation (Point location) { * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setVisible (boolean visible) {
- checkWidget();
- if ((style & (SWT.BAR | SWT.DROP_DOWN)) != 0) return;
- if (visible == OS.GTK_WIDGET_MAPPED (handle)) return;
- if (visible) {
- sendEvent (SWT.Show);
- if (getItemCount () != 0) {
- int address = 0;
- Callback GtkMenuPositionFunc = null;
- if (hasLocation) {
- GtkMenuPositionFunc = new Callback (this, "GtkMenuPositionFunc", 5);
- address = GtkMenuPositionFunc.getAddress ();
- }
- OS.gtk_menu_popup (handle, 0, 0, address, 0, 0, OS.gtk_get_current_event_time());
- if (GtkMenuPositionFunc != null) GtkMenuPositionFunc.dispose ();
- } else {
- sendEvent (SWT.Hide);
- }
- } else {
- OS.gtk_menu_popdown (handle);
- }
-}
-}
+public void setVisible (boolean visible) { + checkWidget(); + if ((style & (SWT.BAR | SWT.DROP_DOWN)) != 0) return; + if (visible == OS.GTK_WIDGET_MAPPED (handle)) return; + if (visible) { + sendEvent (SWT.Show); + if (getItemCount () != 0) { + int address = 0; + Callback GtkMenuPositionFunc = null; + if (hasLocation) { + GtkMenuPositionFunc = new Callback (this, "GtkMenuPositionFunc", 5); + address = GtkMenuPositionFunc.getAddress (); + } + OS.gtk_menu_popup (handle, 0, 0, address, 0, 0, OS.gtk_get_current_event_time()); + if (GtkMenuPositionFunc != null) GtkMenuPositionFunc.dispose (); + } else { + sendEvent (SWT.Hide); + } + } else { + OS.gtk_menu_popdown (handle); + } +} +} |