Adwizard/Base/Interface.mqh

52 lines
2.5 KiB
MQL5
Raw Permalink Normal View History

2025-09-19 13:47:10 +03:00
//+------------------------------------------------------------------+
//| 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;
}
//+------------------------------------------------------------------+