/////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 X12 Draw Library // ------------------------------------------ // Name: X121Draw // Description: provides Draw Requirements ... // // // Maintainer: // ------------ // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com) // ////////////////////////////////////////////////////// // // Global Properties ... #property library #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://www.saherelm.ir" #property version "1.00" #property strict // #include "../Libraries/x-saherelm.draw.lib.mq5" #include "../Libraries/x-saherelm.common.lib.mq5" #include "../Libraries/x-saherelm.models.lib.mq5" // // START Chart Tools Functions ... // // string x121ToolsButtonName = "X121TOOLS"; // // Calculate Button size ... bool CalculateButtonSize( XSize &result, // Holds Result ... long chartID = 0, // Specified Chart ID ... int step = 32 // Step Divider ... ) { // bool mResult = false; // mResult = GetChartSize( result, chartID); if (!mResult) { return mResult; } // // define the step for changing the button size int x_step = (int)result.width / step; int y_step = (int)result.height / step; // // set the button coordinates and its size int x = (int)result.width / step; int y = (int)result.height / step; // // int width = (int)result.width * 15 / 32; // int height = (int)result.height * 15 / 32; int width = (int)result.width / 32; int height = (int)result.height / 32; // result.x = x; result.y = y; result.w = width; result.h = height; result.wStep = x_step; result.hStep = y_step; // return mResult; } // // Draw Tools Button On Chart ... bool DrawToolsButton( long chartID = 0, // Specified Chart ID ... int subWindow = 0, // Specified Chart's SubWindow ... ENUM_BASE_CORNER corner = CORNER_LEFT_UPPER // Specified Corner to Draw Button ... ) { // bool result = false; // XSize size; result = CalculateButtonSize( size, chartID); if (!result) { return result; } // result = ButtonCreate( chartID, x121ToolsButtonName, 0, size.x, size.y, size.w, size.y, corner, "Press", "Arial", 10, clrBlack, clrLightGray, CLR_NONE, false, // Pressed/Released ... false, false, true, 0); // return result; } // bool ToggleToolsButtonState( long chartID = 0, // Specified Chart ID ... int subWindow = 0 // Specified Chart's SubWindow ... ) { // bool result = false; // return result; } // // Prepare Chart Requirements ... bool DrawTools( long chartID = 0, // Specified Chart ID ... int subWindow = 0 // Specified Chart's SubWindow ... ) { // bool result = false; // result = DrawToolsButton( chartID, subWindow); // // redraw the chart if (result) { ChartRedraw(); } // return result; } // // Parse Chart Tools Events ... void HandleToolsChartEvent( long chartID, // Specified Chart ID ... const int id, // event ID const long &lparam, // long type event parameter const double &dparam, // double type event parameter const string &sparam // string type event parameter ) { // // OnClick ... if (id == CHARTEVENT_CLICK) { // // Toolls Btton Clicked ... if (sparam == x121ToolsButtonName) { LogMessage("Tools Button Clicked ..."); } } } // // END Chart Tools Functions ... //