280 lines
8.0 KiB
C++
280 lines
8.0 KiB
C++
// CPACStat.cpp : implementation file
|
|
//////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
#include "WControls\CTL_WSta.hpp"
|
|
|
|
#include "Others\CTL_Pub.hpp"
|
|
#include "Others\CTL_Pri.hpp"
|
|
|
|
//ANNECY CB
|
|
#include "WControls\CTL_VBas.hpp"
|
|
//END ANNECY
|
|
|
|
//External Modules
|
|
#include "IncTUT.h"
|
|
//End of External Modules
|
|
|
|
extern CBrush g_clWhiteBrush;
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//Colors for a value (not changeable in Setup)
|
|
COLORREF CTL_g_colref_ValueTextColor = RGB(0,0,0);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTL_Editor_Static
|
|
IMPLEMENT_DYNAMIC(CTL_Editor_Static, CStatic)
|
|
|
|
BEGIN_MESSAGE_MAP(CTL_Editor_Static, CStatic)
|
|
//{{AFX_MSG_MAP(CTL_Editor_Static)
|
|
ON_WM_RBUTTONUP()
|
|
ON_WM_LBUTTONDBLCLK()
|
|
ON_WM_PAINT()
|
|
ON_WM_LBUTTONUP()
|
|
ON_WM_LBUTTONDOWN()
|
|
//ANNECY CB
|
|
ON_WM_MOUSEMOVE()
|
|
//END ANNECY
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//***************************************************************************
|
|
CTL_Editor_Static::CTL_Editor_Static(CString _csName,
|
|
CTL_tdeStaticType _tdeType,
|
|
long _lAdditionnalStyles,
|
|
CTL_Editor_Control *_pclParentControl,
|
|
CWnd *_pclParentWnd,
|
|
long _lUserDefinedType /*= 0*/,
|
|
long _lUserDefinedCode /*= 0*/)
|
|
|
|
: CTL_BaseWindowsControl(_pclParentControl,
|
|
_pclParentWnd,
|
|
_lUserDefinedType,
|
|
_lUserDefinedCode)
|
|
{
|
|
m_csTextToDisplay = _csName;
|
|
|
|
m_pri_tdeType = _tdeType;
|
|
|
|
m_pri_p_fnStaticHasBeenClicked_CallBack = CTL_g_p_fnDefaultCallBack_StaticHasBeenClicked;
|
|
m_pri_td_p_fn_vGetColor = CTL_g_p_fnDefaultCallBack_GetColor;
|
|
|
|
//Creates the control
|
|
DWORD lStyles = WS_CHILD | SS_NOTIFY | WS_BORDER;
|
|
switch ( m_pri_tdeType )
|
|
{
|
|
case CTL_STATIC_TYPE__FIELD_VALUE:
|
|
case CTL_STATIC_TYPE__NEUTRAL_FIELD:
|
|
lStyles |= (SS_CENTER);
|
|
break;
|
|
}
|
|
lStyles |= _lAdditionnalStyles;
|
|
|
|
m_pri_colBackGroundColor = RGB(132,132,132);
|
|
m_pri_colTextColor = RGB(0,0,0);
|
|
|
|
if ( Create(_csName,
|
|
lStyles,
|
|
CRect(0,0,0,0),
|
|
_pclParentWnd,
|
|
CTL_fn_lGetNextAvailableIDForControl()) )
|
|
{
|
|
SetFont(_pclParentWnd->GetFont());
|
|
}
|
|
}
|
|
|
|
//***************************************************************************
|
|
CTL_Editor_Static::~CTL_Editor_Static()
|
|
{
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTL_Editor_Static message handlers
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::m_fn_vSetTextToDisplay(CString csNewText,
|
|
BOOL _bMustRefresDisplay /*= FALSE*/)
|
|
{
|
|
m_csTextToDisplay = csNewText;
|
|
|
|
if ( _bMustRefresDisplay )
|
|
InvalidateRect(NULL);
|
|
}
|
|
|
|
//***************************************************************************
|
|
CTL_tdeStaticType CTL_Editor_Static::m_pub_fn_tdeGetType()
|
|
{
|
|
return m_pri_tdeType;
|
|
}
|
|
|
|
//***************************************************************************
|
|
CString CTL_Editor_Static::m_pub_fn_csGetDisplayedString()
|
|
{
|
|
return m_csTextToDisplay;
|
|
}
|
|
|
|
//***************************************************************************
|
|
COLORREF CTL_Editor_Static::m_pub_fn_colGetBackGroundColor()
|
|
{
|
|
return m_pri_colBackGroundColor;
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::m_pub_fn_vSetBackGroundColor(COLORREF _colNewColor,
|
|
BOOL _bMustRefresDisplay /*= FALSE*/)
|
|
{
|
|
m_pri_colBackGroundColor = _colNewColor;
|
|
|
|
if ( _bMustRefresDisplay )
|
|
InvalidateRect(NULL);
|
|
}
|
|
|
|
//***************************************************************************
|
|
COLORREF CTL_Editor_Static::m_pub_fn_colGetTextColor()
|
|
{
|
|
return m_pri_colTextColor;
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::m_pub_fn_vSetTextColor(COLORREF _colNewColor,
|
|
BOOL _bMustRefresDisplay /*= FALSE*/)
|
|
{
|
|
m_pri_colTextColor = _colNewColor;
|
|
|
|
if ( _bMustRefresDisplay )
|
|
InvalidateRect(NULL);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::m_pub_fn_vSetStaticHasBeenClicked_CallBack(
|
|
CTL_td_p_fn_vStaticHasBeenClicked _p_fnStaticHasBeenClicked_CallBack)
|
|
|
|
{
|
|
m_pri_p_fnStaticHasBeenClicked_CallBack = _p_fnStaticHasBeenClicked_CallBack;
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::m_pub_fn_v_SetColRefGetColor_CallBack(CTL_tdp_fn_vGetColor _p_fn_CallBack)
|
|
{
|
|
m_pri_td_p_fn_vGetColor = _p_fn_CallBack;
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::OnRButtonUp(UINT nFlags, CPoint point)
|
|
{
|
|
//CPA2 Stegaru Cristian 98/06/19
|
|
CTL_tdeClickType clickType = CTL_CLICK_TYPE__RIGHT_CLICK;
|
|
if (MK_SHIFT == (MK_SHIFT & nFlags))
|
|
clickType = CTL_CLICK_TYPE__SHIFT_RIGHT_CLICK;
|
|
|
|
if ( m_pri_p_fnStaticHasBeenClicked_CallBack != NULL )
|
|
m_pri_p_fnStaticHasBeenClicked_CallBack(this, clickType);
|
|
//End CPA2 Stegaru Cristian 98/06/19
|
|
|
|
CStatic::OnRButtonUp(nFlags, point);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::OnLButtonDblClk(UINT nFlags, CPoint point)
|
|
{
|
|
if ( m_pri_p_fnStaticHasBeenClicked_CallBack != NULL )
|
|
m_pri_p_fnStaticHasBeenClicked_CallBack(this, CTL_CLICK_TYPE__LEFT_DOUBLE_CLICK);
|
|
CStatic::OnMButtonDblClk(nFlags, point);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::OnLButtonUp(UINT nFlags, CPoint point)
|
|
{
|
|
if ( m_pri_p_fnStaticHasBeenClicked_CallBack != NULL )
|
|
m_pri_p_fnStaticHasBeenClicked_CallBack(this, CTL_CLICK_TYPE__LEFT_CLICK);
|
|
|
|
CStatic::OnLButtonUp(nFlags, point);
|
|
}
|
|
|
|
//***************************************************************************
|
|
//ANNECY CB
|
|
void CTL_Editor_Static::OnMouseMove(UINT nFlags, CPoint point)
|
|
{
|
|
CTL_Editor_BaseFormView *pView = (CTL_Editor_BaseFormView *) GetParent();
|
|
ClientToScreen(&point);
|
|
pView->ScreenToClient(&point);
|
|
LPARAM lParam = point.x + (point.y << 16);
|
|
pView->SendMessage(WM_MOUSEMOVE, (WPARAM) nFlags, lParam);
|
|
}
|
|
//END ANNECY
|
|
|
|
void CTL_Editor_Static::OnLButtonDown(UINT nFlags, CPoint point)
|
|
{
|
|
//ANNECY CB
|
|
// if ( m_pri_p_fnStaticHasBeenClicked_CallBack != NULL )
|
|
// m_pri_p_fnStaticHasBeenClicked_CallBack(this, CTL_CLICK_TYPE__LEFT_BUTTON_DOWN);
|
|
// else
|
|
{
|
|
CTL_Editor_BaseFormView *pView = (CTL_Editor_BaseFormView *) GetParent();
|
|
ClientToScreen(&point);
|
|
pView->ScreenToClient(&point);
|
|
LPARAM lParam = point.x + (point.y << 16);
|
|
pView->SendMessage(WM_LBUTTONDOWN, (WPARAM) nFlags, lParam);
|
|
}
|
|
//END ANNECY
|
|
CStatic::OnLButtonDown(nFlags, point);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void CTL_Editor_Static::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
CRect crClientRect;
|
|
GetClientRect(crClientRect);
|
|
|
|
if ( m_pri_td_p_fn_vGetColor != NULL )
|
|
m_pri_td_p_fn_vGetColor(this, m_pri_colBackGroundColor, m_pri_colTextColor);
|
|
|
|
//Fills the window's rect
|
|
dc.FillSolidRect(crClientRect, m_pri_colBackGroundColor);
|
|
|
|
//Displays the string
|
|
dc.SelectObject(GetFont());
|
|
dc.SetTextColor(m_pri_colTextColor);
|
|
dc.SetBkMode(TRANSPARENT);
|
|
|
|
UINT nFormat = DT_SINGLELINE | DT_VCENTER;
|
|
if ( (GetStyle() & SS_CENTER) != 0 )
|
|
nFormat |= DT_CENTER;
|
|
else
|
|
nFormat |= DT_LEFT;
|
|
|
|
crClientRect.left ++;
|
|
dc.DrawText(m_csTextToDisplay, crClientRect, nFormat);
|
|
|
|
// Do not call CStatic::OnPaint() for painting messages
|
|
}
|
|
|
|
//***************************************************************************
|
|
long CTL_Editor_Static::m_fn_lGetMinLength()
|
|
{
|
|
CClientDC dc(this);
|
|
CString csWindowText;
|
|
GetWindowText(csWindowText);
|
|
dc.SelectObject(GetFont());
|
|
|
|
return (dc.GetTextExtent(csWindowText).cx);
|
|
}
|
|
|
|
//**********************************************************************************
|
|
//For TUT registration
|
|
void CTL_Editor_Static::m_pub_fn_vRegisterWindowsControl(CString _csAdditionnalInfo)
|
|
{
|
|
#ifndef CTL_WITH_NO_TUT
|
|
m_pro_fn_vRegisterWindowsControl(_csAdditionnalInfo, TUT_e_Window, "Static", this);
|
|
#endif //CTL_WITH_NO_TUT
|
|
}
|
|
|