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