X Tutup
import sublime class ThreadProgress(): """ Animates an indicator, [= ], in the status area while a thread runs :param thread: The thread to track for activity :param message: The message to display next to the activity indicator :param success_message: The message to display once the thread is complete """ def __init__(self, thread, message, success_message): self.thread = thread self.message = message self.success_message = success_message self.addend = 1 self.size = 8 self.last_view = None self.window = None sublime.set_timeout(lambda: self.run(0), 100) def run(self, i): if self.window is None: self.window = sublime.active_window() active_view = self.window.active_view() if self.last_view is not None and active_view != self.last_view: self.last_view.erase_status('_package_control') self.last_view = None if not self.thread.is_alive(): def cleanup(): active_view.erase_status('_package_control') if hasattr(self.thread, 'result') and not self.thread.result: cleanup() return active_view.set_status('_package_control', self.success_message) sublime.set_timeout(cleanup, 1000) return before = i % self.size after = (self.size - 1) - before active_view.set_status('_package_control', '%s [%s=%s]' % (self.message, ' ' * before, ' ' * after)) if self.last_view is None: self.last_view = active_view if not after: self.addend = -1 if not before: self.addend = 1 i += self.addend sublime.set_timeout(lambda: self.run(i), 100)
X Tutup