-
Notifications
You must be signed in to change notification settings - Fork 13
/
progressWindow.py
42 lines (36 loc) · 1.41 KB
/
progressWindow.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import vanilla
from defconAppKit.windows.baseWindow import BaseWindowController
class ProgressWindow(BaseWindowController):
def __init__(self, text="", tickCount=None, parentWindow=None):
if parentWindow is None:
self.w = vanilla.Window((250, 60), closable=False, miniaturizable=False, textured=False)
else:
self.w = vanilla.Sheet((250, 60), parentWindow)
if tickCount is None:
isIndeterminate = True
tickCount = 0
else:
isIndeterminate = False
self.w.progress = vanilla.ProgressBar((15, 15, -15, 12), maxValue=tickCount, isIndeterminate=isIndeterminate, sizeStyle="small")
self.w.text = vanilla.TextBox((15, 32, -15, 14), text, sizeStyle="small")
self.w.progress.start()
self.w.center()
self.setUpBaseWindowBehavior()
self.w.open()
def close(self):
self.w.progress.stop()
self.w.close()
def update(self, text=None):
self.w.progress.increment()
if text is not None:
self.w.text.set(text)
self.w.text._nsObject.display()
def setTickCount(self, value):
bar = self.w.progress.getNSProgressIndicator()
if value is None:
bar.setIndeterminate_(True)
self.w.progress.start()
else:
bar.setIndeterminate_(False)
bar.setDoubleValue_(0)
bar.setMaxValue_(value)