?? resource.c
字號:
/*** $Id: resource.c,v 1.26 2004/08/10 00:17:37 snig Exp $**** resource.c: This file include some functions for system resource loading. ** some functions are from misc.c.**** Copyright (C) 2003 Feynman Software.** Copyright (C) 1999 ~ 2002 Wei Yongming.**** Create date: 2003/09/06**** Current maintainer: Wei Yongming.*//*** 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*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "window.h"#include "cursor.h"#include "icon.h"#include "sysres.h"#include "misc.h"BITMAP SystemBitmap [SYSBMP_ITEM_NUMBER];HICON LargeSystemIcon [SYSICO_ITEM_NUMBER] = {0};HICON SmallSystemIcon [SYSICO_ITEM_NUMBER] = {0};#ifdef _CTRL_BUTTON# define _NEED_STOCKBMP_BUTTON 1# ifdef _PHONE_WINDOW_STYLE# define _NEED_STOCKBMP_PUSHBUTTON 1# endif#endif#if defined(_CTRL_COMBOBOX) || defined (_CTRL_MENUBUTTON)# define _NEED_STOCKBMP_DOWNARROW 1#endif#ifdef _CTRL_COMBOBOX# define _NEED_STOCKBMP_DOUBLEARROW 1#endif#ifdef _CTRL_LISTBOX# define _NEED_STOCKBMP_CHECKMARK 1#endif#if defined(_CTRL_TRACKBAR) && defined(_PHONE_WINDOW_STYLE)# define _NEED_STOCKBMP_TRACKBAR 1#endif#ifdef _EXT_CTRL_SPINBOX# define _NEED_STOCKBMP_SPINBOX 1#endif#ifdef _IME_GB2312# define _NEED_STOCKBMP_IME 1#endif#ifdef _MISC_ABOUTDLG# define _NEED_STOCKBMP_LOGO 1#endif#ifdef _EXT_CTRL_TREEVIEW# define _NEED_SYSICON_FOLD 1#endif#ifdef _EXT_CTRL_LISTVIEW# define _NEED_STOCKBMP_LVFOLD 1# define _NEED_SYSICON_FILETYPE 1#endifstatic struct _StockBitmaps { const char* name; BITMAP bmp;} StockBitmaps [] ={#ifdef _NEED_STOCKBMP_BUTTON {STOCKBMP_BUTTON},#endif#ifdef _NEED_STOCKBMP_PUSHBUTTON {STOCKBMP_PUSHBUTTON}, {STOCKBMP_PUSHEDBUTTON},#endif#ifdef _NEED_STOCKBMP_DOWNARROW {STOCKBMP_DOWNARROW},#endif#ifdef _NEED_STOCKBMP_DOUBLEARROW {STOCKBMP_UPDOWNARROW}, {STOCKBMP_LEFTRIGHTARROW},#endif#ifdef _NEED_STOCKBMP_CHECKMARK {STOCKBMP_CHECKMARK},#endif#ifdef _NEED_STOCKBMP_TRACKBAR {STOCKBMP_TRACKBAR_HBG}, {STOCKBMP_TRACKBAR_HSLIDER}, {STOCKBMP_TRACKBAR_VBG}, {STOCKBMP_TRACKBAR_VSLIDER},#endif#ifdef _NEED_STOCKBMP_SPINBOX {STOCKBMP_SPINBOX_HORZ}, {STOCKBMP_SPINBOX_VERT},#endif#ifdef _NEED_STOCKBMP_LVFOLD {STOCKBMP_LVFOLD}, {STOCKBMP_LVUNFOLD},#endif#ifdef _NEED_STOCKBMP_IME {STOCKBMP_IMECTRLBTN},#endif#ifdef _NEED_STOCKBMP_LOGO {STOCKBMP_LOGO}#endif};const BITMAP* GUIAPI GetStockBitmap (const char* name, int ckey_x, int ckey_y){ int i; if (!name || name [0] == '\0') return NULL; for (i = 0; i < TABLESIZE(StockBitmaps); i++) { if (strcmp (name, StockBitmaps [i].name) == 0) { PBITMAP bmp = &StockBitmaps [i].bmp; if (bmp->bmWidth == 0 || bmp->bmHeight == 0) { if (!LoadSystemBitmapEx (bmp, name, ckey_x, ckey_y)) return NULL; } return bmp; } } return NULL;}#ifndef _INCORE_RES/****************************** System resource support *********************/#ifdef _CURSOR_SUPPORTPCURSOR LoadSystemCursor (int i){ PCURSOR tempcsr; char szValue[MAX_NAME + 1]; char szPathName[MAX_PATH + 1]; char szKey[10]; if (GetMgEtcValue (CURSORSECTION, "cursorpath", szPathName, MAX_PATH) < 0) goto error; sprintf (szKey, "cursor%d", i); if (GetMgEtcValue (CURSORSECTION, szKey, szValue, MAX_NAME) < 0) goto error; strcat (szPathName, szValue); if (!(tempcsr = (PCURSOR)LoadCursorFromFile (szPathName))) goto error; return tempcsr;error: return 0;}#endifBOOL GUIAPI LoadSystemBitmapEx (PBITMAP pBitmap, const char* szItemName, int ckey_x, int ckey_y){ char szPathName[MAX_PATH + 1]; char szValue[MAX_NAME + 1]; if (GetMgEtcValue ("bitmapinfo", szItemName, szValue, MAX_NAME) < 0 ) { fprintf (stderr, "LoadSystemBitmapEx: Get bitmap file name error!\n"); return FALSE; } if (GetMgEtcValue ("bitmapinfo", "bitmappath", szPathName, MAX_PATH) < 0 ) { fprintf (stderr, "LoadSystemBitmapEx: Get bitmap path error!\n"); return FALSE; } if (strcmp (szValue, "none") == 0) { memset (pBitmap, 0, sizeof (BITMAP)); return TRUE; } strcat(szPathName, szValue); if (LoadBitmap (HDC_SCREEN, pBitmap, szPathName) < 0) { fprintf (stderr, "LoadSystemBitmapEx: Load bitmap error: %s!\n", szPathName); return FALSE; } if (ckey_x >= 0 && ckey_x < pBitmap->bmWidth && ckey_y >= 0 && ckey_y < pBitmap->bmHeight) { pBitmap->bmType = BMP_TYPE_COLORKEY; pBitmap->bmColorKey = GetPixelInBitmap (pBitmap, 0, 0); } return TRUE;}HICON GUIAPI LoadSystemIcon (const char* szItemName, int which){ char szPathName[MAX_PATH + 1]; char szValue[MAX_NAME + 1]; HICON hIcon; if (GetMgEtcValue ("iconinfo", szItemName, szValue, MAX_NAME) < 0 ) { fprintf (stderr, "LoadSystemIcon: Get icon file name error!\n"); return 0; } if (GetMgEtcValue ("iconinfo", "iconpath", szPathName, MAX_PATH) < 0 ) { fprintf (stderr, "LoadSystemIcon: Get icon path error!\n"); return 0; } strcat (szPathName, szValue); if ((hIcon = LoadIconFromFile (HDC_SCREEN, szPathName, which)) == 0) { fprintf (stderr, "LoadSystemIcon: Load icon error: %s!\n", szPathName); return 0; } return hIcon;}BOOL InitSystemRes (void){ int i; int nBmpNr, nIconNr; char szValue [12]; /* * Load system bitmaps here. */ if (GetMgEtcValue ("bitmapinfo", "bitmapnumber", szValue, 10) < 0) return FALSE; nBmpNr = atoi (szValue); if (nBmpNr <= 0) return FALSE; nBmpNr = nBmpNr < SYSBMP_ITEM_NUMBER ? nBmpNr : SYSBMP_ITEM_NUMBER; for (i = 0; i < nBmpNr; i++) { sprintf (szValue, "bitmap%d", i); if (!LoadSystemBitmap (SystemBitmap + i, szValue)) return FALSE; } /* * Load system icons here. */ if (GetMgEtcValue ("iconinfo", "iconnumber", szValue, 10) < 0 ) return FALSE; nIconNr = atoi(szValue); if (nIconNr <= 0) return FALSE; nIconNr = nIconNr < SYSICO_ITEM_NUMBER ? nIconNr : SYSICO_ITEM_NUMBER; for (i = 0; i < nIconNr; i++) { sprintf(szValue, "icon%d", i); SmallSystemIcon [i] = LoadSystemIcon (szValue, 1); LargeSystemIcon [i] = LoadSystemIcon (szValue, 0); if (SmallSystemIcon [i] == 0 || LargeSystemIcon [i] == 0) return FALSE; } return TRUE;}#else /* _INCORE_RES */#ifdef _CURSOR_SUPPORT# include "cursors.c"#endif#ifdef _FLAT_WINDOW_STYLE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -