forked from nique_372/GrapichsByLeo
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
|
|
//+------------------------------------------------------------------+
|