This commit is contained in:
2011-02-18 16:03:38 +00:00
parent 6b607c8653
commit afc2dedfb6
88 changed files with 18223 additions and 0 deletions

View File

@@ -0,0 +1,146 @@
/*
* ActiveSliderUI.
*
* JavaZOOM : jlgui@javazoom.net
* http://www.javazoom.net
*
*-----------------------------------------------------------------------
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
* by the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*----------------------------------------------------------------------
*/
package javazoom.jlgui.player.amp.skin;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JSlider;
import javax.swing.plaf.basic.BasicSliderUI;
public class ActiveSliderUI extends BasicSliderUI
{
private Image thumbImage = null;
private Image thumbPressedImage = null;
private Image[] backgroundImages = null;
private JSlider parentSlider = null;
private Dimension thumbDim = null;
private int newThumbHeight = -1;
private int thumbXOffset = 0;
private int thumbYOffset = 0;
private boolean hideThumb = false;
public ActiveSliderUI(JSlider slider)
{
super(slider);
parentSlider = slider;
}
public void setThumbImage(Image img)
{
thumbImage = img;
thumbDim = new Dimension(thumbImage.getWidth(null), thumbImage.getHeight(null));
}
public void setThumbPressedImage(Image img)
{
thumbPressedImage = img;
}
protected Dimension getThumbSize()
{
return thumbDim;
}
public void forceThumbHeight(int h)
{
newThumbHeight = h;
}
public void setThumbXOffset(int x)
{
thumbXOffset = x;
}
public void setThumbYOffset(int y)
{
thumbYOffset = y;
}
public void setHideThumb(boolean hide)
{
hideThumb = hide;
}
public void setBackgroundImages(Image[] img)
{
backgroundImages = img;
}
public void paintFocus(Graphics g)
{
}
public void paintThumb(Graphics g)
{
if (hideThumb == true) return;
Image img = thumbImage;
if (img != null)
{
if (thumbPressedImage != null)
{
if (parentSlider.getValueIsAdjusting())
{
img = thumbPressedImage;
}
}
if (newThumbHeight >= 0)
{
if (parentSlider.getOrientation() == JSlider.HORIZONTAL)
{
g.drawImage(img, thumbRect.x + thumbXOffset, thumbYOffset, img.getWidth(null), newThumbHeight, null);
}
else
{
g.drawImage(img, thumbXOffset, thumbRect.y + thumbYOffset, img.getWidth(null), newThumbHeight, null);
}
}
else
{
if (parentSlider.getOrientation() == JSlider.HORIZONTAL)
{
g.drawImage(img, thumbRect.x + thumbXOffset, thumbYOffset, img.getWidth(null), img.getHeight(null), null);
}
else
{
g.drawImage(img, thumbXOffset, thumbRect.y + thumbYOffset, img.getWidth(null), img.getHeight(null), null);
}
}
}
}
public void paintTrack(Graphics g)
{
if (backgroundImages != null)
{
int id = (int) Math.round(((double) Math.abs(parentSlider.getValue()) / (double) parentSlider.getMaximum()) * (backgroundImages.length - 1));
g.drawImage(backgroundImages[id], 0, 0, backgroundImages[id].getWidth(null), backgroundImages[id].getHeight(null), null);
}
}
public void setThumbLocation(int x, int y)
{
super.setThumbLocation(x, y);
parentSlider.repaint();
}
}