📄 menuhelper.java
字号:
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.openSystemOptionWindow();
}
});
// separator
new CMenuItem(sysMenu, SWT.SEPARATOR);
// 更改用户
final CMenuItem miChangeUser = new CMenuItem(sysMenu, SWT.PUSH);
miChangeUser.setText(menu_sys_changeuser);
miChangeUser.setImage(res.getImage(Resources.icoChangeUser));
miChangeUser.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.changeUser();
}
});
// separator
final CMenuItem miSep2 = new CMenuItem(sysMenu, SWT.SEPARATOR);
// 检查LumaQQ更新
mi = new CMenuItem(sysMenu, SWT.PUSH);
mi.setText(menu_sys_checkupdate);
mi.setImage(res.getImage(Resources.icoUpdate));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.openCheckUpdateShell();
}
});
// LumaQQ主页
mi = new CMenuItem(sysMenu, SWT.PUSH);
mi.setText(menu_sys_lumaqq_homepage);
mi.setImage(res.getImage(Resources.icoFirefox));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.goLumaQQ();
}
});
// 关于
mi = new CMenuItem(sysMenu, SWT.PUSH);
mi.setText(menu_sys_about);
mi.setImage(res.getImage(Resources.icoAbout));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
AboutDialog ad = new AboutDialog(shell);
ad.open();
}
});
// separator
new CMenuItem(sysMenu, SWT.SEPARATOR);
// 调试窗口
mi = new CMenuItem(sysMenu, SWT.PUSH);
mi.setText(menu_sys_debug);
mi.setImage(res.getImage(Resources.icoDebug));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
new Debugger(main).open();
}
});
// separator
new CMenuItem(sysMenu, SWT.SEPARATOR);
// 聊天机器人
final CMenuItem miRobot = new CMenuItem(sysMenu, SWT.CASCADE);
miRobot.setText(menu_sys_robot);
miRobot.setImage(res.getImage(Resources.icoMachine));
robotMenu = new CMenu(miRobot);
// separator
final CMenuItem miRobotSeparator = new CMenuItem(sysMenu, SWT.SEPARATOR);
// 退出
mi = new CMenuItem(sysMenu, SWT.PUSH);
mi.setText(menu_sys_exit);
mi.setImage(res.getImage(Resources.icoExit));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.close();
}
});
// separator
final CMenuItem miStatusSeparator = new CMenuItem(sysMenu, SWT.SEPARATOR);
// 状态菜单
final CMenuItem miStatus = new CMenuItem(sysMenu, SWT.CASCADE);
miStatus.setText(menu_sys_status);
miStatus.setImage(res.getImage(Resources.icoLumaQQ));
miStatus.setMenu(statusMenu);
sysMenu.addMenuListener(new IMenuListener() {
public void menuShown(MenuEvent e) {
// 是否已经登录
boolean logged = main.getClient().getUser().isLoggedIn();
initRobotMenu();
if(LumaQQ.hasRobots()) {
miRobot.setVisible(true);
miRobotSeparator.setVisible(true);
} else {
miRobot.setVisible(false);
miRobotSeparator.setVisible(false);
}
// sysmenu的data是一个整数,为0表示在系统菜单按钮上显示
// 为1表示在tray icon上显示
Integer loc = (Integer)sysMenu.getData();
miStatus.setVisible(logged && loc == 1);
miStatusSeparator.setVisible(logged && loc == 1);
// other items
miGroupManage.setVisible(logged);
miFriend.setVisible(logged);
miTool.setVisible(logged);
miSep1.setVisible(logged);
miPersonalInfo.setVisible(logged);
miChangeUser.setVisible(logged);
miSep2.setVisible(logged);
}
});
}
/**
* 初始化机器人子菜单
*/
private void initRobotMenu() {
if(robotInitialized)
return;
// robot menu items
List<Robot> robots = LumaQQ.getRobots();
int size = robots.size();
for(int i = 0; i < size; i++) {
Robot robot = robots.get(i);
CMenuItem rItem = new CMenuItem(robotMenu, SWT.RADIO);
rItem.setText(robot.getName());
rItem.setData(i);
if(i == 0)
rItem.setSelected(true);
rItem.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent event) {
int index = (Integer)event.item.getData();
client.setRobot(LumaQQ.getRobot(index));
}
});
}
// enable/disable robot
CMenuItem mi = new CMenuItem(robotMenu, SWT.SEPARATOR);
mi = new CMenuItem(robotMenu, SWT.PUSH);
if(client.isRobotMode())
mi.setText(menu_sys_robot_off);
else
mi.setText(menu_sys_robot_on);
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent event) {
CMenuItem onOff = event.item;
client.setRobotMode(!client.isRobotMode());
if(client.isRobotMode())
onOff.setText(menu_sys_robot_off);
else
onOff.setText(menu_sys_robot_on);
if(client.getRobot() == null) {
for(CMenuItem mi : robotMenu.getItems()) {
if(mi.isSelected()) {
int index = (Integer)mi.getData();
client.setRobot(LumaQQ.getRobot(index));
break;
}
}
}
}
});
robotInitialized = true;
}
/**
* 创建,初始化状态菜单
*/
private void initStatusMenu() {
// 更改状态弹出菜单
statusMenu = new CMenu();
// 上线
CMenuItem mi = new CMenuItem(statusMenu, SWT.PUSH);
mi.setText(status_online);
mi.setImage(res.getImage(Resources.icoOnline));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_NORMAL);
if(main.checkLogin(false, false)) {
main.getUIHelper().startStatusAnimation();
client.makeMeOnline();
} else
client.getUser().setStatus(QQ.QQ_STATUS_ONLINE);
}
});
// separator
new CMenuItem(statusMenu, SWT.SEPARATOR);
// 离开,离开菜单有子菜单
mi = new CMenuItem(statusMenu, SWT.CASCADE);
mi.setText(status_away);
mi.setImage(res.getImage(Resources.icoAway));
awayMenu = new CMenu(mi);
// 自定义
CMenuItem sub = new CMenuItem(awayMenu, SWT.PUSH);
sub.setText(menu_status_away_custom);
sub.setImage(res.getImage(Resources.icoReply));
sub.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.openSystemOptionWindow().setCurrentPage(SystemOptionWindow.REPLY);
}
});
new CMenuItem(awayMenu, SWT.SEPARATOR);
// 无回复
sub = new CMenuItem(awayMenu, SWT.RADIO);
sub.setText(menu_status_away_null);
sub.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_NORMAL);
if(main.checkLogin(false, false)) {
main.getConfigHelper().setAutoReply(false);
if(client.getUser().getStatus() != QQ.QQ_STATUS_AWAY) {
main.getUIHelper().startStatusAnimation();
client.makeMeAway();
}
} else
client.getUser().setStatus(QQ.QQ_STATUS_AWAY);
}
});
// separator
new CMenuItem(statusMenu, SWT.SEPARATOR);
// 隐身
mi = new CMenuItem(statusMenu, SWT.PUSH);
mi.setText(status_hidden);
mi.setImage(res.getImage(Resources.icoHidden));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_HIDDEN);
if(main.checkLogin(false, false)) {
if(client.getUser().getStatus() != QQ.QQ_STATUS_HIDDEN) {
main.getUIHelper().startStatusAnimation();
client.makeMeHidden();
}
} else
client.getUser().setStatus(QQ.QQ_STATUS_HIDDEN);
}
});
// separator
new CMenuItem(statusMenu, SWT.SEPARATOR);
// 离线
mi = new CMenuItem(statusMenu, SWT.PUSH);
mi.setText(status_offline);
mi.setImage(res.getImage(Resources.icoOffline));
mi.addSelectionListener(new ISelectionListener() {
public void widgetSelected(SelectionEvent e) {
main.checkGroupDirty();
main.getClient().getUser().setStatus(QQ.QQ_STATUS_OFFLINE);
main.logout();
}
});
}
/**
* 设置QQClient
*
* @param client
* QQ客户端对象
*/
public void setClient(QQClient client) {
this.client = client;
}
/**
* 设置状态菜单的可见性
*
* @param b
*/
public void setStatusMenuVisible(boolean b) {
hideAllMenu();
statusMenu.setVisible(b);
}
/**
* 设置状态菜单的位置
*
* @param loc
* 菜单左上角位置
*/
public void setStatusMenuLocation(Point loc) {
statusMenu.setLocation(loc);
}
/**
* 设置组菜单位置
*
* @param loc
*/
public void setGroupMenuLocation(Point loc) {
groupMenu.setLocation(loc);
}
/**
* 设置组菜单数据
*
* @param data
*/
public void setGroupMenuData(Object data) {
groupMenu.setData(data);
}
/**
* 设置组菜单可见性
*
* @param b
*/
public void setGroupMenuVisible(boolean b) {
hideAllMenu();
groupMenu.setVisible(b);
}
/**
* 设置好友菜单位置
*
* @param loc
*/
public void setFriendMenuLocation(Point loc) {
friendMenu.setLocation(loc);
}
/**
* 设置好友菜单可见性
*
* @param b
*/
public void setFriendMenuVisible(boolean b) {
hideAllMenu();
friendMenu.setVisible(b);
}
/**
* 设置好友菜单的附加数据
*
* @param data
*/
public void setFriendMenuData(Object data) {
friendMenu.setData(data);
}
/**
* 设置成员菜单位置
*
* @param loc
*/
public void setMemberMenuLocation(Point loc) {
memberMenu.setLocation(loc);
}
/**
* 设置成员菜单可见性
*
* @param b
*/
public void setMemberMenuVisible(boolean b) {
hideAllMenu();
memberMenu.setVisible(b);
}
/**
* 设置成员菜单的附加数据
*
* @param data
*/
public void se
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -