Exemplo n.º 1
0
class ListCreator(object):
    mItems = None
    mListItem = None

    def __init__(self, listheight, x, y, itemsize, items, reso):
        self.usedResolution = reso
        self.viewRect = RectF(x, y, itemsize.x, listheight)
        self.itemSize = itemsize
        self.mListItem = []
        self.mItems = items
        self.pos = b2Vec2(x,y)

        self.mListItem.append(Button("+", x + itemsize.x, y, b2Vec2(0.5,0.5), lambda:self.scrollUp()))
        self.mListItem.append(Button("-", x + itemsize.x, y + listheight - itemsize.y, b2Vec2(0.5,0.5), lambda:self.scrollDown()))

        counter = 0
        for resolution in self.mItems:
            active = True if resolution == self.usedResolution else False
            self.mListItem.append(ListItem(counter, x, y + (counter * itemsize.y), itemsize, resolution, active, lambda x: self.onItemClick(x)))
            counter += 1

    def isInViewRect(self, item):
        return self.viewRect.collidepoint(b2Vec2((item.x + item.size.x / 2.0, item.y + item.size.y / 2.0)))

    def scrollUp(self):
        for fi in self.mListItem:
            if isinstance(fi, ListItem):
                if fi.rect.y == self.viewRect.y:
                    return
                break

        for li in self.mListItem:
            if isinstance(li, ListItem):
                li.y += li.size.y
                li.rect.y = li.y

    def scrollDown(self):
        if self.mListItem[len(self.mListItem)-1].rect.y == self.viewRect.y + self.viewRect.h - self.itemSize.y:
            return

        for li in self.mListItem:
            if isinstance(li, ListItem):
                li.y -= li.size.y
                li.rect.y = li.y

    def onItemClick(self, clicked):
        if not self.isInViewRect(clicked): return
        for item in self.mListItem:
            if isinstance(item, ListItem):
                item.mActive = False

        clicked.mActive = True
        Pgl.options.resolution = clicked.mText
Exemplo n.º 2
0
    def __init__(self, listheight, x, y, itemsize, items, reso):
        self.usedResolution = reso
        self.viewRect = RectF(x, y, itemsize.x, listheight)
        self.itemSize = itemsize
        self.mListItem = []
        self.mItems = items
        self.pos = b2Vec2(x,y)

        self.mListItem.append(Button("+", x + itemsize.x, y, b2Vec2(0.5,0.5), lambda:self.scrollUp()))
        self.mListItem.append(Button("-", x + itemsize.x, y + listheight - itemsize.y, b2Vec2(0.5,0.5), lambda:self.scrollDown()))

        counter = 0
        for resolution in self.mItems:
            active = True if resolution == self.usedResolution else False
            self.mListItem.append(ListItem(counter, x, y + (counter * itemsize.y), itemsize, resolution, active, lambda x: self.onItemClick(x)))
            counter += 1