Libraries: EasyAndFastGUI library for creating graphical interfaces - page 28

 

A new version(v2.14) has been published:

  1. Added TimeRanges element to visualise time trading ranges.
  2. Several minor fixes as reported by library users.
  3. Added new examples of graphical interfaces.


 
Anatoli Kazharski #:

New version published(v2.14)

Please embed a similar function.

// Interactive visualisation of the matrix as a GUI table.
bool CreateTable( const matrix &Matrix, const string &ColNames[] )


To make this kind of concise code work.

#include <EasyAndFastGUI\Simple.mqh> // https://www.mql5.com/en/code/19703

void OnInit()
{
  matrix Matrix;
  string ColNames[];
  
  CreateTable(Matrix, ColNames); // Function from Simple.mqh
}

EAF_SIMPLE // This macro from Simple.mqh contains a standard set of On functions for GUI interactivity.


Sort of make an analogue of GraphPlot approach, but for matrices and interactively. What is missing is quick visualisations for different kinds of data that are as simple as possible in syntax.

 
fxsaber #:

Please build in a similar feature.

...

To make this concise code work.

...

Sort of make an analogue of GraphPlot approach, but for matrices and interactively. What is missing is fast visualisations for different kinds of data, as simple as possible in syntax.

Thanks for the interesting suggestion!

Added it to the task list. We'll discuss this further when I'm ready to start working on it.

 

A new version(v2.15) has been published:

  • Automatic scaling of the GUI depending on the settings in your operating system(DPI).
  • A few minor bug fixes.

How the second version of the library differs from the first
.

  1. All images for GUI elements are digitised and now you don't need a folder with images. You can download the archive of pictures from the old version if you need a custom set of pictures to work with.
  2. Significant improvement in event stream processing. In the previous version there was a noticeable delay if there were a lot of items. Now everything works very fast with any number of elements.
  3. Added the ability to change the colour scheme of the GUI. In this version it is possible to quickly switch betweenlight and dark themes during the work of the already ready MQL-application.
  4. A new element(C3DBase) from the standard library(CCanvas3D) for working with 3D graphics has been integrated.
  5. TimeRanges element for visualisation of time trading ranges.
  6. Multi-window mode. Now you can choose between free switching and modal mode.
  7. Automatic scaling of the graphical interface depending on the settings in your operating system (DPI).
  8. Changed structure of library folders and files. Now all files are categorised.
  9. The second version comes with anMT4-ready version.
  10. There are methods for quick creation for all elements. Almost all elements with default parameters can now be created in just one line of code.

The screenshots below show the difference at 100% and 125% scale (in OS settings):

//---

The images are in high resolution. So even at 400% scale(8K UHD) they will look great.

 

New version published (v2.15):

  • Automatic scaling of the graphical interface depending on the settings in your operating system (DPI).
  • Several minor fixes.

What is the difference between the second version of the library and the first

  1. All images for GUI elements have been digitized and now there is no need for a folder with images. You can download the archive of pictures from the old version if you need a custom set of pictures for work.
  2. Significant improvement in event stream handling. In the previous version, there was a noticeable delay if there were a lot of elements. Now everything works very fast with any number of elements.
  3. Added the ability to change the color scheme of the GUI. In this version, it is possible to quickly switch between light and dark themes while a ready-made MQL application is running.
  4. Integrated a new element (C3DBase) from the standard library (CCanvas3D) for working with three-dimensional graphics.
  5. The TimeRanges element for visualizing time trading ranges.
  6. Multi-window mode. Now you can choose between free switching and modal mode.
  7. Automatic scaling of the graphical interface depending on the settings in your operating system (DPI).
  8. The structure of folders and library files has changed. Now all files are categorized.
  9. The second version comes with a ready-to-use MT4 version.
  10. All elements have methods for quick creation. Almost all elements with default parameters can now be created in just one line of code.

The screenshots below show the difference at 100% and 125% scale (in the operating system settings):


//---

Images in high resolution. That is, even at a scale of 400% (8K UHD), they will look great.

 

Hello Anatoli, 

Thanks por the update!!

Please could you share how to use these GUI ditized images? 

For explame for these EA, 

In which resources were use pointing to Imaga folder.. How could be resolved? 


Thanks!

 

Sorry, 

I seeing EAF 001 example, 

In the 2.14 version the explame have these code



and in the 2.15 it has these code

 

so I am undertanding that Images\\EasyAndFastGui\\Icons have changed.

When I update to the new 2.15 version, no Image folder was download.

Could you help me?

Thanks

 

Othe issue that I have is that I can not change Button Y size when I working with a Group of Button ( works ok with single button)

V 2.14  Example 001

  //--- Buttons group 1

  string text1[] = {"BUTTON 1", "BUTTON 2"};

  CCoreCreate::CreateButtonsGroup(m_buttons1, m_frame1, 0, 10, 40, text1);

  m_buttons1.SelectButton(1);

  m_buttons1.ButtonYSize(80); //Added by me! 

This last line of code has not effect.

I also tried 

m_buttons1.YSize(80)


Thanks for your help!

 
Facundo Laje #:

...

When I update to the new 2.15 version, no Image folder was download.

Could you help me?

Thanks

For users of the EasyAndFastGUI 2.0 library, I send an archive with high-resolution images upon their request in private messages.

For controls, they are not needed, as they are digitized and built into the library code. But they can be used in custom elements, as shown in the code examples that come with the library.

I will send you an archive with images in private messages.

 
Facundo Laje #:

Othe issue that I have is that I can not change Button Y size when I working with a Group of Button ( works ok with single button)

...

Thanks for your help!

Thank you for message!

The fix will be in the next update.

In order to make the necessary changes yourself in this file:

MQL5\Include\EasyAndFastGUI\Core\Create\Include\Buttons\ButtonsGroup.mqh

remove this line (height for default button):

  //--- Button properties
  static void SetDefaultButtonParams(CButton &obj, const color label_clr, const color border_clr) {
    
    obj.YSize(20);
    obj.LabelColor(label_clr);
    obj.LabelColorHover(label_clr);
    obj.LabelColorPressed(label_clr);
    obj.BorderColor(border_clr);
    obj.BorderColorHover(border_clr);
    obj.BorderColorPressed(border_clr);
  }

//---

Then it will be possible to set the height of all buttons in the group like this:

  //--- Buttons group 1
  string text1[] = {"BUTTON 1", "BUTTON 2"};
  m_buttons1.ButtonYSize(25);
  CCoreCreate::CreateButtonsGroup(m_buttons1, m_frame1, 0, 10, 40, text1);
  m_buttons1.SelectButton(1);