📄 kdeframe.java
字号:
* @param align Description of Parameter
* @return The WindowButtons value
*/
public SkinWindowButton[] getWindowButtons(int align) {
java.util.Vector buttons = new java.util.Vector();
for (int i = 0, c = buttonList.size(); i < c; i++) {
FrameButton newB = (FrameButton) buttonList.elementAt(i);
if (newB.getAlign() == align) {
buttons.addElement(newB.createButton());
}
}
SkinWindowButton[] results = new SkinWindowButton[buttons.size()];
buttons.copyInto(results);
return results;
}
/**
* Description of the Method
*
* @return Description of the Returned Value
*/
public boolean status() {
return true;
}
/**
* Description of the Method
*
* @param c Description of Parameter
* @return Description of the Returned Value
*/
public boolean installSkin(JComponent c) {
if (border != null) {
c.setBorder(border);
c.setOpaque(false);
return true;
}
else {
return false;
}
}
/**
* Description of the Method
*
* @param g Description of Parameter
* @param c Description of Parameter
* @param isSelected Description of Parameter
* @param title Description of Parameter
* @return Description of the Returned Value
*/
public boolean paintTop(Graphics g, Component c, boolean isSelected, String title) {
if (topSelected != null && topUnselected != null) {
if (isSelected) {
topSelected.paint(g, 0, 0, c);
}
else {
topUnselected.paint(g, 0, 0, c);
}
}
else {
// fill a rectangle
Color oldColor = g.getColor();
if (isSelected) {
g.setColor(UIManager.getColor("InternalFrame.activeTitleBackground"));
}
else {
g.setColor(UIManager.getColor("InternalFrame.inactiveTitleBackground"));
}
g.fillRect(0, 0, ((JComponent) c).getWidth(), ((JComponent) c).getHeight());
g.setColor(oldColor);
}
if (title != null) {
FontMetrics fm = g.getFontMetrics();
int fmHeight = fm.getHeight() - fm.getLeading();
int baseline = (topHeight - fmHeight) / 2 + fm.getAscent() + fm.getLeading();
int width = fm.stringWidth(title);
int x = 0;
switch (textAlignment) {
case LEFT:
x = textShiftLeft;
break;
case MIDDLE:
if (textAbsolutePosition) {
x = (((JComponent)c).getWidth() - width) / 2;
} else {
x = (((JComponent) c).getWidth() - textShiftLeft - textShiftRight) / 2 + textShiftLeft - width / 2;
}
break;
case RIGHT:
x = ((JComponent) c).getWidth() - width - textShiftRight;
break;
}
if (pixmapUnderTitle == false) {
Color oldColor = g.getColor();
if (isSelected) {
g.setColor(UIManager.getColor("InternalFrame.activeTitleBackground"));
}
else {
g.setColor(UIManager.getColor("InternalFrame.inactiveTitleBackground"));
}
g.fillRect(x, 0, width, ((JComponent) c).getHeight());
g.setColor(oldColor);
}
if (isSelected && titleFrameShaded) {
Color oldColor = g.getColor();
g.setColor(oldColor.darker().darker());
g.drawString(title, x + 1, baseline + 1);
g.setColor(oldColor);
}
g.drawString(title, x, baseline);
}
return true;
}
/**
* Description of the Class
*
* @author fred
* @created 27 avril 2002
*/
private class FrameButton {
ImageIcon selectedIcon;
private ImageIcon rolloverIcon, downIcon, unselectedIcon;
int align;
int action = SkinTitlePane.NO_ACTION;
boolean enabled = true;
String command;
String tooltip;
/**
* Constructor for the FrameButton object
*
* @param ini Description of Parameter
* @param skinURL Description of Parameter
* @param command Description of Parameter
* @exception Exception Description of Exception
*/
FrameButton(IniFile ini, URL skinURL, String command) throws Exception {
if ("Iconify".equals(command)) {
command = "Minimize";
}
String path = ini.getKeyValue("Window Titlebar", command + "Button");
if (path != null) {
selectedIcon = new ImageIcon(SkinUtils.loadImage(new URL(skinURL, path)));
unselectedIcon = selectedIcon;
downIcon = selectedIcon;
rolloverIcon = selectedIcon;
}
path = ini.getKeyValue("Window Titlebar", command + "DownButton");
if (path != null) {
downIcon = new ImageIcon(SkinUtils.loadImage(new URL(skinURL, path)));
}
path = ini.getKeyValue("Window Titlebar", command + "InactiveButton");
if (path != null) {
unselectedIcon = new ImageIcon(SkinUtils.loadImage(new URL(skinURL, path)));
}
path = ini.getKeyValue("Window Titlebar", command + "RolloverButton");
if (path != null) {
rolloverIcon = new ImageIcon(SkinUtils.loadImage(new URL(skinURL, path)));
}
if ("Maximize".equalsIgnoreCase(command)) {
action = SkinTitlePane.MAXIMIZE_ACTION;
}
else if ("Minimize".equalsIgnoreCase(command)) {
action = SkinTitlePane.MINIMIZE_ACTION;
}
else if ("Close".equalsIgnoreCase(command)) {
action = SkinTitlePane.CLOSE_ACTION;
}
this.command = command;
}
public void setEnabled(boolean b) {
this.enabled = b;
}
public void setTooltip(String tooltip) {
this.tooltip = tooltip;
}
/**
* Sets the Align attribute of the FrameButton object
*
* @param align The new Align value
*/
public void setAlign(int align) {
this.align = align;
}
/**
* Gets the Align attribute of the FrameButton object
*
* @return The Align value
*/
public int getAlign() {
return align;
}
/**
* Description of the Method
*
* @return Description of the Returned Value
*/
public SkinWindowButton createButton() {
SkinWindowButton button = new SkinWindowButton(-1, (topHeight - selectedIcon.getIconHeight()) / 2, align, action);
if (selectedIcon != null) {
button.setSize(selectedIcon.getIconWidth(), selectedIcon.getIconHeight());
button.setIcon(unselectedIcon);
button.setRolloverIcon(rolloverIcon!=null?rolloverIcon:selectedIcon);
button.setRolloverSelectedIcon(rolloverIcon!=null?rolloverIcon:selectedIcon);
button.setPressedIcon(downIcon);
button.setSelectedIcon(selectedIcon);
button.setDisabledIcon(unselectedIcon);
button.setDisabledSelectedIcon(unselectedIcon);
button.setActionCommand(command);
button.setEnabled(enabled);
if (tooltip!=null)
button.setToolTipText(tooltip);
}
return button;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -