AiDataTaskRuner/UI/About/AboutTab.mqh

140 行
4.9 KiB
MQL5
Raw パーマリンク 通常表示 履歴

2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
//| 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
2026-02-25 11:10:09 -05:00
#ifndef AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH
#define AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include "..\\Defines.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-13 11:50:06 -05:00
class CTaskRunerAiTabAbout : public CTaskRunnerBaseTab
2026-02-24 10:16:05 -05:00
{
private:
CTextLabel m_label_titulo;
2026-02-25 11:10:09 -05:00
CTextBox m_label_text;
2026-02-24 10:16:05 -05:00
public:
2026-03-13 11:50:06 -05:00
CTaskRunerAiTabAbout(void) : CTaskRunnerBaseTab("CTaskRunerAiTabAbout") {}
2026-02-24 10:16:05 -05:00
~CTaskRunerAiTabAbout(void) {}
//---
2026-03-13 15:20:27 -05:00
void OnLenguajeChange() override final;
//---
bool Create(CWndCreate* p, CWindow& main_window, int top_gap, int left_gap, int right_gap, int bottom_gap);
2026-02-24 10:16:05 -05:00
};
//+------------------------------------------------------------------+
2026-03-13 15:20:27 -05:00
bool CTaskRunerAiTabAbout::Create(CWndCreate *p, CWindow &main_window, int top_gap, int left_gap, int right_gap, int bottom_gap)
2026-02-24 10:16:05 -05:00
{
//---
2026-02-25 11:10:09 -05:00
int x = left_gap + 5;
int y = top_gap + 5;
2026-02-24 10:16:05 -05:00
//---
2026-03-13 08:17:25 -05:00
m_label_titulo.BackColor(AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED);
2026-02-24 10:16:05 -05:00
m_label_titulo.FontSize(14);
m_label_titulo.Font("Arial");
2026-03-13 08:17:25 -05:00
m_label_titulo.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY);
2026-03-13 15:20:27 -05:00
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))
2026-02-24 10:16:05 -05:00
{
AIDATATASKRUNER_ERROR_CREATION(m_label_titulo);
return false;
}
2026-02-25 11:10:09 -05:00
y += 25;
2026-02-24 10:16:05 -05:00
2026-02-25 11:10:09 -05:00
//--- TextBox
m_label_text.MainPointer(main_window);
m_label_text.FontSize(10);
m_label_text.Font("Arial");
m_label_text.SelectedBackColor(clrAquamarine);
2026-03-13 08:17:25 -05:00
m_label_text.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
2026-02-25 11:10:09 -05:00
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);
2026-03-13 08:17:25 -05:00
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);
2026-03-13 15:20:27 -05:00
m_base_tab.AddToElementsArray(m_base_tab_idx, m_label_text);
2026-02-24 10:16:05 -05:00
2026-02-25 11:10:09 -05:00
//--- Cargar texto por defecto
//
2026-03-13 15:20:27 -05:00
string arr[3] =
2026-02-24 10:16:05 -05:00
{
2026-03-13 11:50:06 -05:00
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"] // ""
2026-02-25 11:10:09 -05:00
};
//
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]);
2026-02-24 10:16:05 -05:00
}
2026-02-25 11:10:09 -05:00
//---
if(!m_label_text.CreateTextBox(x, y))
return false;
p.AddToElementsArray(0, m_label_text);
2026-02-24 10:16:05 -05:00
//---
return true;
}
2026-03-13 15:20:27 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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);
}
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
2026-02-25 11:10:09 -05:00
#endif // AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH