reman3/Rayman_X/cpa/tempgrp/OAC/Src/EdActors/EDACTTip.cpp

95 lines
2.5 KiB
C++

// CPACTTip.cpp : implementation file
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "EDACTTip.hpp"
#include "EDACCnst.hpp"
CBrush g_cbToolTipBackgroudBrush(RGB(32, 32,224));
COLORREF g_colrefTextColor = RGB(192, 192, 192);
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// EdActors_SpecialToolTip
BEGIN_MESSAGE_MAP(EdActors_SpecialToolTip, CWnd)
//{{AFX_MSG_MAP(EdActors_SpecialToolTip)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//***************************************************************************
EdActors_SpecialToolTip::EdActors_SpecialToolTip(CString csText,
CFont *pclFont)
{
m_csToolTipText = csText;
m_pclFont = pclFont;
}
//***************************************************************************
EdActors_SpecialToolTip::~EdActors_SpecialToolTip()
{
}
/////////////////////////////////////////////////////////////////////////////
// EdActors_SpecialToolTip message handlers
//***************************************************************************
BOOL EdActors_SpecialToolTip::m_fn_bCreate(CWnd *pclParentWnd)
{
return CWnd::Create(NULL,
"",
WS_BORDER,
CRect(0,0,0,0),
/*GetDesktopWindow()*/pclParentWnd,
0,
NULL);
}
//***************************************************************************
void EdActors_SpecialToolTip::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect crClientRect;
GetClientRect(crClientRect);
dc.FillRect(crClientRect, &g_cbToolTipBackgroudBrush);
dc.SelectObject(m_pclFont);
dc.SetTextColor(g_colrefTextColor);
dc.SetBkMode(TRANSPARENT);
dc.TextOut(0, 0, m_csToolTipText);
// Do not call CWnd::OnPaint() for painting messages
}
//***************************************************************************
void EdActors_SpecialToolTip::m_fn_vMove(CPoint point)
{
CRect crNewRect;
CClientDC dc(this);
dc.SelectObject(m_pclFont);
CSize csTextSize = dc.GetTextExtent(m_csToolTipText);
crNewRect = CRect( point.x,
point.y,
point.x + csTextSize.cx + C_TTIPS_SPACING,
point.y + csTextSize.cy + C_TTIPS_SPACING);
//Looks if whole tooltip would be visible
CRect crPCRect;
GetParent()->GetClientRect(crPCRect);
if ( crNewRect.right > crPCRect.right )
crNewRect.OffsetRect(crPCRect.right-crNewRect.right, 0);
ShowWindow(SW_SHOW);
MoveWindow(crNewRect);
}