77 lines
No EOL
3 KiB
MQL5
77 lines
No EOL
3 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| MBookPanel.mqh |
|
|
//| Copyright 2015, MetaQuotes Software Corp. |
|
|
//| http://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2015, MetaQuotes Software Corp."
|
|
#property link "http://www.mql5.com"
|
|
#include "Node.mqh"
|
|
#include "ElChart.mqh"
|
|
#include "ObjText.mqh";
|
|
//+------------------------------------------------------------------+
|
|
//| Состояние кнопки |
|
|
//+------------------------------------------------------------------+
|
|
enum ENUM_BTN_PUSH_STATE
|
|
{
|
|
PUSH_OFF, // Кнопка отжата (выключена)
|
|
PUSH_ON // Кнопка нажата (включена)
|
|
};
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Кнопка |
|
|
//+------------------------------------------------------------------+
|
|
class CElButton : public CElChart
|
|
{
|
|
public:
|
|
|
|
CElButton(void);
|
|
ENUM_BTN_PUSH_STATE State(void);
|
|
bool State(ENUM_BTN_PUSH_STATE state);
|
|
virtual void OnPushButton(ENUM_BTN_PUSH_STATE state);
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| По умолчанию, создаваемая кнопка имеет одни и тот же текст как |
|
|
//| в нажатом, так и в отжатом состоянии. |
|
|
//+------------------------------------------------------------------+
|
|
CElButton::CElButton() : CElChart(OBJ_BUTTON)
|
|
{
|
|
BorderType(BORDER_RAISED);
|
|
BackgroundColor(clrWhiteSmoke);
|
|
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Возвращает PUSH_OFF если кнопка отжата, либо не отображается, |
|
|
//| возвращает PUSH_ON если кнопка нажата. |
|
|
//+------------------------------------------------------------------+
|
|
ENUM_BTN_PUSH_STATE CElButton::State(void)
|
|
{
|
|
if(!IsShowed())
|
|
return PUSH_OFF;
|
|
if(ObjectGetInteger(ChartID(), m_name, OBJPROP_STATE) > 0)
|
|
return PUSH_ON;
|
|
return PUSH_OFF;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Устанавливает состояние кнопки |
|
|
//+------------------------------------------------------------------+
|
|
bool CElButton::State(ENUM_BTN_PUSH_STATE state)
|
|
{
|
|
bool isPush = state == PUSH_ON ? true : false;
|
|
bool res = false;
|
|
if(IsShowed())
|
|
{
|
|
if(ObjectSetInteger(ChartID(), m_name, OBJPROP_STATE, isPush))
|
|
{
|
|
OnPushButton(state);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Событие, наступающее при нажатии кнопки |
|
|
//+------------------------------------------------------------------+
|
|
void CElButton::OnPushButton(ENUM_BTN_PUSH_STATE state)
|
|
{
|
|
} |