| //+------------------------------------------------------------------+
|
| //| Base.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 GRAPICHSBYLEO_GENERAL_BASE_MQH
|
| #define GRAPICHSBYLEO_GENERAL_BASE_MQH
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| #include "..\\Canvas.mqh"
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| class CCanvasLine
|
| {
|
| protected:
|
| //---
|
| int m_ci;
|
| int m_c1;
|
| int m_ce;
|
| int m_c2;
|
| uint m_clr;
|
| uint m_clr_clean;
|
| CCanvasCustom* m_canvas;
|
|
|
| public:
|
| CCanvasLine(void) {}
|
| ~CCanvasLine(void) {}
|
|
|
| //---
|
| virtual void CleanPx() = 0;
|
| virtual void Draw() = 0;
|
|
|
| //--- Getters y setters
|
| // Ci
|
| __forceinline int Ci() const { return m_ci; }
|
| void Ci(int new_value);
|
| void CiTodo(int new_value);
|
|
|
| // C1
|
| __forceinline int C1() const { return m_c1; }
|
| virtual void C1(int new_value) = 0;
|
| void C1Todo(int new_value);
|
|
|
| // Ce
|
| __forceinline int Ce() const { return m_ce; }
|
| virtual void Ce(int new_value);
|
|
|
| // C2
|
| __forceinline int C2() const { return m_c2; }
|
| virtual void C2(int new_value) = 0;
|
|
|
| // Color
|
| __forceinline uint Color() const { return m_clr; }
|
| void Color(uint new_value);
|
|
|
| // Size
|
| __forceinline int Ancho() const { return (m_c2 - m_c1);}
|
| void Ancho(int new_value) { C2((m_c1 + new_value)); }
|
|
|
| // Color de limpieza
|
| __forceinline uint CleanColor() const { return m_clr_clean; }
|
| void CleanColor(uint new_value) { m_clr_clean = new_value; }
|
|
|
| //---
|
| void ChangeCordinatesAnc1(int ci, int c1);
|
| void ChangeCordinatesAnc2(int ce, int c2);
|
| void ChangeCordinates(int ci, int c1, int c2);
|
| void ChangeCordinatesAll(int ci, int c1, int ce, int c2);
|
| };
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::Ce(int new_value)
|
| {
|
| CleanPx();
|
| m_ce = new_value;
|
| Draw();
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::Ci(int new_value)
|
| {
|
| CleanPx();
|
| m_ci = new_value;
|
| Draw();
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::C1Todo(int new_value)
|
| {
|
| int new_c2 = m_c1 + new_value;
|
| C1(new_value);
|
| C2(new_c2);
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::CiTodo(int new_value)
|
| {
|
| int new_c2 = m_c1 + new_value;
|
| C1(new_value);
|
| C2(new_c2);
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::Color(uint new_value)
|
| {
|
| CleanPx();
|
| m_clr = new_value;
|
| Draw();
|
| }
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::ChangeCordinates(int ci, int c1, int c2)
|
| {
|
| CleanPx();
|
| m_ci = ci;
|
| m_c1 = c1;
|
| m_c2 = c2;
|
| Draw();
|
| }
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::ChangeCordinatesAnc1(int ci, int c1)
|
| {
|
| CleanPx();
|
| m_ci = ci;
|
| m_c1 = c1;
|
| Draw();
|
| }
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::ChangeCordinatesAnc2(int ce, int c2)
|
| {
|
| CleanPx();
|
| m_ce = ce;
|
| m_c2 = c2;
|
| Draw();
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| void CCanvasLine::ChangeCordinatesAll(int ci, int c1, int ce, int c2)
|
| {
|
| CleanPx();
|
| m_ci = ci;
|
| m_c1 = c1;
|
| m_ce = ce;
|
| m_c2 = c2;
|
| Draw();
|
| }
|
|
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| class CCanvasLineSimpleBase : public CCanvasLine
|
| {
|
| public:
|
| CCanvasLineSimpleBase(int ci, int c1, int ce, int c2, uint clr, uint clr_clean, CCanvasCustom* c);
|
| ~CCanvasLineSimpleBase(void) {}
|
| };
|
|
|
| //+------------------------------------------------------------------+
|
| CCanvasLineSimpleBase::CCanvasLineSimpleBase(int ci, int c1, int ce, int c2, uint clr, uint clr_clean, CCanvasCustom *c)
|
| {
|
| //---
|
| m_ci = ci;
|
| m_c1 = c1;
|
| m_ce = ce;
|
| m_c2 = c2;
|
| m_clr = clr;
|
| m_clr_clean = clr_clean;
|
| m_canvas = c;
|
| }
|
|
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| class CCanvasLineAA : public CCanvasLineSimpleBase
|
| {
|
| protected:
|
| uint m_style;
|
|
|
| public:
|
| CCanvasLineAA(int ci, int c1, int ce, int c2, uint clr, uint clr_clean, CCanvasCustom* c, uint style)
|
| : CCanvasLineSimpleBase(ci, c1, ce, c2, clr, clr_clean, c), m_style(style) {}
|
| ~CCanvasLineAA(void) {}
|
|
|
| //---
|
| // Estilo
|
| __forceinline uint Style() const { return m_style; }
|
| void Style(uint new_value);
|
| };
|
|
|
| //+------------------------------------------------------------------+
|
| void CCanvasLineAA::Style(uint new_value)
|
| {
|
| CleanPx();
|
| m_style = new_value;
|
| Draw();
|
| }
|
|
|
| //+------------------------------------------------------------------+
|
| //| |
|
| //+------------------------------------------------------------------+
|
| class CCanvasLineAASimple : public CCanvasLineAA
|
| {
|
| public:
|
| CCanvasLineAASimple(int ci, int c1, int ce, int c2, uint clr, uint clr_clean, CCanvasCustom* c, uint style);
|
| ~CCanvasLineAASimple(void) {}
|
| };
|
|
|
| //+------------------------------------------------------------------+
|
| CCanvasLineAASimple::CCanvasLineAASimple(int ci, int c1, int ce, int c2, uint clr, uint clr_clean, CCanvasCustom* c, uint style)
|
| : CCanvasLineAA(ci, c1, c2, c2, clr, clr_clean, c, style)
|
| {
|
| }
|
|
|
|
|
|
|
| //+------------------------------------------------------------------+
|
| #endif
|
| //+------------------------------------------------------------------+
|