155 lines
12 KiB
MQL5
155 lines
12 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| TMGUI.mqh |
|
|
//| Thorsten Fischer Copyright 2019 |
|
|
//| https://www.tfsystem.de |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Thorsten Fischer Copyright 2019"
|
|
#property link "https://www.tfsystem.de"
|
|
#property version "1.00"
|
|
#include <TF-GUI\TFWndFrame.mqh>
|
|
//#include <Charts\Chart.mqh>
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
class CTMGUI
|
|
{
|
|
private:
|
|
CTFWndFrame m_main_frame; // Hauptfenster
|
|
|
|
public:
|
|
CTMGUI();
|
|
~CTMGUI();
|
|
//void ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
|
|
//virtual int OnInitEvent(void);
|
|
virtual bool Create(void); // GUI erstellen
|
|
virtual void Destroy(const int reason=REASON_PROGRAM); // GUI entfernen
|
|
|
|
virtual bool Load(const int file_handle); // Load Data
|
|
virtual bool Save(const int file_handle); // Save Data
|
|
|
|
protected:
|
|
//CChart m_chart; // Übergeordneter Chart
|
|
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
CTMGUI::CTMGUI()
|
|
{
|
|
//--- initialisieren
|
|
//GUIName(ProgrammName);
|
|
m_main_frame.FrameName(MainFrameName);
|
|
m_main_frame.FrameNormalPosition(MainFrameLeft,MainFrameTop,MainFrameRight,MainFrameBottom);
|
|
m_main_frame.FrameMinimizedPosition();
|
|
//m_main_frame.Top(0);
|
|
//m_main_frame.m_frame_normal.RightBottom((int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0),(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0));
|
|
//m_main_frame.Bottom((int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0));
|
|
//m_main_frame.SetNormalPosition(ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0)-400,0,ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0),ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0));
|
|
//m_chart_window_height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
|
|
//m_window_width=400;
|
|
//m_window_height=m_chart_window_height;
|
|
//m_window_x=m_chart_window_width-m_window_width;
|
|
//m_window_y=0;
|
|
//DPrint(__FUNCTION__+" ende");
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
CTMGUI::~CTMGUI()
|
|
{
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
//int CTMGUI::OnInitEvent(void)
|
|
// {
|
|
////---
|
|
// if(!Create())
|
|
// return(false);
|
|
//
|
|
//// DPrint(__FUNCTION__+" anfang");
|
|
//// m_program_name=MQLInfoString(MQL_PROGRAM_NAME);
|
|
//// m_chart_window_width=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
|
|
//// m_chart_window_height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
|
|
////DPrint("Width vorher = "+m_window_width);
|
|
////m_window_width=200;
|
|
////DPrint("Width nachher = "+m_window_width);
|
|
//// m_window_height=m_chart_window_height;
|
|
//// m_window_x=m_chart_window_width-m_window_width;
|
|
//// m_window_y=0;
|
|
////
|
|
////DPrint("Char-ID = "+ChartID());
|
|
////DPrint("Window-ID = "+Window());
|
|
////DPrint("Window-Name = "+Name());
|
|
////---
|
|
// return(true);
|
|
// }
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
bool CTMGUI::Create(void)
|
|
{
|
|
//---
|
|
if(!m_main_frame.Create())
|
|
DPrint(__FUNCTION__+" > Fehler bei dem erstellen des MainFrame");
|
|
//---
|
|
ChartRedraw();
|
|
//--- succeed
|
|
return(true);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
void CTMGUI::Destroy(const int reason)
|
|
{
|
|
//--- destroyed already?
|
|
//if(m_deinit_reason!=WRONG_VALUE)
|
|
// return;
|
|
//---
|
|
//m_deinit_reason=reason;
|
|
//IniFileSave();
|
|
//--- detach chart object from chart
|
|
//m_chart.Detach();
|
|
//--- call parent destroy
|
|
//CDialog::Destroy();
|
|
//CWndContainer::Destroy();
|
|
//CTFWndFrame::Destroy();
|
|
m_main_frame.Destroy(reason);
|
|
//---
|
|
//if(reason==REASON_PROGRAM)
|
|
// {
|
|
// if(m_program_type==PROGRAM_EXPERT)
|
|
// ExpertRemove();
|
|
// if(m_program_type==PROGRAM_INDICATOR)
|
|
// ChartIndicatorDelete(m_chart_id,m_subwin,m_indicator_name);
|
|
// }
|
|
//--- send message
|
|
//EventChartCustom(CONTROLS_SELF_MESSAGE,ON_APP_CLOSE,m_subwin,0.0,m_program_name);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
//void CTFGUI::ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
|
|
// {
|
|
// }
|
|
//+------------------------------------------------------------------+
|
|
//| Load Data |
|
|
//+------------------------------------------------------------------+
|
|
bool CTMGUI::Load(const int file_handle)
|
|
{
|
|
//---
|
|
DPrint(__FUNCTION__+" durchlaufen");
|
|
//---
|
|
return(true);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| Save Data |
|
|
//+------------------------------------------------------------------+
|
|
bool CTMGUI::Save(const int file_handle)
|
|
{
|
|
//---
|
|
DPrint(__FUNCTION__+" durchlaufen");
|
|
//---
|
|
return(true);
|
|
}
|
|
//+------------------------------------------------------------------+
|