forked from antekov/Adwizard
		
	
		
			
				
	
	
		
			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;
 | 
						|
}
 | 
						|
//+------------------------------------------------------------------+
 |