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

📄 resources.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
* LumaQQ - Java QQ Client
*
* Copyright (C) 2004 luma <stubma@163.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package edu.tsinghua.lumaqq.resource;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Display;

import edu.tsinghua.lumaqq.LumaQQ;
import edu.tsinghua.lumaqq.ui.helper.FaceRegistry;

/**
 * 管理图像资源,程序协议切换到2004,使用2004头像的选项不再使用,注释掉
 */
public class Resources {
    // Log
    private static Log log = LogFactory.getLog(Resources.class);
    
    // 缺省字体
    public static String LUMAQQ_DEFAULT_FONT = "SongTi9";
    
    // 一些路径常量
    private static final String HEAD_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/head/";
    private static final String SMALL_HEAD_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/smallhead/";
    private static final String CLUSTER_HEAD_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/clusterhead/";
    private static final String FACE_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/face/";
    private static final String ICON_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/icon";
    private static final String IMAGE_PATH_PREFIX = "/edu/tsinghua/lumaqq/resource/image";
    
    // resource id
    public static final int 
		icoOnline = 0,
    	icoAway = 1,
    	icoHidden = 2,
    	icoOffline = 3,
    	icoLumaQQ = 4,
    	icoAbout = 5,
    	icoExit = 6,
    	icoSysMsg = 7,
    	icoSysOpt = 8,
    	icoChangeUser = 9,
    	icoDiskDownload = 10,
		icoPersonInfo = 11,
		bmpLogin = 12,
		icoReply = 13,
		icoNoReply = 14,
		icoCustomReply = 15,
		icoMessage = 16,
		icoSearch = 17,
		icoLargeHead = 18,
		icoSmallHead = 19,
		icoDiskUpload = 20,
		icoDelGroup = 21,
		icoAddFriend = 22,
		icoDiskPassword = 23,
		icoShowBlackList = 24,
		icoRename = 25,
		icoSortFriend = 26,
		icoSharedDisk = 27,
		icoHideBlackList = 28,
		icoChecked = 29,
		icoFriendInfoManage = 30,
		icoDelFriend = 31,
		icoSendReceiveMessage = 32,
		icoFont = 33,
		icoSmiley = 34,
		icoQuickReply = 35,
		icoBlank = 36,
		icoDelete = 37,
		bmpSearch = 38,
		icoSendFile = 39,
		icoGroup = 40,
		icoUploadGroup = 41,
		icoDownloadGroup = 42,
		bmpTipBackground = 44,
		bmpDefaultQQShow = 45,
		bmpDownloading = 46,
		icoMessageManage = 47,
		icoTxtFile = 48,
		icoCopy = 49,
		icoCluster = 50,
		icoSearchCluster = 51,
		icoAddCluster = 52,
		icoFolder = 53, 
		icoRightArrow = 54,
		icoLeftArrow = 55,
		bmpOnlineTipBackground = 56,
		icoNotFound = 57,
		icoEnableFriendTip = 58,
		icoDisableFriendTip = 59,
		icoFriend = 60,
		icoApply = 61,
		icoDownloadRemark = 62,
		icoBack = 63,
		icoForward = 64,
		icoRefresh = 65,
		icoStop = 66,
		icoUpdate = 67, 
		icoFirefox = 68,
		bmpCheckUpdate = 69,
		icoSearchIp = 70,
		icoAwayDecoration = 71,
		icoColor = 72,
		icoIn = 73,
		icoOut = 74,
		icoFragment = 75,
		icoDebug = 76,
		icoMobileQQ = 77,
		icoMobile = 78,
		icoPalm = 79,
		icoCam = 80,
		icoMachine = 81,
		icoChatroom = 82,
		icoFirst = 83,
		icoAddAlbum = 84,
		icoMobileFriend = 85,
		icoFriendView = 86,
		icoSysOpt24 = 87,
		icoModifyPersonInfo24 = 88,
		icoChangeQQShow = 89,
		icoQQHome = 90,
		icoQQShowMall = 91,
		icoExport = 92,
		icoViewPersonInfo24 = 93,
		icoAboutTitleImage = 94,
		icoSearchWizard = 95,
		icoNext = 96,
		icoPrevious = 97,
		icoWarning = 98,
		icoDebugBytes = 99,
		icoDebugInput = 100,
		icoDebugPacket = 101,
		icoDebugFormat = 102,
		icoDebugSend = 103,
		icoHiddenDecoration = 104,
		icoClusterWizard = 105,
		bmpSmth = 106,
		icoCam24 = 107,
		icoSendFile32 = 108,
		icoMobile24 = 109,
		icoExport24 = 110,
		icoImport24 = 111,
		icoAddFaceGroup24 = 112,
		icoModifyFaceGroup24 = 113,
		icoDeleteFaceGroup24 = 114,
		bmpLogin2 = 115,
		icoBindQQ = 116,
		icoExpanded = 117,
		icoCollapsed = 118,
		icoTreeMode = 119,
		icoTraditionalMode = 120,
		icoOrganization = 121,
		icoDialog = 122,
		icoNewSubject = 123,
		bmpMenuDown = 124,
		bmpMenuHover = 125,
		bmpMenuNormal = 126,
		bmpToolbarBackground = 127,
		icoPin = 128,
		icoFlatExpand = 129,
		icoFlatCollapse = 130,
		icoClusterInfo = 131,
		icoClusterCard = 132,
		icoDiskView = 133,
		icoSysMenu = 134,
		icoClusterCreator = 135,
		icoClusterAdmin = 136,
		icoSun = 137,
		icoMoon = 138,
		icoStar = 139,
		icoCollapsed9 = 140,
		icoExpanded9 = 141,
		icoTool = 142,
		icoTempSessionIM = 143,
		icoClusterStockholder = 144,
		bmpProgress = 145,
		bmpCloseDown = 146,
		bmpCloseHover = 147,
		bmpCloseNormal = 148,
		bmpMinDown = 149,
		bmpMinHover = 150,
		bmpMinNormal = 151,
		bmpMaxDown = 152,
		bmpMaxHover = 153,
		bmpMaxNormal = 154,
		bmpRestoreDown = 155,
		bmpRestoreHover = 156,
		bmpRestoreNormal = 157,
		icoDazzleRing = 158,
		icoMobileDazzleRing = 159,
		icoBindDazzleRing = 160,
		icoLast = 161,
		icoTMMale = 162,
		icoTMFemale = 163,
		icoTMMale16 = 164,
		icoTMFemale16 = 165,
		bmpLumaQQ = 166,
		bmpCancelLoginNormal = 167,
		bmpCancelLoginHover = 168,
		bmpCancelLoginDown = 169,
		bmpPlusNormal = 170,
		bmpPlusHover = 171,
		bmpPlusDown = 172,
		icoSharedResource = 173,
		icoMyDisk = 174,
		icoMyAssistant = 175,
		icoMyDoc = 176,
		icoMyPicture = 177,
		icoMyMultimedia = 178,
		icoFile = 179,
		icoMyCustomHead = 180,
		icoMyAlbum = 181,
		icoMyNotebook = 182,
		icoAbort = 183,
		icoAbortAll = 184;

    // resource location
    public static final String[] resourceLocations = {
        ICON_PATH_PREFIX + "/online.gif",
        ICON_PATH_PREFIX + "/away.gif",
        ICON_PATH_PREFIX + "/hidden.gif",
        ICON_PATH_PREFIX + "/offline.gif",
        ICON_PATH_PREFIX + "/lumaqq.gif",
        ICON_PATH_PREFIX + "/about.gif",
        ICON_PATH_PREFIX + "/exit.gif",
        ICON_PATH_PREFIX + "/sysmsg.gif",
        ICON_PATH_PREFIX + "/sysoption.gif",
        ICON_PATH_PREFIX + "/changeuser.gif",
        ICON_PATH_PREFIX + "/diskdownload.gif",
		ICON_PATH_PREFIX + "/personinfo.gif",
        IMAGE_PATH_PREFIX + "/login.gif",
		ICON_PATH_PREFIX + "/reply.gif",
		ICON_PATH_PREFIX + "/noreply.gif",
		ICON_PATH_PREFIX + "/customreply.gif",
		ICON_PATH_PREFIX + "/message.gif",
		ICON_PATH_PREFIX + "/search.gif",
		ICON_PATH_PREFIX + "/largeface.gif",
		ICON_PATH_PREFIX + "/smallface.gif",
		ICON_PATH_PREFIX + "/diskupload.gif",
		ICON_PATH_PREFIX + "/delgroup.gif",
		ICON_PATH_PREFIX + "/addfriend.gif",
		ICON_PATH_PREFIX + "/diskpassword.gif",
		ICON_PATH_PREFIX + "/showblacklist.gif",
		ICON_PATH_PREFIX + "/rename.gif",
		ICON_PATH_PREFIX + "/sortfriend.gif",
		ICON_PATH_PREFIX + "/shareddisk.gif",
		ICON_PATH_PREFIX + "/hideblacklist.gif",
		ICON_PATH_PREFIX + "/checked.gif",
		ICON_PATH_PREFIX + "/friendinfomanage.gif",
		ICON_PATH_PREFIX + "/delfriend.gif",
		ICON_PATH_PREFIX + "/sendreceivemessage.gif",
		ICON_PATH_PREFIX + "/font.gif",
		ICON_PATH_PREFIX + "/smiley.gif",
		ICON_PATH_PREFIX + "/quickreply.gif",
		ICON_PATH_PREFIX + "/blank.gif",
		ICON_PATH_PREFIX + "/delete.gif",
		IMAGE_PATH_PREFIX + "/search.gif",
		ICON_PATH_PREFIX + "/sendfile.gif",
		ICON_PATH_PREFIX + "/group.gif",
		ICON_PATH_PREFIX + "/uploadgroup.gif",
		ICON_PATH_PREFIX + "/downloadgroup.gif",
		ICON_PATH_PREFIX + "/me.gif",
		IMAGE_PATH_PREFIX + "/tipbackground.gif",
		IMAGE_PATH_PREFIX + "/defaultqqshow.gif",
		IMAGE_PATH_PREFIX + "/downloading.gif",
		ICON_PATH_PREFIX + "/messagemanage.gif",
		ICON_PATH_PREFIX + "/txtfile.gif",
		ICON_PATH_PREFIX + "/copy.gif",
		ICON_PATH_PREFIX + "/cluster.gif",
		ICON_PATH_PREFIX + "/searchcluster.gif",
		ICON_PATH_PREFIX + "/addcluster.gif",
		ICON_PATH_PREFIX + "/folder.gif",
		ICON_PATH_PREFIX + "/rightarrow.gif",
		ICON_PATH_PREFIX + "/leftarrow.gif",
		IMAGE_PATH_PREFIX + "/onlinetipbackground.gif",
		ICON_PATH_PREFIX + "/notfound.gif",
		ICON_PATH_PREFIX + "/enablefriendtip.gif",
		ICON_PATH_PREFIX + "/disablefriendtip.gif",
		ICON_PATH_PREFIX + "/friend.gif",
		ICON_PATH_PREFIX + "/apply.gif",
		ICON_PATH_PREFIX + "/downloadremark.gif",
		ICON_PATH_PREFIX + "/back.gif",
		ICON_PATH_PREFIX + "/forward.gif",
		ICON_PATH_PREFIX + "/refresh.gif",
		ICON_PATH_PREFIX + "/stop.gif",
		ICON_PATH_PREFIX + "/update.gif",
		ICON_PATH_PREFIX + "/firefox.gif",
		IMAGE_PATH_PREFIX + "/checkupdate.gif",
		ICON_PATH_PREFIX + "/searchip.gif",
		ICON_PATH_PREFIX + "/awaydecoration.gif",
		ICON_PATH_PREFIX + "/colorsetting.gif",
		ICON_PATH_PREFIX + "/in.gif",
		ICON_PATH_PREFIX + "/out.gif",
		ICON_PATH_PREFIX + "/frag.gif",
		ICON_PATH_PREFIX + "/debug.gif",
		ICON_PATH_PREFIX + "/mobileqq.gif",
		ICON_PATH_PREFIX + "/mobile.gif",		
		ICON_PATH_PREFIX + "/palm.gif",
		ICON_PATH_PREFIX + "/cam.gif",
		ICON_PATH_PREFIX + "/machine.gif",
		ICON_PATH_PREFIX + "/chatroom.gif",
		ICON_PATH_PREFIX + "/first.gif",
		ICON_PATH_PREFIX + "/addalbum.gif",
		ICON_PATH_PREFIX + "/mobilefriend.gif",
		ICON_PATH_PREFIX + "/friendview.gif",
		ICON_PATH_PREFIX + "/sysoption_24.gif",
		ICON_PATH_PREFIX + "/modifypersoninfo_24.gif",
		ICON_PATH_PREFIX + "/changeqqshow.gif",
		ICON_PATH_PREFIX + "/qqhome.gif",
		ICON_PATH_PREFIX + "/qqshowmall.gif",
		ICON_PATH_PREFIX + "/export.gif", 
		ICON_PATH_PREFIX + "/viewpersoninfo_24.gif",
		ICON_PATH_PREFIX + "/abouttitleimage.gif",
		ICON_PATH_PREFIX + "/searchwizard.gif",
		ICON_PATH_PREFIX + "/next.gif",
		ICON_PATH_PREFIX + "/previous.gif",
		ICON_PATH_PREFIX + "/warning.gif",
		ICON_PATH_PREFIX + "/debug_bytes.gif",
		ICON_PATH_PREFIX + "/debug_input.gif",
		ICON_PATH_PREFIX + "/debug_packet.gif",
		ICON_PATH_PREFIX + "/debug_format.gif",
		ICON_PATH_PREFIX + "/debug_send.gif",
		ICON_PATH_PREFIX + "/hiddendecoration.gif",
		ICON_PATH_PREFIX + "/clusterwizard.gif",
		IMAGE_PATH_PREFIX + "/smth.gif",
		ICON_PATH_PREFIX + "/cam_24.gif",
		ICON_PATH_PREFIX + "/sendfile_32.gif",
		ICON_PATH_PREFIX + "/mobile_24.gif",
		ICON_PATH_PREFIX + "/export_24.gif",
		ICON_PATH_PREFIX + "/import_24.gif",
		ICON_PATH_PREFIX + "/addfacegroup_24.gif",
		ICON_PATH_PREFIX + "/modifyfacegroup_24.gif",
		ICON_PATH_PREFIX + "/deletefacegroup_24.gif",
		IMAGE_PATH_PREFIX + "/login2.gif",
		ICON_PATH_PREFIX + "/bindqq.gif",
		ICON_PATH_PREFIX + "/expanded.gif",
		ICON_PATH_PREFIX + "/collapsed.gif",
		ICON_PATH_PREFIX + "/treemode.gif",
		ICON_PATH_PREFIX + "/traditionalmode.gif",
		ICON_PATH_PREFIX + "/organization.gif",
		ICON_PATH_PREFIX + "/dialog.gif",
		ICON_PATH_PREFIX + "/newsubject.gif",
		IMAGE_PATH_PREFIX + "/menudown.gif",
		IMAGE_PATH_PREFIX + "/menuhover.gif",
		IMAGE_PATH_PREFIX + "/menunormal.gif",
		IMAGE_PATH_PREFIX + "/toolbarbackground.gif",
		ICON_PATH_PREFIX + "/pin.gif",
		ICON_PATH_PREFIX + "/flatexpand.gif",
		ICON_PATH_PREFIX + "/flatcollapse.gif",
		ICON_PATH_PREFIX + "/clusterinfo.gif",
		ICON_PATH_PREFIX + "/clustercard.gif",
		ICON_PATH_PREFIX + "/diskview.gif",
		ICON_PATH_PREFIX + "/sysmenu.gif",
		ICON_PATH_PREFIX + "/cluster_creator.gif",
		ICON_PATH_PREFIX + "/cluster_admin.gif",
		ICON_PATH_PREFIX + "/sun.gif",
		ICON_PATH_PREFIX + "/moon.gif",
		ICON_PATH_PREFIX + "/star.gif",
		ICON_PATH_PREFIX + "/collapsed_9.gif",
		ICON_PATH_PREFIX + "/expanded_9.gif",
		ICON_PATH_PREFIX + "/tool.gif",
		ICON_PATH_PREFIX + "/tempsessionim.gif",
		ICON_PATH_PREFIX + "/cluster_stockholder.gif",
		IMAGE_PATH_PREFIX + "/progress.gif",
		IMAGE_PATH_PREFIX + "/closedown.gif",
		IMAGE_PATH_PREFIX + "/closehover.gif",
		IMAGE_PATH_PREFIX + "/closenormal.gif",
		IMAGE_PATH_PREFIX + "/mindown.gif",
		IMAGE_PATH_PREFIX + "/minhover.gif",
		IMAGE_PATH_PREFIX + "/minnormal.gif",
		IMAGE_PATH_PREFIX + "/maxdown.gif",
		IMAGE_PATH_PREFIX + "/maxhover.gif",
		IMAGE_PATH_PREFIX + "/maxnormal.gif",
		IMAGE_PATH_PREFIX + "/restoredown.gif",
		IMAGE_PATH_PREFIX + "/restorehover.gif",
		IMAGE_PATH_PREFIX + "/restorenormal.gif",
		ICON_PATH_PREFIX + "/dazzlering.gif",
		ICON_PATH_PREFIX + "/mobile_dazzlering.gif",
		ICON_PATH_PREFIX + "/bind_dazzlering.gif",
		ICON_PATH_PREFIX + "/last.gif",
		ICON_PATH_PREFIX + "/tm_male.gif",
		ICON_PATH_PREFIX + "/tm_female.gif",
		ICON_PATH_PREFIX + "/tm_male_16.gif",
		ICON_PATH_PREFIX + "/tm_female_16.gif",
		IMAGE_PATH_PREFIX + "/lumaqq.gif",
		IMAGE_PATH_PREFIX + "/cancelloginnormal.gif",
		IMAGE_PATH_PREFIX + "/cancelloginhover.gif",
		IMAGE_PATH_PREFIX + "/cancellogindown.gif",
		IMAGE_PATH_PREFIX + "/plusnormal.gif",
		IMAGE_PATH_PREFIX + "/plushover.gif",
		IMAGE_PATH_PREFIX + "/plusdown.gif",
		ICON_PATH_PREFIX + "/sharedresource.gif",
		ICON_PATH_PREFIX + "/mydisk.gif",
		ICON_PATH_PREFIX + "/myassistant.gif",
		ICON_PATH_PREFIX + "/mydoc.gif",
		ICON_PATH_PREFIX + "/mypicture.gif",
		ICON_PATH_PREFIX + "/mymultimedia.gif",
		ICON_PATH_PREFIX + "/file.gif",
		ICON_PATH_PREFIX + "/mycustomhead.gif",
		ICON_PATH_PREFIX + "/myalbum.gif",
		ICON_PATH_PREFIX + "/mynotebook.gif",
		ICON_PATH_PREFIX + "/abort.gif",
		ICON_PATH_PREFIX + "/abortall.gif"
    };
    
    // 单一实例
    private static Resources holder = new Resources();
    
    // 2004头像最大索引
    public static final int QQ_2005_FACE_MAX_INDEX = 303;
    
    // 注册表
    private ImageRegistry registry;
    
    /**
     * 私有构造,singleton模式
     */
    private Resources() {
        // 创建图像注册表
        registry = new ImageRegistry(Display.getCurrent());
        // 注册缺省字体
    	FontData fd = new FontData("宋体", 9, SWT.NORMAL);
    	JFaceResources.getFontRegistry().put(LUMAQQ_DEFAULT_FONT, new FontData[] { fd });
    }

    /**
     * @return 实例
     */
    public static Resources getInstance() {
    	return holder;
    }
    
    /**
     * 返回Imageloader
     * 
     * @param resId
     * @return
     */
    public ImageLoader getImageLoader(int resId) {
    	ImageLoader loader = new ImageLoader();
    	InputStream is = Resources.class.getResourceAsStream(resourceLocations[resId]);
    	loader.load(is);
    	try {
			is.close();
		} catch(IOException e) {
		}
		return loader;
    }
    
    /**

⌨️ 快捷键说明

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