EasyAndFastMod/Controls/SeparateLine.mqh

123 lines
9.8 KiB
MQL5
Raw Permalink Normal View History

2026-01-15 07:23:17 -05:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| SeparateLine.mqh |
//| Copyright 2015, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#include "..\Element.mqh"
//+------------------------------------------------------------------+
//| ;0AA 4;O A>740=8O @0745;8B5;L=>9 ;8=88 |
//+------------------------------------------------------------------+
class CSeparateLine : public CElement
{
private:
//--- !2>9AB20
ENUM_TYPE_SEP_LINE m_type_sep_line;
color m_dark_color;
color m_light_color;
//---
public:
CSeparateLine(void);
~CSeparateLine(void);
//--- !>740=85 @0745;8B5;L=>9 ;8=88
bool CreateSeparateLine(const int x_gap,const int y_gap,const int x_size,const int y_size);
//---
private:
//--- !>740QB E>;AB 4;O @8A>20=8O @0745;8B5;L=>9 ;8=88
bool CreateSepLine(void);
//---
public:
//--- (1) "8? ;8=88, (2) F25B0 ;8=88
void TypeSepLine(const ENUM_TYPE_SEP_LINE type) { m_type_sep_line=type; }
void DarkColor(const color clr) { m_dark_color=clr; }
void LightColor(const color clr) { m_light_color=clr; }
//---
public:
//--- 8AC5B M;5<5=B
virtual void Draw(void);
};
//+------------------------------------------------------------------+
//| Constructor |
//+------------------------------------------------------------------+
CSeparateLine::CSeparateLine(void) : m_type_sep_line(H_SEP_LINE),
m_dark_color(C'160,160,160'),
m_light_color(clrWhite)
{
//--- !>E@0=8< 8<O :;0AA0 M;5<5=B0 2 107>2>< :;0AA5
CElementBase::ClassName(CLASS_NAME);
}
//+------------------------------------------------------------------+
//| Destructor |
//+------------------------------------------------------------------+
CSeparateLine::~CSeparateLine(void)
{
}
//+------------------------------------------------------------------+
//| !>740QB @0745;8B5;L=CN ;8=8N |
//+------------------------------------------------------------------+
bool CSeparateLine::CreateSeparateLine(const int x_gap,const int y_gap,const int x_size,const int y_size)
{
//--- K9B8, 5A;8 =5B C:070B5;O =0 3;02=K9 M;5<5=B
if(!CElement::CheckMainPointer())
return(false);
//--- =8F80;870F8O A2>9AB2
m_x =CElement::CalculateX(x_gap);
m_y =CElement::CalculateY(y_gap);
m_x_size =x_size;
m_y_size =y_size;
//--- BABC?K >B :@09=59 B>G:8
CElementBase::XGap(x_gap);
CElementBase::YGap(y_gap);
//--- !>740=85 M;5<5=B0
if(!CreateSepLine())
return(false);
//---
return(true);
}
//+------------------------------------------------------------------+
//| !>740QB E>;AB 4;O @8A>20=8O @0745;8B5;L=>9 ;8=88 |
//+------------------------------------------------------------------+
bool CSeparateLine::CreateSepLine(void)
{
//--- $>@<8@>20=85 8<5=8 >1J5:B0
string name=CElementBase::ElementName("separate_line");
//--- !>740=85 >1J5:B0
if(!CElement::CreateCanvas(name,m_x,m_y,m_x_size,m_y_size))
return(false);
//---
return(true);
}
//+------------------------------------------------------------------+
//| 8AC5B M;5<5=B |
//+------------------------------------------------------------------+
void CSeparateLine::Draw(void)
{
//--- >>@48=0BK 4;O ;8=89
int x1=0,x2=0,y1=0,y2=0;
//--- 07<5@K E>;AB0
int x_size =(int)::ObjectGetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_XSIZE)-1;
int y_size =(int)::ObjectGetInteger(m_chart_id,m_canvas.ChartObjectName(),OBJPROP_YSIZE)-1;
//--- G8AB8BL E>;AB
m_canvas.Erase(::ColorToARGB(clrNONE,0));
//--- A;8 ;8=8O 3>@87>=B0;L=0O
if(m_type_sep_line==H_SEP_LINE)
{
//--- !25@EC BQ<=0O ;8=8O
x1=0; y1=0; x2=x_size; y2=0;
m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(m_dark_color));
//--- !=87C A25B;0O ;8=8O
x1=0; x2=x_size; y1=y_size; y2=y_size;
m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(m_light_color));
}
//--- A;8 ;8=8O 25@B8:0;L=0O
else
{
//--- !;520 BQ<=0O ;8=8O
x1=0; x2=0; y1=0; y2=y_size;
m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(m_dark_color));
//--- !?@020 A25B;0O ;8=8O
x1=x_size; y1=0; x2=x_size; y2=y_size;
m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(m_light_color));
}
}
//+------------------------------------------------------------------+