Files
2018-03-14 11:26:36 +01:00

119 lines
5.6 KiB
Plaintext

//+------------------------------------------------------------------+
//| CControlButton.mqh |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| control object |
//+------------------------------------------------------------------+
class CControlButton
{
private:
string m_control_name; // control's unique name
int m_top; // Y coordinate of the upper-left corner
int m_left; // X coordinate of the upper-left corner
int m_width; // control width
int m_heigt; // control height
string m_text; // control text
string m_font; // text font
int m_text_size; // control text size
color m_text_color; // text color
color m_bg_color; // background color
public:
void CControlButton(){m_top=0; m_left=0;m_text_size=10;m_font="Arial";m_bg_color=Blue;};
void CreateButton(int l,int t,int w,int h,string button_name,string button_text);
void MoveControlButton(int shiftX,int shiftY);
void SetTextDetails(int text_size,string font_name,color text_color);
void SetTextForControl(string text);
void SetWidthAndHeight(int w,int h);
void SetBGColor(color bg_color);
void DeleteControl();
string GetControlName(){return(m_control_name);};
};
//+------------------------------------------------------------------+
//| create the control |
//+------------------------------------------------------------------+
void CControlButton::CreateButton(int l,int t,int w,int h,
string button_name,string button_text)
{
m_top=0;
m_left=0;
m_control_name=button_name;
//Print("CreateButton function is creating control named ",button_name);
if(ObjectFind(0,m_control_name)<0) ObjectCreate(0,m_control_name,OBJ_BUTTON,0,0,0,0,0);
SetWidthAndHeight(w,h);
MoveControlButton(l,t);
ObjectSetInteger(0,m_control_name,OBJPROP_SELECTABLE,false);
}
//+------------------------------------------------------------------+
//| delete the control |
//+------------------------------------------------------------------+
void CControlButton::DeleteControl()
{
if(ObjectFind(0,m_control_name)>=0)
{
if(!ObjectDelete(0,m_control_name))
{
Print("Failed to delete the object named ",m_control_name,"! Error #",GetLastError());
}
}
}
//+------------------------------------------------------------------+
//| move control along the axes by the specified values |
//+------------------------------------------------------------------+
void CControlButton::MoveControlButton(int shiftX,int shiftY)
{
m_top+=shiftY;
m_left+=shiftX;
ObjectSetInteger(0,m_control_name,OBJPROP_XDISTANCE,m_left);
ObjectSetInteger(0,m_control_name,OBJPROP_YDISTANCE,m_top);
}
//+------------------------------------------------------------------+
//| set control's height and width |
//+------------------------------------------------------------------+
void CControlButton::SetWidthAndHeight(int w,int h)
{
m_width=w;
m_heigt=h;
ObjectSetInteger(0,m_control_name,OBJPROP_XSIZE,m_width);
ObjectSetInteger(0,m_control_name,OBJPROP_YSIZE,m_heigt);
}
//+------------------------------------------------------------------+
//| set control text attributes |
//+------------------------------------------------------------------+
void CControlButton::SetTextDetails(int text_size,
string font_name,color text_color)
{
m_text_size=text_size;
m_font=font_name;
m_text_color=text_color;
//Print("Start setting attributes for the button named ",m_control_name);
ObjectSetInteger(0,m_control_name,OBJPROP_COLOR,text_color);
//Print("Button text color is set ",m_control_name);
ObjectSetString(0,m_control_name,OBJPROP_FONT,font_name);
//Print("Button text font is set ",m_control_name);
ObjectSetInteger(0,m_control_name,OBJPROP_FONTSIZE,m_text_size);
//Print("Button text font size is set ",m_control_name);
}
//+------------------------------------------------------------------+
//| set control text |
//+------------------------------------------------------------------+
void CControlButton::SetTextForControl(string text)
{
m_text=text;
//Print("Set control text:",text);
ObjectSetString(0,m_control_name,OBJPROP_TEXT,m_text);
}
//+------------------------------------------------------------------+
//| set control background color |
//+------------------------------------------------------------------+
void CControlButton::SetBGColor(color bg_color)
{
m_bg_color=bg_color;
ObjectSetInteger(0,m_control_name,OBJPROP_BGCOLOR,m_bg_color);
}
//+------------------------------------------------------------------+