Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
135
Tools/Launcher/GradientStatic.cpp
Normal file
135
Tools/Launcher/GradientStatic.cpp
Normal file
@@ -0,0 +1,135 @@
|
||||
// GradientStatic.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GradientStatic.h"
|
||||
#include "MemDC.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CGradientStatic
|
||||
|
||||
CGradientStatic::CGradientStatic()
|
||||
{
|
||||
m_iLeftSpacing = 10;
|
||||
clLeft = GetSysColor(COLOR_ACTIVECAPTION);
|
||||
clRight = GetSysColor(COLOR_BTNFACE);
|
||||
clText = GetSysColor(COLOR_CAPTIONTEXT);
|
||||
|
||||
m_bCenter = FALSE;
|
||||
|
||||
hinst_msimg32 = LoadLibrary( "msimg32.dll" );
|
||||
m_bCanDoGradientFill = FALSE;
|
||||
pFont = NULL;
|
||||
|
||||
if(hinst_msimg32)
|
||||
{
|
||||
m_bCanDoGradientFill = TRUE;
|
||||
dllfunc_GradientFill = ((LPFNDLLFUNC1) GetProcAddress( hinst_msimg32, "GradientFill" ));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
CGradientStatic::~CGradientStatic()
|
||||
{
|
||||
FreeLibrary( hinst_msimg32 );
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGradientStatic, CStatic)
|
||||
//{{AFX_MSG_MAP(CGradientStatic)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_LBUTTONDOWN()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CGradientStatic message handlers
|
||||
|
||||
void CGradientStatic::OnPaint()
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
|
||||
CMemDC mDC( &dc, rect );
|
||||
|
||||
if(m_bCanDoGradientFill)
|
||||
{
|
||||
|
||||
TRIVERTEX rcVertex[2];
|
||||
rect.right--; // exclude this point, like FillRect does
|
||||
rect.bottom--;
|
||||
rcVertex[0].x=rect.left;
|
||||
rcVertex[0].y=rect.top;
|
||||
rcVertex[0].Red=GetRValue(clLeft)<<8; // color values from 0x0000 to 0xff00 !!!!
|
||||
rcVertex[0].Green=GetGValue(clLeft)<<8;
|
||||
rcVertex[0].Blue=GetBValue(clLeft)<<8;
|
||||
rcVertex[0].Alpha=0x0000;
|
||||
rcVertex[1].x=rect.right;
|
||||
rcVertex[1].y=rect.bottom;
|
||||
rcVertex[1].Red=GetRValue(clRight)<<8;
|
||||
rcVertex[1].Green=GetGValue(clRight)<<8;
|
||||
rcVertex[1].Blue=GetBValue(clRight)<<8;
|
||||
rcVertex[1].Alpha=0;
|
||||
GRADIENT_RECT rect;
|
||||
rect.UpperLeft=0;
|
||||
rect.LowerRight=1;
|
||||
|
||||
// fill the area
|
||||
//dllfunc_GradientFill( mDC,rcVertex,2,&rect,1,GRADIENT_FILL_RECT_H);
|
||||
|
||||
//if Gradient Fil works - let's use font color defined by user
|
||||
::SetTextColor(mDC,clText);
|
||||
}
|
||||
else
|
||||
{
|
||||
//there is no gradient, so let's use standart color
|
||||
::SetTextColor(mDC,GetSysColor(COLOR_BTNTEXT));
|
||||
}
|
||||
|
||||
HFONT hfontOld;
|
||||
if(pFont)
|
||||
hfontOld = (HFONT)SelectObject(mDC.m_hDC, (HFONT)pFont->m_hObject);
|
||||
|
||||
::SetBkMode(mDC, TRANSPARENT);
|
||||
GetClientRect(&rect);
|
||||
|
||||
|
||||
if(m_bCenter)
|
||||
::DrawText(mDC, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);
|
||||
else
|
||||
{
|
||||
rect.left+=m_iLeftSpacing;
|
||||
::DrawText(mDC, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_LEFT);
|
||||
}
|
||||
|
||||
if(pFont)
|
||||
::SelectObject(mDC.m_hDC, hfontOld);
|
||||
}
|
||||
|
||||
void CGradientStatic::SetWindowText(LPCSTR lpszString)
|
||||
{
|
||||
m_sTEXT = lpszString;
|
||||
Invalidate(TRUE);
|
||||
}
|
||||
|
||||
CString CGradientStatic::GetWindowText()
|
||||
{
|
||||
return m_sTEXT;
|
||||
|
||||
}
|
||||
|
||||
void CGradientStatic::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CStatic::OnLButtonDown(nFlags, point);
|
||||
}
|
||||
Reference in New Issue
Block a user