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