EA-Setka-2/Libs/MQL5Trace/View/View.mqh
super.admin a4b861dd93 convert
2025-05-30 14:50:44 +02:00

59 lines
2.3 KiB
MQL5

//+------------------------------------------------------------------+
//| View |
//| Copyright 2006-2011, www.FXmaster.de |
//| www.FXmaster.de |
//+------------------------------------------------------------------+
#property copyright "Copyright 2006-2011, www.FXmaster.de"
#property link "www.FXmaster.de"
#property version "1.00"
#include "..\Lib\GraphLib.mqh"
//------------------------------------------------------------------ CView
class CView
{
//--- базовые функции
public:
CView() { }; // конструктор
~CView() { }; // деструктор
virtual void Create(long chart, string name, int wnd, color clr, color bgclr, color selclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Arial");
//--- функции обработки состояния
public:
virtual int OnClick(string name) { return(0); }; // обработка события клика на объекте
//--- парметры отображения
public:
int m_x, m_y; // координаты верхнего левого угла окна
int m_x0, m_y0; // координаты начала отсчета
int m_dx, m_dy; // размер окна
color m_clr, m_bgclr, m_selclr; // цвет рамки, фона, цвета выделения
long m_chart; // ID чарта
int m_wnd; // номер подокна чарта
string m_name; // имя объекта
int m_corn; // угол привязки
string m_font; // имя шрифта
int m_fontsize; // размер шрифта
//--- функции отображения
public:
virtual void Draw() {}; // обновить вид объекта и дочерних объектов
virtual void DeleteView() {}; // удалить вид объекта и дочерних объектов
bool IsOpenView();
};
//------------------------------------------------------------------ Create
void CView::Create(long achart, string name, int wnd, color clr, color bgclr, color selclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Arial")
{
m_chart=achart; m_name=name; m_wnd=wnd;
m_clr=clr; m_bgclr=bgclr; m_selclr=selclr;
m_x=x; m_y=y; m_dx=dx; m_dy=dy; m_corn=corn;
m_fontsize=fontsize; m_font=font;
m_x0=0; m_y0=0; // координаты начала отсчета
}
//------------------------------------------------------------------ IsOpenView
bool CView::IsOpenView()
{
long first=ChartFirst(); long next=ChartNext(first);
while (first!=next && next>0) { if (m_chart==next) return(true); next=ChartNext(next); }
return(false);
}