GrapichsByLeo/Histogram/EjeHist/Base.mqh
2025-10-14 14:25:54 -05:00

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
//+------------------------------------------------------------------+