Files
2022-09-12 20:59:52 +03:00

34 lines
1.2 KiB
Python

from Foundation import NSNotFound, NSObject
class ProcessList(NSObject):
def __new__(cls, device):
return cls.alloc().initWithDevice_(device)
def initWithDevice_(self, device):
self = self.init()
self.processes = sorted(device.enumerate_processes(), key=lambda d: d.name.lower())
self._processNames = []
self._processIndexByName = {}
for i, process in enumerate(self.processes):
lowerName = process.name.lower()
self._processNames.append(lowerName)
self._processIndexByName[lowerName] = i
return self
def numberOfItemsInComboBox_(self, comboBox):
return len(self.processes)
def comboBox_objectValueForItemAtIndex_(self, comboBox, index):
return self.processes[index].name
def comboBox_completedString_(self, comboBox, uncompletedString):
lowerName = uncompletedString.lower()
for i, name in enumerate(self._processNames):
if name.startswith(lowerName):
return self.processes[i].name
return None
def comboBox_indexOfItemWithStringValue_(self, comboBox, value):
return self._processIndexByName.get(value.lower(), NSNotFound)