123 строки
4 КиБ
MQL5
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;
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|