from kivy.uix.label import Label from kivy.graphics import Color,Rectangle from kivy.utils import escape_markup class Status_bar(Label): def __init__(self,app,**kwargs): # app is used to share information between widgets self.app=app # width of a character self.char_width=9 # unformatted text self.raw_text="" # a one-time message that shows up over the bar self.message="" # init Label super(Status_bar,self).__init__(**kwargs) def set_text(self,string): self.raw_text=string self.draw() def draw(self): # if message is not empty, draw message instead if self.message!="": self.text=self.message[:min(len(self.message),int(self.width/self.char_width))] self.message="" return # do not wrap self.text=self.raw_text[:min(len(self.raw_text),int(self.width/self.char_width))]