93 lines
2.7 KiB
C++
93 lines
2.7 KiB
C++
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
|
// Copyright (C) 2010 Winch Gate Property Limited
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as
|
|
// published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
// icon_wnd.h: interface for the CIconWnd class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_ICON_WND_H__12893D3C_9A86_4A7A_A972_7965BDDBD2A2__INCLUDED_)
|
|
#define AFX_ICON_WND_H__12893D3C_9A86_4A7A_A972_7965BDDBD2A2__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "nel/misc/bitmap.h"
|
|
|
|
class CIconWnd : public CWnd
|
|
{
|
|
// Operations
|
|
public:
|
|
CIconWnd();
|
|
void create (DWORD wStyle, RECT &pos, CWnd *window, uint dialogIndex);
|
|
|
|
private:
|
|
bool updateStr();
|
|
void updateIcon();
|
|
|
|
void blendIcons(NLMISC::CBitmap &dst, const NLMISC::CBitmap &src);
|
|
void modulateIcon(NLMISC::CBitmap &dst, const NLMISC::CRGBA &col);
|
|
|
|
bool loadIcon(const std::string &filename, NLMISC::CBitmap &bmp);
|
|
bool getColorFromStr(const std::string &s, NLMISC::CRGBA &c);
|
|
|
|
void addIconLayer(NLMISC::CBitmap &dst, const std::string iconStr, const std::string iconCol);
|
|
bool updateWnd(CWnd *pWnd, std::string &str);
|
|
|
|
// Attributes
|
|
public:
|
|
uint Id;
|
|
|
|
// Pointer to control window
|
|
CWnd *pWndIcon;
|
|
CWnd *pWndIconColor;
|
|
CWnd *pWndIconBack;
|
|
CWnd *pWndIconBackColor;
|
|
CWnd *pWndIconOver;
|
|
CWnd *pWndIconOverColor;
|
|
CWnd *pWndIconOver2;
|
|
CWnd *pWndIconOver2Color;
|
|
|
|
private:
|
|
// String containing window data
|
|
std::string strIcon;
|
|
std::string strIconColor;
|
|
std::string strIconBack;
|
|
std::string strIconBackColor;
|
|
std::string strIconOver;
|
|
std::string strIconOverColor;
|
|
std::string strIconOver2;
|
|
std::string strIconOver2Color;
|
|
|
|
// Bitmap printed on window
|
|
NLMISC::CBitmap bitmap;
|
|
|
|
// Directory of icons
|
|
static std::string IconPath;
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~CIconWnd();
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
//{{AFX_MSG(CIconWnd)
|
|
afx_msg void OnPaint();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
#endif // !defined(AFX_ICON_WND_H__12893D3C_9A86_4A7A_A972_7965BDDBD2A2__INCLUDED_)
|