106 lines
4.5 KiB
Plaintext
106 lines
4.5 KiB
Plaintext
//+------------------------------------------------------------------+
|
|
//| CSymbolButton.mqh |
|
|
//| Copyright © 2009, MetaQuotes Software Corp. |
|
|
//| http://www.metaquotes.net |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
|
|
#property link "http://www.metaquotes.net"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Class for creating a symbol button |
|
|
//+------------------------------------------------------------------+
|
|
class CSymbolButton
|
|
{
|
|
private:
|
|
double m_top; // Y coordinate of the upper-left corner
|
|
double m_left; // X coordinate of the upper-left corner
|
|
double m_height; // button height
|
|
double m_width; // button width
|
|
color m_txt_col; // text color
|
|
color m_bg_col; // background color
|
|
int m_ind_handle; // pointer to the indicator for the button
|
|
string m_symbol_name; // name of the Symbol, for which the button is created
|
|
|
|
public:
|
|
string m_button_name; // button's unique name
|
|
bool CreateSymbolButton(double top,double left,double height,double width,
|
|
string buttonID,color TextColor,color BGColor);// constructor
|
|
bool DeleteSymbolButton();
|
|
void MoveButton(int x_shift,int y_shift);
|
|
color GetBGColor(){return(m_bg_col);};
|
|
void SetBGColor(color bg_color);
|
|
string GetSymbolName(){return(m_symbol_name);};
|
|
void SetSymbolName(string s){m_symbol_name=s;};
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| delete Symbol button |
|
|
//+------------------------------------------------------------------+
|
|
bool CSymbolButton::DeleteSymbolButton()
|
|
{
|
|
if(ObjectFind(0,m_button_name)>=0)
|
|
{
|
|
//Print("Delete the cell with the name ",m_button_name);
|
|
if(!ObjectDelete(0,m_button_name))
|
|
{
|
|
Print("Failed to delete the object named ",m_button_name,"! Error #",GetLastError());
|
|
}
|
|
else
|
|
{
|
|
//ChartRedraw(0);
|
|
}
|
|
return(true);
|
|
}
|
|
return(false);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| setup object of Class CSymbolButton |
|
|
//+------------------------------------------------------------------+
|
|
bool CSymbolButton::CreateSymbolButton(double top,double left,double height,double width,
|
|
string buttonID,color TextColor,color BGColor)
|
|
{
|
|
bool res=false;
|
|
//---
|
|
if(ObjectFind(0,buttonID)<0)
|
|
{
|
|
m_top=top;
|
|
m_left=left;
|
|
ObjectCreate(ChartID(),buttonID,OBJ_BUTTON,0,0,0,0,0);
|
|
ObjectSetInteger(0,buttonID,OBJPROP_COLOR,TextColor);
|
|
ObjectSetInteger(0,buttonID,OBJPROP_BGCOLOR,BGColor);
|
|
ObjectSetInteger(0,buttonID,OBJPROP_XDISTANCE,int(m_left));
|
|
ObjectSetInteger(0,buttonID,OBJPROP_YDISTANCE,int(m_top));
|
|
ObjectSetInteger(0,buttonID,OBJPROP_XSIZE,int(width));
|
|
ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,int(height));
|
|
ObjectSetString(0,buttonID,OBJPROP_FONT,"Arial");
|
|
ObjectSetString(0,buttonID,OBJPROP_TEXT,buttonID);
|
|
ObjectSetInteger(0,buttonID,OBJPROP_FONTSIZE,10);
|
|
ObjectSetInteger(0,buttonID,OBJPROP_SELECTABLE,0);
|
|
m_button_name=buttonID;
|
|
SetSymbolName(buttonID);
|
|
//ChartRedraw(ChartID());
|
|
}
|
|
// else
|
|
// {
|
|
// }
|
|
//---
|
|
return(res);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| set Symbol button background color |
|
|
//+------------------------------------------------------------------+
|
|
void CSymbolButton::SetBGColor(color bg_color)
|
|
{
|
|
ObjectSetInteger(0,m_button_name,OBJPROP_BGCOLOR,bg_color);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| shift the symbol button by the specified value |
|
|
//+------------------------------------------------------------------+
|
|
void CSymbolButton::MoveButton(int x_shift,int y_shift)
|
|
{
|
|
m_top+=y_shift;
|
|
m_left+=x_shift;
|
|
ObjectSetInteger(0,m_button_name,OBJPROP_XDISTANCE,int(m_left));
|
|
ObjectSetInteger(0,m_button_name,OBJPROP_YDISTANCE,int(m_top));
|
|
//ChartRedraw(0);
|
|
}
|