- Timestamp:
- Jul 20, 1999, 7:50:19 PM (26 years ago)
- Location:
- trunk/src/pe2lx
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/pe2lx/icon.cpp
r97 r349 1 /* $Id: icon.cpp,v 1. 3 1999-06-10 17:08:53 phallerExp $ */1 /* $Id: icon.cpp,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */ 2 2 3 3 /* … … 35 35 { 36 36 RGBQUAD *rgb; 37 RGB 37 RGB2 *os2rgb; 38 38 int bwsize, i, colorsize, rgbsize; 39 39 OS2Icon *icon = OS2Icon::icons; … … 91 91 //for color bitmap + RGB structs for all the colors 92 92 //SvL, 3-3-98: 2*bwsize 93 iconsize = 2*sizeof(BITMAPFILEHEADER ) + 2*sizeof(RGB) +93 iconsize = 2*sizeof(BITMAPFILEHEADER2) + 2*sizeof(RGB2) + 94 94 rgbsize + 2*bwsize + bmpHdr->biSizeImage; 95 95 //There are icons without an XOR mask, so check for it … … 97 97 iconsize += bwsize; 98 98 } 99 iconhdr = (BITMAPFILEHEADER *)malloc(iconsize); 99 iconhdr = (BITMAPFILEHEADER2 *)malloc(iconsize); 100 memset(iconhdr, 0, iconsize); 100 101 iconhdr->usType = BFT_COLORICON; 101 iconhdr->cbSize = sizeof(BITMAPFILEHEADER );102 iconhdr->cbSize = sizeof(BITMAPFILEHEADER2); 102 103 iconhdr->xHotspot = 0; 103 104 iconhdr->yHotspot = 0; 104 iconhdr->offBits = 2*sizeof(BITMAPFILEHEADER) + 105 2*sizeof(RGB) + rgbsize; 106 iconhdr->bmp.cbFix = sizeof(BITMAPINFOHEADER); 107 iconhdr->bmp.cx = (USHORT)bmpHdr->biWidth; 108 iconhdr->bmp.cy = (USHORT)bmpHdr->biHeight; 109 iconhdr->bmp.cPlanes = 1; 110 iconhdr->bmp.cBitCount = 1; 111 os2rgb = (RGB *)(iconhdr+1); 112 memset(os2rgb, 0, sizeof(RGB)); 113 memset(os2rgb+1, 0xff, sizeof(RGB)); 114 iconhdr2 = (BITMAPFILEHEADER *)(os2rgb+2); 105 iconhdr->offBits = 2*sizeof(BITMAPFILEHEADER2) + 106 2*sizeof(RGB2) + rgbsize; 107 iconhdr->bmp2.cbFix = sizeof(BITMAPINFOHEADER2); 108 iconhdr->bmp2.cx = (USHORT)bmpHdr->biWidth; 109 iconhdr->bmp2.cy = (USHORT)bmpHdr->biHeight; 110 iconhdr->bmp2.cPlanes = 1; 111 iconhdr->bmp2.cBitCount= 1; 112 iconhdr->bmp2.ulCompression = BCA_UNCOMP; 113 iconhdr->bmp2.ulColorEncoding = BCE_RGB; 114 os2rgb = (RGB2 *)(iconhdr+1); 115 memset(os2rgb, 0, sizeof(RGB2)); 116 memset(os2rgb+1, 0xff, sizeof(RGB)); //not reserved byte 117 iconhdr2 = (BITMAPFILEHEADER2 *)(os2rgb+2); 115 118 iconhdr2->usType = BFT_COLORICON; 116 iconhdr2->cbSize = sizeof(BITMAPFILEHEADER );119 iconhdr2->cbSize = sizeof(BITMAPFILEHEADER2); 117 120 iconhdr2->xHotspot = 0; 118 121 iconhdr2->yHotspot = 0; 119 iconhdr2->offBits = 2*sizeof(BITMAPFILEHEADER) + 120 2*sizeof(RGB) + rgbsize + 2*bwsize; 121 iconhdr2->bmp.cbFix = sizeof(BITMAPINFOHEADER); 122 iconhdr2->bmp.cx = (USHORT)bmpHdr->biWidth; 123 iconhdr2->bmp.cy = (USHORT)(bmpHdr->biHeight/2); 124 iconhdr2->bmp.cPlanes = bmpHdr->biPlanes; 125 iconhdr2->bmp.cBitCount= bmpHdr->biBitCount; 126 os2rgb = (RGB *)(iconhdr2+1); 122 iconhdr2->offBits = 2*sizeof(BITMAPFILEHEADER2) + 123 2*sizeof(RGB2) + rgbsize + 2*bwsize; 124 iconhdr2->bmp2.cbFix = sizeof(BITMAPINFOHEADER2); 125 iconhdr2->bmp2.cx = (USHORT)bmpHdr->biWidth; 126 iconhdr2->bmp2.cy = (USHORT)(bmpHdr->biHeight/2); 127 iconhdr2->bmp2.cPlanes = bmpHdr->biPlanes; 128 iconhdr2->bmp2.cBitCount= bmpHdr->biBitCount; 129 iconhdr2->bmp2.ulCompression = BCA_UNCOMP; 130 iconhdr2->bmp2.ulColorEncoding = BCE_RGB; 131 os2rgb = (RGB2 *)(iconhdr2+1); 127 132 rgb = (RGBQUAD *)(bmpHdr+1); 128 133 if(bmpHdr->biBitCount < 24) { … … 173 178 //****************************************************************************** 174 179 //****************************************************************************** 175 BITMAPFILEHEADER *OS2Icon::GetIconHeader()180 BITMAPFILEHEADER2 *OS2Icon::GetIconHeader() 176 181 { 177 182 return(iconhdr); -
trunk/src/pe2lx/icon.h
r97 r349 1 /* $Id: icon.h,v 1. 3 1999-06-10 17:08:53 phallerExp $ */2 3 /* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1. 3 1999-06-10 17:08:53 phallerExp $1 /* $Id: icon.h,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */ 2 3 /* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1.4 1999-07-20 17:50:19 sandervl Exp $ 4 4 * 5 5 * Declarations, protypes and defintions for conversion of icons. … … 198 198 int QueryIconSize(); 199 199 void SetIconHdrOffset(int offset); 200 BITMAPFILEHEADER 200 BITMAPFILEHEADER2 *GetIconHeader(); 201 201 202 202 static OS2Icon *GetIcon(int id); … … 207 207 private: 208 208 int id, iconsize, prevoffset; 209 BITMAPFILEHEADER 210 BITMAPFILEHEADER 209 BITMAPFILEHEADER2 *iconhdr; 210 BITMAPFILEHEADER2 *iconhdr2; 211 211 212 212 //@KSO: This may need to be changed later. Statics work fine for one single file, -
trunk/src/pe2lx/icongrp.cpp
r97 r349 1 /* $Id: icongrp.cpp,v 1. 3 1999-06-10 17:08:54 phallerExp $ */1 /* $Id: icongrp.cpp,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */ 2 2 3 3 /* … … 41 41 ResourceDirectory *rdir = (ResourceDirectory *)(ihdr + 1); 42 42 int i, groupsize = 0; 43 BITMAPARRAYFILEHEADER *bafh, *orgbafh;43 BITMAPARRAYFILEHEADER2 *bafh, *orgbafh; 44 44 OS2Icon *icon; 45 45 … … 59 59 rdir++; 60 60 } 61 bafh = (BITMAPARRAYFILEHEADER *)malloc(groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER));61 bafh = (BITMAPARRAYFILEHEADER2 *)malloc(groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER2)); 62 62 orgbafh = bafh; 63 63 … … 65 65 for(i=0;i<ihdr->wCount;i++) { 66 66 bafh->usType = BFT_BITMAPARRAY; 67 bafh->cbSize = sizeof(BITMAPARRAYFILEHEADER );67 bafh->cbSize = sizeof(BITMAPARRAYFILEHEADER2); 68 68 bafh->cxDisplay = 0; 69 69 bafh->cyDisplay = 0; … … 75 75 } 76 76 if(i != ihdr->wCount -1) { 77 bafh->offNext = (int)&bafh->bfh - (int)orgbafh + icon->QueryIconSize();77 bafh->offNext = (int)&bafh->bfh2 - (int)orgbafh + icon->QueryIconSize(); 78 78 } 79 79 else bafh->offNext = 0; 80 80 81 icon->SetIconHdrOffset((int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER )-sizeof(BITMAPFILEHEADER));81 icon->SetIconHdrOffset((int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2)); 82 82 83 memcpy((char *)&bafh->bfh , (char *)icon->GetIconHeader(), icon->QueryIconSize());84 bafh = (BITMAPARRAYFILEHEADER *)((int)&bafh->bfh+ icon->QueryIconSize());83 memcpy((char *)&bafh->bfh2, (char *)icon->GetIconHeader(), icon->QueryIconSize()); 84 bafh = (BITMAPARRAYFILEHEADER2 *)((int)&bafh->bfh2 + icon->QueryIconSize()); 85 85 rdir++; 86 86 } 87 OS2Exe.StoreResource(id, RT_POINTER, groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER ), (char *)orgbafh);87 OS2Exe.StoreResource(id, RT_POINTER, groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER2), (char *)orgbafh); 88 88 free((char *)orgbafh); 89 89 }
Note:
See TracChangeset
for help on using the changeset viewer.