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-20 21:57:53 -05:00
class CTaskRunerAiTabAbout : public CGuiBaseComponent < CLoggerBase >
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-20 21:57:53 -05:00
CTaskRunerAiTabAbout ( void ) : CGuiBaseComponent < CLoggerBase > ( " 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 . 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 ' ) ;
2026-03-20 10:19:54 -05:00
m_label_text . SelectedBackColor ( clrAquamarine ) ;
m_label_text . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
2026-03-13 08:17:25 -05:00
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
} ;
2026-03-22 13:36:05 -05:00
//---
m_label_text . SetText ( arr , false ) ;
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 " ] // ""
} ;
2026-03-22 13:36:05 -05:00
m_label_text . SetText ( arr , true ) ;
2026-03-13 15:20:27 -05:00
}
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
2026-02-25 11:10:09 -05:00
# endif // AIDATATASKRUNER_UI_ABOUT_ABOUTTAB_MQH