last works ...
This commit is contained in:
@@ -39,13 +39,13 @@ enum ENUM_XCHARTOBJECTS
|
||||
{
|
||||
//
|
||||
// Global ...
|
||||
X_BOX_OBJ = 7861,
|
||||
X_BAR_ARROW_OBJ = 7862,
|
||||
//
|
||||
X_SIGNAL_OBJ = 8860,
|
||||
X_OHCL_OBJ = 8863,
|
||||
X_RR_OBJ = 8864,
|
||||
X_PIVOT_OBJ = 8865,
|
||||
X_EMPTY_OBJ = 7860, // Empty
|
||||
X_BOX_OBJ = 7861, // XBox
|
||||
X_BAR_ARROW_OBJ = 7862, // XBarArrow
|
||||
X_SIGNAL_OBJ = 8860, // XSignal
|
||||
X_OHCL_OBJ = 8863, // XBar
|
||||
X_RR_OBJ = 8864, // XRR
|
||||
X_PIVOT_OBJ = 8865, // XPivot
|
||||
//
|
||||
// 9860 Custom Object ...
|
||||
};
|
||||
@@ -78,6 +78,12 @@ string ToString(ENUM_X_CHART_IDS value)
|
||||
return result;
|
||||
}
|
||||
|
||||
string ToXString(ENUM_XCHARTOBJECTS value)
|
||||
{
|
||||
//
|
||||
return EnumToString(value);
|
||||
}
|
||||
|
||||
struct XPOIStyle
|
||||
{
|
||||
//
|
||||
@@ -372,9 +378,26 @@ class XCBaseObject : public CChartObject
|
||||
*/
|
||||
void ObjName(string value)
|
||||
{
|
||||
//
|
||||
Name(value);
|
||||
mObjName = value;
|
||||
}
|
||||
|
||||
virtual string TypeString()
|
||||
{
|
||||
return ToXString(X_EMPTY_OBJ);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void) const
|
||||
{
|
||||
return ((int)X_EMPTY_OBJ);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
*/
|
||||
@@ -481,6 +504,38 @@ class XCBarArrowObject : public XCBaseObject
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
*/
|
||||
void virtual Destroy()
|
||||
{
|
||||
//
|
||||
mArrow.Detach();
|
||||
mArrow.Delete();
|
||||
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void)
|
||||
{
|
||||
return (int)X_BAR_ARROW_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_BAR_ARROW_OBJ);
|
||||
}
|
||||
|
||||
//
|
||||
// Setter(s) ...
|
||||
|
||||
@@ -687,6 +742,48 @@ class XCSignalObject : public XCBaseObject
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
*/
|
||||
void virtual Destroy()
|
||||
{
|
||||
//
|
||||
mTPTrend.Detach();
|
||||
mTPTrend.Delete();
|
||||
mSLTrend.Detach();
|
||||
mSLTrend.Delete();
|
||||
mEntryTrend.Detach();
|
||||
mEntryTrend.Delete();
|
||||
|
||||
//
|
||||
mTargetTrends.Clear();
|
||||
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void)
|
||||
{
|
||||
return (int)X_SIGNAL_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_SIGNAL_OBJ);
|
||||
}
|
||||
|
||||
//
|
||||
// Setter(s) ...
|
||||
|
||||
@@ -867,16 +964,6 @@ class XCSignalObject : public XCBaseObject
|
||||
mEntryTrend.Style(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_SIGNAL_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
@@ -950,6 +1037,24 @@ class XCRRObject : public XCSignalObject
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void)
|
||||
{
|
||||
return (int)X_RR_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_RR_OBJ);
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
@@ -1072,6 +1177,49 @@ class XCOHCLObject : public XCBaseObject
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
*/
|
||||
void virtual Destroy()
|
||||
{
|
||||
//
|
||||
mBodyRect.Detach();
|
||||
mBodyRect.Delete();
|
||||
|
||||
//
|
||||
mLowShadowRect.Detach();
|
||||
mLowShadowRect.Delete();
|
||||
|
||||
//
|
||||
mHighShadowRect.Detach();
|
||||
mHighShadowRect.Delete();
|
||||
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void)
|
||||
{
|
||||
return (int)X_OHCL_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_OHCL_OBJ);
|
||||
}
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
@@ -1244,19 +1392,6 @@ class XCOHCLObject : public XCBaseObject
|
||||
HighShadowFill(fill);
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_OHCL_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
@@ -1375,6 +1510,45 @@ class XCBoxObject : public XCBaseObject
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
*/
|
||||
void virtual Destroy()
|
||||
{
|
||||
//
|
||||
mAt.Detach();
|
||||
mAt.Delete();
|
||||
|
||||
//
|
||||
mRect.Detach();
|
||||
mRect.Delete();
|
||||
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual int Type(void)
|
||||
{
|
||||
return (int)X_BOX_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_BOX_OBJ);
|
||||
}
|
||||
|
||||
//
|
||||
// Getter(s) / Setter(s) ...
|
||||
|
||||
@@ -1430,19 +1604,6 @@ class XCBoxObject : public XCBaseObject
|
||||
mRect.Fill(value);
|
||||
}
|
||||
|
||||
//
|
||||
// Virtual ...
|
||||
|
||||
/**
|
||||
* Retrieve Object Type ...
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
{
|
||||
return X_BOX_OBJ;
|
||||
}
|
||||
|
||||
//
|
||||
private:
|
||||
//
|
||||
@@ -1685,10 +1846,24 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
//
|
||||
if (model.pivots[i].IsPeak())
|
||||
{
|
||||
//
|
||||
if (mPeaks == NULL)
|
||||
{
|
||||
mPeaks = new CArrayObj();
|
||||
}
|
||||
|
||||
//
|
||||
mPeaks.Add(iObj);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
if (mVales == NULL)
|
||||
{
|
||||
mVales = new CArrayObj();
|
||||
}
|
||||
|
||||
//
|
||||
mVales.Add(iObj);
|
||||
}
|
||||
}
|
||||
@@ -1723,9 +1898,17 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*
|
||||
* @return ( ENUM_XCHARTOBJECTS )
|
||||
*/
|
||||
virtual ENUM_XCHARTOBJECTS Type()
|
||||
virtual int Type(void)
|
||||
{
|
||||
return X_PIVOT_OBJ;
|
||||
return (int)X_PIVOT_OBJ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type as String ...
|
||||
**/
|
||||
string TypeString() override
|
||||
{
|
||||
return ToXString(X_PIVOT_OBJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1734,14 +1917,34 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
void virtual Destroy()
|
||||
{
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
DestroyObjects(mPeaks);
|
||||
DestroyObjects(mVales);
|
||||
|
||||
//
|
||||
DestroyObject(mUpper);
|
||||
DestroyObject(mLower);
|
||||
DestroyObject(mSupportBox);
|
||||
DestroyObject(mResistanceBox);
|
||||
|
||||
//
|
||||
delete mPeaks;
|
||||
delete mVales;
|
||||
delete mUpper;
|
||||
delete mLower;
|
||||
delete mSupportBox;
|
||||
delete mResistanceBox;
|
||||
|
||||
//
|
||||
ZeroMemory(mPeaks);
|
||||
ZeroMemory(mVales);
|
||||
ZeroMemory(mUpper);
|
||||
ZeroMemory(mLower);
|
||||
ZeroMemory(mSupportBox);
|
||||
ZeroMemory(mResistanceBox);
|
||||
|
||||
//
|
||||
Detach();
|
||||
Delete();
|
||||
}
|
||||
|
||||
//
|
||||
@@ -2050,6 +2253,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void PeaksWidth(int value)
|
||||
{
|
||||
//
|
||||
if (mPeaks == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Normalize ...
|
||||
value = NormalizeInt(value, 1);
|
||||
@@ -2081,6 +2290,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void PeaksColor(color value)
|
||||
{
|
||||
//
|
||||
if (mPeaks == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
int count = mPeaks.Total();
|
||||
@@ -2108,6 +2323,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void PeaksAnchor(ENUM_ARROW_ANCHOR value)
|
||||
{
|
||||
//
|
||||
if (mPeaks == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
int count = mPeaks.Total();
|
||||
@@ -2135,6 +2356,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void ValesWidth(int value)
|
||||
{
|
||||
//
|
||||
if (mVales == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Normalize ...
|
||||
value = NormalizeInt(value, 1);
|
||||
@@ -2166,6 +2393,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void ValesColor(color value)
|
||||
{
|
||||
//
|
||||
if (mVales == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
int count = mVales.Total();
|
||||
@@ -2193,6 +2426,12 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
*/
|
||||
void ValesAnchor(ENUM_ARROW_ANCHOR value)
|
||||
{
|
||||
//
|
||||
if (mVales == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
int count = mVales.Total();
|
||||
@@ -2216,8 +2455,8 @@ class XCPivotAnalysisObject : public XCBaseObject
|
||||
//
|
||||
private:
|
||||
//
|
||||
CArrayObj mPeaks;
|
||||
CArrayObj mVales;
|
||||
CArrayObj *mPeaks;
|
||||
CArrayObj *mVales;
|
||||
CChartObjectTrend *mUpper;
|
||||
CChartObjectTrend *mLower;
|
||||
XCBoxObject *mSupportBox;
|
||||
@@ -2331,6 +2570,215 @@ void DestroyObject(CChartObjectTrend *&object)
|
||||
ZeroMemory(object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Completely Destroy all Chart Objects ...
|
||||
*
|
||||
* @param objects: CArrayObj, pointer refrence Specified Data Source ...
|
||||
*/
|
||||
void DestroyObjects(CArrayObj *&objects)
|
||||
{
|
||||
//
|
||||
// Validate Exists ...
|
||||
if (objects == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Count Childs ...
|
||||
int count = objects.Total();
|
||||
if (!IsValidSize(count))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Destroy all Childs ...
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
//
|
||||
// Checking Types ...
|
||||
int iType = ((CChartObject *)objects.At(i)).Type();
|
||||
|
||||
//
|
||||
string iTypeStr = NULL;
|
||||
if (iType == X_EMPTY_OBJ)
|
||||
{
|
||||
//
|
||||
XCBaseObject *iObj = (XCBaseObject *)objects.At(i);
|
||||
iTypeStr = iObj.TypeString();
|
||||
|
||||
//
|
||||
if (iTypeStr == ToXString(X_BOX_OBJ))
|
||||
{
|
||||
iType = X_BOX_OBJ;
|
||||
}
|
||||
else if (iTypeStr == ToXString(X_BAR_ARROW_OBJ))
|
||||
{
|
||||
iType = X_BAR_ARROW_OBJ;
|
||||
}
|
||||
else if (iTypeStr == ToXString(X_SIGNAL_OBJ))
|
||||
{
|
||||
iType = X_SIGNAL_OBJ;
|
||||
}
|
||||
else if (iTypeStr == ToXString(X_OHCL_OBJ))
|
||||
{
|
||||
iType = X_OHCL_OBJ;
|
||||
}
|
||||
else if (iTypeStr == ToXString(X_RR_OBJ))
|
||||
{
|
||||
iType = X_RR_OBJ;
|
||||
}
|
||||
else if (iTypeStr == ToXString(X_PIVOT_OBJ))
|
||||
{
|
||||
iType = X_PIVOT_OBJ;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
string iName = ((CChartObject *)objects.At(i)).Name();
|
||||
if (!IsSpecifiedValid(iName))
|
||||
{
|
||||
iName = ((XCBaseObject *)objects.At(i)).ObjName();
|
||||
}
|
||||
|
||||
//
|
||||
switch (iType)
|
||||
{
|
||||
//
|
||||
case X_RR_OBJ: {
|
||||
//
|
||||
XCRRObject *iObj = (XCRRObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
case X_BOX_OBJ: {
|
||||
//
|
||||
XCBoxObject *iObj = (XCBoxObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
iObj.Detach();
|
||||
iObj.Delete();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
case X_OHCL_OBJ: {
|
||||
//
|
||||
XCOHCLObject *iObj = (XCOHCLObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
case X_PIVOT_OBJ: {
|
||||
//
|
||||
XCPivotAnalysisObject *iObj = (XCPivotAnalysisObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
case X_SIGNAL_OBJ: {
|
||||
//
|
||||
XCSignalObject *iObj = (XCSignalObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
case X_BAR_ARROW_OBJ: {
|
||||
//
|
||||
XCBarArrowObject *iObj = (XCBarArrowObject *)objects.At(i);
|
||||
iObj.Destroy();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
//
|
||||
// Default Object Types ...
|
||||
case OBJ_VLINE:
|
||||
case OBJ_HLINE:
|
||||
case OBJ_TREND:
|
||||
case OBJ_TRENDBYANGLE:
|
||||
case OBJ_CYCLES:
|
||||
case OBJ_ARROWED_LINE:
|
||||
case OBJ_CHANNEL:
|
||||
case OBJ_STDDEVCHANNEL:
|
||||
case OBJ_REGRESSION:
|
||||
case OBJ_PITCHFORK:
|
||||
case OBJ_GANNLINE:
|
||||
case OBJ_GANNFAN:
|
||||
case OBJ_GANNGRID:
|
||||
case OBJ_FIBO:
|
||||
case OBJ_FIBOTIMES:
|
||||
case OBJ_FIBOFAN:
|
||||
case OBJ_FIBOARC:
|
||||
case OBJ_FIBOCHANNEL:
|
||||
case OBJ_EXPANSION:
|
||||
case OBJ_ELLIOTWAVE5:
|
||||
case OBJ_ELLIOTWAVE3:
|
||||
case OBJ_RECTANGLE:
|
||||
case OBJ_TRIANGLE:
|
||||
case OBJ_ELLIPSE:
|
||||
case OBJ_ARROW_THUMB_UP:
|
||||
case OBJ_ARROW_THUMB_DOWN:
|
||||
case OBJ_ARROW_UP:
|
||||
case OBJ_ARROW_DOWN:
|
||||
case OBJ_ARROW_STOP:
|
||||
case OBJ_ARROW_CHECK:
|
||||
case OBJ_ARROW_LEFT_PRICE:
|
||||
case OBJ_ARROW_RIGHT_PRICE:
|
||||
case OBJ_ARROW_BUY:
|
||||
case OBJ_ARROW_SELL:
|
||||
case OBJ_ARROW:
|
||||
case OBJ_TEXT:
|
||||
case OBJ_LABEL:
|
||||
case OBJ_BUTTON:
|
||||
case OBJ_CHART:
|
||||
case OBJ_BITMAP:
|
||||
case OBJ_BITMAP_LABEL:
|
||||
case OBJ_EDIT:
|
||||
case OBJ_EVENT:
|
||||
case OBJ_RECTANGLE_LABEL: {
|
||||
//
|
||||
CChartObject *iObj = (CChartObject *)objects.At(i);
|
||||
|
||||
//
|
||||
iObj.Detach();
|
||||
iObj.Delete();
|
||||
|
||||
//
|
||||
delete iObj;
|
||||
ZeroMemory(iObj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
RemoveObjects(iName);
|
||||
}
|
||||
|
||||
//
|
||||
// Destroy itSelf ...
|
||||
objects.Clear();
|
||||
delete objects;
|
||||
ZeroMemory(objects);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove Drawn Objects from Chart ...
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user