1515 lines
63 KiB
Java
1515 lines
63 KiB
Java
/*
|
|
* Copyright (c) 2002 and later by MH Software-Entwicklung. All Rights Reserved.
|
|
*
|
|
* JTattoo is multiple licensed. If your are an open source developer you can use
|
|
* it under the terms and conditions of the GNU General Public License version 2.0
|
|
* or later as published by the Free Software Foundation.
|
|
*
|
|
* see: gpl-2.0.txt
|
|
*
|
|
* If you pay for a license you will become a registered user who could use the
|
|
* software under the terms and conditions of the GNU Lesser General Public License
|
|
* version 2.0 or later with classpath exception as published by the Free Software
|
|
* Foundation.
|
|
*
|
|
* see: lgpl-2.0.txt
|
|
* see: classpath-exception.txt
|
|
*
|
|
* Registered users could also use JTattoo under the terms and conditions of the
|
|
* Apache License, Version 2.0 as published by the Apache Software Foundation.
|
|
*
|
|
* see: APACHE-LICENSE-2.0.txt
|
|
*/
|
|
|
|
package com.jtattoo.plaf;
|
|
|
|
import java.awt.*;
|
|
import java.awt.geom.*;
|
|
import javax.swing.*;
|
|
import javax.swing.plaf.UIResource;
|
|
|
|
/**
|
|
* @author Michael Hagen
|
|
*/
|
|
public class BaseIcons {
|
|
|
|
public static final LazyImageIcon PEARL_RED_SMALL = new LazyImageIcon("icons/small/pearl_red_24x24.png");
|
|
public static final LazyImageIcon PEARL_YELLOW_SMALL = new LazyImageIcon("icons/small/pearl_yellow_24x24.png");
|
|
public static final LazyImageIcon PEARL_GREEN_SMALL = new LazyImageIcon("icons/small/pearl_green_24x24.png");
|
|
public static final LazyImageIcon PEARL_GREY_SMALL = new LazyImageIcon("icons/small/pearl_grey_24x24.png");
|
|
public static final LazyImageIcon PEARL_RED_MEDIUM = new LazyImageIcon("icons/medium/pearl_red_28x28.png");
|
|
public static final LazyImageIcon PEARL_YELLOW_MEDIUM = new LazyImageIcon("icons/medium/pearl_yellow_28x28.png");
|
|
public static final LazyImageIcon PEARL_GREEN_MEDIUM = new LazyImageIcon("icons/medium/pearl_green_28x28.png");
|
|
public static final LazyImageIcon PEARL_GREY_MEDIUM = new LazyImageIcon("icons/medium/pearl_grey_28x28.png");
|
|
public static final LazyImageIcon PEARL_RED_LARGE = new LazyImageIcon("icons/large/pearl_red_32x32.png");
|
|
public static final LazyImageIcon PEARL_YELLOW_LARGE = new LazyImageIcon("icons/large/pearl_yellow_32x32.png");
|
|
public static final LazyImageIcon PEARL_GREEN_LARGE = new LazyImageIcon("icons/large/pearl_green_32x32.png");
|
|
public static final LazyImageIcon PEARL_GREY_LARGE = new LazyImageIcon("icons/large/pearl_grey_32x32.png");
|
|
|
|
public static final LazyImageIcon ICONIZER_SMALL = new LazyImageIcon("icons/small/iconizer_10x10.png");
|
|
public static final LazyImageIcon MINIMIZER_SMALL = new LazyImageIcon("icons/small/minimizer_10x10.png");
|
|
public static final LazyImageIcon MAXIMIZER_SMALL = new LazyImageIcon("icons/small/maximizer_10x10.png");
|
|
public static final LazyImageIcon CLOSER_SMALL = new LazyImageIcon("icons/small/closer_10x10.png");
|
|
public static final LazyImageIcon ICONIZER_MEDIUM = new LazyImageIcon("icons/medium/iconizer_12x12.png");
|
|
public static final LazyImageIcon MINIMIZER_MEDIUM = new LazyImageIcon("icons/medium/minimizer_12x12.png");
|
|
public static final LazyImageIcon MAXIMIZER_MEDIUM = new LazyImageIcon("icons/medium/maximizer_12x12.png");
|
|
public static final LazyImageIcon CLOSER_MEDIUM = new LazyImageIcon("icons/medium/closer_12x12.png");
|
|
public static final LazyImageIcon ICONIZER_LARGE = new LazyImageIcon("icons/large/iconizer_12x12.png");
|
|
public static final LazyImageIcon MINIMIZER_LARGE = new LazyImageIcon("icons/large/minimizer_12x12.png");
|
|
public static final LazyImageIcon MAXIMIZER_LARGE = new LazyImageIcon("icons/large/maximizer_12x12.png");
|
|
public static final LazyImageIcon CLOSER_LARGE = new LazyImageIcon("icons/large/closer_12x12.png");
|
|
|
|
public static final LazyImageIcon EMPTY_8x8 = new LazyImageIcon("icons/empty_8x8.png");
|
|
|
|
protected static Icon checkBoxIcon = null;
|
|
protected static Icon menuCheckBoxIcon = null;
|
|
protected static Icon radioButtonIcon = null;
|
|
protected static Icon menuRadioButtonIcon = null;
|
|
protected static Icon optionPaneErrorIcon = null;
|
|
protected static Icon optionPaneWarningIcon = null;
|
|
protected static Icon optionPaneInformationIcon = null;
|
|
protected static Icon optionPaneQuestionIcon = null;
|
|
|
|
protected static Icon fileChooserUpFolderIcon = null;
|
|
protected static Icon fileChooserHomeFolderIcon = null;
|
|
protected static Icon fileChooserNewFolderIcon = null;
|
|
protected static Icon fileChooserListViewIcon = null;
|
|
protected static Icon fileChooserDetailViewIcon = null;
|
|
protected static Icon fileViewComputerIcon = null;
|
|
protected static Icon fileViewFloppyDriveIcon = null;
|
|
protected static Icon fileViewHardDriveIcon = null;
|
|
|
|
protected static Icon treeOpenedIcon = null;
|
|
protected static Icon treeClosedIcon = null;
|
|
protected static Icon treeLeafIcon = null;
|
|
protected static Icon treeExpandedIcon = null;
|
|
protected static Icon treeCollapsedIcon = null;
|
|
|
|
protected static Icon paletteCloseIcon = null;
|
|
protected static Icon menuIcon = null;
|
|
|
|
protected static Icon iconIcon = null;
|
|
protected static Icon maxIcon = null;
|
|
protected static Icon minIcon = null;
|
|
protected static Icon closeIcon = null;
|
|
|
|
protected static Icon upArrowIcon = null;
|
|
protected static Icon upArrowInverseIcon = null;
|
|
protected static Icon downArrowIcon = null;
|
|
protected static Icon downArrowInverseIcon = null;
|
|
protected static Icon leftArrowIcon = null;
|
|
protected static Icon leftArrowInverseIcon = null;
|
|
protected static Icon rightArrowIcon = null;
|
|
protected static Icon rightArrowInverseIcon = null;
|
|
protected static Icon menuArrowIcon = null;
|
|
protected static Icon splitterUpArrowIcon = null;
|
|
protected static Icon splitterDownArrowIcon = null;
|
|
protected static Icon splitterLeftArrowIcon = null;
|
|
protected static Icon splitterRightArrowIcon = null;
|
|
protected static Icon splitterHorBumpIcon = null;
|
|
protected static Icon splitterVerBumpIcon = null;
|
|
protected static Icon thumbHorIcon = null;
|
|
protected static Icon thumbVerIcon = null;
|
|
protected static Icon thumbHorIconRollover = null;
|
|
protected static Icon thumbVerIconRollover = null;
|
|
|
|
public static void initDefaults() {
|
|
checkBoxIcon = null;
|
|
menuCheckBoxIcon = null;
|
|
radioButtonIcon = null;
|
|
menuRadioButtonIcon = null;
|
|
optionPaneErrorIcon = null;
|
|
optionPaneWarningIcon = null;
|
|
optionPaneInformationIcon = null;
|
|
optionPaneQuestionIcon = null;
|
|
fileChooserUpFolderIcon = null;
|
|
fileChooserHomeFolderIcon = null;
|
|
fileChooserNewFolderIcon = null;
|
|
fileChooserListViewIcon = null;
|
|
fileChooserDetailViewIcon = null;
|
|
fileViewComputerIcon = null;
|
|
fileViewFloppyDriveIcon = null;
|
|
fileViewHardDriveIcon = null;
|
|
treeOpenedIcon = null;
|
|
treeClosedIcon = null;
|
|
treeLeafIcon = null;
|
|
treeExpandedIcon = null;
|
|
treeCollapsedIcon = null;
|
|
paletteCloseIcon = null;
|
|
menuIcon = null;
|
|
iconIcon = null;
|
|
maxIcon = null;
|
|
minIcon = null;
|
|
closeIcon = null;
|
|
upArrowIcon = null;
|
|
upArrowInverseIcon = null;
|
|
downArrowIcon = null;
|
|
downArrowInverseIcon = null;
|
|
leftArrowIcon = null;
|
|
leftArrowInverseIcon = null;
|
|
rightArrowIcon = null;
|
|
rightArrowInverseIcon = null;
|
|
menuArrowIcon = null;
|
|
splitterUpArrowIcon = null;
|
|
splitterDownArrowIcon = null;
|
|
splitterLeftArrowIcon = null;
|
|
splitterRightArrowIcon = null;
|
|
splitterHorBumpIcon = null;
|
|
splitterVerBumpIcon = null;
|
|
thumbHorIcon = null;
|
|
thumbVerIcon = null;
|
|
thumbHorIconRollover = null;
|
|
thumbVerIconRollover = null;
|
|
}
|
|
|
|
public static Icon getRadioButtonIcon() {
|
|
if (radioButtonIcon == null) {
|
|
radioButtonIcon = new RadioButtonIcon();
|
|
}
|
|
return radioButtonIcon;
|
|
}
|
|
|
|
public static Icon getCheckBoxIcon() {
|
|
if (checkBoxIcon == null) {
|
|
checkBoxIcon = new CheckBoxIcon();
|
|
}
|
|
return checkBoxIcon;
|
|
}
|
|
|
|
// ComboBox
|
|
public static Icon getComboBoxIcon() {
|
|
return getDownArrowIcon();
|
|
}
|
|
|
|
public static Icon getComboBoxInverseIcon() {
|
|
return getDownArrowInverseIcon();
|
|
}
|
|
|
|
// OptionPane
|
|
public static Icon getOptionPaneErrorIcon() {
|
|
if (optionPaneErrorIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
optionPaneErrorIcon = new LazyImageIcon("icons/medium/error_32x32.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
optionPaneErrorIcon = new LazyImageIcon("icons/medium/error_32x32.png");
|
|
} else {
|
|
optionPaneErrorIcon = new LazyImageIcon("icons/large/error_48x48.png");
|
|
}
|
|
}
|
|
return optionPaneErrorIcon;
|
|
}
|
|
|
|
public static Icon getOptionPaneWarningIcon() {
|
|
if (optionPaneWarningIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
optionPaneWarningIcon = new LazyImageIcon("icons/medium/warning_32x32.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
optionPaneWarningIcon = new LazyImageIcon("icons/medium/warning_32x32.png");
|
|
} else {
|
|
optionPaneWarningIcon = new LazyImageIcon("icons/large/warning_48x48.png");
|
|
}
|
|
}
|
|
return optionPaneWarningIcon;
|
|
}
|
|
|
|
public static Icon getOptionPaneInformationIcon() {
|
|
if (optionPaneInformationIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
optionPaneInformationIcon = new LazyImageIcon("icons/medium/information_32x32.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
optionPaneInformationIcon = new LazyImageIcon("icons/medium/information_32x32.png");
|
|
} else {
|
|
optionPaneInformationIcon = new LazyImageIcon("icons/large/information_48x48.png");
|
|
}
|
|
}
|
|
return optionPaneInformationIcon;
|
|
}
|
|
|
|
public static Icon getOptionPaneQuestionIcon() {
|
|
if (optionPaneQuestionIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
optionPaneQuestionIcon = new LazyImageIcon("icons/medium/question_32x32.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
optionPaneQuestionIcon = new LazyImageIcon("icons/medium/question_32x32.png");
|
|
} else {
|
|
optionPaneQuestionIcon = new LazyImageIcon("icons/large/question_48x48.png");
|
|
}
|
|
}
|
|
return optionPaneQuestionIcon;
|
|
}
|
|
|
|
// FileChooser
|
|
public static Icon getFileChooserUpFolderIcon() {
|
|
if (fileChooserUpFolderIcon == null) {
|
|
fileChooserUpFolderIcon = new LazyImageIcon("icons/folder_up_22x22.png");
|
|
}
|
|
return fileChooserUpFolderIcon;
|
|
}
|
|
|
|
public static Icon getFileChooserHomeFolderIcon() {
|
|
if (fileChooserHomeFolderIcon == null) {
|
|
fileChooserHomeFolderIcon = new LazyImageIcon("icons/home_22x22.png");
|
|
}
|
|
return fileChooserHomeFolderIcon;
|
|
}
|
|
|
|
public static Icon getFileChooserNewFolderIcon() {
|
|
if (fileChooserNewFolderIcon == null) {
|
|
fileChooserNewFolderIcon = new LazyImageIcon("icons/folder_new_22x22.png");
|
|
}
|
|
return fileChooserNewFolderIcon;
|
|
}
|
|
|
|
public static Icon getFileChooserListViewIcon() {
|
|
if (fileChooserListViewIcon == null) {
|
|
fileChooserListViewIcon = new LazyImageIcon("icons/view_list_22x22.png");
|
|
}
|
|
return fileChooserListViewIcon;
|
|
}
|
|
|
|
public static Icon getFileChooserDetailViewIcon() {
|
|
if (fileChooserDetailViewIcon == null) {
|
|
fileChooserDetailViewIcon = new LazyImageIcon("icons/view_detail_22x22.png");
|
|
}
|
|
return fileChooserDetailViewIcon;
|
|
}
|
|
|
|
public static Icon getFileViewComputerIcon() {
|
|
if (fileViewComputerIcon == null) {
|
|
fileViewComputerIcon = new LazyImageIcon("icons/computer_16x16.png");
|
|
}
|
|
return fileViewComputerIcon;
|
|
}
|
|
|
|
public static Icon getFileViewFloppyDriveIcon() {
|
|
if (fileViewFloppyDriveIcon == null) {
|
|
fileViewFloppyDriveIcon = new LazyImageIcon("icons/floppy_drive_16x16.png");
|
|
}
|
|
return fileViewFloppyDriveIcon;
|
|
}
|
|
|
|
public static Icon getFileViewHardDriveIcon() {
|
|
if (fileViewHardDriveIcon == null) {
|
|
fileViewHardDriveIcon = new LazyImageIcon("icons/hard_drive_16x16.png");
|
|
}
|
|
return fileViewHardDriveIcon;
|
|
}
|
|
|
|
// Tree
|
|
public static Icon getTreeOpenedIcon() {
|
|
if (treeOpenedIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
treeOpenedIcon = new LazyImageIcon("icons/small/folder_opened_16x16.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
treeOpenedIcon = new LazyImageIcon("icons/medium/folder_opened_20x20.png");
|
|
} else {
|
|
treeOpenedIcon = new LazyImageIcon("icons/large/folder_opened_24x24.png");
|
|
}
|
|
}
|
|
return treeOpenedIcon;
|
|
}
|
|
|
|
public static Icon getTreeClosedIcon() {
|
|
if (treeClosedIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
treeClosedIcon = new LazyImageIcon("icons/small/folder_closed_16x16.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
treeClosedIcon = new LazyImageIcon("icons/medium/folder_closed_20x20.png");
|
|
} else {
|
|
treeClosedIcon = new LazyImageIcon("icons/large/folder_closed_24x24.png");
|
|
}
|
|
}
|
|
return treeClosedIcon;
|
|
}
|
|
|
|
public static Icon getTreeLeafIcon() {
|
|
if (treeLeafIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
treeLeafIcon = new LazyImageIcon("icons/small/document_16x16.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
treeLeafIcon = new LazyImageIcon("icons/medium/document_20x20.png");
|
|
} else {
|
|
treeLeafIcon = new LazyImageIcon("icons/large/document_24x24.png");
|
|
}
|
|
}
|
|
return treeLeafIcon;
|
|
}
|
|
|
|
public static Icon getTreeCollapsedIcon() {
|
|
if (treeCollapsedIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
treeCollapsedIcon = new LazyImageIcon("icons/small/tree_collapsed_9x9.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
treeCollapsedIcon = new LazyImageIcon("icons/medium/tree_collapsed_11x11.png");
|
|
} else {
|
|
treeCollapsedIcon = new LazyImageIcon("icons/large/tree_collapsed_14x14.png");
|
|
}
|
|
}
|
|
return treeCollapsedIcon;
|
|
}
|
|
|
|
public static Icon getTreeExpandedIcon() {
|
|
if (treeExpandedIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
treeExpandedIcon = new LazyImageIcon("icons/small/tree_expanded_9x9.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
treeExpandedIcon = new LazyImageIcon("icons/medium/tree_expanded_11x11.png");
|
|
} else {
|
|
treeExpandedIcon = new LazyImageIcon("icons/large/tree_expanded_14x14.png");
|
|
}
|
|
}
|
|
return treeExpandedIcon;
|
|
}
|
|
|
|
// TitlePane icons
|
|
public static Icon getMenuIcon() {
|
|
if (menuIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
menuIcon = new LazyImageIcon("icons/small/cup_16x16.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
menuIcon = new LazyImageIcon("icons/medium/cup_20x20.png");
|
|
} else {
|
|
menuIcon = new LazyImageIcon("icons/large/cup_24x24.png");
|
|
}
|
|
}
|
|
return menuIcon;
|
|
}
|
|
|
|
public static Icon getIconIcon() {
|
|
if (iconIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
iconIcon = new MacIconIcon();
|
|
} else {
|
|
Color iconColor = AbstractLookAndFeel.getTheme().getWindowIconColor();
|
|
Color iconRolloverColor = AbstractLookAndFeel.getTheme().getWindowIconRolloverColor();
|
|
iconIcon = new IconSymbol(iconColor, null, iconRolloverColor);
|
|
}
|
|
}
|
|
return iconIcon;
|
|
}
|
|
|
|
public static Icon getMaxIcon() {
|
|
if (maxIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
maxIcon = new MacMaxIcon();
|
|
} else {
|
|
Color iconColor = AbstractLookAndFeel.getTheme().getWindowIconColor();
|
|
Color iconRolloverColor = AbstractLookAndFeel.getTheme().getWindowIconRolloverColor();
|
|
maxIcon = new MaxSymbol(iconColor, null, iconRolloverColor);
|
|
}
|
|
}
|
|
return maxIcon;
|
|
}
|
|
|
|
public static Icon getMinIcon() {
|
|
if (minIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
minIcon = new MacMinIcon();
|
|
} else {
|
|
Color iconColor = AbstractLookAndFeel.getTheme().getWindowIconColor();
|
|
Color iconRolloverColor = AbstractLookAndFeel.getTheme().getWindowIconRolloverColor();
|
|
minIcon = new MinSymbol(iconColor, null, iconRolloverColor);
|
|
}
|
|
}
|
|
return minIcon;
|
|
}
|
|
|
|
public static Icon getCloseIcon() {
|
|
if (closeIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
closeIcon = new MacCloseIcon();
|
|
} else {
|
|
Color iconColor = AbstractLookAndFeel.getTheme().getWindowIconColor();
|
|
Color iconRolloverColor = AbstractLookAndFeel.getTheme().getWindowIconRolloverColor();
|
|
closeIcon = new CloseSymbol(iconColor, null, iconRolloverColor);
|
|
}
|
|
}
|
|
return closeIcon;
|
|
}
|
|
|
|
public static Icon getPaletteCloseIcon() {
|
|
if (paletteCloseIcon == null) {
|
|
paletteCloseIcon = new CloseSymbol(Color.black, null, Color.red);
|
|
}
|
|
return paletteCloseIcon;
|
|
}
|
|
|
|
// MenuIcons
|
|
public static Icon getMenuArrowIcon() {
|
|
if (menuArrowIcon == null) {
|
|
menuArrowIcon = new LazyMenuArrowImageIcon("icons/MenuRightArrow.gif", "icons/MenuLeftArrow.gif");
|
|
}
|
|
return menuArrowIcon;
|
|
}
|
|
|
|
public static Icon getMenuCheckBoxIcon() {
|
|
if (menuCheckBoxIcon == null) {
|
|
menuCheckBoxIcon = new CheckBoxIcon();
|
|
}
|
|
return menuCheckBoxIcon;
|
|
}
|
|
|
|
public static Icon getMenuRadioButtonIcon() {
|
|
if (menuRadioButtonIcon == null) {
|
|
menuRadioButtonIcon = new RadioButtonIcon();
|
|
}
|
|
return menuRadioButtonIcon;
|
|
}
|
|
|
|
// ArrowIcons
|
|
public static Icon getUpArrowIcon() {
|
|
if (upArrowIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
upArrowIcon = new LazyImageIcon("icons/small/arrow_up_7x4.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
upArrowIcon = new LazyImageIcon("icons/medium/arrow_up_9x6.png");
|
|
} else {
|
|
upArrowIcon = new LazyImageIcon("icons/large/arrow_up_11x8.png");
|
|
}
|
|
}
|
|
return upArrowIcon;
|
|
}
|
|
|
|
public static Icon getUpArrowInverseIcon() {
|
|
if (upArrowInverseIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
upArrowInverseIcon = new LazyImageIcon("icons/small/arrow_up_inverse_7x4.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
upArrowInverseIcon = new LazyImageIcon("icons/medium/arrow_up_inverse_9x6.png");
|
|
} else {
|
|
upArrowInverseIcon = new LazyImageIcon("icons/large/arrow_up_inverse_11x8.png");
|
|
}
|
|
}
|
|
return upArrowInverseIcon;
|
|
}
|
|
|
|
public static Icon getDownArrowIcon() {
|
|
if (downArrowIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
downArrowIcon = new LazyImageIcon("icons/small/arrow_down_7x4.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
downArrowIcon = new LazyImageIcon("icons/medium/arrow_down_9x6.png");
|
|
} else {
|
|
downArrowIcon = new LazyImageIcon("icons/large/arrow_down_11x8.png");
|
|
}
|
|
}
|
|
return downArrowIcon;
|
|
}
|
|
|
|
public static Icon getDownArrowInverseIcon() {
|
|
if (downArrowInverseIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
downArrowInverseIcon = new LazyImageIcon("icons/small/arrow_down_inverse_7x4.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
downArrowInverseIcon = new LazyImageIcon("icons/medium/arrow_down_inverse_9x6.png");
|
|
} else {
|
|
downArrowInverseIcon = new LazyImageIcon("icons/large/arrow_down_inverse_11x8.png");
|
|
}
|
|
}
|
|
return downArrowInverseIcon;
|
|
}
|
|
|
|
public static Icon getLeftArrowIcon() {
|
|
if (leftArrowIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
leftArrowIcon = new LazyImageIcon("icons/small/arrow_left_4x7.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
leftArrowIcon = new LazyImageIcon("icons/medium/arrow_left_6x9.png");
|
|
} else {
|
|
leftArrowIcon = new LazyImageIcon("icons/large/arrow_left_8x11.png");
|
|
}
|
|
}
|
|
return leftArrowIcon;
|
|
}
|
|
|
|
public static Icon getLeftArrowInverseIcon() {
|
|
if (leftArrowInverseIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
leftArrowInverseIcon = new LazyImageIcon("icons/small/arrow_left_inverse_4x7.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
leftArrowInverseIcon = new LazyImageIcon("icons/medium/arrow_left_inverse_6x9.png");
|
|
} else {
|
|
leftArrowInverseIcon = new LazyImageIcon("icons/large/arrow_left_inverse_8x11.png");
|
|
}
|
|
}
|
|
return leftArrowInverseIcon;
|
|
}
|
|
|
|
public static Icon getRightArrowIcon() {
|
|
if (rightArrowIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
rightArrowIcon = new LazyImageIcon("icons/small/arrow_right_4x7.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
rightArrowIcon = new LazyImageIcon("icons/medium/arrow_right_6x9.png");
|
|
} else {
|
|
rightArrowIcon = new LazyImageIcon("icons/large/arrow_right_8x11.png");
|
|
}
|
|
}
|
|
return rightArrowIcon;
|
|
}
|
|
|
|
public static Icon getRightArrowInverseIcon() {
|
|
if (rightArrowInverseIcon == null) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
rightArrowInverseIcon = new LazyImageIcon("icons/small/arrow_right_inverse_4x7.png");
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
rightArrowInverseIcon = new LazyImageIcon("icons/medium/arrow_right_inverse_6x9.png");
|
|
} else {
|
|
rightArrowInverseIcon = new LazyImageIcon("icons/large/arrow_right_inverse_8x11.png");
|
|
}
|
|
}
|
|
return rightArrowInverseIcon;
|
|
}
|
|
|
|
// Splitter
|
|
public static Icon getSplitterUpArrowIcon() {
|
|
if (splitterUpArrowIcon == null) {
|
|
splitterUpArrowIcon = new LazyImageIcon("icons/SplitterUpArrow.gif");
|
|
}
|
|
return splitterUpArrowIcon;
|
|
}
|
|
|
|
public static Icon getSplitterDownArrowIcon() {
|
|
if (splitterDownArrowIcon == null) {
|
|
splitterDownArrowIcon = new LazyImageIcon("icons/SplitterDownArrow.gif");
|
|
}
|
|
return splitterDownArrowIcon;
|
|
}
|
|
|
|
public static Icon getSplitterLeftArrowIcon() {
|
|
if (splitterLeftArrowIcon == null) {
|
|
splitterLeftArrowIcon = new LazyImageIcon("icons/SplitterLeftArrow.gif");
|
|
}
|
|
return splitterLeftArrowIcon;
|
|
}
|
|
|
|
public static Icon getSplitterRightArrowIcon() {
|
|
if (splitterRightArrowIcon == null) {
|
|
splitterRightArrowIcon = new LazyImageIcon("icons/SplitterRightArrow.gif");
|
|
}
|
|
return splitterRightArrowIcon;
|
|
}
|
|
|
|
public static Icon getSplitterHorBumpIcon() {
|
|
if (splitterHorBumpIcon == null) {
|
|
splitterHorBumpIcon = new LazyImageIcon("icons/SplitterHorBumps.gif");
|
|
}
|
|
return splitterHorBumpIcon;
|
|
}
|
|
|
|
public static Icon getSplitterVerBumpIcon() {
|
|
if (splitterVerBumpIcon == null) {
|
|
splitterVerBumpIcon = new LazyImageIcon("icons/SplitterVerBumps.gif");
|
|
}
|
|
return splitterVerBumpIcon;
|
|
}
|
|
|
|
// Slider
|
|
public static Icon getThumbHorIcon() {
|
|
if (thumbHorIcon == null) {
|
|
thumbHorIcon = new LazyImageIcon("icons/thumb_hor.gif");
|
|
}
|
|
return thumbHorIcon;
|
|
}
|
|
|
|
public static Icon getThumbVerIcon() {
|
|
if (thumbVerIcon == null) {
|
|
thumbVerIcon = new LazyImageIcon("icons/thumb_ver.gif");
|
|
}
|
|
return thumbVerIcon;
|
|
}
|
|
|
|
public static Icon getThumbHorIconRollover() {
|
|
if (thumbHorIconRollover == null) {
|
|
thumbHorIconRollover = new LazyImageIcon("icons/thumb_hor_rollover.gif");
|
|
}
|
|
return thumbHorIconRollover;
|
|
}
|
|
|
|
public static Icon getThumbVerIconRollover() {
|
|
if (thumbVerIconRollover == null) {
|
|
thumbVerIconRollover = new LazyImageIcon("icons/thumb_ver_rollover.gif");
|
|
}
|
|
return thumbVerIconRollover;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
private static class CheckBoxIcon implements Icon {
|
|
|
|
private static int GAP = 2;
|
|
private static final Icon SMALL_CHECK_ICON = new LazyImageIcon("icons/small/check_symbol_10x10.png");
|
|
private static final Icon SMALL_CHECK_DISABLED_ICON = new LazyImageIcon("icons/small/check_symbol_disabled_10x10.png");
|
|
private static final Icon MEDIUM_CHECK_ICON = new LazyImageIcon("icons/medium/check_symbol_12x12.png");
|
|
private static final Icon MEDIUM_CHECK_DISABLED_ICON = new LazyImageIcon("icons/medium/check_symbol_disabled_12x12.png");
|
|
private static final Icon LARGE_CHECK_ICON = new LazyImageIcon("icons/large/check_symbol_14x14.png");
|
|
private static final Icon LARGE_CHECK_DISABLED_ICON = new LazyImageIcon("icons/large/check_symbol_disabled_14x14.png");
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
if (!JTattooUtilities.isLeftToRight(c)) {
|
|
x += GAP;
|
|
}
|
|
int w = getIconWidth() - GAP;
|
|
int h = getIconHeight();
|
|
AbstractButton button = (AbstractButton) c;
|
|
ButtonModel model = button.getModel();
|
|
if (c instanceof JCheckBoxMenuItem) {
|
|
g.setColor(Color.white);
|
|
g.fillRect(x, y, w, h);
|
|
if (button.isEnabled()) {
|
|
g.setColor(AbstractLookAndFeel.getFrameColor());
|
|
} else {
|
|
g.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 40));
|
|
}
|
|
g.drawRect(x, y, w, h);
|
|
} else {
|
|
if (button.isEnabled()) {
|
|
if ((button.isRolloverEnabled() && model.isRollover())) {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getRolloverColors(), x, y, w, h);
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getFocusColors(), x, y, w, h);
|
|
} else {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getCheckBoxColors(), x, y, w, h);
|
|
}
|
|
if (!model.isPressed()) {
|
|
g.setColor(Color.white);
|
|
g.drawLine(x + 1, y + 1, x + 1, y + h - 2);
|
|
g.drawLine(x + w - 1, y + 1, x + w - 1, y + h - 2);
|
|
}
|
|
}
|
|
if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) {
|
|
Color hiColor = ColorHelper.brighter(AbstractLookAndFeel.getTheme().getFocusFrameColor(), 30);
|
|
Color loColor = ColorHelper.darker(AbstractLookAndFeel.getTheme().getFocusFrameColor(), 20);
|
|
g.setColor(hiColor);
|
|
g.drawRect(x - 1, y - 1, w + 2, h + 2);
|
|
g.setColor(loColor);
|
|
g.drawRect(x, y, w, h);
|
|
} else {
|
|
g.setColor(AbstractLookAndFeel.getFrameColor());
|
|
g.drawRect(x, y, w, h);
|
|
}
|
|
} else {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getDisabledColors(), x, y, w, h);
|
|
g.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 40));
|
|
g.drawRect(x, y, w, h);
|
|
}
|
|
}
|
|
|
|
Icon checkIcon;
|
|
Icon checkDisabledIcon;
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
checkIcon = SMALL_CHECK_ICON;
|
|
checkDisabledIcon = SMALL_CHECK_DISABLED_ICON;
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
checkIcon = MEDIUM_CHECK_ICON;
|
|
checkDisabledIcon = MEDIUM_CHECK_DISABLED_ICON;
|
|
} else {
|
|
checkIcon = LARGE_CHECK_ICON;
|
|
checkDisabledIcon = LARGE_CHECK_DISABLED_ICON;
|
|
}
|
|
int xi = x + ((w - checkIcon.getIconWidth()) / 2) + 1;
|
|
int yi = y + ((h - checkIcon.getIconHeight()) / 2) + 1;
|
|
if (model.isPressed() && model.isArmed()) {
|
|
Color bc = AbstractLookAndFeel.getTheme().getSelectionBackgroundColor();
|
|
Color fc = ColorHelper.darker(bc, 40);
|
|
g.setColor(fc);
|
|
g.drawRect(x + 3, y + 3, w - 6, h - 6);
|
|
g.setColor(bc);
|
|
g.fillRect(x + 4, y + 4, w - 7, h - 7);
|
|
} else if (model.isSelected()) {
|
|
if (button.isEnabled()) {
|
|
checkIcon.paintIcon(c, g, xi, yi);
|
|
} else {
|
|
checkDisabledIcon.paintIcon(c, g, xi, yi);
|
|
}
|
|
}
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
int w;
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
w = 15;
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
w = 17;
|
|
} else {
|
|
w = 19;
|
|
}
|
|
return w + GAP;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
return 15;
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
return 17;
|
|
} else {
|
|
return 19;
|
|
}
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
private static class RadioButtonIcon implements Icon {
|
|
|
|
private static int GAP = 2;
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
if (!JTattooUtilities.isLeftToRight(c)) {
|
|
x += GAP;
|
|
}
|
|
int w = getIconWidth() - GAP;
|
|
int h = getIconHeight();
|
|
Graphics2D g2D = (Graphics2D) g;
|
|
AbstractButton button = (AbstractButton) c;
|
|
ButtonModel model = button.getModel();
|
|
Color cHi = Color.white;
|
|
Color cLo = Color.white;
|
|
if (!(c instanceof JRadioButtonMenuItem)) {
|
|
Color colors[];
|
|
if (button.isEnabled()) {
|
|
if ((button.isRolloverEnabled() && model.isRollover()) || (model.isPressed() && model.isArmed())) {
|
|
colors = AbstractLookAndFeel.getTheme().getRolloverColors();
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) {
|
|
colors = AbstractLookAndFeel.getTheme().getFocusColors();
|
|
} else {
|
|
colors = AbstractLookAndFeel.getTheme().getCheckBoxColors();
|
|
}
|
|
}
|
|
} else {
|
|
colors = AbstractLookAndFeel.getTheme().getDisabledColors();
|
|
}
|
|
cHi = colors[0];
|
|
cLo = colors[colors.length - 1];
|
|
}
|
|
Paint savedPaint = g2D.getPaint();
|
|
g2D.setPaint(new GradientPaint(0, 0, cHi, 0, h, cLo));
|
|
g2D.fillOval(x, y, w, h);
|
|
g2D.setPaint(savedPaint);
|
|
|
|
Shape savedClip = g.getClip();
|
|
//Area clipArea = new Area(new Ellipse2D.Double(x + 1, y + 1, w - 1, h - 1));
|
|
Area clipArea = new Area(new Ellipse2D.Double(x, y, w + 1, h + 1));
|
|
if (savedClip != null) {
|
|
clipArea.intersect(new Area(savedClip));
|
|
}
|
|
g2D.setClip(clipArea);
|
|
if (c instanceof JRadioButtonMenuItem) {
|
|
g.setColor(Color.white);
|
|
g.fillRect(x, y, w, h);
|
|
} else {
|
|
if (button.isEnabled()) {
|
|
if ((button.isRolloverEnabled() && model.isRollover()) || (model.isPressed() && model.isArmed())) {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getRolloverColors(), x, y, w, h);
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getFocusColors(), x, y, w, h);
|
|
} else {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getCheckBoxColors(), x, y, w, h);
|
|
}
|
|
}
|
|
} else {
|
|
JTattooUtilities.fillHorGradient(g, AbstractLookAndFeel.getTheme().getDisabledColors(), x, y, w, h);
|
|
}
|
|
}
|
|
g2D.setClip(savedClip);
|
|
|
|
Object savedRederingHint = g2D.getRenderingHint(RenderingHints.KEY_ANTIALIASING);
|
|
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
if (!model.isRollover()) {
|
|
Composite savedComposite = g2D.getComposite();
|
|
AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f);
|
|
g2D.setComposite(alpha);
|
|
g2D.setColor(Color.white);
|
|
g2D.drawOval(x + 1, y + 1, w - 2, h - 2);
|
|
g2D.setComposite(savedComposite);
|
|
}
|
|
if (button.isEnabled()) {
|
|
if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && button.hasFocus()) {
|
|
Color hiColor = ColorHelper.brighter(AbstractLookAndFeel.getTheme().getFocusFrameColor(), 30);
|
|
Color loColor = ColorHelper.darker(AbstractLookAndFeel.getTheme().getFocusFrameColor(), 20);
|
|
g.setColor(hiColor);
|
|
g.drawOval(x - 1, y - 1, w + 2, h + 2);
|
|
g.setColor(loColor);
|
|
g2D.drawOval(x, y, w, h);
|
|
} else {
|
|
g.setColor(AbstractLookAndFeel.getFrameColor());
|
|
g2D.drawOval(x, y, w, h);
|
|
}
|
|
} else {
|
|
g.setColor(ColorHelper.brighter(AbstractLookAndFeel.getFrameColor(), 40));
|
|
g2D.drawOval(x, y, w, h);
|
|
}
|
|
|
|
if (model.isSelected()) {
|
|
if (button.isEnabled()) {
|
|
Color fc = AbstractLookAndFeel.getForegroundColor();
|
|
if (ColorHelper.getGrayValue(cLo) < 128) {
|
|
if (ColorHelper.getGrayValue(fc) < 128) {
|
|
g2D.setColor(Color.white);
|
|
} else {
|
|
g2D.setColor(fc);
|
|
}
|
|
} else {
|
|
if (ColorHelper.getGrayValue(fc) > 128) {
|
|
g2D.setColor(Color.black);
|
|
} else {
|
|
g2D.setColor(fc);
|
|
}
|
|
}
|
|
} else {
|
|
g.setColor(AbstractLookAndFeel.getDisabledForegroundColor());
|
|
}
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
g2D.fillOval(x + 4, y + 4, w - 7, h - 7);
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
g2D.fillOval(x + 4, y + 4, w - 7, h - 7);
|
|
} else {
|
|
g2D.fillOval(x + 5, y + 5, w - 9, h - 9);
|
|
}
|
|
}
|
|
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, savedRederingHint);
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
int w;
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
w = 14;
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
w = 16;
|
|
} else {
|
|
w = 18;
|
|
}
|
|
return w + GAP;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
return 14;
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
return 16;
|
|
} else {
|
|
return 18;
|
|
}
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
public static class MacCloseIcon implements Icon, UIResource {
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
AbstractButton btn = (AbstractButton) c;
|
|
ButtonModel model = btn.getModel();
|
|
int w = c.getWidth();
|
|
int h = c.getHeight();
|
|
Icon closerIcon;
|
|
Icon pearlIcon;
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
closerIcon = CLOSER_SMALL;
|
|
pearlIcon = PEARL_RED_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
closerIcon = CLOSER_MEDIUM;
|
|
pearlIcon = PEARL_RED_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
closerIcon = CLOSER_LARGE;
|
|
pearlIcon = PEARL_RED_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
x = (w - pearlIcon.getIconWidth()) / 2;
|
|
y = (h - pearlIcon.getIconHeight()) / 2;
|
|
pearlIcon.paintIcon(c, g, x, y);
|
|
if (model.isRollover()) {
|
|
x += (pearlIcon.getIconWidth() - closerIcon.getIconWidth()) / 2;
|
|
y += (pearlIcon.getIconHeight() - closerIcon.getIconHeight()) / 2;
|
|
closerIcon.paintIcon(c, g, x, y);
|
|
}
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 24;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
public static class MacIconIcon implements Icon, UIResource {
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
AbstractButton btn = (AbstractButton) c;
|
|
ButtonModel model = btn.getModel();
|
|
int w = c.getWidth();
|
|
int h = c.getHeight();
|
|
Icon iconizerIcon;
|
|
Icon pearlIcon;
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
iconizerIcon = ICONIZER_SMALL;
|
|
pearlIcon = PEARL_YELLOW_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
iconizerIcon = ICONIZER_MEDIUM;
|
|
pearlIcon = PEARL_YELLOW_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
iconizerIcon = ICONIZER_LARGE;
|
|
pearlIcon = PEARL_YELLOW_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
iconizerIcon = ICONIZER_SMALL;
|
|
pearlIcon = PEARL_GREEN_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
iconizerIcon = ICONIZER_MEDIUM;
|
|
pearlIcon = PEARL_GREEN_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
iconizerIcon = ICONIZER_LARGE;
|
|
pearlIcon = PEARL_GREEN_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
}
|
|
x = (w - pearlIcon.getIconWidth()) / 2;
|
|
y = (h - pearlIcon.getIconHeight()) / 2;
|
|
pearlIcon.paintIcon(c, g, x, y);
|
|
if (model.isRollover()) {
|
|
x += (pearlIcon.getIconWidth() - iconizerIcon.getIconWidth()) / 2;
|
|
y += (pearlIcon.getIconHeight() - iconizerIcon.getIconHeight()) / 2;
|
|
iconizerIcon.paintIcon(c, g, x, y);
|
|
}
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 24;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
public static class MacMaxIcon implements Icon, UIResource {
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
AbstractButton btn = (AbstractButton) c;
|
|
ButtonModel model = btn.getModel();
|
|
int w = c.getWidth();
|
|
int h = c.getHeight();
|
|
Icon maximizerIcon;
|
|
Icon pearlIcon;
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
maximizerIcon = MAXIMIZER_SMALL;
|
|
pearlIcon = PEARL_GREEN_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
maximizerIcon = MAXIMIZER_MEDIUM;
|
|
pearlIcon = PEARL_GREEN_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
maximizerIcon = MAXIMIZER_LARGE;
|
|
pearlIcon = PEARL_GREEN_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
maximizerIcon = MAXIMIZER_SMALL;
|
|
pearlIcon = PEARL_YELLOW_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
maximizerIcon = MAXIMIZER_MEDIUM;
|
|
pearlIcon = PEARL_YELLOW_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
maximizerIcon = MAXIMIZER_LARGE;
|
|
pearlIcon = PEARL_YELLOW_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
}
|
|
x = (w - pearlIcon.getIconWidth()) / 2;
|
|
y = (h - pearlIcon.getIconHeight()) / 2;
|
|
pearlIcon.paintIcon(c, g, x, y);
|
|
if (model.isRollover()) {
|
|
x += (pearlIcon.getIconWidth() - maximizerIcon.getIconWidth()) / 2;
|
|
y += (pearlIcon.getIconHeight() - maximizerIcon.getIconHeight()) / 2;
|
|
maximizerIcon.paintIcon(c, g, x, y);
|
|
}
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 24;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
public static class MacMinIcon implements Icon, UIResource {
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
AbstractButton btn = (AbstractButton) c;
|
|
ButtonModel model = btn.getModel();
|
|
int w = c.getWidth();
|
|
int h = c.getHeight();
|
|
Icon minimizerIcon;
|
|
Icon pearlIcon;
|
|
if (AbstractLookAndFeel.getTheme().isMacStyleWindowDecorationOn()) {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
minimizerIcon = MINIMIZER_SMALL;
|
|
pearlIcon = PEARL_GREEN_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
minimizerIcon = MINIMIZER_MEDIUM;
|
|
pearlIcon = PEARL_GREEN_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
minimizerIcon = MINIMIZER_LARGE;
|
|
pearlIcon = PEARL_GREEN_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
} else {
|
|
if (AbstractLookAndFeel.getTheme().isSmallFontSize()) {
|
|
minimizerIcon = MINIMIZER_SMALL;
|
|
pearlIcon = PEARL_YELLOW_SMALL;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_SMALL;
|
|
}
|
|
} else if (AbstractLookAndFeel.getTheme().isMediumFontSize()) {
|
|
minimizerIcon = MINIMIZER_MEDIUM;
|
|
pearlIcon = PEARL_YELLOW_MEDIUM;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_MEDIUM;
|
|
}
|
|
} else {
|
|
minimizerIcon = MINIMIZER_LARGE;
|
|
pearlIcon = PEARL_YELLOW_LARGE;
|
|
if (!JTattooUtilities.isActive(btn)) {
|
|
pearlIcon = PEARL_GREY_LARGE;
|
|
}
|
|
}
|
|
}
|
|
x = (w - pearlIcon.getIconWidth()) / 2;
|
|
y = (h - pearlIcon.getIconHeight()) / 2;
|
|
pearlIcon.paintIcon(c, g, x, y);
|
|
if (model.isRollover()) {
|
|
x += (pearlIcon.getIconWidth() - minimizerIcon.getIconWidth()) / 2;
|
|
y += (pearlIcon.getIconHeight() - minimizerIcon.getIconHeight()) / 2;
|
|
minimizerIcon.paintIcon(c, g, x, y);
|
|
}
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 24;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
public static class IconSymbol implements Icon {
|
|
|
|
private Color foregroundColor = null;
|
|
private Color shadowColor = null;
|
|
private Color inactiveForegroundColor = null;
|
|
private Color inactiveShadowColor = null;
|
|
private Color rolloverColor = null;
|
|
private Insets insets = new Insets(0, 0, 0, 0);
|
|
|
|
public IconSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
}
|
|
|
|
public IconSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public IconSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Color inactiveForegroundColor, Color inactiveShadowColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = inactiveForegroundColor;
|
|
this.inactiveShadowColor = inactiveShadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 16;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 16;
|
|
}
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
Graphics2D g2D = (Graphics2D) g;
|
|
g2D.translate(insets.left, insets.top);
|
|
int w = c.getWidth() - insets.left - insets.right;
|
|
int h = c.getHeight() - insets.top - insets.bottom;
|
|
boolean active = JTattooUtilities.isActive((JComponent) c);
|
|
Color color = foregroundColor;
|
|
if (!active) {
|
|
color = inactiveForegroundColor;
|
|
}
|
|
if (c instanceof AbstractButton) {
|
|
if (((AbstractButton) c).getModel().isRollover() && (rolloverColor != null)) {
|
|
color = rolloverColor;
|
|
}
|
|
}
|
|
//int lw = (w / 12) + 1;
|
|
int lw = (h > 22) ? 3 : 2;
|
|
|
|
int dx = (w / 5) + 2;
|
|
int dy = dx;
|
|
|
|
Stroke savedStroke = g2D.getStroke();
|
|
g2D.setStroke(new BasicStroke(lw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
|
|
if (shadowColor != null) {
|
|
if (!active) {
|
|
g2D.setColor(inactiveShadowColor);
|
|
} else {
|
|
g2D.setColor(shadowColor);
|
|
}
|
|
g2D.drawLine(dx + 1, h - dy, w - dx + 1, h - dy);
|
|
}
|
|
g2D.setColor(color);
|
|
g2D.drawLine(dx, h - dy - 1, w - dx, h - dy - 1);
|
|
g2D.setStroke(savedStroke);
|
|
g2D.translate(-insets.left, -insets.top);
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
public static class MaxSymbol implements Icon {
|
|
|
|
private Color foregroundColor = null;
|
|
private Color shadowColor = null;
|
|
private Color rolloverColor = null;
|
|
private Color inactiveForegroundColor = null;
|
|
private Color inactiveShadowColor = null;
|
|
private Insets insets = new Insets(0, 0, 0, 0);
|
|
|
|
public MaxSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
}
|
|
|
|
public MaxSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public MaxSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Color inactiveForegroundColor, Color inactiveShadowColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = inactiveForegroundColor;
|
|
this.inactiveShadowColor = inactiveShadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 16;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 16;
|
|
}
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
Graphics2D g2D = (Graphics2D) g;
|
|
g2D.translate(insets.left, insets.top);
|
|
int w = c.getWidth() - insets.left - insets.right;
|
|
int h = c.getHeight() - insets.top - insets.bottom;
|
|
boolean active = JTattooUtilities.isActive((JComponent) c);
|
|
Color color = foregroundColor;
|
|
if (!active) {
|
|
color = inactiveForegroundColor;
|
|
}
|
|
if (c instanceof AbstractButton) {
|
|
if (((AbstractButton) c).getModel().isRollover() && (rolloverColor != null)) {
|
|
color = rolloverColor;
|
|
}
|
|
}
|
|
int lw = (h > 22) ? 2 : 1;
|
|
|
|
int dx = (w / 5) + 1;
|
|
int dy = (h / 5) + 2;
|
|
|
|
Stroke savedStroke = g2D.getStroke();
|
|
g2D.setStroke(new BasicStroke(lw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
|
|
if (shadowColor != null) {
|
|
if (!active) {
|
|
g2D.setColor(inactiveShadowColor);
|
|
} else {
|
|
g2D.setColor(shadowColor);
|
|
}
|
|
g2D.drawRect(dx + 1, dy + 1, w - (2 * dx), h - (2 * dy));
|
|
g2D.drawLine(dx + 1, dy + lw + 1, w - dx, dy + lw + 1);
|
|
}
|
|
g2D.setColor(color);
|
|
g2D.drawRect(dx, dy, w - (2 * dx), h - (2 * dy));
|
|
g2D.drawLine(dx + 1, dy + lw, w - dx, dy + lw);
|
|
|
|
g2D.setStroke(savedStroke);
|
|
g2D.translate(-insets.left, -insets.top);
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
public static class MinSymbol implements Icon {
|
|
|
|
private Color foregroundColor = null;
|
|
private Color shadowColor = null;
|
|
private Color rolloverColor = null;
|
|
private Color inactiveForegroundColor = null;
|
|
private Color inactiveShadowColor = null;
|
|
private Insets insets = new Insets(0, 0, 0, 0);
|
|
|
|
public MinSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
}
|
|
|
|
public MinSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public MinSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Color inactiveForegroundColor, Color inactiveShadowColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = inactiveForegroundColor;
|
|
this.inactiveShadowColor = inactiveShadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 16;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 16;
|
|
}
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
Graphics2D g2D = (Graphics2D) g;
|
|
g2D.translate(insets.left, insets.top);
|
|
int w = c.getWidth() - insets.left - insets.right;
|
|
int h = c.getHeight() - insets.top - insets.bottom;
|
|
|
|
int lw = (h > 22) ? 2 : 1;
|
|
int delta = w / 4;
|
|
|
|
w = Math.min(w, h) - 6;
|
|
h = w;
|
|
|
|
int x1 = 3;
|
|
int y1 = 3;
|
|
int w1 = w - delta;
|
|
int h1 = h - delta;
|
|
|
|
int x2 = delta + 2;
|
|
int y2 = Math.max(delta + 2, y1 + (2 * lw) + 1);
|
|
int w2 = w - delta;
|
|
int h2 = h - delta;
|
|
|
|
boolean active = JTattooUtilities.isActive((JComponent) c);
|
|
Color ic = foregroundColor;
|
|
Color sc = shadowColor;
|
|
if (!active) {
|
|
ic = inactiveForegroundColor;
|
|
if (sc != null) {
|
|
sc = inactiveShadowColor;
|
|
}
|
|
}
|
|
if (c instanceof AbstractButton) {
|
|
if (((AbstractButton) c).getModel().isRollover() && (rolloverColor != null)) {
|
|
ic = rolloverColor;
|
|
}
|
|
}
|
|
|
|
Shape savedClip = g2D.getClip();
|
|
Stroke savedStroke = g2D.getStroke();
|
|
g2D.setStroke(new BasicStroke(lw, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
|
|
Area clipArea = new Area(savedClip);
|
|
clipArea.subtract(new Area(new Rectangle2D.Double(x2, y2, w2, h2)));
|
|
g2D.setClip(clipArea);
|
|
paintRect(g2D, x1, y1, w1, h1, lw, ic, sc);
|
|
g2D.setClip(savedClip);
|
|
paintRect(g2D, x2, y2, w2, h2, lw, ic, sc);
|
|
|
|
g2D.setStroke(savedStroke);
|
|
g2D.translate(-insets.left, -insets.top);
|
|
}
|
|
|
|
private void paintRect(Graphics2D g2D, int x, int y, int w, int h, int lw, Color iconColor, Color shadowColor) {
|
|
if (shadowColor != null) {
|
|
g2D.setColor(shadowColor);
|
|
g2D.drawRect(x + 1, y + 1, w, h);
|
|
g2D.drawLine(x + 1, y + lw + 1, x + w + 1, y + lw + 1);
|
|
}
|
|
g2D.setColor(iconColor);
|
|
g2D.drawRect(x, y, w, h);
|
|
g2D.drawLine(x, y + lw, x + w, y + lw);
|
|
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------------------------------
|
|
public static class CloseSymbol implements Icon {
|
|
|
|
private Color foregroundColor = null;
|
|
private Color shadowColor = null;
|
|
private Color rolloverColor = null;
|
|
private Color inactiveForegroundColor = null;
|
|
private Color inactiveShadowColor = null;
|
|
private Insets insets = new Insets(0, 0, 0, 0);
|
|
|
|
public CloseSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
}
|
|
|
|
public CloseSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.insets = insets;
|
|
this.inactiveForegroundColor = foregroundColor;
|
|
this.inactiveShadowColor = shadowColor;
|
|
}
|
|
|
|
public CloseSymbol(Color foregroundColor, Color shadowColor, Color rolloverColor, Color inactiveForegroundColor, Color inactiveShadowColor, Insets insets) {
|
|
this.foregroundColor = foregroundColor;
|
|
this.shadowColor = shadowColor;
|
|
this.rolloverColor = rolloverColor;
|
|
this.inactiveForegroundColor = inactiveForegroundColor;
|
|
this.inactiveShadowColor = inactiveShadowColor;
|
|
this.insets = insets;
|
|
}
|
|
|
|
public int getIconHeight() {
|
|
return 16;
|
|
}
|
|
|
|
public int getIconWidth() {
|
|
return 16;
|
|
}
|
|
|
|
public void paintIcon(Component c, Graphics g, int x, int y) {
|
|
Graphics2D g2D = (Graphics2D) g;
|
|
g2D.translate(insets.left, insets.top);
|
|
int w = c.getWidth() - insets.left - insets.right;
|
|
int h = c.getHeight() - insets.top - insets.bottom;
|
|
boolean active = JTattooUtilities.isActive((JComponent) c);
|
|
Color color = foregroundColor;
|
|
if (!active) {
|
|
color = inactiveForegroundColor;
|
|
}
|
|
if (c instanceof AbstractButton) {
|
|
if (((AbstractButton) c).getModel().isRollover() && (rolloverColor != null)) {
|
|
color = rolloverColor;
|
|
}
|
|
}
|
|
//int lw = (w / 12) + 1;
|
|
int lw = (h > 22) ? 3 : 2;
|
|
int dx = (w / 5) + 2;
|
|
int dy = dx;
|
|
|
|
Stroke savedStroke = g2D.getStroke();
|
|
Object savedRederingHint = g2D.getRenderingHint(RenderingHints.KEY_ANTIALIASING);
|
|
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
|
|
g2D.setStroke(new BasicStroke(lw, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
|
|
if (shadowColor != null) {
|
|
if (!active) {
|
|
g2D.setColor(inactiveShadowColor);
|
|
} else {
|
|
g2D.setColor(shadowColor);
|
|
}
|
|
g2D.drawLine(dx + 1, dy + 1, w - dx + 1, h - dy + 1);
|
|
g2D.drawLine(w - dx + 1, dy + 1, dx + 1, h - dy + 1);
|
|
}
|
|
g2D.setColor(color);
|
|
g2D.drawLine(dx, dy, w - dx, h - dy);
|
|
g2D.drawLine(w - dx, dy, dx, h - dy);
|
|
|
|
g2D.setStroke(savedStroke);
|
|
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, savedRederingHint);
|
|
g2D.translate(-insets.left, -insets.top);
|
|
}
|
|
}
|
|
}
|