gtkiconfactory.java

来自「java jdk 1.4的源码」· Java 代码 · 共 447 行 · 第 1/2 页

JAVA
447
字号
/* * @(#)GTKIconFactory.java	1.19 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.java.swing.plaf.gtk;import java.awt.*;import java.lang.reflect.*;import javax.swing.*;import javax.swing.plaf.*;import java.util.HashMap;/** * @version 1.19, 01/23/03 */class GTKIconFactory {    // Tree icons    private static SynthIcon expandedIcon;    private static SynthIcon collapsedIcon;    private static SynthIcon radioButtonIcon;    private static SynthIcon checkBoxIcon;    private static SynthIcon menuArrowIcon;    private static SynthIcon menuCheckIcon;    private static SynthIcon menuItemArrowIcon;    private static SynthIcon menuItemCheckIcon;    private static SynthIcon checkBoxMenuItemArrowIcon;    private static SynthIcon checkBoxMenuItemCheckIcon;    private static SynthIcon radioButtonMenuItemArrowIcon;    private static SynthIcon radioButtonMenuItemCheckIcon;    private static SynthIcon toolBarHandleIcon;    //    // Tree methods    //     public static SynthIcon getTreeExpandedIcon() {        if (expandedIcon == null) {            expandedIcon =                new SynthExpanderIcon("paintTreeExpandedIcon");        }        return expandedIcon;    }    public static void paintTreeExpandedIcon(SynthContext context, Graphics g,                                      int x, int y, int w, int h) {        ((GTKStyle)context.getStyle()).getEngine(context).paintExpander(               context, g, GTKLookAndFeel.synthStateToGTKState(               context.getRegion(), context.getComponentState()),               GTKConstants.EXPANDER_EXPANDED, "treeview", x, y, w, h);    }    public static SynthIcon getTreeCollapsedIcon() {        if (collapsedIcon == null) {            collapsedIcon =                new SynthExpanderIcon("paintTreeCollapsedIcon");        }        return collapsedIcon;    }    public static void paintTreeCollapsedIcon(SynthContext context, Graphics g,                                      int x, int y, int w, int h) {        ((GTKStyle)context.getStyle()).getEngine(context).paintExpander(               context, g, GTKLookAndFeel.synthStateToGTKState(               context.getRegion(), context.getComponentState()),               GTKConstants.EXPANDER_COLLAPSED, "treeview", x, y, w, h);    }    //    // Radio button    //    public static SynthIcon getRadioButtonIcon() {        if (radioButtonIcon == null) {            radioButtonIcon = new DelegatingIcon("paintRadioButtonIcon",                                                 13, 13);        }        return radioButtonIcon;    }    public static void paintRadioButtonIcon(SynthContext context, Graphics g,                                            int x, int y, int w, int h) {        GTKStyle style = (GTKStyle)context.getStyle();        int state = context.getComponentState();        int gtkState = GTKLookAndFeel.synthStateToGTKState(context.getRegion(),                                                           state);        int shadowType = GTKConstants.SHADOW_OUT;        // RadioButton painting appears to be special cased to pass        // SELECTED into the engine even though text colors are PRESSED.        if ((state & SynthConstants.SELECTED) != 0) {            gtkState = SynthConstants.SELECTED;        }        if (gtkState == SynthConstants.SELECTED) {            shadowType = GTKConstants.SHADOW_IN;        }        ((GTKStyle)context.getStyle()).getEngine(                context).paintOption(context, g, gtkState, shadowType,                    "radiobutton", x, y, w, h);    }    //    // CheckBox    //    public static SynthIcon getCheckBoxIcon() {        if (checkBoxIcon == null) {            checkBoxIcon = new DelegatingIcon("paintCheckBoxIcon", 13, 13);        }        return checkBoxIcon;    }    public static void paintCheckBoxIcon(SynthContext context, Graphics g,                                         int x, int y, int w, int h) {        GTKStyle style = (GTKStyle)context.getStyle();        int state = context.getComponentState();        int shadowType = GTKConstants.SHADOW_OUT;        if (((JCheckBox)context.getComponent()).isSelected()) {            shadowType = GTKConstants.SHADOW_IN;        }        ((GTKStyle)context.getStyle()).getEngine(                context).paintCheck(context, g,                GTKLookAndFeel.synthStateToGTKState(context.getRegion(),                context.getComponentState()), shadowType, "checkbutton",                x, y, w, h);    }    //    // Menus    //     public static SynthIcon getMenuArrowIcon() {        if (menuArrowIcon == null) {            menuArrowIcon = new DelegatingIcon("paintMenuArrowIcon", 13, 13);        }        return menuArrowIcon;    }    public static void paintMenuArrowIcon(SynthContext context, Graphics g,                                          int x, int y, int w, int h) {        GTKStyle style = (GTKStyle)context.getStyle();        int gtkState = GTKLookAndFeel.synthStateToGTKState(                context.getRegion(), context.getComponentState());        int shadow = GTKConstants.SHADOW_OUT;        if (gtkState == SynthConstants.MOUSE_OVER) {            shadow = GTKConstants.SHADOW_IN;        }        int arrowDir;        if (context.getComponent().getComponentOrientation().isLeftToRight()) {            arrowDir = GTKConstants.ARROW_RIGHT;        }        else {            arrowDir = GTKConstants.ARROW_LEFT;        }        style.getEngine(context).paintArrow(context, g, gtkState,             shadow, arrowDir, "menuitem", x + 3, y + 3, 7, 7);    }    public static SynthIcon getMenuItemArrowIcon() {        if (menuItemArrowIcon == null) {            menuItemArrowIcon = new DelegatingIcon("paintMenuItemArrowIcon",                                                   13, 13);        }        return menuItemArrowIcon;    }    public static void paintMenuItemArrowIcon(SynthContext context, Graphics g,                                          int x, int y, int w, int h) {        // Don't paint anything.  We are just reserving space so we align the        // menu items correctly.    }    public static SynthIcon getCheckBoxMenuItemArrowIcon() {        if (checkBoxMenuItemArrowIcon == null) {            checkBoxMenuItemArrowIcon = new DelegatingIcon(                "paintCheckBoxMenuItemArrowIcon", 13, 13);        }        return checkBoxMenuItemArrowIcon;    }    public static void paintCheckBoxMenuItemArrowIcon(SynthContext context,                            Graphics g, int x, int y, int w, int h) {        // Don't paint anything.  We are just reserving space so we align the        // menu items correctly.    }    public static SynthIcon getCheckBoxMenuItemCheckIcon() {        if (checkBoxMenuItemCheckIcon == null) {            checkBoxMenuItemCheckIcon = new DelegatingIcon(                "paintCheckBoxMenuItemCheckIcon", 13, 13);        }        return checkBoxMenuItemCheckIcon;    }    public static void paintCheckBoxMenuItemCheckIcon(             SynthContext context, Graphics g, int x, int y, int w, int h) {        GTKStyle style = (GTKStyle)context.getStyle();        int state = context.getComponentState();        int shadowType = GTKConstants.SHADOW_OUT;        int gtkState;        if ((state & SynthConstants.SELECTED) != 0) {            gtkState = SynthConstants.SELECTED;        }        else {            gtkState = GTKLookAndFeel.synthStateToGTKState(                                      context.getRegion(), state);        }        if (gtkState == SynthConstants.SELECTED) {            shadowType = GTKConstants.SHADOW_IN;        }        style.getEngine(context).paintCheck(context, g, gtkState,                    shadowType, "check", x, y, w, h);    }    public static SynthIcon getRadioButtonMenuItemArrowIcon() {        if (radioButtonMenuItemArrowIcon == null) {            radioButtonMenuItemArrowIcon = new DelegatingIcon(                "paintRadioButtonMenuItemArrowIcon", 13, 13);        }        return radioButtonMenuItemArrowIcon;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?