Crowdsourced GUI. Open beta testing. - page 7

 

There's probably no point in continuing to learn the markup language. Why not? Today it has become obvious that the visual constructor is going to replace it. I never thought its design would ever become so clear, but it has. A pity of course, but that was the plan. I will briefly describe the functionality and principles of the editor:

  1. Three basic functions, (like the three elephants that hold up the World):
  • Add an item to the core.
  • Remove an item from the core.
  • Move an item within the core.

Two functions to edit items:

  • Set edit focus.
  • Edit item.

3. Functions allowing you to work with projects:

  • Load Project.
  • Save Project.

The windows required for the editor. 4:

  • Selecting Controls.
  • Select focus.
  • Selection of properties.
  • Windows for selecting values of different properties (colours, frames, fonts...).
  • Windows for setting parameters for created tables, lists and menus.
  • Confirmation windows for actions.

Now, a little bit of explanations:

  • Function to add an element to the core: As you know, the core is divided into two areas - standard and user. The regular one contains the prototypes of the elements (inside the selection window). At the event of transfer of the element to the user window, the size of the user part of the kernel is increased and the free space is filled with the template of the element from the staff area. Next, the order of numbering of objects in the kernel is rewritten and the new item takes its place. The hardest part is rewriting the kernel correctly, as many parameters are involved in this change.
  • The function of removing an item is essentially an inverted function of adding an item. It's the same thing, only in reverse.

  • The move element function within the kernel essentially manipulates the two functions described above.

  • The most important function of my editor is the edit focus function. What it is: the user selects the elements, objects and properties that are going to be edited. This is how it is done: clicking on an item automatically puts it in focus and then using the focus switching window, all items of that type can be brought into focus, or a single object within an item or a selected set of items. That is, you can toggle the editing target. Let's say we select 'this element' and 'base' as the focus, and the editors work with the properties of that base, and if we take 'Type of element in window' and 'Text' as the focus, the editors modify the properties of all the text items in the window. And so on. Multiple focus options can be made available to make editing convenient and fast.
  • The edit function transfers the property values of the edited items to the parameters of the editors that work with the resulting values, and then, returns them back to the original properties, after which it redraws the modified items.

  • The Load Project function is an inversion of the Save Project function, which works successfully in the constructor (called from the menu and prints the "CORES" file). It takes the saved cores from the file, and puts them back into the user area from where they were unloaded to the file.

  • The windows needed for the editor are partly already in place. Some time ago, I created a video about visual studio, where I showed creation of its prototype. All of the necessary windows were written in a markup language. So, it saves me time and effort.
  • Also, somewhere in the archives is a blue frame function, which selects elements for editing.
  • There are already functions for resizing elements (shown in the gif) and moving elements, which is a crucial part of the editing process.


That's it. It's an absolute reality. So, the markup language is getting away from us... It makes me personally sad...

 
Реter Konow:

There is probably no point in continuing to learn the markup language. Why not? Today it has become obvious that the visual constructor is going to replace it. I never thought its design would ever become so clear, but it has.

Hooray!
You and I already talked about it almost 3 years ago :))

 
On Tuesday, I will introduce a minimal version of the vis-editor. It will create a window, add elements (one at a time), edit position, size, colour (no fancy focus yet) and save to the project. Work on the rest of the things will take up to the end of the month, I think. Maybe a little longer. The editor will be available to everyone.
 
Nikolai Semko:

Yay!
You and I already talked about it almost 3 years ago :))

Yes, Nikolai:)) It's happened!))

 
Nikolai Semko:

Yay!
You and I already talked about this almost 3 years ago :))


I said it too, that it's easier to write a project on plushies or embarcadero than to teach markup.....
 

Tonight (in about 5 hours...) I'll present a working prototype of the visual editor, where you can add items and edit properties in "manual" mode. I invite you to try it out and give your opinion. Its development is moving at a huge speed, which I didn't count on, and what you'll see is just the beginning. Therefore, don't judge it harshly. Its functionality can multiply and improve many times over in a matter of weeks.

 

Published.

Quick instructions:

Unpack the archive and install the advisor KIB_Studio.ex5 in the experts folder and the indicator Empty_window.ex5 in the indicators folder. Run the advisor first, then the indicator.

1. The menu window will appear. It contains basic controls.

2. After the indicator is loaded, an empty window will appear for editing.

3. Drag and drop items from the menu window onto the kanvas of the empty window and edit them.


Editing includes the following options:

1. resizing objects (the base of elements (buttons) and texts). Some of the items do not change some of their parameters. This is done to keep their integrity. For example, the popup list does not change the height and position of its text and the parameters of its button.

2. Moving elements on the canvas. You can move both the whole element and its parts (again - not for all elements). For an element, the movement is limited by the kanvas, and for its internal objects - by the space of its base. The correction is automatic.

3. open the colour, font, and icon selection windows by clicking on the "Main properties" tab of the menu. To edit an object, click on it, and then click on the desired colours, fonts or icons, depending on the selected editing object.

4. It is possible to resize text by clicking on it, with up and down or left and right arrows and moving cursor. The text will change its size by becoming smaller or larger.

5. You can change the angle of the text by rotating it. To do this, grab the arrow in the top left corner and pull. The arrow points diagonally from left to right.

6. It is possible to type on elements by changing their text. To do this, double-click on the text. An input box will appear. Another click and the text is selected. Then you can erase it and print something else.

7. You can move items by grabbing the centre of their top side when a crosshair appears.


Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Каждый скрипт, сервис и эксперт работает в собственном отдельном потоке. Все индикаторы, рассчитываемые на одном символе, даже если они запущены на разных графиках, работают в одном потоке. Таким образом, все индикаторы на одном символе делят между собой ресурсы одного потока. В одном потоке с индикаторами также последовательно выполняются...
 

Well done, Peter!
A lot of work has been done.

A good start has been made.
Is the file with the code being generated? I couldn't find it.

 
Nikolai Semko:

Well done Piotr!
Good job done.

The beginning has been made.
Is the file with the code generated? I haven't found it.

Thank you, Nikolai.

The boot and api files are generated through the main menu (double-click on the chart), but it's not worth trying in this version yet. The engine needs to be upgraded there and not everything is done in the studio itself. It's a little early. By the end of the month I'll try to fully port all the language features to the editor.

 

that it all goes to the usual style setting. There are certain moments, such as the link button, the hover button, the click button, and just the button. And for each moment they usually make their own styles, or a mixture of them.

To tell the truth, I've always misunderstood in such things how to arrange the settings of executed code for a button. So that it would be also visual. And also with its own checks of the code for errors.


A vivid example of such a work would be creating a menu for creating a menu. That is, if graphically it will be possible to make the left or right menu with embed code so to speak on the fly.

Or is it just generating buttons in code....?

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...