2026-03-27 17:56:28 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| General.mqh |
|
| | | //| Copyright 2026, Niquel Mendoza. |
|
| | | //| https://www.mql5.com/es/users/nique_372 |
|
| | | //+------------------------------------------------------------------+
|
| | | #property copyright "Copyright 2026, Niquel Mendoza."
|
| | | #property link "https://www.mql5.com/es/users/nique_372"
|
| | | #property strict
|
| | |
|
| | | #ifndef AIDATATASKRUNER_UI_TABUTIL_GENERAL_MQH
|
| | | #define AIDATATASKRUNER_UI_TABUTIL_GENERAL_MQH
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| Include |
|
| | | //+------------------------------------------------------------------+
|
| | | #include "..\\Defines.mqh"
|
| | |
|
| | | //---
|
| | | string g_tabuils_arr_type_folder[2] =
|
| | | {
|
| | | "MQL5\\Files folder",
|
| | | "Common folder"
|
| | | };
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | class CTabUtilsGeneral : public CGuiBaseComponent<CLoggerBase>
|
| | | {
|
| | | private:
|
| | | //-- Titulo
|
| | | CTextLabel m_label_tit_general_config; // General
|
| | |
|
| | | // Sobre que trabaja
|
| | | CComboBox m_combox_common_or_files;
|
| | | int m_common_flag;
|
| | | bool m_common_flag_val;
|
| | |
|
| | | // Archivo main folder
|
| | | CTextLabel m_label_file_main;
|
| | | CTextLabel m_label_file_main_val;
|
| | | CButton m_btn_browse_file_main;
|
| | | string m_main_folder;
|
| | |
|
| | | public:
|
2026-03-27 22:30:19 -05:00 | | | CTabUtilsGeneral(void) : CGuiBaseComponent<CLoggerBase>("CTabUtilsGeneral"), m_common_flag_val(false), m_common_flag(0) {}
|
2026-03-27 17:56:28 -05:00 | | | ~CTabUtilsGeneral(void) {}
|
| | |
|
| | | //---
|
| | | bool Create(CWndCreate* p, CWindow& main_window, int top_gap, int left_gap, int right_gap, int bottom_gap);
|
| | |
|
| | | //---
|
| | | bool OnClickButtom(const long lparam);
|
| | | void OnLenguajeChange() override final;
|
| | | bool OnComboxItemClick(const long lparam);
|
| | |
|
| | | //---
|
| | | __forceinline string MainFolder() const { return m_main_folder; }
|
| | | __forceinline bool ComonFlagVal() const { return m_common_flag_val; }
|
| | | __forceinline int ComonFlag() const { return m_common_flag; }
|
| | | };
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | bool CTabUtilsGeneral::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 + 10;
|
| | | const int inital_x = x;
|
| | |
|
| | | //--- Titulo general
|
| | | m_label_tit_general_config.FontSize(14);
|
| | | m_label_tit_general_config.Font("Arial");
|
| | | m_label_tit_general_config.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY);
|
| | | m_label_tit_general_config.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED);
|
| | | if(!p.CreateTextLabel(m_label_tit_general_config, m_language[GUIBASE_COMPONENT_NAME(m_label_tit_general_config)],
|
| | | main_window, 0, m_base_tab, m_base_tab_idx, x, y, 200))
|
| | | {
|
| | | GUIBASE_ERROR_CREATION(m_label_tit_general_config);
|
| | | return false;
|
| | | }
|
| | | y += m_label_tit_general_config.YSize() + 10;
|
| | |
|
| | | //--- ComboBox common/files
|
| | | m_combox_common_or_files.FontSize(10);
|
| | | m_combox_common_or_files.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
| | | m_combox_common_or_files.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED);
|
| | | m_combox_common_or_files.GetListViewPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK);
|
| | | m_combox_common_or_files.GetListViewPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER);
|
| | | m_combox_common_or_files.GetListViewPointer().LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
| | | m_combox_common_or_files.GetButtonPointer().LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
| | | m_combox_common_or_files.GetButtonPointer().BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK);
|
| | | m_combox_common_or_files.GetButtonPointer().BorderColor(AIDATATASKRUNER_COLOR_EDIT_BORDER);
|
| | | m_combox_common_or_files.Tooltip(m_language.Tooltip(GUIBASE_COMPONENT_NAME(m_combox_common_or_files)));
|
| | | if(!p.CreateCombobox(m_combox_common_or_files, m_language[GUIBASE_COMPONENT_NAME(m_combox_common_or_files)],
|
2026-03-27 22:30:19 -05:00 | | | main_window, 0, m_base_tab, m_base_tab_idx, false, x, y, 125 + 10 + 110, 125,
|
2026-03-27 17:56:28 -05:00 | | | g_tabuils_arr_type_folder, 150))
|
| | | {
|
| | | GUIBASE_ERROR_CREATION(m_combox_common_or_files);
|
| | | return false;
|
| | | }
|
| | | m_combox_common_or_files.m_button.IconFile(RESOURCE_DOWN_THIN_WHITE);
|
| | | m_combox_common_or_files.m_button.IconFileLocked(RESOURCE_DOWN_THIN_WHITE);
|
| | | m_combox_common_or_files.m_button.CElement::IconFilePressed(RESOURCE_UP_THIN_WHITE);
|
| | | m_combox_common_or_files.m_button.CElement::IconFilePressedLocked(RESOURCE_UP_THIN_WHITE);
|
| | |
|
| | | //---
|
| | | y += m_combox_common_or_files.YSize() + 10;
|
| | |
|
| | | //--- Label main folder
|
| | | m_label_file_main.FontSize(10);
|
| | | m_label_file_main.Font("Arial");
|
| | | m_label_file_main.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
| | | m_label_file_main.BackColor(AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED);
|
| | | if(!p.CreateTextLabel(m_label_file_main, m_language[GUIBASE_COMPONENT_NAME(m_label_file_main)],
|
2026-03-27 22:30:19 -05:00 | | | main_window, 0, m_base_tab, m_base_tab_idx, x, y, 80, 25))
|
2026-03-27 17:56:28 -05:00 | | | {
|
| | | GUIBASE_ERROR_CREATION(m_label_file_main);
|
| | | return false;
|
| | | }
|
| | | x += m_label_file_main.XSize() + 5;
|
| | |
|
| | | //--- Label val main folder
|
| | | m_label_file_main_val.FontSize(10);
|
| | | m_label_file_main_val.Font("Arial");
|
| | | m_label_file_main_val.LabelColor(AIDATATASKRUNER_COLOR_TEXT_PRIMARY);
|
| | | m_label_file_main_val.BackColor(AIDATATASKRUNER_COLOR_EDIT_BACK);
|
| | | m_label_file_main_val.LabelXGap(5);
|
| | | m_label_file_main_val.LabelYGap(3);
|
| | | m_label_file_main_val.Tooltip(m_language.Tooltip(GUIBASE_COMPONENT_NAME(m_label_file_main_val)));
|
| | | if(!p.CreateTextLabel(m_label_file_main_val, "",
|
| | | main_window, 0, m_base_tab, m_base_tab_idx, x, y, 350, 25))
|
| | | {
|
| | | GUIBASE_ERROR_CREATION(m_label_file_main_val);
|
| | | return false;
|
| | | }
|
| | | x = inital_x;
|
| | | y += m_label_file_main_val.YSize() + 8;
|
| | |
|
| | | //--- Browse main folder
|
2026-03-29 11:06:50 -05:00 | | | m_btn_browse_file_main.AddImagesGroup(5, 2, g_eafmod_ic_arr_folderw10_image);
|
2026-03-27 22:30:19 -05:00 | | | m_btn_browse_file_main.ChangeImage(0, 0);
|
2026-03-28 07:07:21 -05:00 | | | m_btn_browse_file_main.LabelXGap(22);
|
2026-03-27 17:56:28 -05:00 | | | m_btn_browse_file_main.FontSize(10);
|
| | | m_btn_browse_file_main.Font("Arial");
|
| | | m_btn_browse_file_main.BackColor(AIDATATASKRUNER_COLOR_BTN_BACK);
|
| | | m_btn_browse_file_main.LabelColor(AIDATATASKRUNER_COLOR_TEXT_SECONDARY);
|
| | | m_btn_browse_file_main.BorderColor(AIDATATASKRUNER_COLOR_BTN_BORDER);
|
| | | m_btn_browse_file_main.Tooltip(m_language.Tooltip(GUIBASE_COMPONENT_NAME(m_btn_browse_file_main)));
|
| | | if(!p.CreateButton(m_btn_browse_file_main, m_language[GUIBASE_COMPONENT_NAME(m_btn_browse_file_main)],
|
2026-03-27 22:30:19 -05:00 | | | main_window, 0, m_base_tab, m_base_tab_idx, x, y, 100))
|
2026-03-27 17:56:28 -05:00 | | | {
|
| | | GUIBASE_ERROR_CREATION(m_btn_browse_file_main);
|
| | | return false;
|
| | | }
|
| | | //x = inital_x;
|
| | | //y += m_btn_browse_file_main.YSize() + 20; // gap mayor al final de seccion
|
| | |
|
| | | //---
|
| | | return true;
|
| | | }
|
| | |
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | void CTabUtilsGeneral::OnLenguajeChange(void)
|
| | | {
|
2026-03-27 22:30:19 -05:00 | | | UpdateTBasic(m_label_tit_general_config, GUIBASE_COMPONENT_NAME(m_label_tit_general_config), false);
|
| | | ResizeTElement(m_combox_common_or_files, GUIBASE_COMPONENT_NAME(m_combox_common_or_files), 125, 10);
|
| | | UpdateTBasic(m_label_file_main, GUIBASE_COMPONENT_NAME(m_label_file_main), false);
|
| | | UpdateTBasic(m_btn_browse_file_main, GUIBASE_COMPONENT_NAME(m_btn_browse_file_main), true);
|
| | | m_label_file_main_val.Tooltip(m_language.Tooltip(GUIBASE_COMPONENT_NAME(m_label_file_main_val)));
|
2026-03-27 17:56:28 -05:00 | | | }
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | bool CTabUtilsGeneral::OnComboxItemClick(const long lparam)
|
| | | {
|
| | | if(m_combox_common_or_files.Id() == lparam)
|
| | | {
|
| | | m_common_flag = m_combox_common_or_files.GetListViewPointer().SelectedItemIndex() * FILE_COMMON;
|
| | | m_common_flag_val = m_common_flag == FILE_COMMON;
|
| | | return true;
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | bool CTabUtilsGeneral::OnClickButtom(const long lparam)
|
| | | {
|
| | | //--- Main folder
|
| | | if(m_btn_browse_file_main.Id() == lparam)
|
| | | {
|
| | | //---
|
| | | string arr[];
|
2026-03-27 22:30:19 -05:00 | | | if(FileSelectDialog(GUIBASE_MSG("flselect_main_folder"), NULL, NULL, (m_common_flag_val ? FILE_COMMON : 0) | FSD_SELECT_FOLDER,
|
2026-03-27 17:56:28 -05:00 | | | arr, NULL) != 1)
|
| | | {
|
| | | MessageBox(GUIBASE_MSG("error_select_file"), GUIBASE_COMMON("error"), MB_ICONERROR | MB_OK);
|
| | | return true;
|
| | | }
|
| | | //---
|
2026-03-27 22:30:19 -05:00 | | | arr[0] += "\\";
|
2026-03-27 17:56:28 -05:00 | | | m_label_file_main_val.LabelText(arr[0]); // ruta completa aqui
|
| | | m_label_file_main_val.Update(true);
|
| | | m_main_folder = arr[0];
|
| | | return true;
|
| | | }
|
| | | //---
|
| | | return false;
|
| | | }
|
| | | //+------------------------------------------------------------------+
|
| | | #endif // AIDATATASKRUNER_UI_TABUTIL_GENERAL_MQH
|