initialize Subroutine

private 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.

Arguments

Type IntentOptional AttributesName
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 [1%,100%].

Calls

proc~~initialize~~CallsGraph proc~initialize initialize proc~ucs4_string ucs4_string proc~initialize->proc~ucs4_string
Help

Source Code


Source Code

   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