# Define menu operations for GL stdwin import gl from glstdwin import key2code class MenuObject: # def _init(self, (win, title)): self._win = win self._title = title self._items = [] return self # def close(self): self._win.remove(self) del self._win # def additem(self, arg): if type(arg) == type(()): text, shortcut = arg else: text, shortcut = arg, None self._items.append([text, shortcut, 1, 0]) # def setitem(self, (i, text)): self._items[i][0] = text # def enable(self, (i, flag)): self._items[i][2] = flag # def check(self, (i, flag)): self._items[i][3] = flag # def _makepup(self, firstitem): pup = gl.newpup() if self._title: gl.addtopup(pup, self._title + '%t', 0) for item in self._items: text = item[0] if not item[2]: # Disabled text = ' ( ' + text + ' )%x-1' else: if item[3]: # Check mark text = '-> ' + text else: text = ' ' + text if key2code.has_key(item[1]): text = text + ' [Alt-' + item[1] + ']' text = text + '%x' + `firstitem` gl.addtopup(pup, text, 0) firstitem = firstitem + 1 return pup # def _checkshortcut(self, char): for i in range(len(self._items)): item = self._items[i] if item[2] and item[1] == char: return i return -1 #