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
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
class CTaskRunerAiTabConfig : public CTaskRunnerBaseTab
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
CTextLabel m_label_titulo;
|
|
|
|
|
CComboBox m_combox_language;
|
|
|
|
|
|
|
|
|
|
CTaskRunnerBaseTab* m_tabs[];
|
|
|
|
|
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:
|
|
|
|
|
CTaskRunerAiTabConfig(void) : CTaskRunnerBaseTab("CTaskRunerAiTabConfig"), m_tabs_total(0) {}
|
|
|
|
|
~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
|
|
|
|
|
|
|
|
//---
|
|
|
|
|
void AddTab(CTaskRunnerBaseTab* tab)
|
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
if(!p.CreateCombobox(m_combox_language, m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_combox_language)],
|
|
|
|
|
main_window, 0, m_base_tab, m_base_tab_idx, false, x, y, 175, 100,
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
m_combox_language.LabelText(m_language[AIDATATASKRUNNERL_COMPONENT_NAME(m_combox_language)]);
|
|
|
|
|
m_combox_language.Update(redraw);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#endif // AIDATATASKRUNER_UI_CONFIG_CONFIGTAB_MQH
|