//+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2020, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ // // Imports ... #include "../Classes/XCObjects/x-saherelm.x-panel.class.mq5" #include // CTrade trade; // string mTag; XCPanel eaPanel; XCButton eaStateBtn; string eaStateBtnName; XCButton eaLongStateBtn; string eaLongStateBtnName; XCButton eaShortStateBtn; string eaShortStateBtnName; bool eaEnableLongs = true; bool eaEnableShorts = true; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { // mTag = "XPanel"; if (!InitialGUI()) { return INIT_FAILED; } // return (INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { DestroyGUI(); } //+------------------------------------------------------------------+ //|Chart event handling function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { // // Handle Object Movement ... eaPanel.OnEvent(id, lparam, dparam, sparam); // // Handle OnClick Event ... if (id == CHARTEVENT_OBJECT_CLICK) { HandleOnClickEvent(sparam); } } //+------------------------------------------------------------------+ /** * Initial GUI ... * * @return ( bool ) */ bool InitialGUI() { // bool result = false; // // Create a Panel ... result = eaPanel.Create( mTag, 100, 100, 300, 200 // ); if (!result) { return result; } // // Create Activation Button ... string eaStatePrefix = mTag + "_State_"; // // Signalling ... eaStateBtnName = eaStatePrefix + "btn"; result = eaStateBtn.Create( eaStateBtnName, 100, 120, 300, 25 // ); if (!result) { return result; } eaPanel.Add(eaStateBtnName); // // Long Signalling ... eaLongStateBtnName = eaStatePrefix + "_Long_btn"; result = eaLongStateBtn.Create( eaLongStateBtnName, 100, 145, 150, 25 // ); if (!result) { return result; } eaPanel.Add(eaLongStateBtnName); // // Short Signalling ... eaShortStateBtnName = eaStatePrefix + "_Short_btn"; result = eaShortStateBtn.Create( eaShortStateBtnName, 250, 145, 150, 25 // ); if (!result) { return result; } eaPanel.Add(eaShortStateBtnName); // ChartRedraw(0); // return result; } /** * Destroy GUI ... */ void DestroyGUI() { // eaStateBtnName = NULL; eaLongStateBtnName = NULL; eaShortStateBtnName = NULL; // eaPanel.Destroy(); eaStateBtn.Destroy(); eaLongStateBtn.Destroy(); eaShortStateBtn.Destroy(); } /** * Handle Object's Click Events ... * * @param name: Clicked Object Name */ void HandleOnClickEvent(string name) { // if (!IsValid(name)) { return; } // // State Button ... if (name == eaStateBtnName) { // Print("State Button Clicked ..."); } // else if (name == eaLongStateBtnName) { // Print("Long State Button Clicked ..."); } // else if (name == eaShortStateBtnName) { // Print("Short State Button Clicked ..."); } } //