96 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
//+------------------------------------------------------------------+
 | 
						|
//|                                                         Main.mqh |
 | 
						|
//|                                  Copyright 2025, Niquel Mendoza. |
 | 
						|
//|                     https://www.mql5.com/es/users/nique_372/news |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
#property copyright "Copyright 2025, Niquel Mendoza."
 | 
						|
#property link      "https://www.mql5.com/es/users/nique_372/news"
 | 
						|
#property strict
 | 
						|
 | 
						|
 | 
						|
#ifndef GRAPHICS_HISTOGRAM_EJES_HIST_BASE_MQH_BY_LEO
 | 
						|
#define GRAPHICS_HISTOGRAM_EJES_HIST_BASE_MQH_BY_LEO
 | 
						|
 | 
						|
#include "..\\Eje\\Hor.mqh"
 | 
						|
#include "..\\Eje\\Ver.mqh"
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
//|                                                                  |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
#define HISTOGRAM_EJE_BASE_FLAG_INIT 1
 | 
						|
#define HISTOGRAM_EJE_BASE_FLAG_CREATE_SECTIONS 2
 | 
						|
 | 
						|
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
//|                                                                  |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
class CHistogramEje
 | 
						|
 {
 | 
						|
protected:
 | 
						|
  CCanvasCustom*     m_canvas;
 | 
						|
  bool               m_init;
 | 
						|
  int                m_mode_line;
 | 
						|
  uint               m_clr_clean;
 | 
						|
  int                m_x1;
 | 
						|
  int                m_y1;
 | 
						|
  int                m_x2;
 | 
						|
  int                m_y2;
 | 
						|
 | 
						|
  //--- Eje 1
 | 
						|
  CHistogramEjeLine* m_histogram_eje;
 | 
						|
 | 
						|
  //--- Eje2
 | 
						|
  CTextCanvas*       m_eje_2_text;
 | 
						|
  int                m_eje_2_text_gap;
 | 
						|
 | 
						|
  HistogramEjeLineBasic  m_histogram_eje_2;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
public:
 | 
						|
                     CHistogramEje(void);
 | 
						|
                    ~CHistogramEje(void);
 | 
						|
 | 
						|
  //---
 | 
						|
  virtual void       Init(CCanvasCustom* c, int x1, int x2, int y1, int y2, int mode, uint clr_line_eje_simple, uint clr_line_eje_fij, uint clr_clean) = 0;
 | 
						|
  virtual void       CreateTituloEje2(int gap_eje, const string& txt, uint clr, int fontsize = 0, string font = NULL, uint flagtext = UINT_MAX) = 0;
 | 
						|
 | 
						|
  //--- Puntero de eje complejo
 | 
						|
  CHistogramEjeLine* HistogramLinePointerGet() { return m_histogram_eje; }
 | 
						|
 | 
						|
  //--- SImple eje
 | 
						|
  //- Color
 | 
						|
  virtual void       EjeSimpleColor(uint new_value, bool redraw = false) = 0;
 | 
						|
  __forceinline uint EjeSimpleColor() const {  return m_histogram_eje_2.clr; }
 | 
						|
 | 
						|
  //- Ancho
 | 
						|
  virtual void       EjeSimpleSize(uint new_value, bool redraw = false) = 0;
 | 
						|
  virtual __forceinline uint EjeSimpleSize() const  = 0;
 | 
						|
 | 
						|
  //--- Cordenadas
 | 
						|
  virtual void       ChangeCordinates(int x1, int x2, int y1, int y2, bool redraw = false) = 0;
 | 
						|
  virtual void       ChangeAnclaje2(int x2, int y2, bool redraw = false) = 0;
 | 
						|
  virtual void       ChangeAnclaje1(int x1, int y1, bool redraw = false) = 0;
 | 
						|
 };
 | 
						|
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
//|                                                                  |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
CHistogramEje::CHistogramEje(void)
 | 
						|
  : m_histogram_eje(NULL), m_init(false), m_canvas(NULL), m_eje_2_text(NULL)
 | 
						|
 {
 | 
						|
 | 
						|
 }
 | 
						|
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
//|                                                                  |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
CHistogramEje::~CHistogramEje()
 | 
						|
 {
 | 
						|
  if(CheckPointer(m_histogram_eje) == POINTER_DYNAMIC)
 | 
						|
    delete m_histogram_eje;
 | 
						|
  if(CheckPointer(m_eje_2_text) == POINTER_DYNAMIC)
 | 
						|
    delete m_eje_2_text;
 | 
						|
 }
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
#endif
 | 
						|
//+------------------------------------------------------------------+
 |