AiDataTaskRuner/Example/Main.mqh
2026-02-25 11:10:14 -05:00

123 строки
4 КиБ
MQL5

//+------------------------------------------------------------------+
//| 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
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include "..\\UI\\Main.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class CProgram : public CWndCreate
{
private:
//---
CTaskRunerMainTab m_main;
CWindow m_window;
CTabs m_general_tabs;
public:
CProgram(void) {}
~CProgram(void) {}
//---
bool CreateGUI(int WIDTH_PANEL, int HEIGHT_PANEL, uchar log_flags);
CTaskRunerMainTab* GetTaskRunerMainPtr() { return &m_main; }
//---
void OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam) override;
void OnDeinitEvent(const int reason) { CWndEvents::Destroy(); }
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CProgram::CreateGUI(int WIDTH_PANEL, int HEIGHT_PANEL, uchar log_flags)
{
//---
int width_panel = fmax(WIDTH_PANEL, 300);
m_window.CaptionColor(clrGray);
m_window.CaptionColorHover(clrGray);
m_window.CaptionColorLocked(clrBlack);
m_window.BorderColor(C'212,212,212');
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() + 22;
int right_gap = 4;
int bootom_gap = 4;
Print(top_gap); // Para tabs el y debe de inlcuir ya la cabezera
//---
string txt[] = {"Main", "EMpty"};
int width[] = {100, 100};
//m_general_tabs.TabsYSize()
m_general_tabs.BackColor(C'191,191,191');
m_general_tabs.BackColorPressed(C'201,203,205');
if(!CWndCreate::CreateTabs(m_general_tabs, m_window, 0, left_gap, top_gap, 0, 0, txt, width, TABS_TOP, true, true, right_gap, bootom_gap))
{
AIDATATASKRUNER_ERROR_CREATION_F(m_general_tabs);
return false;
}
top_gap += 1;
left_gap += 3;
//---
if(!m_main.Create(&this, m_window, m_general_tabs, 0, top_gap, left_gap, right_gap, bootom_gap))
{
AIDATATASKRUNER_ERROR_CREATION_F(m_main);
return false;
}
else
{
m_main.AddLogFlags(log_flags);
}
//---
CWndEvents::CompletedGUI();
return true;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(id == CHARTEVENT_CUSTOM + ON_END_EDIT)
{
m_main.OnTextEdit(lparam);
return;
}
if(id == CHARTEVENT_CUSTOM + ON_CLICK_BUTTON)
{
m_main.OnClickBottom(lparam);
return;
}
if(id == CHARTEVENT_CUSTOM + ON_CHANGE_DATE)
{
m_main.OnChangeDate(lparam, dparam);
return;
}
if(id == CHARTEVENT_CUSTOM + ON_CLICK_COMBOBOX_ITEM)
{
m_main.OnChangeComBox(lparam);
return;
}
}
//+------------------------------------------------------------------+