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

📄 menuhelper.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		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 + -