1
0
포크 0
원본 프로젝트 nique_372/GrapichsByLeo
ForkGrapichsByLeo/Histogram/EjeHist/Base.mqh
Nique_372 cccda5f811
2025-12-05 07:06:30 -05:00

106 lines
4.1 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 "..\\..\\General\\EjeLine\\Hor.mqh"
#include "..\\..\\General\\EjeLine\\Ver.mqh"
#include "..\\..\\General\\LineSim\\HorLine.mqh"
#include "..\\..\\General\\LineSim\\VerticalLine.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;
CCanvasHorLine* m_histogram_eje_arriba;
CCanvasVerLine* m_histogram_eje_derecha;
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, uint style, bool extendent_line) = 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
__forceinline 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; }
//--- 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;
if(CheckPointer(m_histogram_eje_arriba) == POINTER_DYNAMIC)
delete m_histogram_eje_arriba;
if(CheckPointer(m_histogram_eje_derecha) == POINTER_DYNAMIC)
delete m_histogram_eje_derecha;
}
//+------------------------------------------------------------------+
#endif
//+------------------------------------------------------------------+