UTE/Strategy/Panel/ElButton.mqh
super.admin bd7e405a90 convert
2025-05-30 16:34:43 +02:00

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)
{
}