-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCaseMenu.py
More file actions
47 lines (37 loc) · 1.51 KB
/
CaseMenu.py
File metadata and controls
47 lines (37 loc) · 1.51 KB
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
43
44
45
46
47
from Cocoa import *
from Foundation import *
from LoginWindow import *
class CaseMenu(NSMenu):
def registerApi(self, api):
self.api = api
def initialDisplay(self):
self.removeAllItems()
menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Login', 'showLogin:', '')
self.addItem_(menuitem)
menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Quit', 'terminate:', '')
self.addItem_(menuitem)
self.update()
def hideLogin(self):
self.removeItem_(self.itemWithTitle_('Login'))
menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Stop Work', 'stopWork:', '')
self.insertItem_atIndex_(menuitem, 0)
menuitem = NSMenuItem.separatorItem()
self.insertItem_atIndex_(menuitem, 0)
self.update()
def updateMenu(self):
with self.api.lock:
for case in self.api.casesToRemove:
index = self.indexOfItemWithRepresentedObject_(case)
self.removeItemAtIndex_(index)
self.casesToRemove = []
for case in self.api.cases:
index = self.indexOfItemWithRepresentedObject_(case)
if (index == -1):
menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(case.stitle.string, 'selectCase:', '')
menuitem.setRepresentedObject_(case)
self.insertItem_atIndex_(menuitem, 0)
elif (self.api.workingCase == case.get('ixbug')):
self.itemAtIndex_(index).setState_(NSOnState)
else:
self.itemAtIndex_(index).setState_(NSOffState)
self.update()