Exemple #1
0
    def __init__(self, parent, catPredicate, id=wx.ID_ANY):
        wx.Dialog.__init__(self,
                           parent,
                           id,
                           "Category Predicate",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.TAB_TRAVERSAL)

        self.catPredicate = catPredicate

        border = 2
        bs = wx.GridBagSizer(vgap=3, hgap=3)

        row = 0
        numbersLabel = wx.StaticText(self, label=u'{}:'.format(_('Numbers')))

        bs.Add(numbersLabel,
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.ALIGN_RIGHT)

        self.numbers = wx.TextCtrl(self)
        bs.Add(self.numbers,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.RIGHT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.EXPAND)
        row += 1

        genderLabel = wx.StaticText(self, label=u'{}:'.format(_('Gender')))
        bs.Add(genderLabel,
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.ALIGN_RIGHT)

        self.gender = wx.Choice(self, choices=['Open', 'Men', 'Women'])
        bs.Add(self.gender,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.RIGHT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.EXPAND)
        self.gender.SetSelection(0)
        row += 1

        ageLabel = wx.StaticText(self, label=u'{}:'.format(_('Age')))
        bs.Add(ageLabel,
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.ALIGN_RIGHT)

        hs = wx.BoxSizer(wx.HORIZONTAL)
        self.ageRange = [None, None]
        self.ageRange[0] = wx.lib.intctrl.IntCtrl(self,
                                                  min=0,
                                                  max=110,
                                                  allow_none=True,
                                                  limited=True,
                                                  size=(32, -1))
        self.ageRange[1] = wx.lib.intctrl.IntCtrl(self,
                                                  min=0,
                                                  max=110,
                                                  allow_none=True,
                                                  limited=True,
                                                  size=(32, -1))
        hs.Add(self.ageRange[0])
        hs.Add(wx.StaticText(self, label=u' ' + _('to') + u' '),
               flag=wx.ALIGN_CENTER_VERTICAL)
        hs.Add(self.ageRange[1])
        bs.Add(hs,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL
               | wx.ALIGN_LEFT)
        row += 1

        categoryLabel = wx.StaticText(self,
                                      label=u'{}:'.format(_('Categories')))
        bs.Add(categoryLabel,
               pos=(row, 0),
               span=(1, 1),
               border=8,
               flag=wx.LEFT | wx.TOP | wx.ALIGN_TOP | wx.ALIGN_RIGHT)

        self.il = wx.ImageList(16, 16)
        self.sm_rt = self.il.Add(
            wx.Bitmap(
                os.path.join(Utils.getImageFolder(), 'SmallRightArrow.png'),
                wx.BITMAP_TYPE_PNG))
        self.sm_up = self.il.Add(
            wx.Bitmap(os.path.join(Utils.getImageFolder(), 'SmallUpArrow.png'),
                      wx.BITMAP_TYPE_PNG))
        self.sm_dn = self.il.Add(
            wx.Bitmap(
                os.path.join(Utils.getImageFolder(), 'SmallDownArrow.png'),
                wx.BITMAP_TYPE_PNG))

        self.categoryList = AutoWidthListCtrl(self,
                                              size=(-1, 180),
                                              style=wx.LC_REPORT
                                              | wx.BORDER_SUNKEN
                                              | wx.LC_HRULES)
        self.categoryList.SetImageList(self.il, wx.IMAGE_LIST_SMALL)

        self.categoryList.InsertColumn(0, _("Category"))
        bs.Add(self.categoryList,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND)
        row += 1

        self.okBtn = wx.Button(self, wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.onOK, self.okBtn)

        self.cancelBtn = wx.Button(self, wx.ID_CANCEL)
        self.Bind(wx.EVT_BUTTON, self.onCancel, self.cancelBtn)
        row += 1

        border = 8
        bs.Add(self.okBtn,
               pos=(row, 0),
               span=(1, 1),
               border=border,
               flag=wx.ALL)
        self.okBtn.SetDefault()
        bs.Add(self.cancelBtn,
               pos=(row, 1),
               span=(1, 1),
               border=border,
               flag=wx.ALL)

        bs.AddGrowableCol(1)
        bs.AddGrowableRow(row - 2)
        self.SetSizerAndFit(bs)
        bs.Fit(self)
Exemple #2
0
def getCatCountImagesCategoryList(parent):
    il = wx.ImageList(16, 16)
    sm_rt = il.Add(
        wx.Bitmap(os.path.join(Utils.getImageFolder(), 'SmallRightArrow.png'),
                  wx.BITMAP_TYPE_PNG))
    sm_up = il.Add(
        wx.Bitmap(os.path.join(Utils.getImageFolder(), 'SmallUpArrow.png'),
                  wx.BITMAP_TYPE_PNG))
    sm_dn = il.Add(
        wx.Bitmap(os.path.join(Utils.getImageFolder(), 'SmallDownArrow.png'),
                  wx.BITMAP_TYPE_PNG))

    list = AutoWidthListCtrl(parent,
                             style=wx.LC_REPORT
                             | wx.BORDER_SUNKEN
                             | wx.LC_HRULES)
    list.SetImageList(il, wx.IMAGE_LIST_SMALL)

    list.InsertColumn(0, _("Name"))
    list.InsertColumn(1, _("Gender"))
    list.InsertColumn(2, _("Type"))
    list.InsertColumn(3, _("Count"), wx.LIST_FORMAT_RIGHT)
    list.InsertColumn(4, '')

    catCount = {}
    race = Model.race
    if race:
        with UnstartedRaceWrapper():
            SyncExcelLink(race)
            for c in race.getCategories(startWaveOnly=False, publishOnly=True):
                catCount[c] = race.catCount(c)
                if catCount[c] == 0:
                    continue
                index = list.InsertStringItem(sys.maxint, c.name, sm_rt)
                list.SetStringItem(index, 1, getattr(c, 'gender', 'Open'))
                list.SetStringItem(
                    index, 2, [_('Start Wave'),
                               _('Component'),
                               _('Custom')][c.catType])
                list.SetStringItem(index, 3, u'{}'.format(catCount[c]))

    for col in xrange(4 + 1):
        list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
    list.SetColumnWidth(1, 64)
    list.SetColumnWidth(3, 52)

    return catCount, il, list