2026-03-13 16:00:26 -05:00
//+------------------------------------------------------------------+
//| ConfigTab.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_CONFIG_CONFIGTAB_MQH
# define AIDATATASKRUNER_UI_CONFIG_CONFIGTAB_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
# include "..\\Defines.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
# define TASKRUNERAITABCONFIG_GAP_Y_TITLE_TO_COMBO ( 12 )
2026-03-13 16:15:45 -05:00
//---
class CProgram ;
2026-03-13 16:00:26 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-20 21:57:53 -05:00
class CTaskRunerAiTabConfig : public CGuiBaseComponent < CLoggerBase >
2026-03-13 16:00:26 -05:00
{
private :
CTextLabel m_label_titulo ;
CComboBox m_combox_language ;
2026-03-20 21:57:53 -05:00
CGuiBaseComponent < CLoggerBase > * m_tabs [ ] ;
2026-03-13 16:00:26 -05:00
int m_tabs_total ;
2026-03-13 16:15:45 -05:00
CProgram * m_base_program ;
2026-03-13 16:00:26 -05:00
public :
2026-03-20 21:57:53 -05:00
CTaskRunerAiTabConfig ( void ) : CGuiBaseComponent < CLoggerBase > ( " CTaskRunerAiTabConfig " ) , m_tabs_total ( 0 ) { }
2026-03-13 16:00:26 -05:00
~ CTaskRunerAiTabConfig ( void ) { }
//---
bool Create ( CWndCreate * p , CWindow & main_window , int top_gap , int left_gap , int right_gap , int bottom_gap ) ;
void OnLenguajeChange ( ) override final ;
bool OnChangeComBox ( const long lparam ) ;
2026-03-13 16:15:45 -05:00
void SetBaseProgram ( CProgram * p ) { m_base_program = p ; }
2026-03-13 16:00:26 -05:00
//---
2026-03-20 21:57:53 -05:00
void AddTab ( CGuiBaseComponent < CLoggerBase > * tab )
2026-03-13 16:00:26 -05:00
{
ArrayResize ( m_tabs , m_tabs_total + 1 ) ;
m_tabs [ m_tabs_total ] = tab ;
m_tabs_total + + ;
}
} ;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CTaskRunerAiTabConfig : : 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 . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_PRIMARY ) ;
m_label_titulo . FontSize ( 14 ) ;
m_label_titulo . Font ( " Arial " ) ;
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 , y , 150 ) )
{
AIDATATASKRUNER_ERROR_CREATION ( m_label_titulo ) ;
return false ;
}
y + = m_label_titulo . YSize ( ) + TASKRUNERAITABCONFIG_GAP_Y_TITLE_TO_COMBO ;
//---
m_combox_language . FontSize ( 10 ) ;
m_combox_language . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_language . BackColor ( AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED ) ;
m_combox_language . GetListViewPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_combox_language . GetListViewPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
m_combox_language . GetListViewPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_language . GetButtonPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_language . GetButtonPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_combox_language . GetButtonPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
2026-03-17 07:50:47 -05:00
m_combox_language . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_combox_language ) ) ) ;
2026-03-13 16:00:26 -05:00
if ( ! p . CreateCombobox ( m_combox_language , m_language [ AIDATATASKRUNNERL_COMPONENT_NAME ( m_combox_language ) ] ,
2026-03-25 07:17:05 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , false , x , y , 165 , 100 ,
2026-03-13 16:00:26 -05:00
g_aidatatask_runner_langague_str , 150 ) )
{
AIDATATASKRUNER_ERROR_CREATION ( m_combox_language ) ;
return false ;
}
m_combox_language . m_button . IconFile ( RESOURCE_DOWN_THIN_WHITE ) ;
m_combox_language . m_button . IconFileLocked ( RESOURCE_DOWN_THIN_WHITE ) ;
m_combox_language . m_button . CElement : : IconFilePressed ( RESOURCE_UP_THIN_WHITE ) ;
m_combox_language . m_button . CElement : : IconFilePressedLocked ( RESOURCE_UP_THIN_WHITE ) ;
//---
return true ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CTaskRunerAiTabConfig : : OnChangeComBox ( const long lparam )
{
//---
if ( lparam = = m_combox_language . Id ( ) )
{
m_language . SetLanguageByIndex ( m_combox_language . GetListViewPointer ( ) . SelectedItemIndex ( ) ) ;
for ( int i = 0 ; i < m_tabs_total ; i + + )
m_tabs [ i ] . OnLenguajeChange ( ) ;
// se llama a si mismo tmb
OnLenguajeChange ( ) ;
2026-03-13 16:15:45 -05:00
m_base_program . OnLenguajeChange ( ) ;
2026-03-13 16:00:26 -05:00
return true ;
}
//---
return false ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTaskRunerAiTabConfig : : OnLenguajeChange ( void )
{
//---
const bool redraw = m_base_tab . SelectedTab ( ) = = m_base_tab_idx & & m_base_tab . IsVisible ( ) ;
//---
m_label_titulo . LabelText ( m_language [ AIDATATASKRUNNERL_COMPONENT_NAME ( m_label_titulo ) ] ) ;
m_label_titulo . Update ( redraw ) ;
2026-03-17 07:50:47 -05:00
m_combox_language . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_combox_language ) ) ) ;
2026-03-13 16:00:26 -05:00
m_combox_language . LabelText ( m_language [ AIDATATASKRUNNERL_COMPONENT_NAME ( m_combox_language ) ] ) ;
m_combox_language . Update ( redraw ) ;
}
//+------------------------------------------------------------------+
# endif // AIDATATASKRUNER_UI_CONFIG_CONFIGTAB_MQH