2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
//| Main.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_MAIN_MQH
# define AIDATATASKRUNER_UI_MAIN_MQH
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-02-25 11:10:09 -05:00
# include "AllTabs.mqh"
2026-03-21 12:50:21 -05:00
//---
2026-04-08 07:46:15 -05:00
# define TASKRUNERAIMAINTAB_TAB_TOTAL ( 8 )
2026-03-21 12:50:21 -05:00
2026-02-25 11:10:09 -05:00
//---
2026-03-13 11:50:06 -05:00
# define TASKRUNERAIMAINTAB_TAB_DGEN ( 0 )
2026-03-21 12:50:21 -05:00
# define TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR ( 1 )
# define TASKRUNERAIMAINTAB_TAB_TRAINING ( 2 )
2026-03-16 17:06:27 -05:00
# define TASKRUNERAIMAINTAB_TAB_AI ( 3 )
2026-03-27 17:56:22 -05:00
# define TASKRUNERAIMAINTAB_TAB_UTILS ( 4 )
2026-04-08 07:46:15 -05:00
# define TASKRUNERAIMAINTAB_TAB_WORKFLOW ( 5 )
2026-03-27 17:56:22 -05:00
2026-04-08 07:46:15 -05:00
# define TASKRUNERAIMAINTAB_TAB_CONFIG ( 6 )
# define TASKRUNERAIMAINTAB_TAB_ABOUT ( 7 )
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-13 08:17:25 -05:00
class CProgram : public CWndCreate
2026-02-24 10:16:05 -05:00
{
private :
2026-03-13 11:50:06 -05:00
//---
CLanguageConfigurator m_lenguaje ;
const string m_class_name ;
2026-02-25 11:10:09 -05:00
//--- Tabb principal
2026-02-24 10:16:05 -05:00
CTabs m_tabs ;
2026-03-13 08:17:25 -05:00
CWindow m_window ;
2026-02-24 10:16:05 -05:00
2026-02-25 11:10:09 -05:00
//--- Secciones
CTaskRunerAiTabDGenMain m_sec_generation_data ;
CTaskRunerAiTabAbout m_sec_about ;
2026-03-13 15:20:27 -05:00
CTaskRunerAiTabConfig m_sec_config ;
2026-03-16 17:06:27 -05:00
CTabLlmAgentBase m_sec_ia ;
2026-03-20 21:57:53 -05:00
CTrainingTab m_sec_training ;
2026-03-21 12:50:21 -05:00
CFeaturesEditorTab m_sec_feature_editor ;
2026-03-27 17:56:22 -05:00
CTabUtils m_sec_utils ;
2026-04-08 07:46:15 -05:00
CTabWorkflows m_sec_wf ;
2026-02-24 10:16:05 -05:00
2026-03-13 08:17:25 -05:00
//--- Eventos
2026-03-20 21:57:53 -05:00
void OnClickBottom ( const long lparam , const string & sparam ) ;
2026-03-16 17:06:27 -05:00
void OnTextEdit ( const long lparam ) ;
void OnChangeComBox ( const long lparam ) ;
2026-03-26 06:46:59 -05:00
void OnClickDec ( const long lparam ) ;
void OnClickInc ( const long lparam ) ;
2026-03-13 08:17:25 -05:00
2026-02-24 10:16:05 -05:00
public :
2026-03-13 11:50:06 -05:00
CProgram ( void ) : m_class_name ( " CProgram " ) { }
2026-03-13 08:17:25 -05:00
~ CProgram ( void ) { }
2026-02-25 11:10:09 -05:00
//---
CTaskRunerAiTabDGenMain * GetSecTaskRunerAiDGenPtr ( ) { return & m_sec_generation_data ; }
CTaskRunerAiTabAbout * GetSecAbout ( ) { return & m_sec_about ; }
2026-03-16 17:06:27 -05:00
CTabLlmAgentBase * GetSecAi ( ) { return & m_sec_ia ; }
2026-03-21 08:15:18 -05:00
CTrainingTab * GetTrainingTab ( ) { return & m_sec_training ; }
CTaskRunerAiTabConfig * GetConfig ( ) { return & m_sec_config ; }
2026-03-21 12:50:21 -05:00
CFeaturesEditorTab * GetFeaturesEditr ( ) { return & m_sec_feature_editor ; }
2026-03-27 17:56:22 -05:00
CTabUtils * GetTabUtils ( ) { return & m_sec_utils ; }
2026-04-08 07:46:15 -05:00
CTabWorkflows * GetTabWF ( ) { return & m_sec_wf ; }
2026-03-21 12:50:21 -05:00
2026-02-24 10:16:05 -05:00
//--- Funcion principal de creacion
2026-02-25 11:10:09 -05:00
// Se supone que top_gatp ya viene con el offset del tab
2026-03-20 21:57:53 -05:00
bool CreateGUI ( int WIDTH_PANEL , int HEIGHT_PANEL , uchar log_flags , const TrainingTabConfig & config_traing ) ;
2026-02-25 11:10:09 -05:00
2026-03-13 08:17:25 -05:00
//---
void OnEvent ( const int id , const long & lparam , const double & dparam , const string & sparam ) override ;
void OnDeinitEvent ( const int reason ) { CWndEvents : : Destroy ( ) ; }
2026-03-13 16:15:45 -05:00
void OnLenguajeChange ( ) ;
2026-02-24 10:16:05 -05:00
} ;
2026-03-13 08:17:25 -05:00
//+------------------------------------------------------------------+
//| |
2026-02-24 10:16:05 -05:00
//+------------------------------------------------------------------+
2026-03-20 21:57:53 -05:00
bool CProgram : : CreateGUI ( int WIDTH_PANEL , int HEIGHT_PANEL , uchar log_flags , const TrainingTabConfig & config_traing )
2026-02-25 11:10:09 -05:00
{
2026-03-13 11:50:06 -05:00
//---
if ( ! CPanelAiDataTaskRunnerIns : : Downlad ( ) )
{
return false ;
}
//---
m_lenguaje . AddLogFlags ( log_flags ) ;
2026-03-16 17:06:27 -05:00
if ( ! m_lenguaje .Init ( TASKRUNERAI_DEFUALT_LAN , g_aidatatask_runner_langague ,
g_aidatatask_runner_langague_str , AIDATATASK_RUNNER_COMON_FLAG ) )
2026-03-13 11:50:06 -05:00
{
return false ;
}
2026-03-13 08:17:25 -05:00
//---
int width_panel = fmax ( WIDTH_PANEL , 300 ) ;
2026-03-16 21:27:52 -05:00
m_window . Alpha ( 255 ) ;
2026-03-13 08:17:25 -05:00
m_window . CaptionColor ( AIDATATASKRUNER_WIN_COLOR_CAPTION ) ;
m_window . CaptionColorHover ( AIDATATASKRUNER_WIN_COLOR_CAPTION_HOVER ) ;
m_window . CaptionColorLocked ( AIDATATASKRUNER_WIN_COLOR_CAPTION_LOCKED ) ;
m_window . BorderColor ( AIDATATASKRUNER_COLOR_FONDO_WIN ) ;
m_window . BackColor ( AIDATATASKRUNER_COLOR_FONDO_WIN ) ;
m_window . BackColorPressed ( clrBlue ) ;
m_window . Font ( " Arial Black " ) ;
if ( ! CWndCreate : : CreateWindow ( m_window , AIDATATASKRUNER_CAPTION , 0 , 0 , width_panel , HEIGHT_PANEL , true , false , true , true ) )
{
AIDATATASKRUNER_ERROR_CREATION_F ( m_window ) ;
return false ;
}
//---
int left_gap = 2 ;
int top_gap = m_window . CaptionHeight ( ) + 4 ;
int right_gap = 4 ;
int bottom_gap = 4 ;
2026-03-13 11:50:06 -05:00
//Print(top_gap); // Para tabs el y debe de inlcuir ya la cabezera
2026-03-13 08:17:25 -05:00
//---
2026-02-25 11:10:09 -05:00
int x = left_gap + 1 ;
int y = top_gap + 1 ;
//--- Creacion del control tabs
2026-03-13 11:50:06 -05:00
// header
string tab_header [ ] ;
2026-03-13 12:00:40 -05:00
const string str_header = m_lenguaje [ AIDATATASKRUNNERL_COMPONENT_NAME ( m_tabs ) ] ;
2026-03-13 11:58:57 -05:00
if ( ! StrTo : : CstArray ( tab_header , str_header , ' | ' , true ) )
2026-03-13 11:50:06 -05:00
{
FastLog ( FUNCION_ACTUAL , ERROR_TEXT , " Fallo al hacer str to array str " ) ;
return false ;
}
ArrayResize ( tab_header , TASKRUNERAIMAINTAB_TAB_TOTAL ) ; // trim
2026-03-16 17:06:27 -05:00
// Colores
color clrs_tab_label [ TASKRUNERAIMAINTAB_TAB_TOTAL ] =
{
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
2026-03-20 21:57:53 -05:00
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
2026-03-21 12:50:21 -05:00
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
2026-03-27 17:56:22 -05:00
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
2026-04-08 07:46:15 -05:00
AIDATATASKRUNER_COLOR_TEXT_SECONDARY ,
2026-03-16 17:06:27 -05:00
AIDATATASKRUNER_COLOR_TEXT_SECONDARY
} ;
color clrs_tab_label_pressed [ TASKRUNERAIMAINTAB_TAB_TOTAL ] =
{
AIDATATASKRUNER_COLOR_ACCENT ,
AIDATATASKRUNER_COLOR_ACCENT ,
AIDATATASKRUNER_COLOR_ACCENT ,
2026-03-20 21:57:53 -05:00
AIDATATASKRUNER_COLOR_ACCENT ,
2026-03-21 12:50:21 -05:00
AIDATATASKRUNER_COLOR_ACCENT ,
2026-03-27 17:56:22 -05:00
AIDATATASKRUNER_COLOR_ACCENT ,
2026-04-08 07:46:15 -05:00
AIDATATASKRUNER_COLOR_ACCENT ,
2026-03-16 17:06:27 -05:00
AIDATATASKRUNER_COLOR_ACCENT
} ;
2026-03-13 08:17:25 -05:00
2026-03-16 17:06:27 -05:00
//---
2026-03-13 11:50:06 -05:00
int widts [ TASKRUNERAIMAINTAB_TAB_TOTAL ] ;
2026-03-13 15:20:27 -05:00
ArrayInitialize ( widts , 65 ) ;
2026-02-25 11:10:09 -05:00
x + = 65 ;
2026-03-13 08:17:25 -05:00
m_tabs . BackColor ( AIDATATASKRUNER_COLOR_FONDO_TAB ) ;
m_tabs . BackColorHover ( AIDATATASKRUNER_COLOR_FONDO_TAB_HOVER ) ;
m_tabs . BackColorPressed ( AIDATATASKRUNER_COLOR_FONDO_TAB_PRESSED ) ;
m_tabs . BackColorLocked ( AIDATATASKRUNER_COLOR_FONDO_TAB_LOCKED ) ;
m_tabs . BorderColor ( AIDATATASKRUNER_COLOR_BORDER ) ;
m_tabs . BorderColorHover ( AIDATATASKRUNER_COLOR_BORDER_HOVER ) ;
m_tabs . BorderColorPressed ( AIDATATASKRUNER_COLOR_BORDER_HOVER ) ;
m_tabs . BorderColorLocked ( AIDATATASKRUNER_COLOR_BORDER ) ;
// m_tabs.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
// m_tabs.LabelColorLocked(AIDATATASKRUNER_COLOR_TEXT_LOCKED);
2026-02-25 11:10:09 -05:00
// Offset
right_gap + = 2 ;
bottom_gap + = 2 ;
// Creacion
2026-03-13 11:50:06 -05:00
if ( ! CWndCreate : : CreateTabs ( m_tabs , m_window , 0 , x , y , 0 , 0 , tab_header , widts , clrs_tab_label , clrs_tab_label_pressed ,
2026-03-13 08:17:25 -05:00
TABS_LEFT , true , true , right_gap , bottom_gap ) )
2026-02-25 11:10:09 -05:00
{
2026-03-13 08:17:25 -05:00
AIDATATASKRUNER_ERROR_CREATION_F ( m_tabs ) ;
2026-02-25 11:10:09 -05:00
return false ;
}
//---
left_gap + = m_tabs . SumWidthTabs ( ) + 1 ;
top_gap + = 1 ;
//--- Seccion generacino de datos
2026-03-13 08:17:25 -05:00
m_sec_generation_data . AddLogFlags ( log_flags ) ;
2026-03-13 15:20:27 -05:00
m_sec_generation_data . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_DGEN ) ;
if ( ! m_sec_generation_data . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
2026-02-25 11:10:09 -05:00
{
2026-03-13 08:17:25 -05:00
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_generation_data ) ;
2026-02-25 11:10:09 -05:00
return false ;
}
2026-03-21 12:50:21 -05:00
//--- Seccion features editor
m_sec_feature_editor . AddLogFlags ( log_flags ) ;
m_sec_feature_editor . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR ) ;
if ( ! m_sec_feature_editor . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap , config_traing . proyect_common_flag ) )
2026-02-25 11:10:09 -05:00
{
2026-03-21 12:50:21 -05:00
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_feature_editor ) ;
return false ;
}
//--- Seccion training
m_sec_training . AddLogFlags ( log_flags ) ;
m_sec_training . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_TRAINING ) ;
if ( ! m_sec_training . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap , config_traing ) )
{
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_training ) ;
2026-02-25 11:10:09 -05:00
return false ;
}
2026-03-13 08:17:25 -05:00
2026-03-16 17:06:27 -05:00
//--- Seccion ai chat
m_sec_ia . AddLogFlags ( log_flags ) ;
m_sec_ia . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_AI ) ;
if ( ! m_sec_ia . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
{
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_ia ) ;
return false ;
}
2026-03-27 17:56:22 -05:00
//--- Seccion Utils
m_sec_utils . AddLogFlags ( log_flags ) ;
m_sec_utils . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_UTILS ) ;
if ( ! m_sec_utils . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
{
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_utils ) ;
return false ;
}
2026-04-08 07:46:15 -05:00
//--- Seccion wf
m_sec_wf . AddLogFlags ( log_flags ) ;
m_sec_wf . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_WORKFLOW ) ;
if ( ! m_sec_wf . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
{
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_utils ) ;
return false ;
}
2026-03-16 17:06:27 -05:00
2026-03-21 12:50:21 -05:00
//--- Seccion About
m_sec_about . AddLogFlags ( log_flags ) ;
m_sec_about . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_ABOUT ) ;
if ( ! m_sec_about . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
2026-03-20 21:57:53 -05:00
{
2026-03-21 12:50:21 -05:00
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_about ) ;
2026-03-20 21:57:53 -05:00
return false ;
}
2026-03-16 17:06:27 -05:00
//--- Seccion config
2026-03-13 15:20:27 -05:00
m_sec_config . AddLogFlags ( log_flags ) ;
m_sec_config . SetInitValues ( & m_lenguaje , & m_tabs , TASKRUNERAIMAINTAB_TAB_CONFIG ) ;
if ( ! m_sec_config . Create ( & this , m_window , top_gap , left_gap , right_gap , bottom_gap ) )
{
2026-03-16 17:06:27 -05:00
AIDATATASKRUNER_ERROR_CREATION_F ( m_sec_config ) ;
2026-03-13 15:20:27 -05:00
return false ;
}
2026-03-21 12:50:21 -05:00
2026-03-13 15:20:27 -05:00
// agregamos las tabs restantes
m_sec_config . AddTab ( & m_sec_about ) ;
m_sec_config . AddTab ( & m_sec_generation_data ) ;
2026-03-16 17:06:27 -05:00
m_sec_config . AddTab ( & m_sec_ia ) ;
2026-03-20 21:57:53 -05:00
m_sec_config . AddTab ( & m_sec_training ) ;
2026-03-21 12:50:21 -05:00
m_sec_config . AddTab ( & m_sec_feature_editor ) ;
2026-03-27 17:56:22 -05:00
m_sec_config . AddTab ( & m_sec_utils ) ;
2026-04-09 16:45:23 -05:00
m_sec_config . AddTab ( & m_sec_wf ) ;
2026-03-13 16:15:45 -05:00
m_sec_config . SetBaseProgram ( & this ) ;
2026-03-13 15:20:27 -05:00
2026-03-13 08:17:25 -05:00
//---
CWndEvents : : CompletedGUI ( ) ;
2026-02-25 11:10:09 -05:00
//---
return true ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-13 08:17:25 -05:00
void CProgram : : OnEvent ( const int id , const long & lparam , const double & dparam , const string & sparam )
{
if ( id = = CHARTEVENT_CUSTOM + ON_END_EDIT )
{
OnTextEdit ( lparam ) ;
return ;
}
if ( id = = CHARTEVENT_CUSTOM + ON_CLICK_BUTTON )
{
2026-03-20 21:57:53 -05:00
OnClickBottom ( lparam , sparam ) ;
2026-03-13 08:17:25 -05:00
return ;
}
if ( id = = CHARTEVENT_CUSTOM + ON_CHANGE_DATE )
{
2026-03-20 21:57:53 -05:00
if ( m_tabs . SelectedTab ( ) = = TASKRUNERAIMAINTAB_TAB_DGEN )
m_sec_generation_data . OnChangeDate ( lparam , dparam ) ;
2026-03-13 08:17:25 -05:00
return ;
}
if ( id = = CHARTEVENT_CUSTOM + ON_CLICK_COMBOBOX_ITEM )
{
OnChangeComBox ( lparam ) ;
return ;
}
2026-03-20 21:57:53 -05:00
if ( id = = CHARTEVENT_CUSTOM + ON_CLICK_DEC )
{
2026-03-26 06:46:59 -05:00
OnClickDec ( lparam ) ;
2026-03-20 21:57:53 -05:00
return ;
}
if ( id = = CHARTEVENT_CUSTOM + ON_CLICK_INC )
{
2026-03-26 06:46:59 -05:00
OnClickInc ( lparam ) ;
2026-03-20 21:57:53 -05:00
return ;
}
2026-03-26 06:46:59 -05:00
//--- Especificos para el editor
2026-03-20 21:57:53 -05:00
if ( id = = CHARTEVENT_CUSTOM + ON_MODIFY_TEXTBOX )
{
2026-03-21 12:50:21 -05:00
if ( m_tabs . SelectedTab ( ) = = TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR )
m_sec_feature_editor . OnModifyTextBox ( lparam ) ;
2026-03-20 21:57:53 -05:00
return ;
}
2026-03-13 08:17:25 -05:00
}
2026-03-26 06:46:59 -05:00
2026-04-08 07:46:15 -05:00
2026-03-26 06:46:59 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CProgram : : OnClickDec ( const long lparam )
{
switch ( m_tabs . SelectedTab ( ) )
{
case TASKRUNERAIMAINTAB_TAB_DGEN :
m_sec_generation_data . OnClickDec ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR :
m_sec_feature_editor . OnClickDec ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_TRAINING :
m_sec_training . OnClickDec ( lparam ) ;
break ;
2026-04-08 07:46:15 -05:00
case TASKRUNERAIMAINTAB_TAB_AI :
break ;
2026-03-27 17:56:22 -05:00
case TASKRUNERAIMAINTAB_TAB_UTILS :
break ;
2026-04-08 07:46:15 -05:00
case TASKRUNERAIMAINTAB_TAB_WORKFLOW :
2026-03-26 06:46:59 -05:00
break ;
case TASKRUNERAIMAINTAB_TAB_CONFIG :
break ;
case TASKRUNERAIMAINTAB_TAB_ABOUT :
break ;
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CProgram : : OnClickInc ( const long lparam )
{
switch ( m_tabs . SelectedTab ( ) )
{
case TASKRUNERAIMAINTAB_TAB_DGEN :
m_sec_generation_data . OnClickInc ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR :
m_sec_feature_editor . OnClickInc ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_TRAINING :
m_sec_training . OnClickInc ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_AI :
break ;
2026-03-27 17:56:22 -05:00
case TASKRUNERAIMAINTAB_TAB_UTILS :
break ;
2026-04-08 07:46:15 -05:00
case TASKRUNERAIMAINTAB_TAB_WORKFLOW :
break ;
2026-03-26 06:46:59 -05:00
case TASKRUNERAIMAINTAB_TAB_CONFIG :
break ;
case TASKRUNERAIMAINTAB_TAB_ABOUT :
break ;
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-16 17:06:27 -05:00
//---
void CProgram : : OnChangeComBox ( const long lparam )
2026-02-25 11:10:09 -05:00
{
2026-03-16 17:06:27 -05:00
switch ( m_tabs . SelectedTab ( ) )
{
case TASKRUNERAIMAINTAB_TAB_DGEN :
m_sec_generation_data . OnChangeComBox ( lparam ) ;
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR :
m_sec_feature_editor . OnComboxItemClick ( lparam ) ;
2026-03-16 17:06:27 -05:00
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_TRAINING :
2026-03-16 17:06:27 -05:00
break ;
case TASKRUNERAIMAINTAB_TAB_AI :
m_sec_ia . OnChangeComBox ( lparam ) ;
break ;
2026-03-20 21:57:53 -05:00
2026-03-27 17:56:22 -05:00
case TASKRUNERAIMAINTAB_TAB_UTILS :
m_sec_utils . OnComboxItemClick ( lparam ) ;
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_CONFIG :
m_sec_config . OnChangeComBox ( lparam ) ;
break ;
case TASKRUNERAIMAINTAB_TAB_ABOUT :
2026-03-20 21:57:53 -05:00
break ;
2026-03-16 17:06:27 -05:00
}
2026-02-25 11:10:09 -05:00
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-21 12:50:21 -05:00
void CProgram : : OnClickBottom ( const long lparam , const string & sparam )
2026-02-25 11:10:09 -05:00
{
2026-03-16 17:06:27 -05:00
switch ( m_tabs . SelectedTab ( ) )
{
case TASKRUNERAIMAINTAB_TAB_DGEN :
m_sec_generation_data . OnClickBottom ( lparam ) ;
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR :
m_sec_feature_editor . OnClickButtom ( lparam , sparam ) ;
2026-03-16 17:06:27 -05:00
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_TRAINING :
m_sec_training . OnClickButtom ( lparam , sparam ) ;
2026-03-16 17:06:27 -05:00
break ;
case TASKRUNERAIMAINTAB_TAB_AI :
m_sec_ia . OnClickBottom ( lparam ) ;
break ;
2026-03-20 21:57:53 -05:00
2026-03-27 17:56:22 -05:00
case TASKRUNERAIMAINTAB_TAB_UTILS :
m_sec_utils . OnClickButtom ( lparam ) ;
break ;
2026-04-08 07:46:15 -05:00
case TASKRUNERAIMAINTAB_TAB_WORKFLOW :
m_sec_wf . OnClickButtom ( lparam ) ;
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_CONFIG :
break ;
case TASKRUNERAIMAINTAB_TAB_ABOUT :
2026-03-20 21:57:53 -05:00
break ;
2026-03-16 17:06:27 -05:00
}
2026-02-25 11:10:09 -05:00
}
2026-03-20 21:57:53 -05:00
2026-02-25 11:10:09 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-03-16 17:06:27 -05:00
void CProgram : : OnTextEdit ( const long lparam )
2026-02-25 11:10:09 -05:00
{
2026-03-16 17:06:27 -05:00
switch ( m_tabs . SelectedTab ( ) )
{
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_DGEN :
2026-03-16 17:06:27 -05:00
m_sec_generation_data . OnTextEdit ( lparam ) ;
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_FEATURES_EDITOR :
m_sec_feature_editor . OnEndEdit ( lparam ) ;
2026-03-16 17:06:27 -05:00
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_TRAINING :
2026-03-24 10:39:38 -05:00
m_sec_training . OnTextEdit ( lparam ) ;
2026-03-16 17:06:27 -05:00
break ;
case TASKRUNERAIMAINTAB_TAB_AI :
m_sec_ia . OnTextEdit ( lparam ) ;
break ;
2026-03-20 21:57:53 -05:00
2026-03-27 17:56:22 -05:00
case TASKRUNERAIMAINTAB_TAB_UTILS :
break ;
2026-04-08 07:46:15 -05:00
case TASKRUNERAIMAINTAB_TAB_WORKFLOW :
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_CONFIG :
2026-03-20 21:57:53 -05:00
break ;
2026-03-21 12:50:21 -05:00
case TASKRUNERAIMAINTAB_TAB_ABOUT :
break ;
2026-03-16 17:06:27 -05:00
}
2026-02-25 11:10:09 -05:00
}
2026-03-21 12:50:21 -05:00
2026-03-13 16:15:45 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CProgram : : OnLenguajeChange ( void )
{
string tab_header [ ] ;
const string str_header = m_lenguaje [ AIDATATASKRUNNERL_COMPONENT_NAME ( m_tabs ) ] ;
if ( ! StrTo : : CstArray ( tab_header , str_header , ' | ' , true ) )
{
FastLog ( FUNCION_ACTUAL , ERROR_TEXT , " Fallo al hacer str to array str " ) ;
return ;
}
2026-03-21 08:15:18 -05:00
//ArrayResize(tab_header, TASKRUNERAIMAINTAB_TAB_TOTAL);
2026-03-13 16:15:45 -05:00
const int t = m_tabs . TabsTotal ( ) ;
for ( int i = 0 ; i < t ; i + + )
m_tabs . Text ( i , tab_header [ i ] ) ;
m_tabs . Update ( ) ;
}
2026-02-25 11:10:09 -05:00
//---
# endif // AIDATATASKRUNER_UI_MAIN_MQH