rendered paste bodyfrom AppKit import *from Foundation import *import objcRUIMenuListLayer = objc.lookUpClass('RUIMenuListLayer')RUITextMenuItem = objc.lookUpClass('RUITextMenuItem')RUIModuleController = objc.lookUpClass('RUIModuleController')class FREListMenu(RUIMenuListLayer): _rows = objc.ivar(u'_rows') _screens = objc.ivar(u'_screens') def __getattr__(self, name): if name[0] == '_': return objc.getInstanceVariable(self, name) else: return self.__dict__[name] def __setattr__(self, name, value): if name[0] == '_': return objc.setInstanceVariable(self, name, value, 1) else: self.__dict__[name] = value return value def init(self, parent): self.parent_ = parent return self def enter(self): print 'omg' try: scene = self.parent_._scene except AttributeError: scene = self.parent_.scene() self.initWithScene_(scene) self._list.setDatasource_(self) self._rows = None self._screens = None return self def rowCount(self): print 'wtf' rows, screens = self.getRenderables() return len(rows) def itemForRow_sized_(self, row, size): print 'hax' rows, screens = self.getRenderables() row = rows[row] row.setBounds_(size) return row def rowSelected_(self, row): print 'bbq' rows, screens = self.getRenderables() stack = RUIModuleController.sharedController().menuStack() # stack.startProgressIndicator() stack.pushMenu_(screens[row].enter()) def getRenderables(self): print 'pork', self._rows != None, self._screens != None if self._rows != None: return self._rows, self._screens items = self.listItems() rows = [] screens = [] print 'Generating renderables' for item in items: row = RUITextMenuItem.alloc().initWithLayer_(self) row.setTitle_(item[0]) row.setArrowDisabled_(0) rows.append(row) screens.append(item[1]) print 'Renderables dun generated in the hollar.' self._rows = rows self._screens = screens return self._rows, self._screens