170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll/* 270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * Copyright (C) 2011 The Android Open Source Project 370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * 470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * Licensed under the Apache License, Version 2.0 (the "License"); 570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * you may not use this file except in compliance with the License. 670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * You may obtain a copy of the License at 770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * 870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * http://www.apache.org/licenses/LICENSE-2.0 970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * 1070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * Unless required by applicable law or agreed to in writing, software 1170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * distributed under the License is distributed on an "AS IS" BASIS, 1270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * See the License for the specific language governing permissions and 1470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * limitations under the License. 1570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll */ 1670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 1770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Mollpackage com.android.sdkuilib.internal.widgets; 1870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 1970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 2070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Mollimport org.eclipse.swt.SWT; 2170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Mollimport org.eclipse.swt.graphics.Image; 2270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Mollimport org.eclipse.swt.widgets.Composite; 2370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 2470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll/** 2570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * A label that can display 2 images depending on its enabled/disabled state. 2670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll * This acts as a button by firing the {@link SWT#Selection} listener. 2770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll */ 2870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Mollpublic class ImgDisabledButton extends ToggleButton { 2970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll public ImgDisabledButton( 3070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll Composite parent, 3170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll int style, 3270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll Image imageEnabled, 3370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll Image imageDisabled, 3470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll String tooltipEnabled, 3570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll String tooltipDisabled) { 3670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll super(parent, 3770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll style, 3870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll imageEnabled, 3970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll imageDisabled, 4070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll tooltipEnabled, 4170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll tooltipDisabled); 4270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll } 4370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 4470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll @Override 4570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll public void setEnabled(boolean enabled) { 4670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll super.setEnabled(enabled); 4770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll updateImageAndTooltip(); 4870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll redraw(); 4970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll } 5070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 5170c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll @Override 5270c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll public void setState(int state) { 5370c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll throw new UnsupportedOperationException(); // not available for this type of button 5470c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll } 5570c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll 5670c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll @Override 5770c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll public int getState() { 5870c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll return (isDisposed() || !isEnabled()) ? 1 : 0; 5970c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll } 6070c222d49c0a75e30b05337dbbb8110a39635aafRaphael Moll} 61