📄 profile.cpp
字号:
#else
m_aColorRef[clrRise] = RGB(234,2,106);
m_aColorRef[clrFall] = RGB(72,138,94);
m_aColorRef[clrFallEntity] = RGB(72,138,94);
#endif
m_aColorRef[clrPlane] = RGB(0,0,0);
m_aColorRef[clrNewKLine] = RGB(247,223,156);
m_aColorRef[clrCW] = RGB(198,190,181);
m_aColorRef[clrDJ] = RGB(198,195,198);
m_aColorRef[clrTitle] = RGB(0,0,0);
m_aColorRef[clrText] = RGB(0,0,0);
m_aColorRef[clrLine1] = RGB(255,128,0);
m_aColorRef[clrLine2] = RGB(62,152,159);
m_aColorRef[clrLine3] = RGB(0,128,0);
m_aColorRef[clrLine4] = RGB(0,255,0);
m_aColorRef[clrLine5] = RGB(128,0,0);
m_aColorRef[clrLine6] = RGB(0,0,128);
}
void CColorClass::SetColorBaroque( )
{
m_strName = colorclass_baroque;
// set color
SetColorDefault( );
m_aColorRef[clrDefault] = NDCLR_DEFAULT;
m_aColorRef[clrWorkspBK] = RGB(0,83,123);
m_aColorRef[clrWorkspText] = RGB(71,193,252);
m_aColorRef[clrSimuBK] = RGB(0,83,123);
m_aColorRef[clrSimuText] = RGB(71,193,252);
m_aColorRef[clrSListBK] = RGB(0,83,123);
m_aColorRef[clrSListSelected]= RGB(160,193,199);
m_aColorRef[clrBaseBK] = RGB(0,83,123);
m_aColorRef[clrBaseText] = RGB(71,193,252);
m_aColorRef[clrGraphBK] = RGB(0,83,123);
m_aColorRef[clrBorder] = RGB(160,193,199);
#ifdef CLKLAN_ENGLISH_US
m_aColorRef[clrRise] = RGB(0,255,255);
m_aColorRef[clrFall] = RGB(255,157,191);
m_aColorRef[clrFallEntity] = RGB(255,157,191);
#else
m_aColorRef[clrRise] = RGB(255,157,191);
m_aColorRef[clrFall] = RGB(0,255,255);
m_aColorRef[clrFallEntity] = RGB(0,255,255);
#endif
m_aColorRef[clrPlane] = RGB(71,193,252);
m_aColorRef[clrNewKLine] = RGB(247,223,156);
m_aColorRef[clrCW] = RGB(198,190,181);
m_aColorRef[clrDJ] = RGB(198,195,198);
m_aColorRef[clrTitle] = RGB(255,255,0);
m_aColorRef[clrText] = RGB(71,193,252);
m_aColorRef[clrLine1] = RGB(255,215,74);
m_aColorRef[clrLine2] = RGB(255,255,255);
m_aColorRef[clrLine3] = RGB(0,128,0);
m_aColorRef[clrLine4] = RGB(0,255,0);
m_aColorRef[clrLine5] = RGB(0,0,160);
m_aColorRef[clrLine6] = RGB(0,0,128);
}
BOOL CColorClass::IsSysColorClass( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
CSPString strName;
strName = colorclass_standard;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
strName = colorclass_byzantinesque;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
strName = colorclass_gothic;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
strName = colorclass_baroque;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
return FALSE;
}
BOOL CColorClass::IsColorStandard( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
CSPString strName;
strName = colorclass_standard;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
return FALSE;
}
BOOL CColorClass::IsColorByzantinesque( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
CSPString strName;
strName = colorclass_byzantinesque;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
return FALSE;
}
BOOL CColorClass::IsColorGothic( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
CSPString strName;
strName = colorclass_gothic;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
return FALSE;
}
BOOL CColorClass::IsColorBaroque( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
CSPString strName;
strName = colorclass_baroque;
if( 0 == strName.Compare( lpszColorClassName ) )
return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// class CColorClassContainer
CColorClassContainer::CColorClassContainer( )
{
CColorClass cls;
cls.SetColorDefault();
Add( cls );
m_nSelectedColorClass = 0;
}
CColorClassContainer::CColorClassContainer( CColorClassContainer & src )
{
*this = src;
}
CColorClassContainer::~CColorClassContainer( )
{
RemoveAll( );
}
CColorClassContainer & CColorClassContainer::operator = ( CColorClassContainer & src )
{
m_nSelectedColorClass = src.m_nSelectedColorClass;
SetSize( src.GetSize() );
for( int i=0; i<src.GetSize(); i++ )
{
CColorClass cls = src.ElementAt(i);
SetAt( i, cls );
}
return *this;
}
void CColorClassContainer::Serialize( CSPArchive & ar )
{
if( ar.IsStoring() )
{
ar << m_nSelectedColorClass;
ar << GetSize();
for( int i=0; i<GetSize(); i++ )
ElementAt(i).Serialize( ar );
}
else
{
ar >> m_nSelectedColorClass;
int size;
ar >> size;
SetSize( size );
for( int i=0; i<size; i++ )
{
CColorClass element;
element.Serialize( ar );
SetAt( i, element );
}
}
}
int CColorClassContainer::AddColorClass( CColorClass & newColorClass )
{
if( 0 == newColorClass.GetName().GetLength() )
{
SP_ASSERT( FALSE );
return -1;
}
for( int i=0; i<GetSize(); i++ )
{
CColorClass & cls = ElementAt(i);
if( 0 == newColorClass.GetName().CompareNoCase( cls.GetName() ) )
return -1;
}
return Add( newColorClass );
}
BOOL CColorClassContainer::RemoveColorClass( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
for( int i=0; i<GetSize(); i++ )
{
CColorClass & cls = ElementAt(i);
if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
{
RemoveAt( i );
return TRUE;
}
}
return FALSE;
}
BOOL CColorClassContainer::SetColorClass( CColorClass & clrcls )
{
if( clrcls.GetName().GetLength() <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
for( int i=0; i<GetSize(); i++ )
{
CColorClass & cls = ElementAt(i);
if( 0 == cls.GetName().CompareNoCase( clrcls.GetName() ) )
{
cls = clrcls;
return TRUE;
}
}
return (-1 != AddColorClass( clrcls ) );
}
BOOL CColorClassContainer::GetColorClass( LPCTSTR lpszColorClassName, CColorClass & clrcls )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
for( int i=0; i<GetSize(); i++ )
{
CColorClass & cls = ElementAt(i);
if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
{
clrcls = cls;
return TRUE;
}
}
SP_ASSERT( FALSE );
return FALSE;
}
COLORREF CColorClassContainer::GetColor( int nColorIndex )
{
SP_ASSERT( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() );
if( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() )
return ElementAt( m_nSelectedColorClass ).GetColor( nColorIndex );
if( GetSize() > 0 )
return ElementAt( 0 ).GetColor( nColorIndex );
SP_ASSERT( FALSE );
SetContainerDefault( );
if( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() )
return ElementAt( m_nSelectedColorClass ).GetColor( nColorIndex );
SP_ASSERT( FALSE );
return NDCLR_DEFAULT;
}
void CColorClassContainer::SetContainerDefault( )
{
RemoveAll( );
m_nSelectedColorClass = 0;
CColorClass cls;
cls.SetColorStandard( );
Add( cls );
cls.SetColorByzantinesque( );
Add( cls );
cls.SetColorGothic( );
Add( cls );
cls.SetColorBaroque( );
Add( cls );
}
BOOL CColorClassContainer::SelectColorClass( LPCTSTR lpszColorClassName )
{
if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
{
SP_ASSERT( FALSE );
return FALSE;
}
for( int i=0; i<GetSize(); i++ )
{
CColorClass & cls = ElementAt(i);
if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
{
m_nSelectedColorClass = i;
return TRUE;
}
}
SP_ASSERT( FALSE );
return FALSE;
}
int CColorClassContainer::GetSelected( )
{
return m_nSelectedColorClass;
}
//////////////////////////////////////////////////////////////////////
// CStProfile
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CStProfile::CStProfile()
{
m_nAccessType = 0; // INTERNET_OPEN_TYPE_PRECONFIG
m_nProxyType = 3; // CProxySocket::TypeHTTP
m_nProxyPort = 80; // INTERNET_DEFAULT_HTTP_PORT
m_nAutoResumeDRLimit = 11;
m_nDiffDays = -1;
m_nDiffPercentDays = -1;
m_nScopeDays = -1;
m_nRatioChangeHandDays = -1;
m_nRatioVolumeDays = -1;
m_nRSDays = -1;
m_nYieldAverageDays = -1;
m_nInfoCurrentServer = 0;
m_nGraphKFormat = CKData::formatOriginal;
m_nGraphMaindataType = CKData::mdtypeClose;
m_dwAutoResumeDRBegin = STKLIB_AUTORESUMEDR_DATEBEGIN;
m_nAutoResumeDRLimit = STKLIB_AUTORESUMEDR_LIMIT;
m_bAutoSaveKDataMin = TRUE;
m_bNotifyIcon = FALSE;
m_nCacheDays = STKLIB_DAYS_CACHE;
m_nLocalDataVersion = 20050630;
// SListView Font And BaseView Font
memset( &m_lfSListView, 0, sizeof(m_lfSListView) );
memset( &m_lfBaseView, 0, sizeof(m_lfBaseView) );
}
CStProfile::~CStProfile()
{
}
void CStProfile::StoreProfile( )
{
Store( GetWorkDirectory() + "profile.set" );
}
void CStProfile::LoadProfile( )
{
// Color
m_ColorClassContainer.SetContainerDefault( );
Load( GetWorkDirectory() + "profile.set" );
}
#define SF_MAX_PROFILE_LENGTH 0x00080000
char szProfileMagic[] = "MGCDPF";
DWORD dwProfileVersion = 0x20050630;
BOOL CStProfile::Load( LPCTSTR lpszFileName )
{
if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
return FALSE;
CSPFile file;
if( file.Open( lpszFileName, CSPFile::modeRead ) )
{
DWORD dwLen = file.GetLength();
if( 0 == dwLen || dwLen > SF_MAX_PROFILE_LENGTH )
{
file.Close();
return FALSE;
}
CSPArchive ar( &file, CSPArchive::load );
FileSerialize( ar );
ar.Close();
file.Close();
return TRUE;
}
return FALSE;
}
BOOL CStProfile::Store( LPCTSTR lpszFileName )
{
if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
return FALSE;
CSPFile file;
if( file.Open( lpszFileName, CSPFile::modeCreate | CSPFile::modeWrite ) )
{
CSPArchive ar( &file, CSPArchive::store );
FileSerialize( ar );
ar.Close();
file.Close();
return TRUE;
}
return FALSE;
}
void CStProfile::FileSerialize( CSPArchive &ar )
{
if( ar.IsStoring() )
{
ar.WriteString( szProfileMagic );
ar << dwProfileVersion;
ar << m_strDefaultServer;
m_astrDownloadServers.Serialize( ar );
ar << m_nAccessType;
ar << m_strProxyAddress;
ar << m_nProxyPort;
// Window Placement
ar << m_strWindowPlacement;
// Data path
ar << m_strQianlongPath;
// Color
m_ColorClassContainer.Serialize( ar );
// Last Opened Strategies
m_astrLastOpenedStrategy.Serialize( ar );
ar << m_strLastActiveStrategy;
// Net Info
ar << m_bNetInfoShow;
ar << m_strNetInfo;
ar << m_strNetInfourl;
ar << m_strLatestver;
// AutoResumeDRLimit
ar << m_nAutoResumeDRLimit;
// SList columns
m_anSListColumnsShow.Serialize( ar );
m_anSListColumnsOrder.Serialize( ar );
m_aSListColumnsUser.FileSerialize( ar );
ar << m_nDiffDays;
ar << m_nDiffPercentDays;
ar << m_nScopeDays;
ar << m_nRatioChangeHandDays;
ar << m_nRatioVolumeDays;
ar << m_nRSDays;
ar << m_nYieldAverageDays;
// Info View
ar << m_nInfoCurrentServer;
// Graph Techs
m_anGraphTechsShow.Serialize( ar );
m_anGraphTechsKLine.Serialize( ar );
m_anGraphTechsAll.Serialize( ar );
ar << m_nGraphKFormat;
ar << m_nGraphMaindataType;
ar << m_dwAutoResumeDRBegin;
ar.Write( &m_lfSListView, sizeof(m_lfSListView) );
ar.Write( &m_lfBaseView, sizeof(m_lfBaseView) );
m_techparameters.Serialize( ar );
m_aHTMLURLToExplorer.Serialize( ar );
m_astrProvider.Serialize( ar );
m_astrDriver.Serialize( ar );
ar << m_strTrader;
ar << m_bAutoSaveKDataMin;
ar << m_nProxyType;
ar << m_strProxyUser;
ar << m_strProxyPasswd;
ar << m_bNotifyIcon;
ar << m_nCacheDays;
m_aAlarmCond.Serialize( ar );
ar << m_nLocalDataVersion;
}
else
{
TCHAR buffer[64];
memset( buffer, 0, sizeof(buffer) );
ar.ReadString( buffer, strlen(szProfileMagic) );
if( 0 != strncmp( szProfileMagic, buffer, strlen(szProfileMagic) ) )
return;
ar >> m_dwFileVersion;
if( m_dwFileVersion > dwProfileVersion )
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -