All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.vlsolutions.swing.toolbars.ToolBarButtonBorder Maven / Gradle / Ivy

/*
    VLDocking Framework 3.0
    Copyright Lilian Chamontin, 2004-2013
    
    www.vldocking.com
    [email protected]
------------------------------------------------------------------------
This software is distributed under the LGPL license

The fact that you are presently reading this and using this class means that you have had
knowledge of the LGPL license and that you accept its terms.

You can read the complete license here :

    http://www.gnu.org/licenses/lgpl.html

*/

package com.vlsolutions.swing.toolbars;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Insets;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.border.Border;

/** A border suitable for toolbar buttons.
 *

* Paints a nice button effect with rounded corners. * * @author Lilian Chamontin, vlsolutions. * @version 1.0 * @since 2.0 */ public class ToolBarButtonBorder implements Border { private boolean pressed; public ToolBarButtonBorder() {} private static Image borderImage = new ImageIcon(ToolBarButtonBorder.class.getResource("toolbarbuttonborder.png")).getImage(); private static Image pressedBorderImage = new ImageIcon(ToolBarButtonBorder.class.getResource("toolbarbuttonborder_pressed.png")).getImage(); static int borderWidth = borderImage.getWidth(null); static int borderHeight = borderImage.getHeight(null); @SuppressWarnings("unused") private boolean paintTopLeft = true; private Insets insets = new Insets(2, 2, 2, 2); public boolean isBorderOpaque() { return false; } public void paintBorder(Component component, Graphics graphics, int x, int y, int w, int h) { Image img; if(pressed) { img = pressedBorderImage; } else { img = borderImage; } // top right corner graphics.drawImage(img, x + w - 5, y, x + w, y + 5, borderWidth - 5, 0, borderWidth, 5, null); // vertical right graphics.drawImage(img, x + w - 5, y + 5, x + w, y + h - 5, borderWidth - 5, 5, borderWidth, borderHeight - 5, null); // bottom-right corner graphics.drawImage(img, x + w - 5, y + h - 5, x + w, y + h, borderWidth - 5, borderHeight - 5, borderWidth, borderHeight, null); // horizontal bottom graphics.drawImage(img, x + 5, y + h - 5, x + w - 5, y + h, 5, borderHeight - 5, borderWidth - 5, borderHeight, null); // bottom left corner graphics.drawImage(img, x, y + h - 5, x + 5, y + h, 0, borderHeight - 5, 5, borderHeight, null); // horizontal top graphics.drawImage(img, x + 5, y, x + w - 5, y + 5, 5, 0, borderHeight - 5, 5, null); // vertical left graphics.drawImage(img, x, y + 5, x + 5, y + h - 5, 0, 5, 5, borderHeight - 5, null); // top left corner graphics.drawImage(img, x, y, x + 5, y + 5, 0, 0, 5, 5, null); } public Insets getBorderInsets(Component component) { if(component instanceof AbstractButton) { AbstractButton btn = (AbstractButton) component; Insets i = btn.getMargin(); i.top += insets.top; i.left += insets.left; i.right += insets.right; i.bottom += insets.bottom; return i; } else { return insets; } } public boolean isPressed() { return pressed; } public void setPressed(boolean pressed) { this.pressed = pressed; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy