home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.AbstractButton;
- import com.sun.java.swing.ButtonModel;
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JMenu;
- import com.sun.java.swing.JMenuBar;
- import com.sun.java.swing.JMenuItem;
- import com.sun.java.swing.KeyStroke;
- import com.sun.java.swing.SwingUtilities;
- import com.sun.java.swing.UIManager;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Rectangle;
- import java.awt.event.KeyEvent;
-
- public class BasicGraphicsUtils {
- public static final Font controlFont = new Font("Dialog", 0, 12);
- public static Color control;
- public static Color controlShadow;
- public static Color controlHighlight;
- public static Color controlBlack;
- public static Color controlWhite;
- public static Color scrollbarTrack;
- public static Color toolTip;
- private static final Insets GROOVE_INSETS;
- private static final Insets ETCHED_INSETS;
-
- public static void drawEtchedRect(Graphics var0, int var1, int var2, int var3, int var4) {
- Color var5 = var0.getColor();
- var0.translate(var1, var2);
- var0.setColor(controlShadow);
- var0.drawLine(0, 0, var3 - 1, 0);
- var0.drawLine(0, 1, 0, var4 - 2);
- var0.setColor(controlBlack);
- var0.drawLine(1, 1, var3 - 3, 1);
- var0.drawLine(1, 2, 1, var4 - 3);
- var0.setColor(controlWhite);
- var0.drawLine(var3 - 1, 0, var3 - 1, var4 - 1);
- var0.drawLine(0, var4 - 1, var3 - 1, var4 - 1);
- var0.setColor(control);
- var0.drawLine(var3 - 2, 1, var3 - 2, var4 - 3);
- var0.drawLine(1, var4 - 2, var3 - 3, var4 - 2);
- var0.translate(-var1, -var2);
- var0.setColor(var5);
- }
-
- public static Insets getEtchedInsets() {
- return ETCHED_INSETS;
- }
-
- public static void drawGroove(Graphics var0, int var1, int var2, int var3, int var4) {
- Color var5 = var0.getColor();
- var0.translate(var1, var2);
- var0.setColor(controlShadow);
- var0.drawRect(0, 0, var3 - 2, var4 - 2);
- var0.setColor(controlWhite);
- var0.drawLine(1, var4 - 3, 1, 1);
- var0.drawLine(1, 1, var3 - 3, 1);
- var0.drawLine(0, var4 - 1, var3 - 1, var4 - 1);
- var0.drawLine(var3 - 1, var4 - 1, var3 - 1, 0);
- var0.translate(-var1, -var2);
- var0.setColor(var5);
- }
-
- public static Insets getGrooveInsets() {
- return GROOVE_INSETS;
- }
-
- public static void drawBezel(Graphics var0, int var1, int var2, int var3, int var4, boolean var5, boolean var6) {
- Color var7 = var0.getColor();
- var0.translate(var1, var2);
- if (var5) {
- if (var6) {
- var0.setColor(controlBlack);
- var0.drawRect(0, 0, var3 - 1, var4 - 1);
- }
-
- var0.setColor(controlShadow);
- var0.drawRect(1, 1, var3 - 3, var4 - 3);
- } else {
- if (var6) {
- var0.setColor(controlBlack);
- var0.drawRect(0, 0, var3 - 1, var4 - 1);
- var0.setColor(controlHighlight);
- var0.drawLine(1, 1, 1, var4 - 3);
- var0.drawLine(2, 1, var3 - 4, 1);
- var0.setColor(controlShadow);
- var0.drawLine(2, var4 - 3, var3 - 3, var4 - 3);
- var0.drawLine(var3 - 3, 1, var3 - 3, var4 - 4);
- var0.setColor(Color.black);
- var0.drawLine(1, var4 - 2, var3 - 2, var4 - 2);
- var0.drawLine(var3 - 2, var4 - 2, var3 - 2, 1);
- } else {
- var0.setColor(controlHighlight);
- var0.drawLine(0, 0, 0, var4 - 1);
- var0.drawLine(1, 0, var3 - 3, 0);
- var0.setColor(controlShadow);
- var0.drawLine(1, var4 - 2, var3 - 2, var4 - 2);
- var0.drawLine(var3 - 2, 0, var3 - 2, var4 - 3);
- var0.setColor(Color.black);
- var0.drawLine(0, var4 - 1, var3 - 1, var4 - 1);
- var0.drawLine(var3 - 1, var4 - 1, var3 - 1, 0);
- }
-
- var0.translate(-var1, -var2);
- var0.setColor(var7);
- }
- }
-
- public static void drawLoweredBezel(Graphics var0, int var1, int var2, int var3, int var4) {
- var0.setColor(controlBlack);
- var0.drawLine(0, 0, 0, var4 - 1);
- var0.drawLine(1, 0, var3 - 3, 0);
- var0.setColor(controlShadow);
- var0.drawLine(1, 1, 1, var4 - 2);
- var0.drawLine(1, 1, var3 - 3, 1);
- var0.setColor(controlHighlight);
- var0.drawLine(0, var4 - 1, var3 - 1, var4 - 1);
- var0.drawLine(var3 - 1, var4 - 1, var3 - 1, 0);
- }
-
- public static void drawString(Graphics var0, String var1, int var2, int var3, int var4) {
- char[] var5 = new char[1];
- int var9 = -1;
- if (var2 != 0) {
- var5[0] = (char)var2;
- String var6 = (new String(var5)).toUpperCase();
- char var8 = var6.charAt(0);
- var6 = (new String(var5)).toLowerCase();
- char var7 = var6.charAt(0);
- int var11 = var1.indexOf(var8);
- int var10 = var1.indexOf(var7);
- if (var11 == -1) {
- var9 = var10;
- } else if (var10 == -1) {
- var9 = var11;
- } else {
- var9 = var10 < var11 ? var10 : var11;
- }
- }
-
- var0.drawString(var1, var3, var4);
- if (var9 != -1) {
- FontMetrics var12 = var0.getFontMetrics();
- Rectangle var13 = new Rectangle();
- var13.x = var3 + var12.stringWidth(var1.substring(0, var9));
- var13.y = var4;
- var13.width = var12.charWidth(var1.charAt(var9));
- var13.height = 1;
- var0.fillRect(var13.x, var13.y + var12.getDescent() - 1, var13.width, var13.height);
- }
-
- }
-
- public static void drawDashedRect(Graphics var0, int var1, int var2, int var3, int var4) {
- for(int var5 = var1; var5 < var1 + var3; var5 += 2) {
- var0.drawLine(var5, var2, var5, var2);
- var0.drawLine(var5, var2 + var4 - 1, var5, var2 + var4 - 1);
- }
-
- for(int var6 = var2; var6 < var2 + var4; var6 += 2) {
- var0.drawLine(var1, var6, var1, var6);
- var0.drawLine(var1 + var3 - 1, var6, var1 + var3 - 1, var6);
- }
-
- }
-
- public static void paintMenuItem(Graphics var0, JComponent var1, Icon var2, Icon var3, Color var4, Color var5, int var6) {
- JMenuItem var7 = (JMenuItem)var1;
- ButtonModel var8 = ((AbstractButton)var7).getModel();
- Dimension var9 = ((Component)var7).getSize();
- Insets var10 = var1.getInsets();
- Rectangle var11 = new Rectangle(var9);
- var11.x += var10.left;
- var11.y += var10.top;
- var11.width -= var10.right + var11.x;
- var11.height -= var10.bottom + var11.y;
- Rectangle var12 = new Rectangle();
- Rectangle var13 = new Rectangle();
- Rectangle var14 = new Rectangle();
- Rectangle var15 = new Rectangle();
- Rectangle var16 = new Rectangle();
- Font var17 = var0.getFont();
- Font var18 = ((Component)var1).getFont();
- var0.setFont(var18);
- FontMetrics var19 = var0.getFontMetrics(var18);
- FontMetrics var20 = var0.getFontMetrics(UIManager.getFont("MenuItem.acceleratorFont"));
- Color var21 = var0.getColor();
- if (var1.isOpaque()) {
- if (!var8.isArmed() && (!(var1 instanceof JMenu) || !var8.isSelected())) {
- var0.setColor(((Component)var7).getBackground());
- var0.fillRect(0, 0, var9.width, var9.height);
- } else {
- var0.setColor(var4);
- var0.fillRect(0, 0, var9.width, var9.height);
- }
-
- var0.setColor(var21);
- }
-
- KeyStroke var22 = var7.getAccelerator();
- String var23 = "";
- if (var22 != null) {
- int var24 = var22.getModifiers();
- if (var24 > 0) {
- var23 = KeyEvent.getKeyModifiersText(var24);
- var23 = var23 + "+";
- }
-
- var23 = var23 + KeyEvent.getKeyText(var22.getKeyCode());
- }
-
- String var27 = layoutMenuItem(var19, ((AbstractButton)var7).getText(), var20, var23, ((AbstractButton)var7).getIcon(), var2, var3, ((AbstractButton)var7).getVerticalAlignment(), ((AbstractButton)var7).getHorizontalAlignment(), ((AbstractButton)var7).getVerticalTextPosition(), ((AbstractButton)var7).getHorizontalTextPosition(), var11, var12, var13, var14, var15, var16, ((AbstractButton)var7).getText() == null ? 0 : var6, var6);
- if (var2 != null) {
- if (!var8.isArmed() && (!(var1 instanceof JMenu) || !var8.isSelected())) {
- var0.setColor(((Component)var7).getForeground());
- } else {
- var0.setColor(var5);
- }
-
- var2.paintIcon(var1, var0, var15.x, var15.y);
- var0.setColor(var21);
- }
-
- if (((AbstractButton)var7).getIcon() != null) {
- Icon var25;
- if (!var8.isEnabled()) {
- var25 = ((AbstractButton)var7).getDisabledIcon();
- } else if (var8.isPressed() && var8.isArmed()) {
- var25 = ((AbstractButton)var7).getPressedIcon();
- if (var25 == null) {
- var25 = ((AbstractButton)var7).getIcon();
- }
- } else {
- var25 = ((AbstractButton)var7).getIcon();
- }
-
- var25.paintIcon(var1, var0, var12.x, var12.y);
- }
-
- if (var27 != null && !var27.equals("")) {
- if (!var8.isEnabled()) {
- if (UIManager.get("MenuItem.disabledForeground") instanceof Color) {
- var0.setColor(UIManager.getColor("MenuItem.disabledForeground"));
- drawString(var0, var27, var8.getMnemonic(), var13.x, var13.y + var19.getAscent());
- } else {
- var0.setColor(((Component)var7).getBackground().brighter());
- drawString(var0, var27, var8.getMnemonic(), var13.x, var13.y + var19.getAscent());
- var0.setColor(((Component)var7).getBackground().darker());
- drawString(var0, var27, var8.getMnemonic(), var13.x - 1, var13.y + var19.getAscent() - 1);
- }
- } else {
- if (!var8.isArmed() && (!(var1 instanceof JMenu) || !var8.isSelected())) {
- var0.setColor(((Component)var7).getForeground());
- } else {
- var0.setColor(var5);
- }
-
- drawString(var0, var27, var8.getMnemonic(), var13.x, var13.y + var19.getAscent());
- }
- }
-
- if (var23 != null && !var23.equals("")) {
- var0.setFont(UIManager.getFont("MenuItem.acceleratorFont"));
- if (!var8.isEnabled()) {
- if (UIManager.get("MenuItem.disabledForeground") instanceof Color) {
- var0.setColor(UIManager.getColor("MenuItem.disabledForeground"));
- drawString(var0, var23, var8.getMnemonic(), var14.x, var14.y + var19.getAscent());
- } else {
- var0.setColor(((Component)var7).getBackground().brighter());
- drawString(var0, var23, var8.getMnemonic(), var14.x, var14.y + var19.getAscent());
- var0.setColor(((Component)var7).getBackground().darker());
- drawString(var0, var23, var8.getMnemonic(), var14.x - 1, var14.y + var19.getAscent() - 1);
- }
- } else {
- if (!var8.isArmed() && (!(var1 instanceof JMenu) || !var8.isSelected())) {
- var0.setColor(UIManager.getColor("MenuItem.acceleratorForeground"));
- } else {
- var0.setColor(UIManager.getColor("MenuItem.acceleratorPressedForeground"));
- }
-
- drawString(var0, var23, var8.getMnemonic(), var14.x, var14.y + var19.getAscent());
- }
- }
-
- if (var3 != null) {
- if (var8.isArmed() || var1 instanceof JMenu && var8.isSelected()) {
- var0.setColor(var5);
- }
-
- if (!(((Component)var7).getParent() instanceof JMenuBar)) {
- var3.paintIcon(var1, var0, var16.x, var16.y);
- }
- }
-
- var0.setColor(var21);
- var0.setFont(var17);
- }
-
- public static Dimension getPreferredButtonSize(AbstractButton var0, int var1) {
- if (((Container)var0).getComponentCount() > 0) {
- return null;
- } else {
- Icon var2 = var0.getIcon();
- String var3 = var0.getText();
- Font var4 = ((Component)var0).getFont();
- FontMetrics var5 = ((Component)var0).getToolkit().getFontMetrics(var4);
- Rectangle var6 = new Rectangle();
- Rectangle var7 = new Rectangle();
- Rectangle var8 = new Rectangle(32767, 32767);
- SwingUtilities.layoutCompoundLabel(var5, var3, var2, var0.getVerticalAlignment(), var0.getHorizontalAlignment(), var0.getVerticalTextPosition(), var0.getHorizontalTextPosition(), var8, var6, var7, var3 == null ? 0 : var1);
- Rectangle var9 = var6.union(var7);
- Insets var10 = ((JComponent)var0).getInsets();
- var9.width += var10.left + var10.right;
- var9.height += var10.top + var10.bottom;
- if (var9.width % 2 == 0) {
- ++var9.width;
- }
-
- if (var9.height % 2 == 0) {
- ++var9.height;
- }
-
- return var9.getSize();
- }
- }
-
- public static String layoutMenuItem(FontMetrics var0, String var1, FontMetrics var2, String var3, Icon var4, Icon var5, Icon var6, int var7, int var8, int var9, int var10, Rectangle var11, Rectangle var12, Rectangle var13, Rectangle var14, Rectangle var15, Rectangle var16, int var17, int var18) {
- SwingUtilities.layoutCompoundLabel(var0, var1, var4, var7, var8, var9, var10, var11, var12, var13, var17);
- boolean var19 = var3 == null || var3.equals("");
- if (var19) {
- var14.width = var14.height = 0;
- var3 = "";
- } else {
- var14.width = SwingUtilities.computeStringWidth(var2, var3);
- var14.height = var2.getHeight();
- }
-
- if (var5 != null) {
- var15.width = var5.getIconWidth();
- var15.height = var5.getIconHeight();
- } else {
- var15.width = var15.height = 0;
- }
-
- if (var6 != null) {
- var16.width = var6.getIconWidth();
- var16.height = var6.getIconHeight();
- } else {
- var16.width = var16.height = 0;
- }
-
- var13.x += var15.width + var18;
- var12.x += var15.width + var18;
- Rectangle var20 = var12.union(var13);
- var14.x += var11.width - var16.width - var18 - var14.width;
- var14.y = var11.y + var11.height / 2 - var14.height / 2;
- var16.x += var11.width - var16.width;
- var16.y = var11.y + var20.height / 2 - var16.height / 2;
- var15.y = var11.y + var20.height / 2 - var15.height / 2;
- var15.x += var11.x;
- return var1;
- }
-
- public static Dimension getPreferredMenuItemSize(JComponent var0, Icon var1, Icon var2, int var3) {
- JMenuItem var4 = (JMenuItem)var0;
- Icon var5 = ((AbstractButton)var4).getIcon();
- String var6 = ((AbstractButton)var4).getText();
- KeyStroke var7 = var4.getAccelerator();
- String var8 = "";
- if (var7 != null) {
- int var9 = var7.getModifiers();
- if (var9 > 0) {
- var8 = KeyEvent.getKeyModifiersText(var9);
- var8 = var8 + "+";
- }
-
- var8 = var8 + KeyEvent.getKeyText(var7.getKeyCode());
- }
-
- Font var22 = ((Component)var4).getFont();
- FontMetrics var10 = ((Component)var4).getToolkit().getFontMetrics(var22);
- FontMetrics var11 = ((Component)var4).getToolkit().getFontMetrics(UIManager.getFont("MenuItem.acceleratorFont"));
- Rectangle var12 = new Rectangle();
- Rectangle var13 = new Rectangle();
- Rectangle var14 = new Rectangle();
- Rectangle var15 = new Rectangle();
- Rectangle var16 = new Rectangle();
- Rectangle var17 = new Rectangle(32767, 32767);
- layoutMenuItem(var10, var6, var11, var8, var5, var1, var2, ((AbstractButton)var4).getVerticalAlignment(), ((AbstractButton)var4).getHorizontalAlignment(), ((AbstractButton)var4).getVerticalTextPosition(), ((AbstractButton)var4).getHorizontalTextPosition(), var17, var12, var13, var14, var15, var16, var6 == null ? 0 : var3, var3);
- Rectangle var18 = var12.union(var13);
- boolean var19 = var8 == null || var8.equals("");
- if (!var19) {
- var18.width += var14.width;
- var18.width += 7 * var3;
- }
-
- var18.width += var15.width;
- var18.width += 2 * var3;
- var18.width += 2 * var3;
- var18.width += var16.width;
- Insets var20 = ((JComponent)var4).getInsets();
- var18.width += var20.left + var20.right;
- var18.height += var20.top + var20.bottom;
- if (var18.width % 2 == 0) {
- ++var18.width;
- }
-
- if (var18.height % 2 == 0) {
- ++var18.height;
- }
-
- return var18.getSize();
- }
-
- static {
- control = Color.lightGray;
- controlShadow = Color.gray;
- controlHighlight = Color.white;
- controlBlack = Color.black;
- controlWhite = Color.white;
- scrollbarTrack = new Color(224, 224, 224);
- toolTip = new Color(255, 255, 225);
- GROOVE_INSETS = new Insets(2, 2, 2, 2);
- ETCHED_INSETS = new Insets(2, 2, 2, 2);
- }
- }
-