Initialize bar.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bar_object), | intent(inout) | :: | self | Bar. |
||
| class(*), | intent(in), | optional | :: | prefix_string | Prefix string. |
|
| character(len=*), | intent(in), | optional | :: | prefix_color_fg | Prefix foreground color. |
|
| character(len=*), | intent(in), | optional | :: | prefix_color_bg | Prefix background color. |
|
| character(len=*), | intent(in), | optional | :: | prefix_style | Prefix style. |
|
| class(*), | intent(in), | optional | :: | suffix_string | Suffix string. |
|
| character(len=*), | intent(in), | optional | :: | suffix_color_fg | Suffix foreground color. |
|
| character(len=*), | intent(in), | optional | :: | suffix_color_bg | Suffix background color. |
|
| character(len=*), | intent(in), | optional | :: | suffix_style | Suffix style. |
|
| class(*), | intent(in), | optional | :: | bracket_left_string | Left bracket string. |
|
| character(len=*), | intent(in), | optional | :: | bracket_left_color_fg | Left bracket foreground color. |
|
| character(len=*), | intent(in), | optional | :: | bracket_left_color_bg | Left bracket background color. |
|
| character(len=*), | intent(in), | optional | :: | bracket_left_style | Left bracket style. |
|
| class(*), | intent(in), | optional | :: | bracket_right_string | Right bracket string |
|
| character(len=*), | intent(in), | optional | :: | bracket_right_color_fg | Right bracket foreground color. |
|
| character(len=*), | intent(in), | optional | :: | bracket_right_color_bg | Right bracket background color. |
|
| character(len=*), | intent(in), | optional | :: | bracket_right_style | Right bracket style. |
|
| class(*), | intent(in), | optional | :: | empty_char_string | Empty char. |
|
| character(len=*), | intent(in), | optional | :: | empty_char_color_fg | Empty char foreground color. |
|
| character(len=*), | intent(in), | optional | :: | empty_char_color_bg | Empty char background color. |
|
| character(len=*), | intent(in), | optional | :: | empty_char_style | Empty char style. |
|
| class(*), | intent(in), | optional | :: | filled_char_string | Filled char. |
|
| character(len=*), | intent(in), | optional | :: | filled_char_color_fg | Filled char foreground color. |
|
| character(len=*), | intent(in), | optional | :: | filled_char_color_bg | Filled char background color. |
|
| character(len=*), | intent(in), | optional | :: | filled_char_style | Filled char style. |
|
| class(*), | intent(in), | optional | :: | spinner_string | Spinner char. |
|
| character(len=*), | intent(in), | optional | :: | spinner_color_fg | Spinner char foreground color. |
|
| character(len=*), | intent(in), | optional | :: | spinner_color_bg | Spinner char background color. |
|
| character(len=*), | intent(in), | optional | :: | spinner_style | Spinner char style. |
|
| logical, | intent(in), | optional | :: | add_scale_bar | Add scale to the bar. |
|
| character(len=*), | intent(in), | optional | :: | scale_bar_color_fg | Scale bar foreground color. |
|
| character(len=*), | intent(in), | optional | :: | scale_bar_color_bg | Scale bar background color. |
|
| character(len=*), | intent(in), | optional | :: | scale_bar_style | Scale bar style. |
|
| logical, | intent(in), | optional | :: | add_progress_percent | Add progress in percent. |
|
| character(len=*), | intent(in), | optional | :: | progress_percent_color_fg | Progress percent foreground color. |
|
| character(len=*), | intent(in), | optional | :: | progress_percent_color_bg | Progress percent background color. |
|
| character(len=*), | intent(in), | optional | :: | progress_percent_style | Progress percent style. |
|
| logical, | intent(in), | optional | :: | add_progress_speed | Add progress in percent. |
|
| character(len=*), | intent(in), | optional | :: | progress_speed_color_fg | Progress speed foreground color. |
|
| character(len=*), | intent(in), | optional | :: | progress_speed_color_bg | Progress speed background color. |
|
| character(len=*), | intent(in), | optional | :: | progress_speed_style | Progress speed style. |
|
| logical, | intent(in), | optional | :: | add_date_time | Add date and time. |
|
| character(len=*), | intent(in), | optional | :: | date_time_color_fg | Date and time foreground color. |
|
| character(len=*), | intent(in), | optional | :: | date_time_color_bg | Date and time background color. |
|
| character(len=*), | intent(in), | optional | :: | date_time_style | Date and time style. |
|
| integer(kind=I4P), | intent(in), | optional | :: | width | With of the bar. |
|
| real(kind=R8P), | intent(in), | optional | :: | min_value | Minimum value. |
|
| real(kind=R8P), | intent(in), | optional | :: | max_value | Maximum value. |
|
| integer(kind=I4P), | intent(in), | optional | :: | frequency | Bar update frequency, in range |
subroutine initialize(self, &
prefix_string, prefix_color_fg, prefix_color_bg, prefix_style, &
suffix_string, suffix_color_fg, suffix_color_bg, suffix_style, &
bracket_left_string, bracket_left_color_fg, bracket_left_color_bg, bracket_left_style, &
bracket_right_string, bracket_right_color_fg, bracket_right_color_bg, bracket_right_style, &
empty_char_string, empty_char_color_fg, empty_char_color_bg, empty_char_style, &
filled_char_string, filled_char_color_fg, filled_char_color_bg, filled_char_style, &
spinner_string, spinner_color_fg, spinner_color_bg, spinner_style, &
add_scale_bar, scale_bar_color_fg, scale_bar_color_bg, scale_bar_style, &
add_progress_percent, progress_percent_color_fg, progress_percent_color_bg, progress_percent_style, &
add_progress_speed, progress_speed_color_fg, progress_speed_color_bg, progress_speed_style, &
add_date_time, date_time_color_fg, date_time_color_bg, date_time_style, &
width, min_value, max_value, frequency)
!< Initialize bar.
class(bar_object), intent(inout) :: self !< Bar.
class(*), intent(in), optional :: prefix_string !< Prefix string.
character(len=*), intent(in), optional :: prefix_color_fg !< Prefix foreground color.
character(len=*), intent(in), optional :: prefix_color_bg !< Prefix background color.
character(len=*), intent(in), optional :: prefix_style !< Prefix style.
class(*), intent(in), optional :: suffix_string !< Suffix string.
character(len=*), intent(in), optional :: suffix_color_fg !< Suffix foreground color.
character(len=*), intent(in), optional :: suffix_color_bg !< Suffix background color.
character(len=*), intent(in), optional :: suffix_style !< Suffix style.
class(*), intent(in), optional :: bracket_left_string !< Left bracket string.
character(len=*), intent(in), optional :: bracket_left_color_fg !< Left bracket foreground color.
character(len=*), intent(in), optional :: bracket_left_color_bg !< Left bracket background color.
character(len=*), intent(in), optional :: bracket_left_style !< Left bracket style.
class(*), intent(in), optional :: bracket_right_string !< Right bracket string
character(len=*), intent(in), optional :: bracket_right_color_fg !< Right bracket foreground color.
character(len=*), intent(in), optional :: bracket_right_color_bg !< Right bracket background color.
character(len=*), intent(in), optional :: bracket_right_style !< Right bracket style.
class(*), intent(in), optional :: empty_char_string !< Empty char.
character(len=*), intent(in), optional :: empty_char_color_fg !< Empty char foreground color.
character(len=*), intent(in), optional :: empty_char_color_bg !< Empty char background color.
character(len=*), intent(in), optional :: empty_char_style !< Empty char style.
class(*), intent(in), optional :: filled_char_string !< Filled char.
character(len=*), intent(in), optional :: filled_char_color_fg !< Filled char foreground color.
character(len=*), intent(in), optional :: filled_char_color_bg !< Filled char background color.
character(len=*), intent(in), optional :: filled_char_style !< Filled char style.
class(*), intent(in), optional :: spinner_string !< Spinner char.
character(len=*), intent(in), optional :: spinner_color_fg !< Spinner char foreground color.
character(len=*), intent(in), optional :: spinner_color_bg !< Spinner char background color.
character(len=*), intent(in), optional :: spinner_style !< Spinner char style.
logical, intent(in), optional :: add_scale_bar !< Add scale to the bar.
character(len=*), intent(in), optional :: scale_bar_color_fg !< Scale bar foreground color.
character(len=*), intent(in), optional :: scale_bar_color_bg !< Scale bar background color.
character(len=*), intent(in), optional :: scale_bar_style !< Scale bar style.
logical, intent(in), optional :: add_progress_percent !< Add progress in percent.
character(len=*), intent(in), optional :: progress_percent_color_fg !< Progress percent foreground color.
character(len=*), intent(in), optional :: progress_percent_color_bg !< Progress percent background color.
character(len=*), intent(in), optional :: progress_percent_style !< Progress percent style.
logical, intent(in), optional :: add_progress_speed !< Add progress in percent.
character(len=*), intent(in), optional :: progress_speed_color_fg !< Progress speed foreground color.
character(len=*), intent(in), optional :: progress_speed_color_bg !< Progress speed background color.
character(len=*), intent(in), optional :: progress_speed_style !< Progress speed style.
logical, intent(in), optional :: add_date_time !< Add date and time.
character(len=*), intent(in), optional :: date_time_color_fg !< Date and time foreground color.
character(len=*), intent(in), optional :: date_time_color_bg !< Date and time background color.
character(len=*), intent(in), optional :: date_time_style !< Date and time style.
integer(I4P), intent(in), optional :: width !< With of the bar.
real(R8P), intent(in), optional :: min_value !< Minimum value.
real(R8P), intent(in), optional :: max_value !< Maximum value.
integer(I4P), intent(in), optional :: frequency !< Bar update frequency, in range `[1%,100%]`.
character(len=:, kind=UCS4), allocatable :: empty_char_string_ !< Characters used for empty bar, local variable.
character(len=:, kind=UCS4), allocatable :: filled_char_string_ !< Characters used for filled bar, local variable.
if (present(empty_char_string)) then
empty_char_string_ = ucs4_string(input=empty_char_string)
else
empty_char_string_ = UCS4_'-'
endif
if (present(filled_char_string)) then
filled_char_string_ = ucs4_string(input=filled_char_string)
else
filled_char_string_ = UCS4_'*'
endif
call self%destroy
call self%prefix%initialize(string=prefix_string, color_fg=prefix_color_fg, color_bg=prefix_color_bg, style=prefix_style)
call self%suffix%initialize(string=suffix_string, color_fg=suffix_color_fg, color_bg=suffix_color_bg, style=suffix_style)
call self%bracket_left%initialize(string=bracket_left_string, color_fg=bracket_left_color_fg, color_bg=bracket_left_color_bg,&
style=bracket_left_style)
call self%bracket_right%initialize(string=bracket_right_string, color_fg=bracket_right_color_fg,&
color_bg=bracket_right_color_bg, style=bracket_right_style)
call self%empty_char%initialize(string=empty_char_string_, color_fg=empty_char_color_fg, color_bg=empty_char_color_bg,&
style=empty_char_style)
call self%filled_char%initialize(string=filled_char_string_, color_fg=filled_char_color_fg, color_bg=filled_char_color_bg,&
style=filled_char_style)
call self%create_spinner(string=spinner_string, color_fg=spinner_color_fg, color_bg=spinner_color_bg, style=spinner_style)
if (present(add_scale_bar)) self%add_scale_bar = add_scale_bar
call self%scale_bar%initialize(color_fg=scale_bar_color_fg, color_bg=scale_bar_color_bg, style=scale_bar_style)
if (present(add_progress_percent)) self%add_progress_percent = add_progress_percent
call self%progress_percent%initialize(color_fg=progress_percent_color_fg, color_bg=progress_percent_color_bg,&
style=progress_percent_style)
if (present(add_progress_speed)) self%add_progress_speed = add_progress_speed
call self%progress_speed%initialize(color_fg=progress_speed_color_fg, color_bg=progress_speed_color_bg,&
style=progress_speed_style)
if (present(add_date_time)) self%add_date_time = add_date_time
call self%date_time%initialize(color_fg=date_time_color_fg, color_bg=date_time_color_bg, style=date_time_style)
if (present(width)) self%width = width
if (present(min_value)) self%min_value = min_value
if (present(max_value)) self%max_value = max_value
if (present(frequency)) self%frequency = frequency
if (self%add_scale_bar .and. self%width < 22) error stop 'error: for adding scale bar the bar width must be at least 22 chars'
endsubroutine initialize