def __init__(self, stdscr, lineObjs): curses.use_default_colors() self.stdscr = stdscr self.colorPrinter = ColorPrinter(self.stdscr) self.lineObjs = lineObjs self.hoverIndex = 0 self.scrollOffset = 0 self.scrollBar = ScrollBar(self.colorPrinter, lineObjs, self) self.helperChrome = HelperChrome(self.colorPrinter, self) (self.oldmaxy, self.oldmaxx) = self.getScreenDimensions() self.mode = SELECT_MODE self.simpleLines = [] self.lineMatches = [] # lets loop through and split for key, lineObj in self.lineObjs.items(): lineObj.setController(self) if (lineObj.isSimple()): self.simpleLines.append(lineObj) else: self.lineMatches.append(lineObj) self.numLines = len(lineObjs.keys()) self.numMatches = len(self.lineMatches) self.setHover(self.hoverIndex, True) # the scroll offset might not start off # at 0 if our first real match is WAY # down the screen -- so lets init it to # a valid value after we have all our line objects self.updateScrollOffset() logger.addEvent('init')
def __init__(self, flags, keyBindings, stdscr, lineObjs, cursesAPI): self.stdscr = stdscr self.cursesAPI = cursesAPI self.cursesAPI.useDefaultColors() self.colorPrinter = ColorPrinter(self.stdscr, cursesAPI) self.flags = flags self.keyBindings = keyBindings self.lineObjs = lineObjs self.hoverIndex = 0 self.scrollOffset = 0 self.scrollBar = ScrollBar(self.colorPrinter, lineObjs, self) self.helperChrome = HelperChrome(self.colorPrinter, self, flags) (self.oldmaxy, self.oldmaxx) = self.getScreenDimensions() self.mode = SELECT_MODE # lets loop through and split self.lineMatches = [] for lineObj in self.lineObjs.values(): lineObj.controller = self if not lineObj.isSimple(): self.lineMatches.append(lineObj) # begin tracking dirty state self.resetDirty() if self.flags.args.all: self.toggleSelectAll() self.numLines = len(lineObjs.keys()) self.numMatches = len(self.lineMatches) self.setHover(self.hoverIndex, True) # the scroll offset might not start off # at 0 if our first real match is WAY # down the screen -- so lets init it to # a valid value after we have all our line objects self.updateScrollOffset() logger.addEvent('init')