mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-26 17:14:48 -04:00
github publish
This commit is contained in:
commit
506e23bf32
542 changed files with 120675 additions and 0 deletions
86
mapedit/ItemIcons/IconViewerButton.cpp
Normal file
86
mapedit/ItemIcons/IconViewerButton.cpp
Normal file
|
@ -0,0 +1,86 @@
|
|||
// IconViewerButton.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ItemIcons.h"
|
||||
#include "IconViewerButton.h"
|
||||
#include ".\iconviewerbutton.h"
|
||||
|
||||
|
||||
// CIconViewerButton
|
||||
|
||||
IMPLEMENT_DYNAMIC(CIconViewerButton, CStatic)
|
||||
CIconViewerButton::CIconViewerButton()
|
||||
{
|
||||
}
|
||||
|
||||
CIconViewerButton::~CIconViewerButton()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CIconViewerButton, CStatic)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_SETCURSOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
||||
// CIconViewerButton message handlers
|
||||
|
||||
|
||||
|
||||
void CIconViewerButton::OnPaint()
|
||||
{
|
||||
unsigned short *data=reinterpret_cast<unsigned short *>(_data);
|
||||
if (data[0]!=45 && data[1]!=55 && data[2]!=8)
|
||||
{
|
||||
__super::OnPaint();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
BitMapInfo bmpinfo;
|
||||
ZeroMemory(&bmpinfo,sizeof(bmpinfo));
|
||||
bmpinfo.hdr.biSize=sizeof(bmpinfo.hdr);
|
||||
bmpinfo.hdr.biBitCount=8;
|
||||
bmpinfo.hdr.biCompression=BI_RGB;
|
||||
bmpinfo.hdr.biHeight=55;
|
||||
bmpinfo.hdr.biPlanes=1;
|
||||
bmpinfo.hdr.biWidth=45;
|
||||
for (int i=0;i<256;i++)
|
||||
{
|
||||
RGBQUAD &col=bmpinfo.palette[i];
|
||||
col.rgbBlue=(data[i+3] & 0x1F)<<3;
|
||||
col.rgbGreen=(data[i+3] & 0x3E0)>>2;
|
||||
col.rgbRed=(data[i+3] & 0x7C00)>>7;
|
||||
col.rgbReserved=0;
|
||||
}
|
||||
|
||||
bmpinfo.palette[0].rgbBlue=80;
|
||||
bmpinfo.palette[0].rgbGreen=70;
|
||||
bmpinfo.palette[0].rgbRed=60;
|
||||
|
||||
char bitmap[55][48];
|
||||
char *p=reinterpret_cast<char *>(data+3+256);
|
||||
for (int i=0;i<55;i++,p+=45) memcpy(bitmap[55-i-1],p,45);
|
||||
|
||||
CPaintDC dc(this);
|
||||
CRect rc;
|
||||
GetClientRect(&rc);
|
||||
dc.SetStretchBltMode(HALFTONE);
|
||||
StretchDIBits(dc,0,0,rc.right,rc.bottom,0,0,45,55,bitmap,reinterpret_cast<BITMAPINFO *>(&bmpinfo),DIB_RGB_COLORS,SRCCOPY);
|
||||
}
|
||||
|
||||
BOOL CIconViewerButton::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
|
||||
{
|
||||
if (pWnd==this)
|
||||
{
|
||||
HCURSOR h=LoadCursor(0,IDC_HAND);
|
||||
::SetCursor(h);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return __super::OnSetCursor(pWnd,nHitTest,message);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue