summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/tabs/CloseTabIcon.java
blob: a117df4606b6c3df4b5b57ead60bda3081f08bcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.c2kernel.gui.tabs;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Rectangle;

import javax.swing.Icon;

/**
 * @author Developpement
 *
 * To change this generated comment edit the template variable "typecomment":
 * Window>Preferences>Java>Templates.
 * To enable and disable the creation of type comments go to
 * Window>Preferences>Java>Code Generation.
 */
/** * The class which generates the 'X' icon for the tabs. The constructor * accepts an icon which is extra to the 'X' icon, so you can have tabs * like in JBuilder. This value is null if no extra icon is required. */
class CloseTabIcon implements Icon
{
	private int x_pos;
	private int y_pos;
	private int width;
	private int height;
	private Icon fileIcon;
	public CloseTabIcon(Icon fileIcon)
	{
		this.fileIcon = fileIcon;
		width = 16;
		height = 16;
	}
	@Override
	public void paintIcon(Component c, Graphics g, int x, int y)
	{
		this.x_pos = x;
		this.y_pos = y;
		Color col = g.getColor();
		g.setColor(Color.black);
		int y_p = y + 2;
		g.drawLine(x + 1, y_p, x + 12, y_p);
		g.drawLine(x + 1, y_p + 13, x + 12, y_p + 13);
		g.drawLine(x, y_p + 1, x, y_p + 12);
		g.drawLine(x + 13, y_p + 1, x + 13, y_p + 12);
		g.drawLine(x + 3, y_p + 3, x + 10, y_p + 10);
		g.drawLine(x + 3, y_p + 4, x + 9, y_p + 10);
		g.drawLine(x + 4, y_p + 3, x + 10, y_p + 9);
		g.drawLine(x + 10, y_p + 3, x + 3, y_p + 10);
		g.drawLine(x + 10, y_p + 4, x + 4, y_p + 10);
		g.drawLine(x + 9, y_p + 3, x + 3, y_p + 9);
		g.setColor(col);
		if (fileIcon != null)
		{
			fileIcon.paintIcon(c, g, x + width, y_p);
		}
	}
	@Override
	public int getIconWidth()
	{
		return width + (fileIcon != null ? fileIcon.getIconWidth() : 0);
	}
	@Override
	public int getIconHeight()
	{
		return height;
	}
	public Rectangle getBounds()
	{
		return new Rectangle(x_pos, y_pos, width, height);
	}
}