Exemple #1
0
 public void setImage(Image image) {
   checkWidget();
   if ((style & SWT.SEPARATOR) != 0) return;
   super.setImage(image);
   if (image != null) {
     ImageList imageList = parent.imageList;
     if (imageList == null) imageList = parent.imageList = new ImageList();
     int imageIndex = imageList.indexOf(image);
     if (imageIndex == -1) {
       imageIndex = imageList.add(image);
     } else {
       imageList.put(imageIndex, image);
     }
     long /*int*/ pixbuf = imageList.getPixbuf(imageIndex);
     OS.gtk_image_set_from_pixbuf(imageHandle, pixbuf);
   } else {
     OS.gtk_image_set_from_pixbuf(imageHandle, 0);
   }
   /*
    * If Text/Image of a tool-item changes, then it is
    * required to reset the proxy menu. Otherwise, the
    * old menuItem appears in the overflow menu.
    */
   if ((style & SWT.DROP_DOWN) != 0) {
     proxyMenuItem = 0;
     proxyMenuItem = OS.gtk_tool_item_retrieve_proxy_menu_item(handle);
     OS.g_signal_connect(
         proxyMenuItem, OS.activate, ToolBar.menuItemSelectedFunc.getAddress(), handle);
   }
   parent.relayout();
 }
Exemple #2
0
 long /*int*/ gtk_clicked(long /*int*/ widget) {
   Event event = new Event();
   if ((style & SWT.DROP_DOWN) != 0) {
     long /*int*/ eventPtr = OS.gtk_get_current_event();
     if (eventPtr != 0) {
       GdkEvent gdkEvent = new GdkEvent();
       OS.memmove(gdkEvent, eventPtr, GdkEvent.sizeof);
       long /*int*/ topHandle = topHandle();
       switch (gdkEvent.type) {
         case OS.GDK_KEY_RELEASE: // Fall Through..
         case OS.GDK_BUTTON_PRESS:
         case OS.GDK_2BUTTON_PRESS:
         case OS.GDK_BUTTON_RELEASE:
           {
             boolean isArrow = false;
             if (OS.GTK_VERSION < OS.VERSION(2, 6, 0)) {
               double[] x_win = new double[1];
               double[] y_win = new double[1];
               OS.gdk_event_get_coords(eventPtr, x_win, y_win);
               int x = OS.GTK_WIDGET_X(arrowHandle) - OS.GTK_WIDGET_X(handle);
               int width = OS.GTK_WIDGET_WIDTH(arrowHandle);
               if ((((parent.style & SWT.RIGHT_TO_LEFT) == 0) && x <= (int) x_win[0])
                   || (((parent.style & SWT.RIGHT_TO_LEFT) != 0) && (int) x_win[0] <= x + width)) {
                 isArrow = true;
               }
             } else if (widget == arrowHandle) {
               isArrow = true;
               topHandle = widget;
               /*
                * Feature in GTK. ArrowButton stays in toggled state if there is no popup menu.
                * It is required to set back the state of arrow to normal state after it is clicked.
                */
               OS.g_signal_handlers_block_matched(
                   widget, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CLICKED);
               OS.gtk_toggle_button_set_active(widget, false);
               OS.g_signal_handlers_unblock_matched(
                   widget, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CLICKED);
             }
             if (isArrow) {
               event.detail = SWT.ARROW;
               event.x = OS.GTK_WIDGET_X(topHandle);
               if ((parent.style & SWT.MIRRORED) != 0)
                 event.x = parent.getClientWidth() - OS.GTK_WIDGET_WIDTH(topHandle) - event.x;
               event.y = OS.GTK_WIDGET_Y(topHandle) + OS.GTK_WIDGET_HEIGHT(topHandle);
             }
             break;
           }
       }
       OS.gdk_event_free(eventPtr);
     }
   }
   if ((style & SWT.RADIO) != 0) {
     if ((parent.getStyle() & SWT.NO_RADIO_GROUP) == 0) {
       selectRadio();
     }
   }
   sendSelectionEvent(SWT.Selection, event, false);
   return 0;
 }
Exemple #3
0
 /**
  * Returns a rectangle describing the receiver's size and location relative to its parent.
  *
  * @return the receiver's bounding rectangle
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public Rectangle getBounds() {
   checkWidget();
   parent.forceResize();
   long /*int*/ topHandle = topHandle();
   int x, y, width, height;
   x = OS.GTK_WIDGET_X(topHandle);
   y = OS.GTK_WIDGET_Y(topHandle);
   width = OS.GTK_WIDGET_WIDTH(topHandle);
   height = OS.GTK_WIDGET_HEIGHT(topHandle);
   if ((parent.style & SWT.MIRRORED) != 0) x = parent.getClientWidth() - width - x;
   if ((style & SWT.SEPARATOR) != 0 && control != null) height = Math.max(height, 23);
   return new Rectangle(x, y, width, height);
 }
Exemple #4
0
 boolean isTabGroup() {
   ToolItem[] tabList = parent._getTabItemList();
   if (tabList != null) {
     for (int i = 0; i < tabList.length; i++) {
       if (tabList[i] == this) return true;
     }
   }
   if ((style & SWT.SEPARATOR) != 0) return true;
   int index = parent.indexOf(this);
   if (index == 0) return true;
   ToolItem previous = parent.getItem(index - 1);
   return (previous.getStyle() & SWT.SEPARATOR) != 0;
 }
Exemple #5
0
 /**
  * Sets the receiver's text. The string may include the mnemonic character.
  *
  * <p>Mnemonics are indicated by an '&amp;' that causes the next character to be the mnemonic.
  * When the user presses a key sequence that matches the mnemonic, a selection event occurs. On
  * most platforms, the mnemonic appears underlined but may be emphasised in a platform specific
  * manner. The mnemonic indicator character '&amp;' can be escaped by doubling it in the string,
  * causing a single '&amp;' to be displayed.
  *
  * @param string the new text
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_NULL_ARGUMENT - if the text is null
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setText(String string) {
   checkWidget();
   if (string == null) error(SWT.ERROR_NULL_ARGUMENT);
   if ((style & SWT.SEPARATOR) != 0) return;
   if (string.equals(this.text)) return;
   super.setText(string);
   if (labelHandle == 0) return;
   char[] chars = fixMnemonic(string);
   byte[] buffer = Converter.wcsToMbcs(null, chars, true);
   OS.gtk_label_set_text_with_mnemonic(labelHandle, buffer);
   if ((style & SWT.DROP_DOWN) != 0 && OS.GTK_VERSION < OS.VERSION(2, 6, 0)) {
     if (string.length() != 0) {
       OS.gtk_widget_show(labelHandle);
     } else {
       OS.gtk_widget_hide(labelHandle);
     }
   }
   /*
    * If Text/Image of a tool-item changes, then it is
    * required to reset the proxy menu. Otherwise, the
    * old menuItem appears in the overflow menu.
    */
   if ((style & SWT.DROP_DOWN) != 0) {
     proxyMenuItem = 0;
     proxyMenuItem = OS.gtk_tool_item_retrieve_proxy_menu_item(handle);
     OS.g_signal_connect(
         proxyMenuItem, OS.activate, ToolBar.menuItemSelectedFunc.getAddress(), handle);
   }
   parent.relayout();
 }
Exemple #6
0
 /**
  * Enables the receiver if the argument is <code>true</code>, and disables it otherwise.
  *
  * <p>A disabled control is typically not selectable from the user interface and draws with an
  * inactive or "grayed" look.
  *
  * @param enabled the new enabled state
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setEnabled(boolean enabled) {
   checkWidget();
   long /*int*/ topHandle = topHandle();
   if (OS.GTK_WIDGET_SENSITIVE(topHandle) == enabled) return;
   OS.gtk_widget_set_sensitive(topHandle, enabled);
   if (enabled) {
     /*
      * Bug in GTK.  GtkButton requires an enter notify before it
      * allows the button to be pressed, but events are dropped when
      * widgets are insensitive.  The fix is to hide and show the
      * button if the pointer is within its bounds.
      */
     int[] x = new int[1], y = new int[1];
     OS.gdk_window_get_pointer(parent.paintWindow(), x, y, null);
     if (getBounds().contains(x[0], y[0])) {
       OS.gtk_widget_hide(handle);
       OS.gtk_widget_show(handle);
     }
   } else {
     /*
      * Bug in GTK. Starting with 2.14, if a button is disabled
      * through on a button press, the field which keeps track
      * whether the pointer is currently in the button is never updated.
      * As a result, when it is re-enabled it automatically enters
      * a PRELIGHT state. The fix is to set a NORMAL state.
      */
     if (OS.GTK_VERSION >= OS.VERSION(2, 14, 0)) {
       OS.gtk_widget_set_state(topHandle, OS.GTK_STATE_NORMAL);
     }
   }
 }
Exemple #7
0
 void releaseWidget() {
   super.releaseWidget();
   if (parent.currentFocusItem == this) parent.currentFocusItem = null;
   parent = null;
   control = null;
   hotImage = disabledImage = null;
   toolTipText = null;
 }
Exemple #8
0
 /**
  * Sets the width of the receiver, for <code>SEPARATOR</code> ToolItems.
  *
  * @param width the new width. If the new value is <code>SWT.DEFAULT</code>, the width is a
  *     fixed-width area whose amount is determined by the platform. If the new value is 0 a
  *     vertical or horizontal line will be drawn, depending on the setting of the corresponding
  *     style bit (<code>SWT.VERTICAL</code> or <code>SWT.HORIZONTAL</code>). If the new value is
  *     <code>SWT.SEPARATOR_FILL</code> a variable-width space is inserted that acts as a spring
  *     between the two adjoining items which will push them out to the extent of the containing
  *     ToolBar.
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setWidth(int width) {
   checkWidget();
   if ((style & SWT.SEPARATOR) == 0) return;
   if (width < 0) return;
   boolean isVertical = (parent.style & SWT.VERTICAL) != 0;
   OS.gtk_widget_set_size_request(handle, width, isVertical ? 6 : 15);
   parent.relayout();
 }
Exemple #9
0
 /**
  * Constructs a new instance of this class given its parent (which must be a <code>ToolBar</code>
  * ), a style value describing its behavior and appearance, and the index at which to place it in
  * the items maintained by its parent.
  *
  * <p>The style value is either one of the style constants defined in class <code>SWT</code> which
  * is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together
  * (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style
  * constants. The class description lists the style constants that are applicable to the class.
  * Style bits are also inherited from superclasses.
  *
  * @param parent a composite control which will be the parent of the new instance (cannot be null)
  * @param style the style of control to construct
  * @param index the zero-relative index to store the receiver in its parent
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_NULL_ARGUMENT - if the parent is null
  *       <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the
  *           parent (inclusive)
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
  *       <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
  *     </ul>
  *
  * @see SWT#PUSH
  * @see SWT#CHECK
  * @see SWT#RADIO
  * @see SWT#SEPARATOR
  * @see SWT#DROP_DOWN
  * @see Widget#checkSubclass
  * @see Widget#getStyle
  */
 public ToolItem(ToolBar parent, int style, int index) {
   super(parent, checkStyle(style));
   this.parent = parent;
   int count = parent.getItemCount();
   if (!(0 <= index && index <= count)) {
     error(SWT.ERROR_INVALID_RANGE);
   }
   createWidget(index);
 }
Exemple #10
0
 void selectRadio() {
   int index = 0;
   ToolItem[] items = parent.getItems();
   while (index < items.length && items[index] != this) index++;
   int i = index - 1;
   while (i >= 0 && items[i].setRadioSelection(false)) --i;
   int j = index + 1;
   while (j < items.length && items[j].setRadioSelection(false)) j++;
   setSelection(true);
 }
Exemple #11
0
 /**
  * Sets the control that is used to fill the bounds of the item when the item is a <code>SEPARATOR
  * </code>.
  *
  * @param control the new control
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_INVALID_ARGUMENT - if the control has been disposed
  *       <li>ERROR_INVALID_PARENT - if the control is not in the same widget tree
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setControl(Control control) {
   checkWidget();
   if (control != null) {
     if (control.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT);
     if (control.parent != parent) error(SWT.ERROR_INVALID_PARENT);
   }
   if ((style & SWT.SEPARATOR) == 0) return;
   if (this.control == control) return;
   this.control = control;
   parent.relayout();
 }
Exemple #12
0
 long /*int*/ gtk_button_release_event(long /*int*/ widget, long /*int*/ event) {
   GdkEventButton gdkEvent = new GdkEventButton();
   OS.memmove(gdkEvent, event, GdkEventButton.sizeof);
   double x = gdkEvent.x;
   gdkEvent.x += OS.GTK_WIDGET_X(handle);
   double y = gdkEvent.y;
   gdkEvent.y += OS.GTK_WIDGET_Y(handle);
   OS.memmove(event, gdkEvent, GdkEventButton.sizeof);
   long /*int*/ result = parent.gtk_button_release_event(widget, event);
   gdkEvent.x = x;
   gdkEvent.y = y;
   OS.memmove(event, gdkEvent, GdkEventButton.sizeof);
   return result;
 }
Exemple #13
0
 long /*int*/ gtk_enter_notify_event(long /*int*/ widget, long /*int*/ event) {
   parent.gtk_enter_notify_event(widget, event);
   drawHotImage = (parent.style & SWT.FLAT) != 0 && hotImage != null;
   if (drawHotImage) {
     ImageList imageList = parent.imageList;
     if (imageList != null) {
       int index = imageList.indexOf(hotImage);
       if (index != -1 && imageHandle != 0) {
         long /*int*/ pixbuf = imageList.getPixbuf(index);
         OS.gtk_image_set_from_pixbuf(imageHandle, pixbuf);
       }
     }
   }
   return 0;
 }
Exemple #14
0
 /**
  * Sets the receiver's hot image to the argument, which may be null indicating that no hot image
  * should be displayed.
  *
  * <p>The hot image is displayed when the mouse enters the receiver.
  *
  * @param image the hot image to display on the receiver (may be null)
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_INVALID_ARGUMENT - if the image has been disposed
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setHotImage(Image image) {
   checkWidget();
   if ((style & SWT.SEPARATOR) != 0) return;
   hotImage = image;
   if (image != null) {
     ImageList imageList = parent.imageList;
     if (imageList == null) imageList = parent.imageList = new ImageList();
     int imageIndex = imageList.indexOf(image);
     if (imageIndex == -1) {
       imageIndex = imageList.add(image);
     } else {
       imageList.put(imageIndex, image);
     }
   }
 }
Exemple #15
0
 long /*int*/ gtk_event_after(long /*int*/ widget, long /*int*/ gdkEvent) {
   GdkEvent event = new GdkEvent();
   OS.memmove(event, gdkEvent, GdkEvent.sizeof);
   switch (event.type) {
     case OS.GDK_BUTTON_PRESS:
       {
         GdkEventButton gdkEventButton = new GdkEventButton();
         OS.memmove(gdkEventButton, gdkEvent, GdkEventButton.sizeof);
         if (gdkEventButton.button == 3) {
           parent.showMenu((int) gdkEventButton.x_root, (int) gdkEventButton.y_root);
         }
         break;
       }
   }
   return 0;
 }
Exemple #16
0
 long /*int*/ gtk_leave_notify_event(long /*int*/ widget, long /*int*/ event) {
   parent.gtk_leave_notify_event(widget, event);
   if (drawHotImage) {
     drawHotImage = false;
     if (image != null) {
       ImageList imageList = parent.imageList;
       if (imageList != null) {
         int index = imageList.indexOf(image);
         if (index != -1 && imageHandle != 0) {
           long /*int*/ pixbuf = imageList.getPixbuf(index);
           OS.gtk_image_set_from_pixbuf(imageHandle, pixbuf);
         }
       }
     }
   }
   return 0;
 }
Exemple #17
0
 /**
  * Sets the receiver's tool tip text to the argument, which may be null indicating that the
  * default tool tip for the control will be shown. For a control that has a default tool tip, such
  * as the Tree control on Windows, setting the tool tip text to an empty string replaces the
  * default, causing no tool tip text to be shown.
  *
  * <p>The mnemonic indicator (character '&amp;') is not displayed in a tool tip. To display a
  * single '&amp;' in the tool tip, the character '&amp;' can be escaped by doubling it in the
  * string.
  *
  * @param string the new tool tip text (or null)
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public void setToolTipText(String string) {
   checkWidget();
   if (parent.toolTipText == null) {
     Shell shell = parent._getShell();
     setToolTipText(shell, string);
   }
   toolTipText = string;
   /*
    * Since tooltip text of a tool-item is used in overflow
    * menu when images are not shown, it is required to
    * reset the proxy menu when the tooltip text changes.
    * Otherwise, the old menuItem appears in the overflow
    * menu as a blank item.
    */
   if ((style & SWT.DROP_DOWN) != 0) {
     proxyMenuItem = 0;
     proxyMenuItem = OS.gtk_tool_item_retrieve_proxy_menu_item(handle);
     OS.g_signal_connect(
         proxyMenuItem, OS.activate, ToolBar.menuItemSelectedFunc.getAddress(), handle);
   }
 }
Exemple #18
0
 void createHandle(int index) {
   state |= HANDLE;
   int bits = SWT.SEPARATOR | SWT.RADIO | SWT.CHECK | SWT.PUSH | SWT.DROP_DOWN;
   if ((style & SWT.SEPARATOR) == 0) {
     labelHandle = OS.gtk_label_new_with_mnemonic(null);
     if (labelHandle == 0) error(SWT.ERROR_NO_HANDLES);
     imageHandle = OS.gtk_image_new_from_pixbuf(0);
     if (imageHandle == 0) error(SWT.ERROR_NO_HANDLES);
   }
   switch (style & bits) {
     case SWT.SEPARATOR:
       handle = OS.gtk_separator_tool_item_new();
       if (handle == 0) error(SWT.ERROR_NO_HANDLES);
       OS.gtk_separator_tool_item_set_draw(handle, true);
       break;
     case SWT.DROP_DOWN:
       if (OS.GTK_VERSION >= OS.VERSION(2, 6, 0)) {
         handle = OS.gtk_menu_tool_button_new(0, null);
         if (handle == 0) error(SWT.ERROR_NO_HANDLES);
         /*
          * Feature in GTK. The arrow button of DropDown tool-item is
          * disabled when it does not contain menu. The fix is to
          * find the arrow button handle and enable it.
          */
         long /*int*/ child = OS.gtk_bin_get_child(handle);
         long /*int*/ list = OS.gtk_container_get_children(child);
         arrowHandle = OS.g_list_nth_data(list, 1);
         OS.gtk_widget_set_sensitive(arrowHandle, true);
         OS.gtk_widget_set_size_request(OS.gtk_bin_get_child(arrowHandle), 8, 6);
       } else {
         /*
          * GTK does not support GtkMenuToolButton until 2.6.
          * So, we try to emulate it on the un-supported version.
          */
         handle = OS.gtk_tool_button_new(0, null);
         if (handle == 0) error(SWT.ERROR_NO_HANDLES);
         arrowBoxHandle = OS.gtk_hbox_new(false, 0);
         if (arrowBoxHandle == 0) error(SWT.ERROR_NO_HANDLES);
         arrowHandle = OS.gtk_arrow_new(OS.GTK_ARROW_DOWN, OS.GTK_SHADOW_NONE);
         if (arrowHandle == 0) error(SWT.ERROR_NO_HANDLES);
         OS.gtk_widget_set_size_request(arrowHandle, 8, 6);
         OS.gtk_container_add(arrowBoxHandle, labelHandle);
         OS.gtk_container_add(arrowBoxHandle, arrowHandle);
         /*
          * As we are try to emulate GtkMenuToolButton and in order
          * to display both the label and image, it is required
          * the set the toolitem as important. This will entitle
          * to display the label all the times.
          */
         OS.gtk_tool_item_set_is_important(handle, true);
       }
       break;
     case SWT.RADIO:
       /*
        * Because GTK enforces radio behavior in a button group
        * a radio group is not created for each set of contiguous
        * buttons, each radio button will not draw unpressed.
        * The fix is to use toggle buttons instead.
        */
     case SWT.CHECK:
       handle = OS.gtk_toggle_tool_button_new();
       if (handle == 0) error(SWT.ERROR_NO_HANDLES);
       break;
     case SWT.PUSH:
     default:
       handle = OS.gtk_tool_button_new(0, null);
       if (handle == 0) error(SWT.ERROR_NO_HANDLES);
       break;
   }
   if (labelHandle != 0) {
     OS.gtk_tool_button_set_label_widget(handle, labelHandle);
   }
   if (imageHandle != 0) {
     OS.gtk_tool_button_set_icon_widget(handle, imageHandle);
   }
   if ((parent.state & FOREGROUND) != 0) {
     setForegroundColor(parent.getForegroundColor());
   }
   if ((parent.state & FONT) != 0) {
     setFontDescription(parent.getFontDescription());
   }
   /*
    * Feature in GTK. GtkToolButton class uses this property to
    * determine whether to show or hide its label when the toolbar
    * style is GTK_TOOLBAR_BOTH_HORIZ (or SWT.RIGHT).
    */
   if ((parent.style & SWT.RIGHT) != 0) OS.gtk_tool_item_set_is_important(handle, true);
   if ((style & SWT.SEPARATOR) == 0) OS.gtk_tool_button_set_use_underline(handle, true);
 }
Exemple #19
0
 void createWidget(int index) {
   super.createWidget(index);
   showWidget(index);
   parent.relayout();
 }
Exemple #20
0
 public void dispose() {
   if (isDisposed()) return;
   ToolBar parent = this.parent;
   super.dispose();
   parent.relayout();
 }
Exemple #21
0
 /**
  * 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>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  *
  * @see #getEnabled
  */
 public boolean isEnabled() {
   checkWidget();
   return getEnabled() && parent.isEnabled();
 }
Exemple #22
0
 /**
  * Constructs a new instance of this class given its parent (which must be a <code>ToolBar</code>)
  * and a style value describing its behavior and appearance. The item is added to the end of the
  * items maintained by its parent.
  *
  * <p>The style value is either one of the style constants defined in class <code>SWT</code> which
  * is applicable to instances of this class, or must be built by <em>bitwise OR</em>'ing together
  * (that is, using the <code>int</code> "|" operator) two or more of those <code>SWT</code> style
  * constants. The class description lists the style constants that are applicable to the class.
  * Style bits are also inherited from superclasses.
  *
  * @param parent a composite control which will be the parent of the new instance (cannot be null)
  * @param style the style of control to construct
  * @exception IllegalArgumentException
  *     <ul>
  *       <li>ERROR_NULL_ARGUMENT - if the parent is null
  *     </ul>
  *
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
  *       <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
  *     </ul>
  *
  * @see SWT#PUSH
  * @see SWT#CHECK
  * @see SWT#RADIO
  * @see SWT#SEPARATOR
  * @see SWT#DROP_DOWN
  * @see Widget#checkSubclass
  * @see Widget#getStyle
  */
 public ToolItem(ToolBar parent, int style) {
   super(parent, checkStyle(style));
   this.parent = parent;
   createWidget(parent.getItemCount());
 }
Exemple #23
0
 long /*int*/ gtk_mnemonic_activate(long /*int*/ widget, long /*int*/ arg1) {
   return parent.gtk_mnemonic_activate(widget, arg1);
 }
Exemple #24
0
 long /*int*/ gtk_map(long /*int*/ widget) {
   parent.fixZOrder();
   return 0;
 }
Exemple #25
0
 long /*int*/ gtk_focus_out_event(long /*int*/ widget, long /*int*/ event) {
   parent.hasChildFocus = false;
   return 0;
 }
Exemple #26
0
 long /*int*/ gtk_focus_in_event(long /*int*/ widget, long /*int*/ event) {
   parent.hasChildFocus = true;
   parent.currentFocusItem = this;
   return 0;
 }
Exemple #27
0
 /**
  * Gets the width of the receiver.
  *
  * @return the width
  * @exception SWTException
  *     <ul>
  *       <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  *       <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
  *     </ul>
  */
 public int getWidth() {
   checkWidget();
   parent.forceResize();
   long /*int*/ topHandle = topHandle();
   return OS.GTK_WIDGET_WIDTH(topHandle);
 }