//+------------------------------------------------------------------+ //| Base.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_DATAGENERATIONTAB_BASE_MQH #define AIDATATASKRUNER_UI_DATAGENERATIONTAB_BASE_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #include "Def.mqh" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CTaskRunerAiTabDGenMain : public CTaskRunnerBaseTab { private: //--- CTabs m_tabs; ITaskRunerAi* m_runer; //--- Tab 1 Agregar task //- COnfigiraiino base CTextLabel m_label_basic_config; CTextEdit m_section_bsic_edit_files; CTextEdit m_section_bsic_edit_expert_path; CTextEdit m_section_bsic_edit_progres_csv_file; CTextEdit m_section_bsic_edit_main_folder; //- Task CTextLabel m_label_new_task; // CTextEdit m_section_nt_edit_symbol; CTextEdit m_section_nt_edit_symbol_folder; CComboBox m_section_nt_combox_timerame; CTextEdit m_section_nt_edit_label; CTextEdit m_section_nt_edit_label_id; CDropCalendar m_section_nt_dc_dt_start; CDropCalendar m_section_nt_dc_dt_end; CTextEdit m_section_nt_edit_st_file; // CButton m_section_nt_buttom_add_task; //--- Tab 2 visualizar CButton m_section_buttom_pending_load; CButton m_section_buttom_pending_save; CButton m_section_buttom_clean; CButton m_section_buttom_execute_all; CTable m_section_pending_table; //CWindow liuego dar la posiblidad de modificar //--- Create metods bool CreateMainTab(CWndCreate* p, CWindow& main_window, CTabs& general_tabs, int tab_index, int top_gap, int left_gap, int right_gap, int bottom_gap); bool CreatePendigTab(CWndCreate* p, CWindow& main_window, CTabs& general_tabs, int tab_index, int top_gap, int left_gap, int right_gap, int bottom_gap); //--- Partes de main tab bool CreateMainTab_BasicConfig(CWndCreate* p, CWindow& main_window, CTabs& general_tabs, int tab_index, const int initial_x, int& x, int& y); bool CreateMainTab_NewTask(CWndCreate* p, CWindow& main_window, CTabs& general_tabs, int tab_index, const int initial_x, int& x, int& y); //--- // rows = array con las filas a actulizar // index_s = nuevo estaod // size = tamaño del array rows void ActulizeTableAllTask(const int index_s, int& rows[], int size); void OnAddTask(); void UpdateTextMain(); void UpdateTextTask(); public: CTaskRunerAiTabDGenMain(void) : CTaskRunnerBaseTab("CTaskRunerAiTabDGenMain") {} ~CTaskRunerAiTabDGenMain(void) {} //--- // topgap es 0 creo // leftgap debera de considerar el espeacio en V bool Create(CWndCreate* p, CWindow& main_window, int top_gap, int left_gap, int right_gap, int bottom_gap); void SetRunner(ITaskRunerAi* r) { m_runer = r; } //--- void OnLenguajeChange() override final; bool OnClickBottom(const long lparam); bool OnChangeDate(const long lparam, const double dparam); //dparm = date bool OnTextEdit(const long lparam); bool OnChangeComBox(const long lparam); //--- void UpdateStateInTable(const int index, const int state); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::Create(CWndCreate* p, CWindow& main_window, int top_gap, int left_gap, int right_gap, int bottom_gap) { //--- string txt[TASKRUNERAIDGENMAIN_TAB_TOTAL] = {m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_tabs) + "_0"], m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_tabs) + "_1"]}; int width[TASKRUNERAIDGENMAIN_TAB_TOTAL] = { 70, 80 }; color clrs_tab_label[TASKRUNERAIDGENMAIN_TAB_TOTAL] = {AIDATATASKRUNER_COLOR_TEXT_SECONDARY, AIDATATASKRUNER_COLOR_TEXT_SECONDARY}; color clrs_tab_label_pressed[TASKRUNERAIDGENMAIN_TAB_TOTAL] = {AIDATATASKRUNER_COLOR_ACCENT, AIDATATASKRUNER_COLOR_ACCENT}; top_gap += 24; left_gap += 4; right_gap += 4; bottom_gap += 4; //--- m_tabs.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB); m_tabs.BackColorHover(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_HOVER); m_tabs.BackColorPressed(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_tabs.BackColorLocked(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_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); //--- if(!p.CreateTabs(m_tabs, main_window, 0, m_base_tab, m_base_tab_idx, left_gap, top_gap, 0, 0, txt, width, clrs_tab_label, clrs_tab_label_pressed, TABS_TOP, true, true, right_gap, bottom_gap)) { AIDATATASKRUNER_ERROR_CREATION(m_tabs); return false; } //--- if(!CreateMainTab(p, main_window, m_tabs, TASKRUNERAIDGENMAIN_TAB_MAIN, top_gap, left_gap, right_gap, bottom_gap)) return false; //--- if(!CreatePendigTab(p, main_window, m_tabs, TASKRUNERAIDGENMAIN_TAB_TASK, top_gap, left_gap, right_gap, bottom_gap)) return false; //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::CreateMainTab(CWndCreate *p, CWindow &main_window, CTabs &general_tabs, int tab_index, int top_gap, int left_gap, int right_gap, int bottom_gap) { //--- const int initial_x = left_gap + 5; int x = initial_x; int y = top_gap + 10; //--- if(!CreateMainTab_BasicConfig(p, main_window, general_tabs, tab_index, initial_x, x, y)) return false; if(!CreateMainTab_NewTask(p, main_window, general_tabs, tab_index, initial_x, x, y)) return false; //--- Tarea actual TaskTester t; t.start_date = m_section_nt_dc_dt_start.SelectedDate(); t.end_date = m_section_nt_dc_dt_end.SelectedDate(); t.timeframe = StrShortTimeframeToEnumNoRef(m_section_nt_combox_timerame.GetValue()); t.set_file = m_section_nt_edit_st_file.GetValue(); t.symbol = m_section_nt_edit_symbol.GetValue(); t.symbol_folder = m_section_nt_edit_symbol_folder.GetValue(); t.label = m_section_nt_edit_label.GetValue(); t.label_id = int(m_section_nt_edit_label_id.GetValue()); m_runer.InitCurrentTask(t); //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #define AIDATATASKRUNER_MAINTAB_LABEL_X_PAD (5) #define AIDATATASKRUNER_MAINTAB_GAP_YSEC (15) #define AIDATATASKRUNER_MAINTAB_GAP_YPRIM (25) #define AIDATATASKRUNER_MAINTAB_GAP_YSEC_FIRST (12) #define AITASKRUNER_MAX_VLAUE_LABEL_ID (1000000000000.0) //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::CreateMainTab_BasicConfig(CWndCreate *p, CWindow &main_window, CTabs &general_tabs, int tab_index, const int initial_x, int &x, int &y) { //--- m_label_basic_config.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_label_basic_config.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY); m_label_basic_config.FontSize(14); m_label_basic_config.Font("Arial"); if(!p.CreateTextLabel(m_label_basic_config, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_basic_config)], main_window, 0, general_tabs, tab_index, x, y, 120)) { AIDATATASKRUNER_ERROR_CREATION(m_label_basic_config); return false; } y += m_label_basic_config.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC_FIRST; //--- string texto; int width; // Files texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_files)]; m_section_bsic_edit_files.FontSize(10); m_section_bsic_edit_files.Font("Arial"); m_section_bsic_edit_files.CanvasFontSet(); width = m_section_bsic_edit_files.m_canvas.TextWidth(texto); m_section_bsic_edit_files.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_bsic_edit_files.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_bsic_edit_files.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_bsic_edit_files.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_bsic_edit_files.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_files.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_files.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_bsic_edit_files.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_bsic_edit_files, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 100, 100, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_bsic_edit_files); return false; } y += m_section_bsic_edit_files.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Expert path texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_expert_path)]; m_section_bsic_edit_expert_path.FontSize(10); m_section_bsic_edit_expert_path.Font("Arial"); m_section_bsic_edit_expert_path.CanvasFontSet(); width = m_section_bsic_edit_expert_path.m_canvas.TextWidth(texto); m_section_bsic_edit_expert_path.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_bsic_edit_expert_path.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_bsic_edit_expert_path.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_bsic_edit_expert_path.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_bsic_edit_expert_path.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_expert_path.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_expert_path.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_bsic_edit_expert_path.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_bsic_edit_expert_path, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 300, 300, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_bsic_edit_expert_path); return false; } y += m_section_bsic_edit_expert_path.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Progress csv texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_progres_csv_file)]; m_section_bsic_edit_progres_csv_file.FontSize(10); m_section_bsic_edit_progres_csv_file.Font("Arial"); m_section_bsic_edit_progres_csv_file.CanvasFontSet(); width = m_section_bsic_edit_progres_csv_file.m_canvas.TextWidth(texto); m_section_bsic_edit_progres_csv_file.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_bsic_edit_progres_csv_file.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_bsic_edit_progres_csv_file.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_bsic_edit_progres_csv_file, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 300, 300, "none")) { AIDATATASKRUNER_ERROR_CREATION(m_section_bsic_edit_progres_csv_file); return false; } y += m_section_bsic_edit_progres_csv_file.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Main folder texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_main_folder)]; m_section_bsic_edit_main_folder.FontSize(10); m_section_bsic_edit_main_folder.Font("Arial"); m_section_bsic_edit_main_folder.CanvasFontSet(); width = m_section_bsic_edit_main_folder.m_canvas.TextWidth(texto); m_section_bsic_edit_main_folder.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_bsic_edit_main_folder.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_bsic_edit_main_folder.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_bsic_edit_main_folder.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_bsic_edit_main_folder.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_main_folder.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_bsic_edit_main_folder.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_bsic_edit_main_folder.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_bsic_edit_main_folder, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 250, 250, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_bsic_edit_main_folder); return false; } y += m_section_bsic_edit_main_folder.YSize() + 30; //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::CreateMainTab_NewTask(CWndCreate *p, CWindow &main_window, CTabs &general_tabs, int tab_index, const int initial_x, int &x, int &y) { //--- m_label_new_task.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_label_new_task.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY); m_label_new_task.FontSize(14); m_label_new_task.Font("Arial"); if(!p.CreateTextLabel(m_label_new_task, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_new_task)], main_window, 0, general_tabs, tab_index, x, y, 200)) { AIDATATASKRUNER_ERROR_CREATION(m_label_new_task); return false; } y += m_label_new_task.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC_FIRST; //--- string texto; int width; // Symbol texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_symbol)]; m_section_nt_edit_symbol.FontSize(10); m_section_nt_edit_symbol.Font("Arial"); m_section_nt_edit_symbol.CanvasFontSet(); width = m_section_nt_edit_symbol.m_canvas.TextWidth(texto); m_section_nt_edit_symbol.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_edit_symbol.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_edit_symbol.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_edit_symbol.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_edit_symbol.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_symbol.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_symbol.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_nt_edit_symbol.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_nt_edit_symbol, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 150, 150, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_edit_symbol); return false; } x += m_section_nt_edit_symbol.XSize() + 20; // Symbol folder texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_symbol_folder)]; m_section_nt_edit_symbol_folder.FontSize(10); m_section_nt_edit_symbol_folder.Font("Arial"); m_section_nt_edit_symbol_folder.CanvasFontSet(); width = m_section_nt_edit_symbol_folder.m_canvas.TextWidth(texto); m_section_nt_edit_symbol_folder.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_edit_symbol_folder.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_edit_symbol_folder.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_edit_symbol_folder.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_edit_symbol_folder.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_symbol_folder.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_symbol_folder.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_nt_edit_symbol_folder.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_nt_edit_symbol_folder, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 150, 150, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_edit_symbol_folder); return false; } x = initial_x; y += m_section_nt_edit_symbol_folder.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Timeframe texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_combox_timerame)]; m_section_nt_combox_timerame.FontSize(10); m_section_nt_combox_timerame.Font("Arial"); m_section_nt_combox_timerame.CanvasFontSet(); width = m_section_nt_combox_timerame.m_canvas.TextWidth(texto); m_section_nt_combox_timerame.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_combox_timerame.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_combox_timerame.GetListViewPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_combox_timerame.GetListViewPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_combox_timerame.GetListViewPointer().LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_combox_timerame.GetButtonPointer().LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_combox_timerame.GetButtonPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_combox_timerame.GetButtonPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); if(!p.CreateCombobox(m_section_nt_combox_timerame, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_combox_timerame)], main_window, 0, general_tabs, tab_index, false, x, y, width + 150 + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD, 150, g_arr_str_timefrrames_short, 150)) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_combox_timerame); return false; } m_section_nt_combox_timerame.m_button.IconFile(RESOURCE_DOWN_THIN_WHITE); m_section_nt_combox_timerame.m_button.IconFileLocked(RESOURCE_DOWN_THIN_WHITE); m_section_nt_combox_timerame.m_button.CElement::IconFilePressed(RESOURCE_UP_THIN_WHITE); m_section_nt_combox_timerame.m_button.CElement::IconFilePressedLocked(RESOURCE_UP_THIN_WHITE); y += m_section_nt_combox_timerame.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Label texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_label)]; m_section_nt_edit_label.FontSize(10); m_section_nt_edit_label.Font("Arial"); m_section_nt_edit_label.CanvasFontSet(); width = m_section_nt_edit_label.m_canvas.TextWidth(texto); m_section_nt_edit_label.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_edit_label.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_edit_label.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_edit_label.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_edit_label.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_label.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_label.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_nt_edit_label.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_nt_edit_label, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 200, 200, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_edit_label); return false; } x += m_section_nt_edit_label.XSize() + 20; // Label id texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_label_id)]; m_section_nt_edit_label_id.FontSize(10); m_section_nt_edit_label_id.Font("Arial"); m_section_nt_edit_label_id.CanvasFontSet(); width = m_section_nt_edit_label_id.m_canvas.TextWidth(texto); m_section_nt_edit_label_id.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_edit_label_id.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_edit_label_id.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_edit_label_id.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_edit_label_id.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_label_id.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_label_id.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_nt_edit_label_id.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_nt_edit_label_id, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 175, 175, AITASKRUNER_MAX_VLAUE_LABEL_ID, 0, 1, 0, 0)) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_edit_label_id); return false; } y += m_section_nt_edit_label_id.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; x = initial_x; // Fechas const datetime end = CTimeUtils::StartOfYear(TimeCurrent()); const datetime start = end - 31536000; // texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_start)]; m_section_nt_dc_dt_start.FontSize(10); m_section_nt_dc_dt_start.Font("Arial"); m_section_nt_dc_dt_start.CanvasFontSet(); width = m_section_nt_dc_dt_start.m_canvas.TextWidth(texto); m_section_nt_dc_dt_start.FontSize(10); m_section_nt_dc_dt_start.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_dc_dt_start.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); if(!p.CreateDropCalendar(m_section_nt_dc_dt_start, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_start)], main_window, 0, general_tabs, tab_index, x, y, width + 100 + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD, start)) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_dc_dt_start); return false; } x += m_section_nt_dc_dt_start.XSize() + 20; // texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_end)]; m_section_nt_dc_dt_end.FontSize(10); m_section_nt_dc_dt_end.Font("Arial"); m_section_nt_dc_dt_end.CanvasFontSet(); width = m_section_nt_dc_dt_end.m_canvas.TextWidth(texto); m_section_nt_dc_dt_end.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_dc_dt_end.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); if(!p.CreateDropCalendar(m_section_nt_dc_dt_end, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_end)], main_window, 0, general_tabs, tab_index, x, y, width + 100 + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD, end)) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_dc_dt_end); return false; } x = initial_x; y += m_section_nt_dc_dt_end.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Set file texto = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_st_file)]; m_section_nt_edit_st_file.FontSize(10); m_section_nt_edit_st_file.Font("Arial"); m_section_nt_edit_st_file.CanvasFontSet(); width = m_section_nt_edit_st_file.m_canvas.TextWidth(texto); m_section_nt_edit_st_file.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_edit_st_file.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED); m_section_nt_edit_st_file.GetTextBoxPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK); m_section_nt_edit_st_file.GetTextBoxPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER); m_section_nt_edit_st_file.GetTextBoxPointer().DefaultTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_st_file.GetTextBoxPointer().LabelColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL); m_section_nt_edit_st_file.GetTextBoxPointer().SelectedBackColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED); m_section_nt_edit_st_file.GetTextBoxPointer().SelectedTextColor(AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT); if(!p.CreateTextEdit(m_section_nt_edit_st_file, texto, main_window, 0, general_tabs, tab_index, false, x, y, width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 200, 200, "")) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_edit_st_file); return false; } y += m_section_nt_edit_st_file.YSize() + AIDATATASKRUNER_MAINTAB_GAP_YSEC; // Add task button m_section_nt_buttom_add_task.FontSize(9); m_section_nt_buttom_add_task.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_nt_buttom_add_task.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK); m_section_nt_buttom_add_task.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER); if(!p.CreateButton(m_section_nt_buttom_add_task, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_buttom_add_task)], main_window, 0, general_tabs, tab_index, x, y, 125)) { AIDATATASKRUNER_ERROR_CREATION(m_section_nt_buttom_add_task); return false; } //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::CreatePendigTab(CWndCreate *p, CWindow &main_window, CTabs &general_tabs, int tab_index, int top_gap, int left_gap, int right_gap, int bottom_gap) { //--- int x = left_gap + 5; int y = top_gap + 10; //--- #define TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XSIZE (130) #define TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XGAP (18) //--- m_section_buttom_pending_load.FontSize(9); m_section_buttom_pending_load.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_buttom_pending_load.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK); m_section_buttom_pending_load.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER); if(!p.CreateButton(m_section_buttom_pending_load, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_pending_load)], main_window, 0, general_tabs, tab_index, x, y, TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XSIZE)) { AIDATATASKRUNER_ERROR_CREATION(m_section_buttom_pending_load); return false; } x += m_section_buttom_pending_load.XSize() + 20; // m_section_buttom_pending_save.FontSize(9); m_section_buttom_pending_save.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_buttom_pending_save.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK); m_section_buttom_pending_save.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER); if(!p.CreateButton(m_section_buttom_pending_save, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_pending_save)] , main_window, 0, general_tabs, tab_index, x, y, TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XSIZE)) { AIDATATASKRUNER_ERROR_CREATION(m_section_buttom_pending_save); return false; } x += m_section_buttom_pending_save.XSize() + 20; // m_section_buttom_execute_all.FontSize(9); m_section_buttom_execute_all.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_buttom_execute_all.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK); m_section_buttom_execute_all.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER); if(!p.CreateButton(m_section_buttom_execute_all, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_execute_all)] , main_window, 0, general_tabs, tab_index, x, y, TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XSIZE)) { AIDATATASKRUNER_ERROR_CREATION(m_section_buttom_execute_all); return false; } x += m_section_buttom_execute_all.XSize() + 20; // m_section_buttom_clean.FontSize(9); m_section_buttom_clean.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY); m_section_buttom_clean.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK); m_section_buttom_clean.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER); if(!p.CreateButton(m_section_buttom_clean, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_clean)] , main_window, 0, general_tabs, tab_index, x, y, TASKRUNERAIDGENMAIN_PENDINGTAB_BOOTON_XSIZE)) { AIDATATASKRUNER_ERROR_CREATION(m_section_buttom_clean); return false; } //--- y += 25; x = left_gap + 5; #define AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL (9) #define AIDATATASKRUNER_TASK_TABLLE_SIMBOLO (0) #define AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER (1) #define AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME (2) #define AIDATATASKRUNER_TASK_TABLLE_LABEL (3) #define AIDATATASKRUNER_TASK_TABLLE_LABEL_ID (4) #define AIDATATASKRUNER_TASK_TABLLE_DESDE (5) #define AIDATATASKRUNER_TASK_TABLLE_HASTA (6) #define AIDATATASKRUNER_TASK_TABLLE_ESTADO (7) #define AIDATATASKRUNER_TASK_TABLLE_MODIFICAR (8) //--- string headers[]; const string header_str = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_pending_table) + "_header"]; if(!StrTo::CstArray(headers, header_str, '|', true)) { LogError(StringFormat("Fallo al hacer str to arrary str, str = %s", header_str), FUNCION_ACTUAL); return false; } ArrayResize(headers, AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL); // Trim en caso de exendete // Aling ENUM_ALIGN_MODE align[AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL]; ArrayFill(align, 0, AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, ALIGN_LEFT); //--- Colores // Headers m_section_pending_table.HeadersColor(C'0x2A,0x4A,0x6A'); // azul oscuro m_section_pending_table.HeadersColorHover(AIDATATASKRUNER_COLOR_ACCENT); // azul accent hover m_section_pending_table.HeadersColorPressed(C'0x1E,0x38,0x52'); // más oscuro al presionar m_section_pending_table.HeadersTextColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY); // Celdas m_section_pending_table.CellColor(AIDATATASKRUNER_COLOR_FONDO_WIN); // C'37,40,54' m_section_pending_table.CellColorHover(AIDATATASKRUNER_COLOR_EDIT_BACK); // C'0x37,0x3D,0x53' hover sutil m_section_pending_table.CElement::BackColor(AIDATATASKRUNER_COLOR_FONDO_WIN); // Grid m_section_pending_table.GridColor(AIDATATASKRUNER_COLOR_BORDER); // C'58,63,82' sutil // Texto celdas - vía CellInitialize usa m_label_color // necesitas setearlo antes de crear: m_section_pending_table.m_label_color = AIDATATASKRUNER_COLOR_TEXT_SECONDARY; //--- CScrollH *sh = m_section_pending_table.GetScrollHPointer(); // Fondo de la barra (el riel) sh.BackColor(AIDATATASKRUNER_COLOR_FONDO_TAB); // C'26,29,39' - oscuro // Ползunок (thumb) en 3 estados sh.ThumbColor(AIDATATASKRUNER_COLOR_BORDER); // C'58,63,82' - reposo sutil sh.ThumbColorHover(AIDATATASKRUNER_COLOR_BORDER_HOVER); // C'61,142,240' - hover azul sh.ThumbColorPressed(AIDATATASKRUNER_COLOR_ACCENT); // C'0x69,0xA8,0xF3' - presionado // Forzar iconos blancos sh.IncFile((string)RESOURCE_SCROLL_LEFT_WHITE); sh.IncFileLocked((string)RESOURCE_SCROLL_LEFT_WHITE); sh.IncFilePressed((string)RESOURCE_SCROLL_LEFT_WHITE); sh.DecFile((string)RESOURCE_SCROLL_RIGHT_WHITE); sh.DecFileLocked((string)RESOURCE_SCROLL_RIGHT_WHITE); sh.DecFilePressed((string)RESOURCE_SCROLL_RIGHT_WHITE); //--- Base m_section_pending_table.CellYSize(30); m_section_pending_table.FontSize(10); m_section_pending_table.HeaderYSize(25); m_section_pending_table.IsSortMode(true); m_section_pending_table.DefaultTextAlign(ALIGN_LEFT); // m_section_pending_table.TableSize(AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, 1); // m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO, TYPE_STRING); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO, 0, ""); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER, TYPE_STRING); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER, 0, ""); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME, TYPE_STRING); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME, 0, ""); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_LABEL, TYPE_STRING); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL, 0, ""); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_LABEL_ID, TYPE_LONG); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL_ID, 0, "0"); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_DESDE, TYPE_DATETIME); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_DESDE, 0, TimeToString(0)); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_HASTA, TYPE_DATETIME); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_HASTA, 0, TimeToString(0)); m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_ESTADO, TYPE_STRING); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_ESTADO, 0, ""); // m_section_pending_table.SetImages(AIDATATASKRUNER_TASK_TABLLE_ESTADO, 0, g_taskruner_ai_dgen_main_images); // m_section_pending_table.ChangeImage(AIDATATASKRUNER_TASK_TABLLE_ESTADO, 0, 2); // gris // m_section_pending_table.DataType(AIDATATASKRUNER_TASK_TABLLE_MODIFICAR, TYPE_DATETIME); // int arr_offset_imgeage_x[AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL]; int arr_offset_imgeage_y[AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL]; ArrayFill(arr_offset_imgeage_x, 0, AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, 0); ArrayFill(arr_offset_imgeage_y, 0, AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, 0); arr_offset_imgeage_y[AIDATATASKRUNER_TASK_TABLLE_ESTADO] = 5; arr_offset_imgeage_x[AIDATATASKRUNER_TASK_TABLLE_ESTADO] = 5; m_section_pending_table.ImageXOffset(arr_offset_imgeage_x); m_section_pending_table.ImageYOffset(arr_offset_imgeage_y); //--- int text_x_offset[AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL]; ::ArrayInitialize(text_x_offset, 10); text_x_offset[AIDATATASKRUNER_TASK_TABLLE_ESTADO] += 15; m_section_pending_table.TextXOffset(text_x_offset); // Width //--- int widths[AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL]; //--- Hagamos un resize debdio a que los nombres de los params y modelos aveces son GRADENS widths[AIDATATASKRUNER_TASK_TABLLE_SIMBOLO ] = 100; widths[AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER ] = 100; widths[AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME ] = 125; widths[AIDATATASKRUNER_TASK_TABLLE_LABEL ] = 150; widths[AIDATATASKRUNER_TASK_TABLLE_LABEL_ID ] = 125; widths[AIDATATASKRUNER_TASK_TABLLE_DESDE ] = 175; widths[AIDATATASKRUNER_TASK_TABLLE_HASTA ] = 175; widths[AIDATATASKRUNER_TASK_TABLLE_ESTADO ] = 175; widths[AIDATATASKRUNER_TASK_TABLLE_MODIFICAR ] = 150; //--- m_section_pending_table.ColumnsWidth(widths); //--- if(!p.CreateTable( m_section_pending_table, main_window, 0, general_tabs, tab_index, AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, 1, headers, x, y, 0, 0, false, false, right_gap + 5, left_gap + 5 )) { AIDATATASKRUNER_ERROR_CREATION(m_section_pending_table); return false; } //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::OnChangeDate(const long lparam, const double dparam) { //--- if(m_tabs.SelectedTab() == TASKRUNERAIDGENMAIN_TAB_MAIN) { if(lparam == m_section_nt_dc_dt_start.Id()) { m_runer.OnCurrentTask_ModifyDateStart(datetime(long(dparam))); return true; } if(lparam == m_section_nt_dc_dt_end.Id()) { m_runer.OnCurrentTask_ModifyDateEnd(datetime(long(dparam))); return true; } } //--- return false; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::OnChangeComBox(const long lparam) { //--- if(m_tabs.SelectedTab() == TASKRUNERAIDGENMAIN_TAB_MAIN) { if(lparam == m_section_nt_combox_timerame.Id()) { m_runer.OnCurrentTask_ModifyTimeframe(g_arr_strtf_to_timeframes[m_section_nt_combox_timerame.GetListViewPointer().SelectedItemIndex()]); return true; } } //--- return false; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::UpdateStateInTable(const int index, const int state) { m_section_pending_table.ChangeImage(AIDATATASKRUNER_TASK_TABLLE_ESTADO, index, state, true); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_ESTADO, index, g_taskruner_ai_dgen_main_images_label[index], 0, true); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::OnClickBottom(const long lparam) { switch(m_tabs.SelectedTab()) { case TASKRUNERAIDGENMAIN_TAB_MAIN: { if(m_section_nt_buttom_add_task.Id() == lparam) { if(m_runer.OnCurrentTask_Add()) { OnAddTask(); MessageBox("Exito al añadir tarea", "Info", MB_OK | MB_ICONINFORMATION); } else { MessageBox(StringFormat("Fallo al añadir tarea\n%s", m_runer.m_last_error_msg), "Error", MB_OK | MB_ICONERROR); } return true; } } case TASKRUNERAIDGENMAIN_TAB_TASK: { if(m_section_buttom_pending_load.Id() == lparam) // Catgamos de arhcivo y rellenamos tabla y rpersnentaicon interna { // Selecionanos if(FileSelectDialog("Escoje un archivo para cargar tareas", m_section_bsic_edit_main_folder.GetValue(), "CSV files (*.csv)|*.csv", AIDATATASK_RUNNER_FSD_COMON_FLAG | FSD_FILE_MUST_EXIST, g_aitaskruner_arr_dyn, AIDATATASKRUNER_PATH_TASK) != 1) { MessageBox("Fallo al cargar tareas, no se ha selecionado un archivo", "Error", MB_OK | MB_ICONERROR); return true; // Acerto pero fallo } // Solo si hay existo al setear if(m_runer.SetTastByFile(g_aitaskruner_arr_dyn[0])) { const int t = m_runer.TaskSize(); m_section_pending_table.TableSize(AIDATATASKRUNER_TASK_TABLLE_COL_TOTAL, t); for(int i = 0; i < t; i++) { const TaskTester task = m_runer.GetTaskByIndex(i); //--- m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO, i, task.symbol); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER, i, task.symbol_folder); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME, i, TimeframeToStrShort(task.timeframe)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL, i, task.label); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL_ID, i, string(task.label_id)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_DESDE, i, string(task.start_date)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_HASTA, i, string(task.end_date)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_ESTADO, i, g_taskruner_ai_dgen_main_images_label[TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE]); m_section_pending_table.SetImages(AIDATATASKRUNER_TASK_TABLLE_ESTADO, i, g_taskruner_ai_dgen_main_images); m_section_pending_table.ChangeImage(AIDATATASKRUNER_TASK_TABLLE_ESTADO, i, TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE); // gris } } else { MessageBox(StringFormat("Fallo al cargar tareas\n%s", m_runer.m_last_error_msg), AIDATATASKRUNER_CAPTION, MB_OK | MB_ICONERROR); } return true; } else if(m_section_buttom_pending_save.Id() == lparam) { if(FileSelectDialog("Escoje un archivo para guardar tareas", m_section_bsic_edit_main_folder.GetValue(), "CSV files (*.csv)|*.csv", AIDATATASK_RUNNER_FSD_COMON_FLAG, g_aitaskruner_arr_dyn, AIDATATASKRUNER_PATH_TASK) != 1) { MessageBox("Fallo al cargar tareas, no se ha selecionado un archivo", "Error", MB_OK | MB_ICONERROR); return true; // Acerto pero fallo } if(!m_runer.SaveAllTaskInFile(g_aitaskruner_arr_dyn[0])) { MessageBox(StringFormat("Fallo al guardar tareas\n%s", m_runer.m_last_error_msg), AIDATATASKRUNER_CAPTION, MB_OK | MB_ICONERROR); } return true; } else if(m_section_buttom_clean.Id() == lparam) { m_runer.m_last_error_msg = ""; // HACEMOS esto por que pueda ver que no haya tareas y se imprima un mensaje int arr[]; const int t = m_runer.CleanAllTask(arr); if(t <= 0) // Internsmnte solo { MessageBox(StringFormat("Fallo al limpiar todas las tareas\n%s", m_runer.m_last_error_msg), AIDATATASKRUNER_CAPTION, MB_OK | MB_ICONERROR); } else { m_section_pending_table.DeleteMultipleRows(arr); return true; } } else if(m_section_buttom_execute_all.Id() == lparam) { m_runer.m_last_error_msg = ""; // HACEMOS esto por que pueda ver que no haya tareas y se imprima un mensaje int arr[]; const int t = m_runer.RunAllTask(arr); if(t <= 0) { MessageBox(StringFormat("No hay tareas para ejeuctar\n%s", m_runer.m_last_error_msg), AIDATATASKRUNER_CAPTION, MB_OK | MB_ICONWARNING); } else { // actuliamos el estaod de los elemntos devueltos por out estos ahora estan en cola ActulizeTableAllTask(TASKRUNERAIDGENMAIN_IMG_LABEL_ENCOLA, arr, t); } return true; } } } //--- return false; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::OnAddTask(void) { //--- Base const TaskTester t = m_runer.CurrentTask(); // Ultimo (task current ya se reinicio) const uint total_rows = m_section_pending_table.RowsTotal(); //--- Escojemos el indice int idx; if(total_rows == 1 && m_section_pending_table.GetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO, 0) == "") { idx = 0; } else { // Hay mas de un row idx = (int)total_rows; m_section_pending_table.AddRow(idx); } // m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO, idx, t.symbol); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_SIMBOLO_FOLDER, idx, t.symbol_folder); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_TIMEFRAME, idx, TimeframeToStrShort(t.timeframe)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL, idx, t.label); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_LABEL_ID, idx, string(t.label_id)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_DESDE, idx, TimeToString(t.start_date)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_HASTA, idx, TimeToString(t.end_date)); m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_ESTADO, idx, g_taskruner_ai_dgen_main_images_label[TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE]); m_section_pending_table.SetImages(AIDATATASKRUNER_TASK_TABLLE_ESTADO, idx, g_taskruner_ai_dgen_main_images); m_section_pending_table.ChangeImage(AIDATATASKRUNER_TASK_TABLLE_ESTADO, idx, TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE); // gris m_section_pending_table.Update(true); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::ActulizeTableAllTask(const int index_s, int &rows[], int size) { for(int i = 0; i < size; i++) { m_section_pending_table.SetValue(AIDATATASKRUNER_TASK_TABLLE_ESTADO, rows[i], g_taskruner_ai_dgen_main_images_label[index_s]); m_section_pending_table.ChangeImage(AIDATATASKRUNER_TASK_TABLLE_ESTADO, rows[i], index_s); // gris } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTaskRunerAiTabDGenMain::OnTextEdit(const long lparam) { //--- if(m_tabs.SelectedTab() == TASKRUNERAIDGENMAIN_TAB_MAIN) { if(lparam == m_section_bsic_edit_files.Id()) { m_runer.OnCurrentTask_ModifyConfigMoveFile(m_section_bsic_edit_files.GetValue()); return true; } else if(lparam == m_section_bsic_edit_main_folder.Id()) { m_runer.OnCurrentTask_ModifyConfigMainFolder(m_section_bsic_edit_main_folder.GetValue()); return true; } else if(lparam == m_section_bsic_edit_expert_path.Id()) { m_runer.OnCurrentTask_ModifyConfigMoveFile(m_section_bsic_edit_expert_path.GetValue()); return true; } else if(lparam == m_section_bsic_edit_progres_csv_file.Id()) { m_runer.OnCurrentTask_ModifyConfigProgresCsvFile(m_section_bsic_edit_progres_csv_file.GetValue()); return true; } //--- else if(lparam == m_section_nt_edit_symbol.Id()) { m_runer.OnCurrentTask_ModifySimbolo(m_section_nt_edit_symbol.GetValue()); return true; } else if(lparam == m_section_nt_edit_symbol_folder.Id()) { m_runer.OnCurrentTask_ModifySimboloFolder(m_section_nt_edit_symbol_folder.GetValue()); return true; } else if(lparam == m_section_nt_edit_label.Id()) { m_runer.OnCurrentTask_ModifyLabel(m_section_nt_edit_label.GetValue()); return true; } else if(lparam == m_section_nt_edit_label_id.Id()) { m_runer.OnCurrentTask_ModifyLabelId(int(m_section_nt_edit_label_id.GetValue())); return true; } else if(lparam == m_section_nt_edit_st_file.Id()) { m_runer.OnCurrentTask_ModifySetFile(m_section_nt_edit_st_file.GetValue()); return true; } } //--- return false; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::OnLenguajeChange(void) { // const bool true = m_base_tab.SelectedTab() == m_base_tab_idx && m_base_tab.IsVisible(); //--- Update tab text string txt[TASKRUNERAIDGENMAIN_TAB_TOTAL] = {m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_tabs) + "_0"], m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_tabs) + "_1"]}; const int t = m_tabs.TabsTotal(); for(int i = 0; i < t; i++) { m_tabs.Text(i, txt[i]); } m_tabs.Update(); //--- const int idx = m_tabs.SelectedTab(); UpdateTextMain(); UpdateTextTask(); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::UpdateTextTask() { // Buttons m_section_buttom_pending_load.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_pending_load)]); m_section_buttom_pending_load.Update(true); m_section_buttom_pending_save.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_pending_save)]); m_section_buttom_pending_save.Update(true); m_section_buttom_execute_all.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_execute_all)]); m_section_buttom_execute_all.Update(true); m_section_buttom_clean.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_buttom_clean)]); m_section_buttom_clean.Update(true); // Headers de la tabla const string header_str = m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_pending_table) + "_header"]; string headers[]; if(StrTo::CstArray(headers, header_str, '|', true)) { const int cols = (int)m_section_pending_table.ColumnsTotal(); for(int i = 0; i < cols; i++) { m_section_pending_table.SetHeaderText(i, headers[i]); } m_section_pending_table.Update(true); } else { LogError("Fallo al hacer split str array en table header", FUNCION_ACTUAL); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTaskRunerAiTabDGenMain::UpdateTextMain() { //--- Basic config label m_label_basic_config.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_basic_config)]); m_label_basic_config.Update(true); //--- Basic config edits m_section_bsic_edit_files.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_files)]); m_section_bsic_edit_expert_path.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_expert_path)]); m_section_bsic_edit_progres_csv_file.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_progres_csv_file)]); m_section_bsic_edit_main_folder.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_bsic_edit_main_folder)]); //--- Resize basic config edits string texto; int width; texto = m_section_bsic_edit_files.LabelText(); m_section_bsic_edit_files.CanvasFontSet(); width = m_section_bsic_edit_files.m_canvas.TextWidth(texto); m_section_bsic_edit_files.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 100); m_section_bsic_edit_files.Update(true); texto = m_section_bsic_edit_expert_path.LabelText(); m_section_bsic_edit_expert_path.CanvasFontSet(); width = m_section_bsic_edit_expert_path.m_canvas.TextWidth(texto); m_section_bsic_edit_expert_path.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 300); m_section_bsic_edit_expert_path.Update(true); texto = m_section_bsic_edit_progres_csv_file.LabelText(); m_section_bsic_edit_progres_csv_file.CanvasFontSet(); width = m_section_bsic_edit_progres_csv_file.m_canvas.TextWidth(texto); m_section_bsic_edit_progres_csv_file.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 300); m_section_bsic_edit_progres_csv_file.Update(true); texto = m_section_bsic_edit_main_folder.LabelText(); m_section_bsic_edit_main_folder.CanvasFontSet(); width = m_section_bsic_edit_main_folder.m_canvas.TextWidth(texto); m_section_bsic_edit_main_folder.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 250); m_section_bsic_edit_main_folder.Update(true); //--- New task label m_label_new_task.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_label_new_task)]); m_label_new_task.Update(true); //--- New task fields m_section_nt_edit_symbol.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_symbol)]); m_section_nt_edit_symbol_folder.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_symbol_folder)]); m_section_nt_combox_timerame.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_combox_timerame)]); m_section_nt_edit_label.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_label)]); m_section_nt_edit_label_id.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_label_id)]); m_section_nt_dc_dt_start.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_start)]); m_section_nt_dc_dt_end.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_dc_dt_end)]); m_section_nt_edit_st_file.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_edit_st_file)]); //--- Resize new task edits y combox texto = m_section_nt_edit_symbol.LabelText(); m_section_nt_edit_symbol.CanvasFontSet(); width = m_section_nt_edit_symbol.m_canvas.TextWidth(texto); m_section_nt_edit_symbol.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 150); m_section_nt_edit_symbol.Update(true); texto = m_section_nt_edit_symbol_folder.LabelText(); m_section_nt_edit_symbol_folder.CanvasFontSet(); width = m_section_nt_edit_symbol_folder.m_canvas.TextWidth(texto); m_section_nt_edit_symbol_folder.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 150); m_section_nt_edit_symbol_folder.Update(true); texto = m_section_nt_combox_timerame.LabelText(); m_section_nt_combox_timerame.CanvasFontSet(); width = m_section_nt_combox_timerame.m_canvas.TextWidth(texto); m_section_nt_combox_timerame.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 150); m_section_nt_combox_timerame.Update(true); texto = m_section_nt_edit_label.LabelText(); m_section_nt_edit_label.CanvasFontSet(); width = m_section_nt_edit_label.m_canvas.TextWidth(texto); m_section_nt_edit_label.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 200); m_section_nt_edit_label.Update(true); texto = m_section_nt_edit_label_id.LabelText(); m_section_nt_edit_label_id.CanvasFontSet(); width = m_section_nt_edit_label_id.m_canvas.TextWidth(texto); m_section_nt_edit_label_id.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 175); m_section_nt_edit_label_id.Update(true); texto = m_section_nt_dc_dt_start.LabelText(); m_section_nt_dc_dt_start.CanvasFontSet(); width = m_section_nt_dc_dt_start.m_canvas.TextWidth(texto); m_section_nt_dc_dt_start.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 100); m_section_nt_dc_dt_start.Update(true); texto = m_section_nt_dc_dt_end.LabelText(); m_section_nt_dc_dt_end.CanvasFontSet(); width = m_section_nt_dc_dt_end.m_canvas.TextWidth(texto); m_section_nt_dc_dt_end.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 100); m_section_nt_dc_dt_end.Update(true); texto = m_section_nt_edit_st_file.LabelText(); m_section_nt_edit_st_file.CanvasFontSet(); width = m_section_nt_edit_st_file.m_canvas.TextWidth(texto); m_section_nt_edit_st_file.XSize(width + AIDATATASKRUNER_MAINTAB_LABEL_X_PAD + 200); m_section_nt_edit_st_file.Update(true); //--- Button m_section_nt_buttom_add_task.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_section_nt_buttom_add_task)]); m_section_nt_buttom_add_task.Update(true); } //+------------------------------------------------------------------+ #endif // AIDATATASKRUNER_UI_DATAGENERATIONTAB_BASE_MQH //+------------------------------------------------------------------+