docs: def _show_help(self, txt,
                  mode_to_set=MAIN_HELP_MODE,
                  caption=' Help ',
                  prompt=' Press any key to hide ',
                  too_small_msg='Window too small to show message',
                  is_message=False):
          """ Display a help, info or question window.  """
          self.helpWinContainer = None
          self.helpWin = None
          self.operation_mode = mode_to_set
          txt_col = curses.color_pair(5)
          box_col = curses.color_pair(3)
          caption_col = curses.color_pair(4)
          lines = txt.split('\n')
          st_lines = [item.replace('\r','') for item in lines]
          lines = [item.strip() for item in st_lines]
          inner_height = len(lines) + 2
          inner_width = self._get_message_width_from_list(lines) + 4
          outer_height = inner_height + 2
          outer_width = inner_width + 2
          if self.window_mode == CONFIG_MODE and \
                  self.operation_mode > CONFIG_HELP_MODE:
              use_empty_win = True
              height_to_use = outer_height
              width_to_use = outer_width
          else:
              use_empty_win = False
              height_to_use = inner_height
              width_to_use = inner_width
          if self.maxY - 2 < outer_height or self.maxX < outer_width:
              txt = too_small_msg
              inner_height = 3
              inner_width = len(txt) + 4
              if use_empty_win:
                  height_to_use = inner_height +2
                  width_to_use = inner_width + 2
              else:
                  height_to_use = inner_height
                  width_to_use = inner_width
              if self.maxX < width_to_use:
                  if logger.isEnabledFor(logging.DEBUG):
                      logger.debug('  ***  Window too small even to show help warning  ***')
                  self.operation_mode = self.window_mode = NORMAL_MODE
                  return
              lines = [ txt , ]
          if use_empty_win:
              self.helpWinContainer = curses.newwin(height_to_use,width_to_use,int((self.maxY-height_to_use)/2),int((self.maxX-width_to_use)/2))
              self.helpWinContainer.bkgdset(' ', box_col)
              self.helpWinContainer.erase()
          self.helpWin = curses.newwin(inner_height,inner_width,int((self.maxY-inner_height)/2),int((self.maxX-inner_width)/2))
          self.helpWin.bkgdset(' ', box_col)
          self.helpWin.erase()
          self.helpWin.box()
          if is_message:
              start_with = txt_col
              follow = caption_col
          else:
              start_with = caption_col
              follow = txt_col
          if caption.strip():
              self.helpWin.addstr(0, int((inner_width-len(caption))/2), caption, caption_col)
          splited = []
          for i, n in enumerate(lines):
              a_line = self._replace_starting_undesscore(n)
              if a_line.startswith('%'):
                  self.helpWin.move(i + 1, 0)
                  try:
                      self.helpWin.addstr('├', curses.color_pair(3))
                      self.helpWin.addstr('─' * (inner_width - 2), curses.color_pair(3))
                      self.helpWin.addstr('┤', curses.color_pair(3))
                  except:
                      self.helpWin.addstr('├'.encode('utf-8'), curses.color_pair(3))
                      self.helpWin.addstr('─'.encode('utf-8') * (inner_width - 2), curses.color_pair(3))
                      self.helpWin.addstr('┤'.encode('utf-8'), curses.color_pair(3))
                  self.helpWin.addstr(i + 1, inner_width-len(a_line[1:]) - 1, a_line[1:].replace('_', ' '), caption_col)
                  #self.helpWin.addstr(i + 1, int((inner_width-len(a_line[1:]))/2), a_line[1:].replace('_', ' '), caption_col)
              else:
                  splited = a_line.split('|')
                  self.helpWin.move(i + 1, 2)
                  for part, part_string in enumerate(splited):
                      if part_string.strip():
                          if part == 0 or part % 2 == 0:
                              self.helpWin.addstr(splited[part], start_with)
                          else:
                              self.helpWin.addstr(splited[part], follow)
          if prompt.strip():
              self.helpWin.addstr(inner_height - 1, int(inner_width-len(prompt)-1), prompt)
          if use_empty_win:
              self.helpWinContainer.refresh()
          self.helpWin.refresh()