Ignore:
Timestamp:
Jul 20, 1999, 7:50:19 PM (26 years ago)
Author:
sandervl
Message:

Icon changes (saved in BITMAPINFOHEADER2 format)

File:
1 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 phaller Exp $ */
     1/* $Id: icon.cpp,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */
    22
    33/*
     
    3535{
    3636 RGBQUAD *rgb;
    37  RGB     *os2rgb;
     37 RGB2    *os2rgb;
    3838 int bwsize, i, colorsize, rgbsize;
    3939 OS2Icon *icon = OS2Icon::icons;
     
    9191  //for color bitmap + RGB structs for all the colors
    9292  //SvL, 3-3-98: 2*bwsize
    93   iconsize = 2*sizeof(BITMAPFILEHEADER) + 2*sizeof(RGB) +
     93  iconsize = 2*sizeof(BITMAPFILEHEADER2) + 2*sizeof(RGB2) +
    9494             rgbsize + 2*bwsize + bmpHdr->biSizeImage;
    9595  //There are icons without an XOR mask, so check for it
     
    9797        iconsize += bwsize;
    9898  }
    99   iconhdr  = (BITMAPFILEHEADER *)malloc(iconsize);
     99  iconhdr  = (BITMAPFILEHEADER2 *)malloc(iconsize);
     100  memset(iconhdr, 0, iconsize);
    100101  iconhdr->usType        = BFT_COLORICON;
    101   iconhdr->cbSize        = sizeof(BITMAPFILEHEADER);
     102  iconhdr->cbSize        = sizeof(BITMAPFILEHEADER2);
    102103  iconhdr->xHotspot      = 0;
    103104  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);
    115118  iconhdr2->usType       = BFT_COLORICON;
    116   iconhdr2->cbSize       = sizeof(BITMAPFILEHEADER);
     119  iconhdr2->cbSize       = sizeof(BITMAPFILEHEADER2);
    117120  iconhdr2->xHotspot     = 0;
    118121  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);
    127132  rgb                    = (RGBQUAD *)(bmpHdr+1);
    128133  if(bmpHdr->biBitCount < 24) {
     
    173178//******************************************************************************
    174179//******************************************************************************
    175 BITMAPFILEHEADER *OS2Icon::GetIconHeader()
     180BITMAPFILEHEADER2 *OS2Icon::GetIconHeader()
    176181{
    177182  return(iconhdr);
Note: See TracChangeset for help on using the changeset viewer.