/*******************************************************************************
* Copyright (c) Emil Crumhorn - Hexapixel.com - emil.crumhorn@gmail.com
* 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:
* emil.crumhorn@gmail.com - initial API and implementation
*******************************************************************************/
package com.hexapixel.widgets.ribbon;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import com.hexapixel.widgets.generic.ImageCache;
public class RibbonButton extends AbstractRibbonGroupItem {
private Object mParent;
public RibbonButton(RibbonButtonGroup parent, Image image, String labelText, int style) {
super(parent.getParent(), labelText, image, style);
mParent = parent;
setImageVerticalAlignment(SWT.CENTER);
parent.addButton(this);
}
public RibbonButton(RibbonButtonGroup parent, Image image, Image disabledImage, String labelText, int style) {
super(parent.getParent(), labelText, image, style);
mParent = parent;
setImageVerticalAlignment(SWT.CENTER);
setDisabledImage(disabledImage);
parent.addButton(this);
}
public RibbonButton(RibbonGroup parent, Image image, String labelText, int style) {
super(parent, labelText, image, style);
mParent = parent;
parent.toolItemAdded(this);
}
public RibbonButton(RibbonGroup parent, Image image, Image disabledImage, String labelText, int style) {
super(parent, labelText, image, style);
mParent = parent;
setDisabledImage(disabledImage);
parent.toolItemAdded(this);
}
public RibbonButton(RibbonGroup parent, Image image, String labelText, int imgAlignment, int style) {
super(parent, labelText, image, style);
mParent = parent;
setImageVerticalAlignment(imgAlignment);
parent.toolItemAdded(this);
}
public RibbonButton(RibbonGroup parent, Image image, Image disabledImage, String labelText, int imgAlignment, int style) {
super(parent, labelText, image, style);
mParent = parent;
setDisabledImage(disabledImage);
setImageVerticalAlignment(imgAlignment);
parent.toolItemAdded(this);
}
public RibbonButton(RibbonToolbarGrouping parent, Image image, Image disabledImage, int buttonStyle) {
super(parent.getRibbonGroup(), null, image, disabledImage, buttonStyle);
mParent = parent;
setImageVerticalAlignment(SWT.CENTER);
setToolbarButton(true);
parent.toolItemAdded(this);
}
public RibbonButton(QuickAccessShellToolbar parent, Image image, Image disabledImage, int buttonStyle) {
super(null, null, image, disabledImage, buttonStyle);
createMenu(parent.getRibbonShell());
mParent = parent;
setImageVerticalAlignment(SWT.CENTER);
setToolbarButton(true);
parent.addButton(this);
}
public RibbonButton(RibbonTabFolder parent, Image image, Image disabledImage, int buttonStyle) {
super(null, null, image, disabledImage, buttonStyle);
createMenu(parent);
mParent = parent;
setImageVerticalAlignment(SWT.CENTER);
setToolbarButton(true);
}
public void dispose() {
if (mParent == null)
return;
if (mParent instanceof RibbonToolbarGrouping) {
((RibbonToolbarGrouping)mParent).removeButton(this);
}
else if (mParent instanceof RibbonGroup) {
((RibbonGroup)mParent).removeButton(this);
}
else if (mParent instanceof RibbonButtonGroup) {
((RibbonButtonGroup)mParent).removeButton(this);
}
/* // dispose images
ImageCache.dispose(getImage());
ImageCache.dispose(getDisabledImage());
if (getImage() != null) getImage().dispose();
if (getDisabledImage() != null) getDisabledImage().dispose();
*/ }
}