khanat-opennel-code/code/ryzom/tools/leveldesign/georges_dll/icon_wnd.h
2014-02-07 19:29:36 -08:00

93 lines
2.6 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_)