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