//+------------------------------------------------------------------+ //| View | //| Copyright 2006-2011, www.FXmaster.de | //| www.FXmaster.de | //+------------------------------------------------------------------+ #property copyright "Copyright 2006-2011, www.FXmaster.de" #property link "www.FXmaster.de" #property version "1.00" #include "..\Lib\GraphLib.mqh" //------------------------------------------------------------------ CView class CView { //--- базовые функции public: CView() { }; // конструктор ~CView() { }; // деструктор virtual void Create(long chart, string name, int wnd, color clr, color bgclr, color selclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Arial"); //--- функции обработки состояния public: virtual int OnClick(string name) { return(0); }; // обработка события клика на объекте //--- парметры отображения public: int m_x, m_y; // координаты верхнего левого угла окна int m_x0, m_y0; // координаты начала отсчета int m_dx, m_dy; // размер окна color m_clr, m_bgclr, m_selclr; // цвет рамки, фона, цвета выделения long m_chart; // ID чарта int m_wnd; // номер подокна чарта string m_name; // имя объекта int m_corn; // угол привязки string m_font; // имя шрифта int m_fontsize; // размер шрифта //--- функции отображения public: virtual void Draw() {}; // обновить вид объекта и дочерних объектов virtual void DeleteView() {}; // удалить вид объекта и дочерних объектов bool IsOpenView(); }; //------------------------------------------------------------------ Create void CView::Create(long achart, string name, int wnd, color clr, color bgclr, color selclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Arial") { m_chart=achart; m_name=name; m_wnd=wnd; m_clr=clr; m_bgclr=bgclr; m_selclr=selclr; m_x=x; m_y=y; m_dx=dx; m_dy=dy; m_corn=corn; m_fontsize=fontsize; m_font=font; m_x0=0; m_y0=0; // координаты начала отсчета } //------------------------------------------------------------------ IsOpenView bool CView::IsOpenView() { long first=ChartFirst(); long next=ChartNext(first); while (first!=next && next>0) { if (m_chart==next) return(true); next=ChartNext(next); } return(false); }