119 lines
5.6 KiB
Plaintext
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);
|
|
}
|
|
//+------------------------------------------------------------------+
|