bifurqué depuis nique_372/AiDataTaskRuner
140 lignes
4,9 Kio
MQL5
140 lignes
4,9 Kio
MQL5
//+------------------------------------------------------------------+
|
|
//| AboutTab.mqh |
|
|
//| Copyright 2025, Niquel Mendoza. |
|
|
//| https://www.mql5.com/es/users/nique_372 |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2025, Niquel Mendoza."
|
|
#property link "https://www.mql5.com/es/users/nique_372"
|
|
#property strict
|
|
|
|
#ifndef AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH
|
|
#define AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#include "..\\Defines.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
class CTaskRunerAiTabAbout : public CTaskRunnerBaseTab
|
|
{
|
|
private:
|
|
CTextLabel m_label_titulo;
|
|
CTextBox m_label_text;
|
|
|
|
public:
|
|
CTaskRunerAiTabAbout(void) : CTaskRunnerBaseTab("CTaskRunerAiTabAbout") {}
|
|
~CTaskRunerAiTabAbout(void) {}
|
|
|
|
//---
|
|
void OnLenguajeChange() override final;
|
|
|
|
//---
|
|
bool Create(CWndCreate* p, CWindow& main_window, int top_gap, int left_gap, int right_gap, int bottom_gap);
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
bool CTaskRunerAiTabAbout::Create(CWndCreate *p, CWindow &main_window, int top_gap, int left_gap, int right_gap, int bottom_gap)
|
|
{
|
|
//---
|
|
int x = left_gap + 5;
|
|
int y = top_gap + 5;
|
|
|
|
//---
|
|
m_label_titulo.BackColor(AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED);
|
|
m_label_titulo.FontSize(14);
|
|
m_label_titulo.Font("Arial");
|
|
m_label_titulo.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY);
|
|
if(!p.CreateTextLabel(m_label_titulo, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_titulo)], main_window, 0, m_base_tab, m_base_tab_idx, x + 4, y, 200))
|
|
{
|
|
AIDATATASKRUNER_ERROR_CREATION(m_label_titulo);
|
|
return false;
|
|
}
|
|
y += 25;
|
|
|
|
|
|
//--- TextBox
|
|
m_label_text.MainPointer(main_window);
|
|
m_label_text.FontSize(10);
|
|
m_label_text.Font("Arial");
|
|
m_label_text.SelectedBackColor(clrAquamarine);
|
|
m_label_text.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
|
m_label_text.MultiLineMode(true);
|
|
m_label_text.WordWrapMode(false);
|
|
m_label_text.ReadOnlyMode(true);
|
|
m_label_text.AutoXResizeMode(true);
|
|
m_label_text.AutoXResizeRightOffset(right_gap + 10);
|
|
m_label_text.AutoYResizeMode(true);
|
|
m_label_text.AutoYResizeBottomOffset(bottom_gap + 10);
|
|
m_label_text.SelectedTextColor(C'61,142,240');
|
|
m_label_text.BackColor(AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED);
|
|
m_label_text.BackColorHover(AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED);
|
|
m_label_text.BackColorPressed(AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED);
|
|
m_base_tab.AddToElementsArray(m_base_tab_idx, m_label_text);
|
|
|
|
//--- Cargar texto por defecto
|
|
//
|
|
string arr[3] =
|
|
{
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_0"], // ""
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_1"], // "",
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_2"] // ""
|
|
};
|
|
//
|
|
m_label_text.ClearTextBox();
|
|
int size = ArraySize(arr);
|
|
for(int i = 0; i < size; i++)
|
|
{
|
|
if(i == 0)
|
|
m_label_text.AddText(0, arr[i]);
|
|
else
|
|
m_label_text.AddLine(arr[i]);
|
|
}
|
|
|
|
//---
|
|
if(!m_label_text.CreateTextBox(x, y))
|
|
return false;
|
|
|
|
p.AddToElementsArray(0, m_label_text);
|
|
//---
|
|
return true;
|
|
}
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
void CTaskRunerAiTabAbout::OnLenguajeChange(void)
|
|
{
|
|
// redraw solo si Primero la tab actul (a la que perntencemos es igual a al seleccionada)
|
|
// Segundo el base tab es visible (esto es improtante dado que por jeemplo si es un subtab puede uqe no lo este)
|
|
const bool redraw = m_base_tab.SelectedTab() == m_base_tab_idx && m_base_tab.IsVisible();
|
|
|
|
// update label
|
|
m_label_titulo.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_titulo)]);
|
|
m_label_titulo.Update(redraw);
|
|
|
|
// update txt box
|
|
string arr[3] =
|
|
{
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_0"], // ""
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_1"], // "",
|
|
m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_text) + "_2"] // ""
|
|
};
|
|
m_label_text.ClearTextBox();
|
|
int size = ArraySize(arr);
|
|
for(int i = 0; i < size; i++)
|
|
{
|
|
if(i == 0)
|
|
m_label_text.AddText(0, arr[i]);
|
|
else
|
|
m_label_text.AddLine(arr[i]);
|
|
}
|
|
m_label_text.Update(true);
|
|
}
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
#endif // AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH
|