Class RoundedToolbar

  • All Implemented Interfaces:
    org.eclipse.swt.graphics.Drawable

    public class RoundedToolbar
    extends org.eclipse.swt.widgets.Canvas
    Instances of this class support the layout of selectable rounded tool bar items.

    The item children that may be added to instances of this class must be of type RoundedToolItem.

    Styles:
    HIDE_SELECTION
    : if this style is selected, the radio button are not drawned
    Events:
    (none)
    See Also:
    ToolBar, ToolItem snippets
    • Constructor Summary

      Constructors 
      Constructor Description
      RoundedToolbar​(org.eclipse.swt.widgets.Composite parent, int style)
      Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.
      RoundedToolbar​(org.eclipse.swt.widgets.Composite parent, int style, org.eclipse.swt.graphics.Color startGradientColor, org.eclipse.swt.graphics.Color endGradientColor)
      Constructs a new instance of this class given its parent, a style value describing its behavior and appearance and colors to specify the start and end gradient of the rounded corner
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void addItem​(RoundedToolItem roundedToolItem)
      Add an item to the toolbar
      private void addListeners()  
      private void clearLastToggleButtonInfo()  
      org.eclipse.swt.graphics.Point computeSize​(int wHint, int hHint, boolean changed)  
      private void drawBorders​(org.eclipse.swt.graphics.GC gc, int width, int height)  
      int getCornerRadius()  
      RoundedToolItem getItem​(int index)
      Returns the item at the given, zero-relative index in the receiver.
      RoundedToolItem getItem​(org.eclipse.swt.graphics.Point point)
      Returns the item at the given point in the receiver or null if no such item exists.
      int getItemCount()
      Returns the number of items contained in the receiver.
      RoundedToolItem[] getItems()
      Returns an array of RoundedToolItems which are the items in the receiver.
      int indexOf​(RoundedToolItem item)
      Searches the receiver's list starting at the first item (index 0) until an item is found that is equal to the argument, and returns the index of that item.
      protected void paintControl​(org.eclipse.swt.events.PaintEvent e)
      Paint the component
      (package private) void removeItem​(RoundedToolItem roundedToolItem)
      Add an item to the toolbar
      void setCornerRadius​(int cornerRadius)  
      • Methods inherited from class org.eclipse.swt.widgets.Canvas

        drawBackground, getCaret, getIME, scroll, setCaret, setFont, setIME
      • Methods inherited from class org.eclipse.swt.widgets.Composite

        changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
      • Methods inherited from class org.eclipse.swt.widgets.Scrollable

        computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
      • Methods inherited from class org.eclipse.swt.widgets.Control

        addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isAutoScalable, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
      • Methods inherited from class org.eclipse.swt.widgets.Widget

        addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • LAST_TOGGLE_BUTTON_SELECTED

        private static final java.lang.String LAST_TOGGLE_BUTTON_SELECTED
      • LAST_TOGGLE_BUTTON_SELECTED_STATE

        private static final java.lang.String LAST_TOGGLE_BUTTON_SELECTED_STATE
      • cornerRadius

        private int cornerRadius
      • START_GRADIENT_COLOR_DEFAULT

        private static org.eclipse.swt.graphics.Color START_GRADIENT_COLOR_DEFAULT
      • END_GRADIENT_COLOR_DEFAULT

        private static org.eclipse.swt.graphics.Color END_GRADIENT_COLOR_DEFAULT
      • BORDER_COLOR

        static org.eclipse.swt.graphics.Color BORDER_COLOR
      • START_GRADIENT_COLOR

        private org.eclipse.swt.graphics.Color START_GRADIENT_COLOR
      • END_GRADIENT_COLOR

        private org.eclipse.swt.graphics.Color END_GRADIENT_COLOR
    • Constructor Detail

      • RoundedToolbar

        public RoundedToolbar​(org.eclipse.swt.widgets.Composite parent,
                              int style)
        Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.

        The style value is either one of the style constants defined in class SWT which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the int "|" operator) two or more of those SWT style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.

        Parameters:
        parent - a composite control which will be the parent of the new instance (cannot be null)
        style - the style of control to construct
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        org.eclipse.swt.SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        Widget.getStyle()
      • RoundedToolbar

        public RoundedToolbar​(org.eclipse.swt.widgets.Composite parent,
                              int style,
                              org.eclipse.swt.graphics.Color startGradientColor,
                              org.eclipse.swt.graphics.Color endGradientColor)
        Constructs a new instance of this class given its parent, a style value describing its behavior and appearance and colors to specify the start and end gradient of the rounded corner

        The style value is either one of the style constants defined in class SWT which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the int "|" operator) two or more of those SWT style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.

        Parameters:
        parent - a composite control which will be the parent of the new instance (cannot be null)
        style - the style of control to construct
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        org.eclipse.swt.SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        Widget.getStyle()
    • Method Detail

      • addListeners

        private void addListeners()
      • clearLastToggleButtonInfo

        private void clearLastToggleButtonInfo()
      • addItem

        void addItem​(RoundedToolItem roundedToolItem)
        Add an item to the toolbar
        Parameters:
        roundedToolItem - roundedToolItem to add
      • computeSize

        public org.eclipse.swt.graphics.Point computeSize​(int wHint,
                                                          int hHint,
                                                          boolean changed)
        Overrides:
        computeSize in class org.eclipse.swt.widgets.Control
        See Also:
        Control.computeSize(int, int, boolean)
      • getCornerRadius

        public int getCornerRadius()
        Returns:
        the corner radius
      • getItem

        public RoundedToolItem getItem​(int index)
        Returns the item at the given, zero-relative index in the receiver. Throws an exception if the index is out of range.
        Parameters:
        index - the index of the item to return
        Returns:
        the item at the given index
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getItem

        public RoundedToolItem getItem​(org.eclipse.swt.graphics.Point point)
        Returns the item at the given point in the receiver or null if no such item exists. The point is in the coordinate system of the receiver.
        Parameters:
        point - the point used to locate the item
        Returns:
        the item at the given point
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the point is null
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getItemCount

        public int getItemCount()
        Returns the number of items contained in the receiver.
        Returns:
        the number of items
        Throws:
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getItems

        public RoundedToolItem[] getItems()
        Returns an array of RoundedToolItems which are the items in the receiver.

        Note: This is not the actual structure used by the receiver to maintain its list of items, so modifying the array will not affect the receiver.

        Returns:
        the items in the receiver
        Throws:
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • indexOf

        public int indexOf​(RoundedToolItem item)
        Searches the receiver's list starting at the first item (index 0) until an item is found that is equal to the argument, and returns the index of that item. If no item is found, returns -1.
        Parameters:
        item - the search item
        Returns:
        the index of the item
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the tool item is null
        • ERROR_INVALID_ARGUMENT - if the tool item has been disposed
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • paintControl

        protected void paintControl​(org.eclipse.swt.events.PaintEvent e)
        Paint the component
        Parameters:
        e - event
      • drawBorders

        private void drawBorders​(org.eclipse.swt.graphics.GC gc,
                                 int width,
                                 int height)
      • removeItem

        void removeItem​(RoundedToolItem roundedToolItem)
        Add an item to the toolbar
        Parameters:
        roundedToolItem - roundedToolItem to add
      • setCornerRadius

        public void setCornerRadius​(int cornerRadius)
        Parameters:
        cornerRadius - new corner radius