// PrintStatus prints a new status message. This also resets the
// timer created by ClearStatus()
183073
func (s *StatusBar) PrintStatus(msg string, clearDelay time.Duration) {
	if pdebug.Enabled {
		g := pdebug.Marker("StatusBar.PrintStatus")
		defer g.End()
	}

	s.stopTimer()

	location := s.AnchorPosition()

	w, _ := s.screen.Size()
	width := runewidth.StringWidth(msg)
	for width > w {
		_, rw := utf8.DecodeRuneInString(msg)
		width = width - rw
		msg = msg[rw:]
	}

	var pad []byte
	if w > width {
		pad = make([]byte, w-width)
		for i := 0; i < w-width; i++ {
			pad[i] = ' '
		}
	}

	fgAttr := s.styles.Basic.fg
	bgAttr := s.styles.Basic.bg

	if w > width {
		s.screen.Print(PrintArgs{
			Y:   location,
			Fg:  fgAttr,
			Bg:  bgAttr,
			Msg: string(pad),
		})
	}

	if width > 0 {
		s.screen.Print(PrintArgs{
			X:   int(w - width),
			Y:   location,
			Fg:  fgAttr | termbox.AttrReverse | termbox.AttrBold | termbox.AttrReverse,
			Bg:  bgAttr | termbox.AttrReverse,
			Msg: msg,
		})
	}
	s.screen.Flush()

	// if everything is successful AND the clearDelay timer is specified,
	// then set a timer to clear the status
	if clearDelay != 0 {
		s.setClearTimer(time.AfterFunc(clearDelay, func() {
			s.PrintStatus("", 0)
		}))
	}
}
995034
func (s *BusinessReport) SetStatus(v string) *BusinessReport {
	s.Status = &v
	return s
}
523487
func (s *LifecycleEvent) SetStatus(v string) *LifecycleEvent {
	s.Status = &v
	return s
}
592297
func (s *StreamProcessor) SetStatus(v string) *StreamProcessor {
	s.Status = &v
	return s
}
608948
func (s *ElasticIpStatus) SetStatus(v string) *ElasticIpStatus {
	s.Status = &v
	return s
}
985698
func (s *IPRange) SetStatus(v string) *IPRange {
	s.Status = &v
	return s
}
928889
func (s *Member) SetStatus(v string) *Member {
	s.Status = &v
	return s
}
162719
func (s *AccelerateConfiguration) SetStatus(v string) *AccelerateConfiguration {
	s.Status = &v
	return s
}
1121985
func (s *GetCommandInvocationOutput) SetStatus(v string) *GetCommandInvocationOutput {
	s.Status = &v
	return s
}
1185056
func (s *EncryptionConfig) SetStatus(v string) *EncryptionConfig {
	s.Status = &v
	return s
}
51974
func (s *JobDefinition) SetStatus(v string) *JobDefinition {
	s.Status = &v
	return s
}
252354
func (s *S3LogsConfig) SetStatus(v string) *S3LogsConfig {
	s.Status = &v
	return s
}
1344531
func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
	s.Status = &v
	return s
}
944077
func (s *TestInvokeMethodOutput) SetStatus(v int64) *TestInvokeMethodOutput {
	s.Status = &v
	return s
}
799787
func (s *CreateBotVersionOutput) SetStatus(v string) *CreateBotVersionOutput {
	s.Status = &v
	return s
}
491355
func (s *StackInstance) SetStatus(v string) *StackInstance {
	s.Status = &v
	return s
}
1275288
func (s *GetBotOutput) SetStatus(v string) *GetBotOutput {
	s.Status = &v
	return s
}