📄 menuhelper.java
字号:
sub.setImage(icons.getImage(IconHolder.icoColor));
sub.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// 创建颜色对话框
ColorDialog dialog = new ColorDialog(shell);
// 设置当前颜色
RGB oldRGB = Util.stringToRGB(options.getGroupBackgroup());
if(oldRGB == null)
oldRGB = Util.stringToRGB(LumaQQ.DEFAULT_GROUP_COLOR);
dialog.setRGB(oldRGB);
// 打开对话框,如果返回值不为null,设置新颜色
RGB rgb = dialog.open();
if(rgb != null) {
options.setGroupBackgroup(Util.rgbToString(rgb));
if(main.getGroupColor() != null)
main.getGroupColor().dispose();
main.setGroupColor(new Color(display, rgb));
}
}
}
);
// 名称显示
mi = new MenuItem(groupMenu, SWT.CASCADE);
mi.setText(LumaQQ.getString("menu.group.displayname"));
mi.setImage(icons.getImage(IconHolder.icoDisplayName));
// 显示昵称
displayMenu = new Menu(mi);
mi.setMenu(displayMenu);
sub = new MenuItem(displayMenu, SWT.RADIO);
sub.setText(LumaQQ.getString("menu.group.displayname.nick"));
sub.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
uiHelper.displayName(IQQNode.NICK);
options.setShowNick(true);
}
}
);
// 显示备注名称
sub = new MenuItem(displayMenu, SWT.RADIO);
sub.setText(LumaQQ.getString("menu.group.displayname.remark"));
sub.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
uiHelper.displayName(IQQNode.REAL_NAME);
options.setShowNick(false);
}
}
);
// 添加组
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.addgroup"));
mi.setImage(icons.getImage(IconHolder.icoAddGroup));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
main.getMVCHelper().addGroup();
// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
//main.getMVCHelper().updateGroupInServer();
}
}
);
// separator
mi = new MenuItem(groupMenu, SWT.SEPARATOR);
// 添加用户
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.group.addfriend"));
mi.setImage(icons.getImage(IconHolder.icoAddFriend));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.openSearchWizard();
}
}
);
// 只显示在线好友
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setImage(icons.getImage(IconHolder.icoShowOnlineOnly));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(options.isShowOnlineOnly())
uiHelper.showAllFriend();
else
uiHelper.showOnlineFriendOnly();
}
}
);
// 组操作区域,包括重命名,删除该组等等
// separator
mi = new MenuItem(groupMenu, SWT.SEPARATOR);
// 重命名
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.group.rename"));
mi.setImage(icons.getImage(IconHolder.icoRename));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
shutter.editTabName(shutter.getCurrentTab());
}
}
);
// 删除该组
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.group.delete"));
mi.setImage(icons.getImage(IconHolder.icoDelGroup));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(model.getItemCount(shutter.getCurrentTab()) > 0) {
MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
box.setText(LumaQQ.getString("message.box.common.warning.title"));
box.setMessage(LumaQQ.getString("hint.please.clear.friend"));
box.open();
} else {
main.getMVCHelper().removeCurrentGroup();
// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
//main.getMVCHelper().updateGroupInServer();
}
}
}
);
// 黑名单组特定操作项,包括添加坏人名单,隐藏显示黑名单等等
// separator
mi = new MenuItem(groupMenu, SWT.SEPARATOR);
// 添加坏人名单
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.group.addbadguy"));
mi.setImage(icons.getImage(IconHolder.icoAddFriend));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FriendModel f = new FriendModel(0);
f.addProperty(INode.IMAGE, icons.getHead(0));
f.addProperty(IQQNode.HEAD, new Integer(0));
f.addProperty(IQQNode.STATUS, IQQNode.VALUE_OFFLINE);
f.addProperty(INode.NAME, "xxxxxxxxx");
f.addProperty(IQQNode.NICK, "xxxxxxxxx");
int bIndex = shutter.getCurrentTab();
model.addItem(bIndex, f);
CoolButton viewPart = shutter.getItemControl(bIndex, model.getItemCount(bIndex) - 1);
viewPart.editText();
viewPart.addShutterLabelListener(main.getBlackListCoolButtonListener());
}
}
);
// 隐藏显示黑名单
mi = new MenuItem(groupMenu, SWT.PUSH);
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
int[] indices = mvcHelper.listBlacklistGroup();
if (indices != null) {
GroupModel blacklistGroup = (GroupModel)model.getTab(indices[0]);
blacklistGroup.addProperty(IQQNode.VISIBLE, main.isBlacklistVisible() ? "false" : "true");
main.setBlacklistVisible(!main.isBlacklistVisible());
}
}
}
);
// 添加菜单显示事件监听器
groupMenu.addMenuListener(
new MenuAdapter() {
public void menuShown(MenuEvent e) {
// 显示什么头像的菜单使能状态
if(shutter.isShowSmallImage()) {
groupMenu.getItem(0).setEnabled(false);
groupMenu.getItem(1).setEnabled(true);
} else {
groupMenu.getItem(0).setEnabled(true);
groupMenu.getItem(1).setEnabled(false);
}
// 得到当前组的model
GroupModel g = (GroupModel)model.getTab(shutter.getCurrentTab());
// 设置名称显示子菜单的使能状态和选择状态
// 显示昵称还是显示备注的选择状态
if(g.isCluster())
groupMenu.getItem(4).setEnabled(false);
else {
groupMenu.getItem(4).setEnabled(true);
if(options.isShowNick()) {
displayMenu.getItem(0).setSelection(true);
displayMenu.getItem(1).setSelection(false);
} else {
displayMenu.getItem(0).setSelection(false);
displayMenu.getItem(1).setSelection(true);
}
}
// 设置群操作菜单的使能性
groupMenu.getItem(2).setEnabled(g.isCluster());
// 设置添加用户菜单的使能状态
if (g.isFriendly() && !g.isCluster())
groupMenu.getItem(7).setEnabled(true);
else
groupMenu.getItem(7).setEnabled(false);
// 设置只显示在线用户还是显示所有用户菜单的文字标签
if(options.isShowOnlineOnly())
groupMenu.getItem(8).setText(LumaQQ.getString("menu.group.showall"));
else
groupMenu.getItem(8).setText(LumaQQ.getString("menu.group.showonlineonly"));
// 设置组改名组删除菜单的使能性
String name = (String)g.getProperty(INode.NAME);
if(!name.equals(LumaQQ.getString("group.default.friend")) &&
!name.equals(LumaQQ.getString("group.default.stranger")) &&
!name.equals(LumaQQ.getString("group.default.blacklist")) &&
!name.equals(LumaQQ.getString("group.default.cluster"))) {
groupMenu.getItem(9).setEnabled(true);
groupMenu.getItem(10).setEnabled(true);
groupMenu.getItem(11).setEnabled(true);
} else {
groupMenu.getItem(9).setEnabled(false);
groupMenu.getItem(10).setEnabled(false);
groupMenu.getItem(11).setEnabled(false);
}
// 设置黑名单操作项的使能性
if(g.isBlackList()) {
groupMenu.getItem(12).setEnabled(true);
groupMenu.getItem(13).setEnabled(true);
} else {
groupMenu.getItem(12).setEnabled(false);
groupMenu.getItem(13).setEnabled(false);
}
// 设置隐藏显示黑名单的图标和文字
if(main.isBlacklistVisible()) {
groupMenu.getItem(14).setText(LumaQQ.getString("menu.group.hideblacklist"));
groupMenu.getItem(14).setImage(icons.getImage(IconHolder.icoHideBlackList));
} else {
groupMenu.getItem(14).setText(LumaQQ.getString("menu.group.showblacklist"));
groupMenu.getItem(14).setImage(icons.getImage(IconHolder.icoShowBlackList));
}
}
}
);
}
/**
* 初始化在好友上点右键出现的菜单
*/
private void initFriendMenu() {
friendMenu = new Menu(shell, SWT.POP_UP);
// 显示组功能菜单
MenuItem mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.show.group.menu"));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
setGroupMenuLocation(display.getCursorLocation());
setGroupMenuVisible(true);
}
});
// separator
mi = new MenuItem(friendMenu, SWT.SEPARATOR);
// 收发消息
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.sendreceive"));
mi.setImage(icons.getImage(IconHolder.icoSendReceiveMessage));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// 得到当前选择用户的view part,打开消息窗口
shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
}
});
// 发送文件
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.sendfile"));
mi.setImage(icons.getImage(IconHolder.icoSendFile));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
Object obj = shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
while(obj instanceof ReceiveIMWindow)
obj = shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
SendIMWindow sms = (SendIMWindow)obj;
sms.requestSendFile();
}
});
// 发送短消息
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.sendsms"));
mi.setImage(icons.getImage(IconHolder.icoMobile));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
shellLauncher.openSMSShell((CoolButton)friendMenu.getData());
}
});
// separator
mi = new MenuItem(friendMenu, SWT.SEPARATOR);
// 查看资料
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.viewinfo"));
mi.setImage(icons.getImage(IconHolder.icoPersonInfo));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// 得到当前选择用户的view part,打开资料窗口
shellLauncher.openUserInfoWindow((CoolButton)friendMenu.getData(), UserInfoWindow.READ_ONLY);
}
});
// 如来神掌
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.rlsz"));
mi.setImage(icons.getImage(IconHolder.icoPalm));
mi.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
FriendModel f = (FriendModel)((CoolButton)friendMenu.getData()).getData();
shellLauncher.openDetectHiddenShell(f);
}
});
// 消息管理菜单
mi = new MenuItem(friendMenu, SWT.CASCADE);
mi.setText(LumaQQ.getString("menu.friend.message.manage"));
mi.setImage(icons.getImage(IconHolder.icoMessageManage));
Menu msgMenu = new Menu(mi);
mi.setMenu(msgMenu);
// 导出为文本文件菜单
mi = new MenuItem(msgMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.message.export"));
mi.setImage(icons.getImage(IconHolder.icoTxtFile));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
// 得到好友的model
CoolButton viewPart = (CoolButton)friendMenu.getData();
FriendModel f = (FriendModel)viewPart.getData();
// 导出
exportHelper.exportMessage(f.getQQ(), new FriendMessageExporter(main.getMyModel(), f));
}
}
);
// separator
mi = new MenuItem(friendMenu, SWT.SEPARATOR);
// 显示小头像
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.showsmall"));
mi.setImage(icons.getImage(IconHolder.icoSmallFace));
mi.addSelectionListener(
new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
uiHelper.showSmallFace(true);
}
}
);
// 显示大头像
mi = new MenuItem(friendMenu, SWT.PUSH);
mi.setText(LumaQQ.getString("menu.friend.showlarge"));
mi.setImage(icons.getImage(IconHolder.icoLargeFace));
mi.addSelectionListener(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -