52 lines
4.8 KiB
MQL5
52 lines
4.8 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| Interface.mqh |
|
|
//| Copyright 2024, Yuriy Bykov |
|
|
//| https://www.mql5.com/ru/users/antekov |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2022-2024, Yuriy Bykov"
|
|
#property link "https://www.mql5.com/ru/users/antekov"
|
|
#property version "1.01"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Базовый класс визуализации различных объектов |
|
|
//+------------------------------------------------------------------+
|
|
class CInterface {
|
|
protected:
|
|
static ulong s_magic; // Magic эксперта
|
|
bool m_isActive; // Интерфейс активен?
|
|
bool m_isChanged; // Есть ли изменения у объекта?
|
|
public:
|
|
CInterface(); // Конструктор
|
|
virtual void Activate();
|
|
virtual void Deactivate();
|
|
virtual void Redraw() = 0; // Отрисовка на графике изменённых объектов
|
|
virtual void Changed() { // Установка флага наличия изменений
|
|
m_isChanged = true;
|
|
}
|
|
|
|
virtual void ChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {}
|
|
};
|
|
|
|
ulong CInterface::s_magic = 0;
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Конструктор |
|
|
//+------------------------------------------------------------------+
|
|
CInterface::CInterface() :
|
|
m_isActive(!MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_VISUAL_MODE)),
|
|
m_isChanged(true) {}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
void CInterface::Activate() {
|
|
m_isActive = (!MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_VISUAL_MODE));
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
void CInterface::Deactivate() {
|
|
m_isActive = false;
|
|
}
|
|
//+------------------------------------------------------------------+
|