GrapichsByLeo/Histogram/Barra/Texto.mqh
2025-10-13 07:15:19 -05:00

62 lines
No EOL
1.8 KiB
MQL5

//+------------------------------------------------------------------+
//| Textro.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 HISTOGRAM_BARRA_TEXTO_BY_LEO_MQH
#define HISTOGRAM_BARRA_TEXTO_BY_LEO_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
enum ENUM_HISTOGRAM_TEXT_MODE
{
HISTOGRAM_TEXT_MODE_CENTER = TA_CENTER | TA_VCENTER, // Centro
HISTOGRAM_TEXT_MODE_LEFT_UPPER = TA_LEFT | TA_TOP, // Esquina izquierda superior
HISTOGRAM_TEXT_MODE_RIGHT_UPPER = TA_RIGHT | TA_TOP // Esquina derecha superior
};
//--- Etiqueta de cada barra
struct HistogramBarLabel
{
string value;
string font;
int x;
int y;
uint clr;
ENUM_HISTOGRAM_TEXT_MODE mode;
int font_size;
};
//---
typedef void(*HistogramFuncionCalcTextCordinates)(int, int, int, int, int&, int&);
namespace HistogramFuncTxtCalc
{
__forceinline void HFCTextCenter(int x1, int x2, int y1, int y2, int&x, int&y)
{
x = x1 + ((x2 - x1) >> 1);
y = y1 + ((y2 - y1) >> 1);
}
__forceinline void HFCTextLeftUpper(int x1, int x2, int y1, int y2, int&x, int&y)
{
x = x1;
y = y1;
}
__forceinline void HFCTextRightUpper(int x1, int x2, int y1, int y2, int&x, int&y)
{
x = x2;
y = y1;
}
}
//+------------------------------------------------------------------+
#endif