⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menuhelper.java

📁 java写的qq代码实现qq的部分功能
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		
		sysMenu.addMenuListener(new MenuAdapter() {
            public void menuShown(MenuEvent e) {
                if(client == null)
                    return;
                int count = sysMenu.getItemCount();
                if(count > 18)
                    return;
                
                if(client.hasRobots()) {
                    MenuItem mi = new MenuItem(sysMenu, SWT.SEPARATOR, count++ - 2);
                    
                    mi = new MenuItem(sysMenu, SWT.CASCADE, count - 2);
                    mi.setText(LumaQQ.getString("menu.sys.robot"));
                    mi.setImage(icons.getImage(IconHolder.icoMachine));
                    Menu robotMenu = new Menu(mi);                    
                    mi.setMenu(robotMenu);
                    
                    List robots = client.getRobotInfos();
                    int size = robots.size();
                    for(int i = 0; i < size; i++) {
                        Robot robot = (Robot)robots.get(i);
                        final int j = i;
                        MenuItem rItem = new MenuItem(robotMenu, SWT.RADIO);
                        rItem.setText(robot.getName());
                        if(i == 0)
                            rItem.setSelection(true);
                        rItem.addSelectionListener(new SelectionAdapter() {
                            public void widgetSelected(SelectionEvent e) {
                                client.setRobotIndex(j);
                            }
                        });
                    }
                    mi = new MenuItem(robotMenu, SWT.SEPARATOR);
                    mi = new MenuItem(robotMenu, SWT.PUSH);
                    if(client.isRobotMode())
                        mi.setText(LumaQQ.getString("menu.sys.robot.off"));
                    else
                        mi.setText(LumaQQ.getString("menu.sys.robot.on"));
                    mi.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent e) {
                            MenuItem onOff = (MenuItem)e.getSource();
                            client.setRobotMode(!client.isRobotMode());
                            if(client.isRobotMode())
                                onOff.setText(LumaQQ.getString("menu.sys.robot.off"));
                            else
                                onOff.setText(LumaQQ.getString("menu.sys.robot.on"));
                        }
                    });
                }
            }
		});
	}

	/**
	 * 创建,初始化状态菜单
	 */
	private void initStatusMenu() {	
		// 更改状态弹出菜单
		statusMenu = new Menu(shell, SWT.POP_UP);
		// 上线
		MenuItem mi = new MenuItem(statusMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.status.online"));
		mi.setImage(icons.getImage(IconHolder.icoOnline));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_NORMAL);
					if(main.checkLogin(false, false))
						client.makeMeOnline();						
					else
					    client.getUser().setStatus(QQ.QQ_FRIEND_STATUS_ONLINE);
				}
			}
		);
		// separator
		MenuItem separator = new MenuItem(statusMenu, SWT.SEPARATOR);
		// 离开,离开菜单有子菜单
		mi = new MenuItem(statusMenu, SWT.CASCADE);
		mi.setText(LumaQQ.getString("menu.status.away"));
		mi.setImage(icons.getImage(IconHolder.icoAway));
		awayMenu = new Menu(mi);
		mi.setMenu(awayMenu);
		// 自定义
		MenuItem sub = new MenuItem(awayMenu, SWT.PUSH);
		sub.setText(LumaQQ.getString("menu.status.away.custom"));
		sub.setImage(icons.getImage(IconHolder.icoReply));
		sub.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					shellLauncher.openSystemOptionWindow().setCurrentPage(SystemOptionWindow.REPLY);
				}
			}
		);
		separator = new MenuItem(awayMenu, SWT.SEPARATOR);
		// 无回复
		sub = new MenuItem(awayMenu, SWT.RADIO);
		sub.setText(LumaQQ.getString("menu.status.away.null"));
		sub.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_NORMAL);
					if(main.checkLogin(false, false)) {
						replies.setAutoReply(false);
						if(client.getUser().getStatus() != QQ.QQ_FRIEND_STATUS_AWAY)
							client.makeMeAway();					
					} else
					    client.getUser().setStatus(QQ.QQ_FRIEND_STATUS_AWAY);
				}
			}
		);
		// separator
		separator = new MenuItem(statusMenu, SWT.SEPARATOR);
		// 隐身
		mi = new MenuItem(statusMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.status.hidden"));
		mi.setImage(icons.getImage(IconHolder.icoHidden));
		mi.addSelectionListener(
			new SelectionAdapter() {
				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_FRIEND_STATUS_HIDDEN)
							client.makeMeHidden();						
					} else
					    client.getUser().setStatus(QQ.QQ_FRIEND_STATUS_HIDDEN);
				}
			}
		);
		// separator
		separator = new MenuItem(statusMenu, SWT.SEPARATOR);
		// 离线
		mi = new MenuItem(statusMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.status.offline"));
		mi.setImage(icons.getImage(IconHolder.icoOffline));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    main.checkGroupDirty();
					main.getClient().getUser().setStatus(QQ.QQ_FRIEND_STATUS_OFFLINE);
				    main.logout();
				}
			}
		);
	}	
	
    /**
     * 设置QQClient
     * 
     * @param client
     * 		QQ客户端对象
     */
    public void setClient(QQClient client) {
        this.client = client;
    }
    
    /**
     * 设置状态菜单的可见性
     * 
     * @param b
     */
    public void setStatusMenuVisible(boolean b) {
        statusMenu.setVisible(b);
    }
    
    /**
     * 设置状态菜单的位置
     * 
     * @param loc
     * 		菜单左上角位置
     */
    public void setStatusMenuLocation(Point loc) {
        statusMenu.setLocation(loc);
    }
    
    /**
     * 设置组菜单位置
     * 
     * @param loc
     */
    public void setGroupMenuLocation(Point loc) {
        groupMenu.setLocation(loc);
    }
    
    /**
     * 设置组菜单可见性
     * 
     * @param b
     */
    public void setGroupMenuVisible(boolean b) {
        groupMenu.setVisible(b);
    }    
    
    /**
     * 设置组菜单位置
     * 
     * @param loc
     */
    public void setViewBarMenuLocation(Point loc) {
        viewBarMenu.setLocation(loc);
    }
    
    /**
     * 设置侧边条菜单可见性
     * 
     * @param b
     */
    public void setViewBarMenuVisible(boolean b) {
        viewBarMenu.setVisible(b);
    }
    
    /**
     * 设置手机好友菜单可见性
     * 
     * @param b
     */
    public void setMobileMenuVisible(boolean b) {
        mobileMenu.setVisible(b);
    }
    
    /**
     * 设置手机好友菜单的附加对象
     * 
     * @param data
     */
    public void setMobileMenuData(Object data) {
        mobileMenu.setData(data);
    }
    
    /**
     * 设置手机好友菜单的位置
     * 
     * @param loc
     */
    public void setMobileMenuLocation(Point loc) {
        mobileMenu.setLocation(loc);
    }
    
    /**
     * 设置好友菜单位置
     * 
     * @param loc
     */
    public void setFriendMenuLocation(Point loc) {
        friendMenu.setLocation(loc);
    }
    
    /**
     * 设置好友菜单可见性
     * 
     * @param b
     */
    public void setFriendMenuVisible(boolean b) {
        friendMenu.setVisible(b);
    }
    
    /**
     * 设置好友菜单的附加数据
     * 
     * @param data
     */
    public void setFriendMenuData(Object data) {
        friendMenu.setData(data);
    }
    
    /**
     * 设置群菜单的附加数据
     * 
     * @param data
     */
    public void setClusterMenuData(Object data) {
        clusterMenu.setData(data);
    }
    
    /**
     * 设置群菜单可见性
     * 
     * @param b
     */
    public void setClusterMenuVisible(boolean b) {
        clusterMenu.setVisible(b);
    }
    
    /**
     * 设置系统菜单的可见性
     * 
     * @param b
     */
    public void setSystemMenuVisible(boolean b) {
        sysMenu.setVisible(b);
    }

	/**
	 * 重新设置离开菜单,发生在用户添加或修改了自动回复时
	 */
	public void renewAawyMenu() {
		int count = awayMenu.getItemCount();
		int size = replies.getAutoReplySize();
		// 从3开始调整,前面3个是固定的,分别是自定义,separator和无回复消息
		int loop = Math.min(count, 3 + size);
		for(int i = 3, j = 0; i < loop; i++) {
			MenuItem mi = awayMenu.getItem(i);
			mi.setText(replies.getAutoReply(j++));
		}
		// 处理长度不一致的部分,如果自动回复减少了,则把多余的菜单项释放掉,如果少了,添加菜单项
		size -= count - 3;
		if(size > 0) { // 大于0说明自动回复增加了
			for(int i = 0; i < size; i++) {
				MenuItem mi = new MenuItem(awayMenu, SWT.RADIO);
				final int index = count - 3 + i;
				mi.setText(replies.getAutoReply(index));
				mi.addSelectionListener(
					new SelectionAdapter() {
						public void widgetSelected(SelectionEvent e) {
						    main.getClient().getUser().setLoginMode(QQ.QQ_LOGIN_MODE_NORMAL);
						    if(main.checkLogin(false, false)) {
								replies.setAutoReply(true);
								replies.setCurrentAutoReply(index);
								if(client.getUser().getStatus() != QQ.QQ_FRIEND_STATUS_AWAY)
									client.makeMeAway();							        
						    } else {						        
								replies.setAutoReply(true);
								replies.setCurrentAutoReply(index);
								client.getUser().setStatus(QQ.QQ_FRIEND_STATUS_AWAY);
						    }
						}
					}
				);
			}
		} else if (size < 0) { // 小于0说明自动回复减少了
			size = Math.abs(size);
			for(int i = size - 1; i >= 0 ; i--) {
				MenuItem mi = awayMenu.getItem(loop + i);
				mi.dispose();
			}
		}
	}
	
    /**
     * 设置model
     * 
     * @param model
     */
    public void setModel(ShutterModel model) {
        this.model = model;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -