New CCalendarInputBox control element of the IncGUI library has been designed for date and/or time input.
- Custom Graphical Controls. Part 1: Creating a simple control
- Custom Graphical Controls. Part 2. Control Library
- Custom Graphical Controls. Part 3. Forms
CCalendarInputBox control element can be used in different modes: date and time input, date input, time input.
The time can be entered up to minutes or seconds (optional). Additionally Date and time can be amended by relocating the vertical line. In the normal state the element is a text field with the button. The tab is opened when the button is hit.
The tab with the numbered control elements is shown in the figure below.
The tab of the CCalendarInput control element
- Year change buttons;
- Month selection list;
- Previous month button;
- Next month button;
- Data string with weekdays names;
- Previous month days (having darker background color comparing to the current month days);
- Current month day. The current month means selected month (2) of a selected year (1);
- Selected day;
- Actual current day;
- Next month days;
- Actual current date setting button;
- Actual current time setting button;
- Actual current date;
- Time selection;
- Actual current time;
- Enabling the vertical line for displaying date/time;
- Closing the tab without implementing new date/time;
- Closing the tab implementing new date/time.
Control element application starts from the Init() method call, the following parameters are indicated when the method is called:
- string aName=”CCalendar” – control element name;
- bool aDate=true – if date input is used;
- bool aTime=true – if time input is used;
- bool aSeconds=true – time up to seconds;
- bool aLine=true – if the vertical line is enabled (additionally to date and/or time input);
- int aTimeMode=0 – current time type: 0 – terminal time, 2 – local time (time and date displayed at positions 13 and 15 of the figure above);
- string aCaption – label text near control element.
The current value is received using ValueDateTime() (in datetime format) and ValueString() (string in format). The time program set is executed using the SetValueDateTime() method.
In different modes (date/time input) the control element has different width that correpsonds to the length of a displayed value but the width can be changed using SetWidth() method. Control element uses the two interdependent classes CCalendar (not used independently) and CCalendarInputBox. Both classes are added to the IncGUI_v4.mqh file (attached).
Also, IncGUIv4mqh.chm file (IncGUI_v4.mqh library documentation) prepared in doxygen and eIncGUI_v4_Test_CCalendarInputBox.mq5 Expert Advisor with the example of the control element application are attached here.