📄 minibar.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: MiniBar.java
package org.gudy.azureus2.ui.swt.minibar;
import com.aelitis.azureus.ui.swt.imageloader.ImageLoader;
import java.util.Iterator;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.ui.common.util.MenuItemManager;
import org.gudy.azureus2.ui.swt.MenuBuildUtils;
import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;
import org.gudy.azureus2.ui.swt.mainwindow.Colors;
// Referenced classes of package org.gudy.azureus2.ui.swt.minibar:
// MiniBarManager
public abstract class MiniBar
implements org.gudy.azureus2.ui.swt.MenuBuildUtils.MenuBuilder
{
protected static interface ProgressBarText
{
public abstract String convert(int i);
}
protected Label lDrag;
protected MiniBar stucked;
protected Monitor screens[];
protected int xPressed;
protected int yPressed;
protected boolean moving;
protected int hSize;
protected Shell splash;
protected MiniBarManager manager;
private Font bold_font;
private boolean constructing;
private boolean constructed;
private Menu menu;
private MouseMoveListener mMoveListener;
private MouseListener mListener;
private int xSize;
private boolean separateDataProt;
protected MiniBar(MiniBarManager manager)
{
bold_font = null;
constructing = false;
constructed = false;
this.manager = manager;
setPrebuildValues();
separateDataProt = DisplayFormatters.isDataProtSeparate();
}
private void setPrebuildValues()
{
constructing = false;
constructed = false;
xSize = 0;
hSize = -1;
}
private void assertConstructing()
{
if (!constructing)
throw new RuntimeException("not constructing!");
else
return;
}
private Font createBoldFont(Font original)
{
FontData font_data[] = original.getFontData();
for (int i = 0; i < font_data.length; i++)
font_data[i].setStyle(font_data[i].getStyle() | 1);
return new Font(original.getDevice(), font_data);
}
protected final void createGap(int width)
{
assertConstructing();
Label result = new Label(splash, 0);
result.setBackground(Colors.blues[0]);
result.setForeground(Colors.blues[9]);
result.setText("");
result.addMouseListener(mListener);
result.addMouseMoveListener(mMoveListener);
result.setLocation(xSize, 0);
result.setSize(width, hSize);
result.setMenu(menu);
xSize += width;
}
protected final void createFixedTextLabel(String msg_key, boolean add_colon, boolean bold)
{
assertConstructing();
Label result = new Label(splash, 0);
result.setBackground(Colors.blues[0]);
result.setForeground(Colors.blues[9]);
result.setText((new StringBuilder()).append(MessageText.getString(msg_key)).append(add_colon ? ":" : "").toString());
if (bold)
{
if (bold_font == null)
bold_font = createBoldFont(result.getFont());
result.setFont(bold_font);
}
result.addMouseListener(mListener);
result.addMouseMoveListener(mMoveListener);
result.pack();
result.setLocation(xSize, 0);
result.setMenu(menu);
if (hSize == -1)
{
int hSizeText = result.getSize().y;
int hSizeImage = lDrag.getSize().y;
hSize = hSizeText <= hSizeImage ? hSizeImage : hSizeText;
}
xSize += result.getSize().x + 3;
}
protected final Label createDataLabel(int width, boolean centered)
{
assertConstructing();
Label result = new Label(splash, centered ? 0x1000000 : 0);
result.setBackground(Colors.blues[0]);
result.setText("");
result.addMouseListener(mListener);
result.addMouseMoveListener(mMoveListener);
if (hSize == -1)
{
throw new RuntimeException("must add fixed text label first!");
} else
{
result.setSize(width, hSize);
result.setLocation(xSize, 0);
result.setMenu(menu);
xSize += width + 3;
return result;
}
}
protected final Label createDataLabel(int width)
{
return createDataLabel(width, false);
}
protected final Label createSpeedLabel()
{
return createDataLabel(separateDataProt ? 110 : 65, separateDataProt);
}
protected void updateSpeedLabel(Label label, long data_rate, long protocol_rate)
{
if (separateDataProt)
label.setText(DisplayFormatters.formatDataProtByteCountToKiBEtcPerSec(data_rate, protocol_rate));
else
label.setText(DisplayFormatters.formatByteCountToKiBEtcPerSec(data_rate));
}
protected final ProgressBar createProgressBar(int min, int max, int width, final ProgressBarText pbt)
{
final ProgressBar result = new ProgressBar(splash, 0x10000);
result.setBackground(Colors.blues[0]);
result.setForeground(Colors.blues[2]);
result.setMinimum(min);
result.setMaximum(max);
result.addMouseListener(mListener);
result.addMouseMoveListener(mMoveListener);
if (hSize == -1)
throw new RuntimeException("must add fixed text label first!");
result.setSize(width, hSize);
result.setLocation(xSize, 0);
result.setMenu(menu);
xSize += width + 3;
if (pbt != null)
result.addListener(9, new Listener() {
final ProgressBarText val$pbt;
final ProgressBar val$result;
final MiniBar this$0;
public void handleEvent(Event event)
{
org.eclipse.swt.graphics.Color old = event.gc.getForeground();
event.gc.setForeground(Colors.black);
int char_width = event.gc.getFontMetrics().getAverageCharWidth();
String pb_text = pbt.convert(result.getSelection());
event.gc.drawText(pb_text, (result.getSize().x - pb_text.length() * char_width) / 2, -1, true);
event.gc.setForeground(old);
}
{
this$0 = MiniBar.this;
pbt = progressbartext;
result = progressbar;
super();
}
});
return result;
}
protected final ProgressBar createPercentProgressBar(int width)
{
return createProgressBar(0, 1000, width, new ProgressBarText() {
final MiniBar this$0;
public String convert(int value)
{
return DisplayFormatters.formatPercentFromThousands(value);
}
{
this$0 = MiniBar.this;
super();
}
});
}
public final void construct(final Shell main)
{
if (constructed)
{
throw new RuntimeException("already constructed!");
} else
{
constructing = true;
stucked = null;
splash = ShellFactory.createShell(16384);
manager.register(this);
final DisposeListener mainDisposeListener;
main.addDisposeListener(mainDisposeListener = new DisposeListener() {
final MiniBar this$0;
public void widgetDisposed(DisposeEvent event)
{
close();
}
{
this$0 = MiniBar.this;
super();
}
});
splash.addDisposeListener(new DisposeListener() {
final Shell val$main;
final DisposeListener val$mainDisposeListener;
final MiniBar this$0;
public void widgetDisposed(DisposeEvent e)
{
if (main.isDisposed())
{
return;
} else
{
main.removeDisposeListener(mainDisposeListener);
return;
}
}
{
this$0 = MiniBar.this;
main = shell;
mainDisposeListener = disposelistener;
super();
}
});
screens = main.getDisplay().getMonitors();
build();
return;
}
}
private void build()
{
lDrag = new Label(splash, 0);
if (!Constants.isOSX)
{
lDrag.setImage(ImageLoader.getInstance().getImage("dragger"));
lDrag.addDisposeListener(new DisposeListener() {
final MiniBar this$0;
public void widgetDisposed(DisposeEvent e)
{
ImageLoader.getInstance().releaseImage("dragger");
}
{
this$0 = MiniBar.this;
super();
}
});
}
lDrag.pack();
xSize = lDrag.getSize().x + 3;
lDrag.setLocation(0, 0);
mListener = new MouseAdapter() {
final MiniBar this$0;
public void mouseDown(MouseEvent e)
{
xPressed = e.x;
yPressed = e.y;
moving = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -