//+------------------------------------------------------------------+
//| ControlsLabel.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#propertycopyright"Copyright 2017, MetaQuotes Software Corp."
#propertylink"https://www.mql5.com"
#propertyversion"1.00"
#propertydescription"Control Panels and Dialogs. Demonstration class CLabel"
#include
#include
//+------------------------------------------------------------------+
//| defines |
//+------------------------------------------------------------------+
//--- indents and gaps
#defineINDENT_LEFT (11)// indent from left (with allowance for border width)
#defineINDENT_TOP (11)// indent from top (with allowance for border width)
#defineINDENT_RIGHT (11)// indent from right (with allowance for border width)
#defineINDENT_BOTTOM (11)// indent from bottom (with allowance for border width)
#defineCONTROLS_GAP_X (5)// gap by X coordinate
#defineCONTROLS_GAP_Y (5)// gap by Y coordinate
//--- for buttons
#defineBUTTON_WIDTH (100)// size by X coordinate
#defineBUTTON_HEIGHT (20)// size by Y coordinate
//--- for the indication area
#defineEDIT_HEIGHT (20)// size by Y coordinate
//--- for group controls
#defineGROUP_WIDTH (150)// size by X coordinate
#defineLIST_HEIGHT (179)// size by Y coordinate
#defineRADIO_HEIGHT (56)// size by Y coordinate
#defineCHECK_HEIGHT (93)// size by Y coordinate
//+------------------------------------------------------------------+
//| Class CControlsDialog |
//| Usage: main dialog of the Controls application |
//+------------------------------------------------------------------+
classCControlsDialog :publicCAppDialog
{
private:
CLabel m_label;// CLabel object
public:
CControlsDialog(void);
~CControlsDialog(void);
//--- create
virtualboolCreate(constlongchart,conststringname,constintsubwin,constintx1,constinty1,constintx2,constinty2);
//--- chart event handler
virtualboolOnEvent(constintid,constlong&lparam,constdouble&dparam,conststring&sparam);
protected:
//--- create dependent controls
boolCreateLabel(void);
//--- handlers of the dependent controls events
voidOnClickLabel(void);
};
//+------------------------------------------------------------------+
//| Event Handling |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Constructor |
//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog(void)
{
}
//+------------------------------------------------------------------+
//| Destructor |
//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog(void)
{
}
//+------------------------------------------------------------------+
//| Create |
//+------------------------------------------------------------------+
boolCControlsDialog::Create(constlongchart,conststringname,constintsubwin,constintx1,constinty1,constintx2,constinty2)
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
//--- create dependent controls
if(!CreateLabel())
return(false);
//--- succeed
return(true);
}
//+------------------------------------------------------------------+
//| Create the "CLabel" |
//+------------------------------------------------------------------+
boolCControlsDialog::CreateLabel(void)
{
//--- coordinates
intx1=INDENT_RIGHT;
inty1=INDENT_TOP+CONTROLS_GAP_Y;
intx2=x1+100;
inty2=y1+20;
//--- create
if(!m_label.Create(m_chart_id,m_name+"Label",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_label.Text("Label"))
return(false);
if(!Add(m_label))
return(false);
//--- succeed
return(true);
}
//+------------------------------------------------------------------+
//| Global Variables |
//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
intOnInit()
{
//--- create application dialog
if(!ExtDialog.Create(0,"Controls",0,40,40,380,344))
return(INIT_FAILED);
//--- run application
ExtDialog.Run();
//--- succeed
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
voidOnDeinit(constintreason)
{
//---
Comment("");
//--- destroy dialog
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+
//| Expert chart event function |
//+------------------------------------------------------------------+
voidOnChartEvent(constintid,// event ID
constlong& lparam,// event parameter of the long type
constdouble& dparam,// event parameter of the double type
conststring& sparam)// event parameter of the string type
{
ExtDialog.ChartEvent(id,lparam,dparam,sparam);
}