Exemplo n.º 1
0
    def _do_layout(self):
        sizer = wx.GridBagSizer()
        sizer_btn = wx.BoxSizer(wx.HORIZONTAL)

        sizer_btn.Add(self.btn_ok, 0, 0, cw.ppis(0))
        sizer_btn.Add(self.btn_cncl, 0, wx.LEFT, cw.ppis(5))

        row = 0
        if self.warning:
            sizer.Add(self.warning,
                      pos=(row, 0),
                      flag=wx.ALL,
                      border=cw.ppis(5))
            row += 1
        sizer.Add(self.note, pos=(row, 0), flag=wx.EXPAND)
        sizer.AddGrowableRow(row)
        sizer.AddGrowableCol(0)
        row += 1
        sizer.Add(sizer_btn,
                  pos=(row, 0),
                  flag=wx.ALL | wx.ALIGN_RIGHT,
                  border=cw.ppis(5))
        row += 1
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 2
0
    def _do_layout(self):
        sizer_left = wx.BoxSizer(wx.VERTICAL)
        sizer_left.Add(self.events, 1, flag=wx.EXPAND)
        sizer_left.Add(self.showallcards,
                       0,
                       flag=wx.EXPAND | wx.TOP,
                       border=cw.ppis(5))

        sizer_right = wx.BoxSizer(wx.VERTICAL)
        sizer_right.Add(self.openbtn, 0, wx.EXPAND)
        sizer_right.Add(self.startbtn,
                        0,
                        wx.EXPAND | wx.TOP,
                        border=cw.ppis(5))
        sizer_right.AddStretchSpacer(1)
        sizer_right.Add(self.cnclbtn, 0, wx.EXPAND)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(sizer_left, 1, wx.EXPAND | wx.ALL, border=cw.ppis(5))
        sizer.Add(sizer_right,
                  0,
                  flag=wx.EXPAND | wx.RIGHT | wx.TOP | wx.BOTTOM,
                  border=cw.ppis(5))

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 3
0
 def _do_layout(self):
     sizer = wx.BoxSizer(wx.VERTICAL)
     sizer.Add(self.tc, 0, 0, cw.ppis(0))
     sizer.Add(self.btn_ok, 0, wx.CENTER|wx.ALL, cw.ppis(5))
     self.SetSizer(sizer)
     sizer.Fit(self)
     self.Layout()
Exemplo n.º 4
0
    def __init__(self, parent, conv):
        wx.Panel.__init__(self, parent)

        base = cw.data.xml2etree(u"Data/SkinBase/Skin.xml")
        basemsgs = base.find("Messages")

        self.grid = wx.grid.Grid(self,
                                 -1,
                                 size=cw.ppis((200, 200)),
                                 style=wx.BORDER)
        self.grid.CreateGrid(len(basemsgs) + 6 + 2 + 4, 1)
        self.grid.SetRowLabelSize(cw.ppis(150))
        self.grid.SetRowLabelAlignment(wx.LEFT, wx.CENTER)

        self.grid.SetColLabelValue(0, u"メッセージ(\\n=改行, \\\\=\\)")
        self.grid.SetColSize(0, cw.ppis(380))

        row = 0
        for e in basemsgs:
            if e.text:
                s = cw.util.encodewrap(e.text)
            else:
                s = u"(空のテキスト)"
            self.grid.SetRowLabelValue(row, s)
            row += 1

        for e in base.getfind("Natures")[:6]:
            e = e.find("Description")
            s = cw.util.encodewrap(e.text)
            self.grid.SetRowLabelValue(row, s)
            row += 1

        e = base.find("Periods/Period[3]/Coupons/Coupon")
        self.grid.SetRowLabelValue(row, cw.util.encodewrap(e.text))
        row += 1
        e = base.find("Periods/Period[4]/Coupons/Coupon")
        self.grid.SetRowLabelValue(row, cw.util.encodewrap(e.text))
        row += 1

        basegameover = cw.data.xml2etree(
            u"Data/SkinBase/Resource/Xml/GameOver/01_GameOver.xml")
        e = basegameover.find("Events/Event//Talk")
        self.grid.SetRowLabelValue(row, e.find("Text").text)
        row += 1
        self.grid.SetRowLabelValue(row, e.find("Contents/Post[1]").get("name"))
        row += 1
        self.grid.SetRowLabelValue(row, e.find("Contents/Post[2]").get("name"))
        row += 1
        self.grid.SetRowLabelValue(row, e.find("Contents/Post[4]").get("name"))
        row += 1

        self.set_values(conv)

        self._do_layout()
Exemplo n.º 5
0
    def __init__(self, parent, conv):
        wx.Panel.__init__(self, parent)
        baseconv = cw.skin.convert.Converter("")

        self.grid = wx.grid.Grid(self, -1, size=cw.ppis((200, 200)))
        self.grid.CreateGrid(0, 2)
        self.grid.SetRowLabelAlignment(wx.LEFT, wx.CENTER)

        self.grid.SetColLabelValue(0, u"名称")
        self.grid.SetColLabelValue(1, u"解説(\\n=改行, \\\\=\\)")
        self.grid.SetColSize(0, cw.ppis(80))
        self.grid.SetColSize(1, cw.ppis(300))

        row = 0
        self.grid.InsertRows(row, len(baseconv.actioncard), False)
        for key in cw.util.sorted_by_attr(baseconv.actioncard.iterkeys()):
            e = baseconv.actioncard[key]
            name = e.gettext("Property/Name", "")
            self.grid.SetRowLabelValue(row, u"アクション:" + name)
            row += 1
        self.grid.InsertRows(row, len(baseconv.specialcard), False)
        for key in cw.util.sorted_by_attr(baseconv.specialcard.iterkeys()):
            e = baseconv.specialcard[key]
            name = e.gettext("Property/Name", "")
            self.grid.SetRowLabelValue(row, u"特殊カード:" + name)
            row += 1

        def put_areacards(table, row):
            for key in cw.util.sorted_by_attr(table.iterkeys()):
                data = table[key]
                areaname = data.gettext("Property/Name", "")
                cards = data.getfind("MenuCards")
                self.grid.InsertRows(row, len(cards), False)
                for e in cards:
                    name = e.gettext("Property/Name", "")
                    self.grid.SetRowLabelValue(row, areaname + ": " + name)
                    row += 1
            return row

        row = put_areacards(baseconv.title, row)
        row = put_areacards(baseconv.yado, row)
        row = put_areacards(baseconv.scenario, row)
        row = put_areacards(baseconv.gameover, row)

        self.set_values(conv)

        self.grid.SetRowLabelSize(wx.grid.GRID_AUTOSIZE)

        self._do_layout()

        baseconv.dispose()
Exemplo n.º 6
0
    def _do_layout(self):
        sizer_gb = wx.GridBagSizer()
        bsizer_base = wx.StaticBoxSizer(self.box_base, wx.VERTICAL)
        bsizer_info = wx.StaticBoxSizer(self.box_info, wx.VERTICAL)
        gbsizer_base = wx.GridBagSizer()

        def add_base(ctrl, pos):
            sizer = wx.BoxSizer(wx.HORIZONTAL)
            sizer.Add(ctrl, 1, wx.ALIGN_CENTER_VERTICAL, 0)
            gbsizer_base.Add(sizer,
                             pos=pos,
                             flag=wx.ALL | wx.EXPAND
                             | wx.ALIGN_CENTER_VERTICAL,
                             border=cw.ppis(3))

        add_base(self.exelabel, pos=(0, 0))
        add_base(self.exectrl, pos=(0, 1))
        add_base(self.exeref, pos=(0, 2))
        add_base(self.datalabel, pos=(1, 0))
        add_base(self.datactrl, pos=(1, 1))
        add_base(self.dataref, pos=(1, 2))
        add_base(self.scenariolabel, pos=(2, 0))
        add_base(self.scenarioctrl, pos=(2, 1))
        add_base(self.scenarioref, pos=(2, 2))
        add_base(self.yadolabel, pos=(3, 0))
        add_base(self.yadoctrl, pos=(3, 1))
        add_base(self.yadoref, pos=(3, 2))
        gbsizer_base.AddGrowableCol(1, proportion=1)

        bsizer_base.Add(gbsizer_base, 0, wx.EXPAND, cw.ppis(5))
        bsizer_info.Add(self.info, 1, wx.EXPAND, cw.ppis(5))

        sizer_gb.Add(bsizer_base,
                     pos=(0, 0),
                     flag=wx.BOTTOM | wx.EXPAND,
                     border=cw.ppis(5))
        sizer_gb.Add(bsizer_info,
                     pos=(1, 0),
                     flag=wx.EXPAND,
                     border=cw.ppis(0))
        sizer_gb.AddGrowableRow(1)
        sizer_gb.AddGrowableCol(0)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(sizer_gb, 1, wx.ALL | wx.EXPAND, cw.ppis(10))

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 7
0
 def add_info(ctrl,
              pos,
              colspan=1,
              rowspan=1,
              expand=True,
              growable=False):
     sizer = wx.BoxSizer(wx.HORIZONTAL)
     growable = wx.EXPAND if growable else 0
     sizer.Add(ctrl, 1, wx.ALIGN_CENTER_VERTICAL | growable, cw.ppis(0))
     span = wx.GBSpan(colspan=colspan, rowspan=rowspan)
     expand = wx.EXPAND if expand else 0
     gbsizer_info.Add(sizer,
                      pos=pos,
                      span=span,
                      flag=wx.ALL | expand | wx.ALIGN_CENTER_VERTICAL,
                      border=cw.ppis(3))
Exemplo n.º 8
0
    def _do_layout(self):
        sizer_right = wx.BoxSizer(wx.VERTICAL)
        sizer_right.AddStretchSpacer(1)
        sizer_right.Add(self.okbtn, 0, wx.BOTTOM | wx.EXPAND, cw.ppis(5))
        sizer_right.Add(self.cnclbtn, 0, wx.EXPAND)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.cards, 1, wx.EXPAND | wx.ALL, border=cw.ppis(5))
        sizer.Add(sizer_right,
                  0,
                  flag=wx.EXPAND | wx.RIGHT | wx.TOP | wx.BOTTOM,
                  border=cw.ppis(5))

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 9
0
    def __init__(self, parent, currentfpath, showhiddencards):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           u"実行するイベントの選択",
                           style=wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX
                           | wx.RESIZE_BORDER)
        self.cwpy_debug = True
        self.events = EventList(self, cw.ppis((250, 300)), currentfpath,
                                showhiddencards)
        self.showhiddencards = showhiddencards
        self.showallcards = wx.CheckBox(self, -1, u"表示フラグがオフのカードも表示する")
        self.showallcards.SetValue(self.showhiddencards)
        self.start_event = False

        # 開く
        self.openbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, -1, (-1, -1), cw.cwpy.msgs["open_event"])
        # 実行
        self.startbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, -1, (-1, -1), cw.cwpy.msgs["run_event"])
        # 中止
        self.cnclbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, wx.ID_CANCEL, (-1, -1), cw.cwpy.msgs["cancel"])

        self._changed_selection()

        self._bind()
        self._do_layout()
Exemplo n.º 10
0
 def __init__(self, parent, log):
     wx.Dialog.__init__(self, parent, -1, u"エラーログ")
     self.cwpy_debug = True
     self.tc = wx.TextCtrl(
         self, -1, log, size=cw.ppis((250, 200)),
         style=wx.TE_MULTILINE|wx.TE_READONLY)
     self.btn_ok = wx.Button(self, wx.ID_OK, u"OK")
     self._do_layout()
Exemplo n.º 11
0
 def add_base(ctrl, pos):
     sizer = wx.BoxSizer(wx.HORIZONTAL)
     sizer.Add(ctrl, 1, wx.ALIGN_CENTER_VERTICAL, 0)
     gbsizer_base.Add(sizer,
                      pos=pos,
                      flag=wx.ALL | wx.EXPAND
                      | wx.ALIGN_CENTER_VERTICAL,
                      border=cw.ppis(3))
Exemplo n.º 12
0
    def __init__(self,
                 parent,
                 title,
                 message,
                 maximum=100,
                 minimum=0,
                 cancelable=False,
                 width=280):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           title,
                           style=wx.DEFAULT_DIALOG_STYLE)
        self.cwpy_debug = False
        self.SetClientSize(cw.ppis((width + 20, 60)))
        self.EnableCloseButton(cancelable)
        self.SetDoubleBuffered(True)
        self.cancel = False
        self.text = message
        self.minimum = minimum
        self.maximum = maximum
        self.gauge = wx.Gauge(self,
                              -1,
                              range=self.maximum - self.minimum,
                              size=(-1, cw.ppis(20)),
                              style=wx.GA_HORIZONTAL | wx.GA_SMOOTH)
        self.message = wx.StaticText(self,
                                     -1,
                                     self.text,
                                     size=(-1, -1),
                                     style=wx.ALIGN_RIGHT)
        self.message.SetDoubleBuffered(True)

        if cancelable:
            self.btn_cncl = wx.Button(self, -1, u"中止")
            self.SetClientSize(
                (cw.ppis(width + 20),
                 cw.ppis(60) + self.btn_cncl.GetBestSize()[1] + cw.ppis(5)))
        else:
            self.btn_cncl = None

        # bind
        self._bind()
        # layout
        self._do_layout()
Exemplo n.º 13
0
    def _do_layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)

        gbsizer_info = wx.GridBagSizer()

        def add_info(ctrl,
                     pos,
                     colspan=1,
                     rowspan=1,
                     expand=True,
                     growable=False):
            sizer = wx.BoxSizer(wx.HORIZONTAL)
            growable = wx.EXPAND if growable else 0
            sizer.Add(ctrl, 1, wx.ALIGN_CENTER_VERTICAL | growable, cw.ppis(0))
            span = wx.GBSpan(colspan=colspan, rowspan=rowspan)
            expand = wx.EXPAND if expand else 0
            gbsizer_info.Add(sizer,
                             pos=pos,
                             span=span,
                             flag=wx.ALL | expand | wx.ALIGN_CENTER_VERTICAL,
                             border=cw.ppis(3))

        add_info(self.typelabel, pos=(0, 0))
        add_info(self.typectrl, pos=(0, 1), colspan=2)
        add_info(self.namelabel, pos=(1, 0))
        add_info(self.namectrl, pos=(1, 1), colspan=2)
        add_info(self.authorlabel, pos=(2, 0))
        add_info(self.authorctrl, pos=(2, 1), colspan=2)
        add_info(self.desclabel, pos=(3, 0))
        add_info(self.descctrl, pos=(3, 1), colspan=2, growable=True)
        add_info(self.initialcashlabel, pos=(4, 0))
        add_info(self.initialcash, pos=(4, 1), expand=False)
        gbsizer_info.AddGrowableCol(1)
        gbsizer_info.AddGrowableRow(3)

        vsizer = wx.BoxSizer(wx.VERTICAL)
        vsizer.Add(self.vocation120, 0, wx.TOP, cw.ppis(3))
        add_info(vsizer, pos=(4, 2), colspan=1, rowspan=2, expand=False)

        sizer.Add(gbsizer_info, 1, wx.EXPAND, cw.ppis(0))

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 14
0
    def _do_layout(self):
        sizer_top = wx.BoxSizer(wx.VERTICAL)
        sizer_top.Add(self.text, 0, wx.BOTTOM, cw.ppis(10))
        sizer_top.Add(self.clear, 0, wx.ALIGN_RIGHT, cw.ppis(0))

        sizer_btn = wx.BoxSizer(wx.HORIZONTAL)
        sizer_btn.Add(self.okbtn, 1, 0, cw.ppis(0))
        sizer_btn.Add(cw.ppis((10, 0)), 0, 0, cw.ppis(0))
        sizer_btn.Add(self.cnclbtn, 1, 0, cw.ppis(0))

        sizer_v1 = wx.BoxSizer(wx.VERTICAL)
        sizer_v1.Add(sizer_top, 0, 0, cw.ppis(0))
        sizer_v1.Add(sizer_btn, 0, wx.ALIGN_RIGHT|wx.TOP, cw.ppis(10))

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(sizer_v1, 0, wx.ALL, cw.ppis(10))
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 15
0
    def __init__(self, parent, conv):
        wx.Panel.__init__(self, parent)

        base = cw.data.xml2etree(u"Data/SkinBase/Skin.xml")
        basesounds = base.find("Sounds")

        self.grid = wx.grid.Grid(self,
                                 -1,
                                 size=cw.ppis((200, 200)),
                                 style=wx.BORDER)
        self.grid.CreateGrid(len(basesounds), 1)
        self.grid.SetRowLabelAlignment(wx.LEFT, wx.CENTER)

        self.grid.SetColLabelValue(0, u"ファイル名(拡張子を除く)")
        self.grid.SetColSize(0, cw.ppis(170))

        for row, e in enumerate(basesounds):
            self.grid.SetRowLabelValue(row, e.text)

        self.set_values(conv)

        self.grid.SetRowLabelSize(wx.grid.GRID_AUTOSIZE)

        self._do_layout()
Exemplo n.º 16
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)

        # スキンタイプ一覧
        self.types = set([
            "MedievalFantasy",
            "Modern",
            "Monsters",
            "Oedo",
            "School",
            "ScienceFiction",
        ])
        if os.path.exists(u"Data/Skin"):
            for name in os.listdir(u"Data/Skin"):
                path = cw.util.join_paths(u"Data/Skin", name)
                skinpath = cw.util.join_paths(u"Data/Skin", name, u"Skin.xml")
                if os.path.isdir(path) and os.path.isfile(skinpath):
                    e = cw.data.xml2element(skinpath, "Property")
                    self.types.add(e.gettext("Type", ""))
        self.types = list(self.types)
        cw.util.sort_by_attr(self.types)

        # 種別
        self.typelabel = wx.StaticText(self, -1, u"種別")
        self.typectrl = wx.ComboBox(self,
                                    choices=self.types,
                                    style=wx.CB_DROPDOWN)
        # 名前
        self.namelabel = wx.StaticText(self, -1, u"名前")
        self.namectrl = wx.TextCtrl(self)
        # 作者
        self.authorlabel = wx.StaticText(self, -1, u"作者")
        self.authorctrl = wx.TextCtrl(self)
        # 解説
        self.desclabel = wx.StaticText(self, -1, u"解説")
        self.descctrl = wx.TextCtrl(self,
                                    size=cw.ppis((400, 100)),
                                    style=wx.TE_MULTILINE)
        # 初期資金
        self.initialcashlabel = wx.StaticText(self, -1, u"初期資金")
        self.initialcash = wx.SpinCtrl(self, -1, max=999999, min=0)
        # カードの適性計算をCardWirth 1.20に合わせるか
        self.vocation120 = wx.CheckBox(self, -1,
                                       u"CardWirth 1.20相当のカード適性計算を行う")

        self._do_layout()
        self._bind()
Exemplo n.º 17
0
    def _do_layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer_btn = wx.BoxSizer(wx.HORIZONTAL)

        sizer_info = wx.StaticBoxSizer(self.box_info, wx.VERTICAL)
        sizer_info.Add(self.info, 1, wx.EXPAND, cw.ppis(0))

        sizer_panel = wx.BoxSizer(wx.VERTICAL)
        sizer_panel.Add(sizer_info, 1, wx.ALL | wx.EXPAND, cw.ppis(10))
        self.pane_info.SetSizer(sizer_panel)

        sizer_btn.Add(self.warning, 0, wx.ALL, cw.ppis(3))
        sizer_btn.AddStretchSpacer(1)
        sizer_btn.Add(self.btn_ok, 0, 0, cw.ppis(0))
        sizer_btn.Add(self.btn_cncl, 0, wx.LEFT, cw.ppis(5))  #|wx.ALIGN_RIGHT

        sizer.Add(self.note, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND,
                  cw.ppis(3))
        sizer.Add(sizer_btn, 0, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND,
                  cw.ppis(3))
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 18
0
    def __init__(self, parent, size, currentfpath, showhiddencards):
        """イベントリストのインスタンスを生成する。
        currentfpath: 最初から選択状態にするエリア等のファイルパス。
        """
        wx.TreeCtrl.__init__(self,
                             parent,
                             -1,
                             size=size,
                             style=wx.TR_SINGLE | wx.TR_HIDE_ROOT
                             | wx.TR_DEFAULT_STYLE)
        self.SetDoubleBuffered(True)
        self._showallcards = showhiddencards
        self.imglist = wx.ImageList(cw.ppis(16), cw.ppis(16))
        imgidx_area = self.imglist.Add(cw.cwpy.rsrc.debugs["AREA"])
        imgidx_battle = self.imglist.Add(cw.cwpy.rsrc.debugs["BATTLE"])
        imgidx_package = self.imglist.Add(cw.cwpy.rsrc.debugs["PACK"])
        imgidx_skill = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_SKILL"])
        imgidx_item = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_ITEM"])
        imgidx_beast = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_BEAST"])
        self.imgidx_menucard = self.imglist.Add(cw.cwpy.rsrc.debugs["CARD"])
        self.imgidx_event = self.imglist.Add(cw.cwpy.rsrc.debugs["EVENT"])
        self.imgidx_ignition = self.imglist.Add(
            cw.cwpy.rsrc.debugs["IGNITION"])
        self.imgidx_keycode = self.imglist.Add(cw.cwpy.rsrc.debugs["KEYCODE"])
        self.imgidx_round = self.imglist.Add(cw.cwpy.rsrc.debugs["ROUND"])
        # プレイヤーカードのキーコード・死亡時イベント(Wsn.2)
        self.imgidx_cast = self.imglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_CAST"])

        self.SetImageList(self.imglist)
        self.root = self.AddRoot(cw.cwpy.sdata.name)

        def append_item(getids, getname, getdata, getfpath, imgidx):
            keys = getids()
            cw.util.sort_by_attr(keys)
            for resid in keys:
                if resid < 0:
                    continue
                name = getname(resid)
                if name is None:
                    continue
                fpath = getfpath(resid)
                if fpath is None:
                    continue
                item = self.AppendItem(self.root, name, imgidx)
                self.SetItemPyData(item,
                                   (name, resid, getdata, getfpath, False))
                if os.path.normcase(currentfpath) == os.path.normcase(fpath):
                    self._expand_item(item)
                    self.Expand(item)
                    self.SelectItem(item, True)
                else:
                    self.AppendItem(item, u"読込中...")

        append_item(cw.cwpy.sdata.get_areaids, cw.cwpy.sdata.get_areaname,
                    cw.cwpy.sdata.get_areadata, cw.cwpy.sdata.get_areafpath,
                    imgidx_area)
        append_item(cw.cwpy.sdata.get_battleids, cw.cwpy.sdata.get_battlename,
                    cw.cwpy.sdata.get_battledata,
                    cw.cwpy.sdata.get_battlefpath, imgidx_battle)
        append_item(cw.cwpy.sdata.get_packageids,
                    cw.cwpy.sdata.get_packagename,
                    cw.cwpy.sdata.get_packagedata,
                    cw.cwpy.sdata.get_packagefpath, imgidx_package)
        append_item(cw.cwpy.sdata.get_skillids, cw.cwpy.sdata.get_skillname,
                    cw.cwpy.sdata.get_skilldata, cw.cwpy.sdata.get_skillfpath,
                    imgidx_skill)
        append_item(cw.cwpy.sdata.get_itemids, cw.cwpy.sdata.get_itemname,
                    cw.cwpy.sdata.get_itemdata, cw.cwpy.sdata.get_itemfpath,
                    imgidx_item)
        append_item(cw.cwpy.sdata.get_beastids, cw.cwpy.sdata.get_beastname,
                    cw.cwpy.sdata.get_beastdata, cw.cwpy.sdata.get_beastfpath,
                    imgidx_beast)

        selitem = self.GetSelection()
        if selitem:
            self.ScrollTo(selitem)

        self._bind()
Exemplo n.º 19
0
    def __init__(self, parent, mlist, selected=-1):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           u"キャラクターの状態の編集",
                           style=wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX)
        self.cwpy_debug = True
        self.SetDoubleBuffered(True)

        self.pcards = mlist

        self.statuses = []
        self.statuses_backup = []
        for pcard in self.pcards:
            self.statuses.append(Status(pcard))
            self.statuses_backup.append(Status(pcard))

        self.life = StatusButton(self,
                                 0,
                                 self._is_dead,
                                 size=cw.ppis((45, 45)))
        self.poison = StatusButton(self,
                                   1,
                                   self._is_dead,
                                   size=cw.ppis((45, 45)))
        self.paralyze = StatusButton(self,
                                     2,
                                     self._is_dead,
                                     size=cw.ppis((45, 45)))
        self.mentality = StatusButton(self,
                                      3,
                                      self._is_dead,
                                      size=cw.ppis((45, 60)))
        self.bind = StatusButton(self,
                                 4,
                                 self._is_dead,
                                 size=cw.ppis((45, 45)))
        self.silence = StatusButton(self,
                                    5,
                                    self._is_dead,
                                    size=cw.ppis((45, 45)))
        self.faceup = StatusButton(self,
                                   6,
                                   self._is_dead,
                                   size=cw.ppis((45, 45)))
        self.antimagic = StatusButton(self,
                                      7,
                                      self._is_dead,
                                      size=cw.ppis((45, 45)))
        self.action = StatusButton(self,
                                   8,
                                   self._is_dead,
                                   size=cw.ppis((45, 60)))
        self.avoid = StatusButton(self,
                                  9,
                                  self._is_dead,
                                  size=cw.ppis((45, 60)))
        self.resist = StatusButton(self,
                                   10,
                                   self._is_dead,
                                   size=cw.ppis((45, 60)))
        self.defense = StatusButton(self,
                                    11,
                                    self._is_dead,
                                    size=cw.ppis((45, 60)))
        self.statusbtns = [
            self.life, self.poison, self.paralyze, self.mentality, self.bind,
            self.silence, self.faceup, self.antimagic, self.action, self.avoid,
            self.resist, self.defense
        ]

        # 対象者
        self.targets = [u"全員"]
        for pcard in self.pcards:
            self.targets.append(pcard.get_name())
        self.target = wx.ComboBox(self,
                                  -1,
                                  choices=self.targets,
                                  style=wx.CB_READONLY)
        self.target.Select(max(selected, -1) + 1)
        # smallleft
        bmp = cw.cwpy.rsrc.buttons["LSMALL_dbg"]
        self.leftbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                        -1,
                                                        cw.ppis((20, 20)),
                                                        bmp=bmp)
        # smallright
        bmp = cw.cwpy.rsrc.buttons["RSMALL_dbg"]
        self.rightbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                         -1,
                                                         cw.ppis((20, 20)),
                                                         bmp=bmp)

        # 全快
        self.rcvbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                       -1, (-1, -1),
                                                       name=u"全快")
        # 復旧
        self.restorebtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                           -1, (-1, -1),
                                                           name=u"復旧")

        # 決定
        self.okbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, -1, (-1, -1), cw.cwpy.msgs["entry_decide"])
        # 中止
        self.cnclbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, wx.ID_CANCEL, (-1, -1), cw.cwpy.msgs["entry_cancel"])

        self._bind()
        self._do_layout()

        self._select_target()
Exemplo n.º 20
0
    def _do_layout(self):
        sizer_1 = wx.BoxSizer(wx.VERTICAL)

        sizer_1.Add(cw.ppis((0, 10)), 0, 0, cw.ppis(0))
        sizer_1.Add(self.gauge, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, cw.ppis(10))
        sizer_1.Add(cw.ppis((0, 4)), 0, 0, cw.ppis(0))
        sizer_1.Add(self.message, 0, wx.EXPAND | wx.LEFT | wx.RIGHT,
                    cw.ppis(10))

        if self.btn_cncl:
            sizer_1.Add(cw.ppis((0, 5)), 0, 0, cw.ppis(0))
            sizer_1.Add(self.btn_cncl, 0, wx.ALIGN_RIGHT | wx.LEFT | wx.RIGHT,
                        cw.ppis(10))
        else:
            sizer_1.Add(cw.ppis((0, 30)), 0, 0, cw.ppis(0))

        self.SetSizer(sizer_1)
        self.Layout()
Exemplo n.º 21
0
    def _do_layout(self):
        sizer_cards = wx.StaticBoxSizer(self.cardsbox, wx.VERTICAL)
        sizer_cards.Add(self.scenario, 0, wx.EXPAND | wx.ALL, cw.ppis(5))
        sizer_cards.Add(self.cards, 1,
                        wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, cw.ppis(5))

        sizer_dealtarg = wx.StaticBoxSizer(self.dealtargbox, wx.HORIZONTAL)
        sizer_dealtarg.Add(self.dealtarg, 1, wx.ALL, cw.ppis(5))

        sizer_left = wx.BoxSizer(wx.VERTICAL)
        sizer_left.Add(sizer_cards, 1, wx.EXPAND | wx.ALL, cw.ppis(5))
        sizer_left.Add(sizer_dealtarg, 0,
                       wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, cw.ppis(5))

        sizer_method = wx.StaticBoxSizer(self.methodbox, wx.HORIZONTAL)
        sizer_checks = wx.BoxSizer(wx.HORIZONTAL)
        sizer_checks.Add(self.mname, 1, wx.RIGHT, cw.ppis(5))
        sizer_checks.Add(self.mdesc, 1, wx.RIGHT, cw.ppis(5))
        sizer_checks.Add(self.mscenario, 1, wx.RIGHT, cw.ppis(5))
        sizer_checks.Add(self.mauthor, 1)
        sizer_method.Add(sizer_checks, 1, wx.EXPAND | wx.ALL, cw.ppis(5))

        sizer_targets = wx.StaticBoxSizer(self.targetsbox, wx.VERTICAL)
        sizer_targets.Add(self.targets, 1,
                          wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, cw.ppis(5))
        sizer_targets.Add(self.status,
                          0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM,
                          cw.ppis(5))

        sizer_middle = wx.BoxSizer(wx.VERTICAL)
        sizer_middle.Add(sizer_targets, 1, wx.EXPAND | wx.BOTTOM, cw.ppis(5))
        sizer_middle.Add(sizer_method, 0, wx.EXPAND)

        sizer_right = wx.BoxSizer(wx.VERTICAL)
        sizer_right.Add(self.dtlbtn, 0, wx.EXPAND)
        sizer_right.Add(self.dealbtn, 0, wx.EXPAND | wx.TOP, border=cw.ppis(5))
        sizer_right.Add(self.findbtn,
                        0,
                        wx.EXPAND | wx.TOP,
                        border=cw.ppis(20))
        sizer_right.Add(self.stopbtn, 0, wx.EXPAND | wx.TOP, border=cw.ppis(5))
        sizer_right.Add(self.updbtn, 0, wx.EXPAND | wx.TOP, border=cw.ppis(5))
        sizer_right.Add(self.delbtn, 0, wx.EXPAND | wx.TOP, border=cw.ppis(5))
        sizer_right.AddStretchSpacer(1)
        sizer_right.Add(self.closebtn, 0, wx.EXPAND)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(sizer_left, 1, wx.EXPAND | wx.ALL, border=cw.ppis(5))
        sizer.Add(sizer_middle,
                  1,
                  wx.EXPAND | wx.RIGHT | wx.TOP | wx.BOTTOM,
                  border=cw.ppis(5))
        sizer.Add(sizer_right,
                  0,
                  wx.EXPAND | wx.RIGHT | wx.TOP | wx.BOTTOM,
                  border=cw.ppis(5))
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 22
0
 def _do_layout(self):
     sizer = wx.GridSizer(1, 1)
     sizer.Add(self.grid, 0, wx.EXPAND | wx.ALL, cw.ppis(5))
     self.SetSizer(sizer)
     sizer.Fit(self)
     self.Layout()
Exemplo n.º 23
0
    def __init__(self, parent, ccards, selectedcard):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           u"選択カードの変更",
                           style=wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX
                           | wx.RESIZE_BORDER)
        self.cwpy_debug = True
        self._selectedcard = selectedcard

        self.cards = wx.TreeCtrl(self,
                                 size=cw.ppis((250, 300)),
                                 style=wx.TR_SINGLE | wx.TR_HIDE_ROOT
                                 | wx.TR_DEFAULT_STYLE)

        self.imglist = wx.ImageList(cw.ppis(16), cw.ppis(16))
        imgidx_sack = self.imglist.Add(cw.cwpy.rsrc.buttons["SACK_dbg"])
        imgidx_cast = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_CAST"])
        imgidx_action = self.imglist.Add(cw.cwpy.rsrc.debugs["CARD"])
        imgidx_skill = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_SKILL"])
        imgidx_item = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_ITEM"])
        imgidx_beast = self.imglist.Add(cw.cwpy.rsrc.debugs["EVT_GET_BEAST"])
        self.cards.SetImageList(self.imglist)
        root = self.cards.AddRoot(u"")

        for i, (ccardname, hand) in enumerate(ccards):
            item = self.cards.AppendItem(root, ccardname,
                                         imgidx_cast if 0 < i else imgidx_sack)
            for header in hand:
                if header.type == "ActionCard":
                    icon = imgidx_action
                elif header.type == "SkillCard":
                    icon = imgidx_skill
                elif header.type == "ItemCard":
                    icon = imgidx_item
                elif header.type == "BeastCard":
                    icon = imgidx_beast
                else:
                    assert False, header.type
                citem = self.cards.AppendItem(item, header.name, icon)
                self.cards.SetItemPyData(citem, header)
                if header == self._selectedcard:
                    self.cards.SelectItem(citem)
            if 0 < i:
                self.cards.Expand(item)

            if not self.cards.GetSelection():
                self.cards.SelectItem(item)

        selitem = self.cards.GetSelection()
        if selitem:
            self.cards.ScrollTo(selitem)

        # 決定
        self.okbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self, wx.ID_OK, (-1, -1),
                                                      cw.cwpy.msgs["decide"])
        # 中止
        self.cnclbtn = cw.cwpy.rsrc.create_wxbutton_dbg(
            self, wx.ID_CANCEL, (-1, -1), cw.cwpy.msgs["cancel"])

        self._changed_selection()

        self._bind()
        self._do_layout()
Exemplo n.º 24
0
    def _do_layout(self):
        sizer_status = wx.GridBagSizer()
        sizer_status.Add(self.life,
                         pos=(0, 0),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.poison,
                         pos=(0, 1),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.paralyze,
                         pos=(0, 2),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.mentality,
                         pos=(1, 0),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.bind,
                         pos=(2, 0),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.silence,
                         pos=(2, 1),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.faceup,
                         pos=(2, 2),
                         flag=wx.RIGHT | wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.antimagic,
                         pos=(2, 3),
                         flag=wx.BOTTOM,
                         border=cw.ppis(5))
        sizer_status.Add(self.action,
                         pos=(3, 0),
                         flag=wx.RIGHT,
                         border=cw.ppis(5))
        sizer_status.Add(self.avoid,
                         pos=(3, 1),
                         flag=wx.RIGHT,
                         border=cw.ppis(5))
        sizer_status.Add(self.resist,
                         pos=(3, 2),
                         flag=wx.RIGHT,
                         border=cw.ppis(5))
        sizer_status.Add(self.defense, pos=(3, 3))

        sizer_left = wx.BoxSizer(wx.VERTICAL)
        sizer_combo = wx.BoxSizer(wx.HORIZONTAL)
        sizer_combo.Add(self.leftbtn, 0, wx.EXPAND)
        sizer_combo.Add(self.target,
                        1,
                        wx.LEFT | wx.RIGHT | wx.EXPAND,
                        border=cw.ppis(5))
        sizer_combo.Add(self.rightbtn, 0, wx.EXPAND)
        sizer_left.Add(sizer_combo,
                       0,
                       flag=wx.BOTTOM | wx.EXPAND,
                       border=cw.ppis(5))
        sizer_left.Add(sizer_status, 1, flag=wx.EXPAND)

        sizer_right = wx.BoxSizer(wx.VERTICAL)
        sizer_right.Add(self.rcvbtn, 0, wx.EXPAND)
        sizer_right.Add(self.restorebtn,
                        0,
                        wx.EXPAND | wx.TOP,
                        border=cw.ppis(5))
        sizer_right.AddStretchSpacer(1)
        sizer_right.Add(self.okbtn, 0, wx.EXPAND)
        sizer_right.Add(self.cnclbtn, 0, wx.EXPAND | wx.TOP, border=cw.ppis(5))

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(sizer_left, 1, flag=wx.EXPAND | wx.ALL, border=cw.ppis(5))
        sizer.Add(sizer_right,
                  0,
                  flag=wx.EXPAND | wx.RIGHT | wx.TOP | wx.BOTTOM,
                  border=cw.ppis(5))

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()
Exemplo n.º 25
0
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           u"手札カードの編集",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        self.cwpy_debug = True

        self.party = cw.cwpy.ydata.party
        if cw.cwpy.is_playingscenario():
            self.scdata = cw.cwpy.sdata
            self.scpath = self.scdata.fpath
            if os.path.isdir(self.scpath):
                spath = cw.util.join_paths(self.scpath, "Summary.wsm")
                if os.path.isfile(spath):
                    self.scpath = spath
                spath = cw.util.join_paths(self.scpath, "Summary.xml")
                if os.path.isfile(spath):
                    self.scpath = spath
        else:
            self.scdata = None
            self.scpath = ""

        self._find = False
        self.list = []
        self.datalist = []
        self.target_cards = {}
        self.target_table = {}

        self.cardsbox = wx.StaticBox(self, -1, u"カードの選択")
        self.dealtargbox = wx.StaticBox(self, -1, u"配付先")
        self.methodbox = wx.StaticBox(self, -1, u"照合方法")
        self.targetsbox = wx.StaticBox(self, -1, u"処理対象")

        self.scenario = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                         -1, (-1, -1),
                                                         name=u"(シナリオ未選択)")

        self.imglist = wx.ImageList(cw.ppis(16), cw.ppis(16))
        self.imgidx_skill = self.imglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_SKILL_dbg"])
        self.imgidx_item = self.imglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_ITEM_dbg"])
        self.imgidx_beast = self.imglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_BEAST_dbg"])

        self.cards = wx.ListCtrl(self,
                                 -1,
                                 size=cw.ppis((200, 250)),
                                 style=wx.LC_REPORT)
        self.cards.SetImageList(self.imglist, wx.IMAGE_LIST_SMALL)
        self.cards.InsertColumn(0, "ID")
        self.cards.InsertColumn(1, u"カード名")
        self.cards.InsertColumn(2, u"解説")
        self.cards.SetColumnWidth(0, cw.ppis(40))
        self.cards.SetColumnWidth(1, cw.ppis(85))
        self.cards.SetColumnWidth(2, cw.ppis(110))

        self.dealtarg = wx.combo.BitmapComboBox(self, -1, style=wx.CB_READONLY)
        self.notcast = 0
        if not (cw.cwpy.ydata.party and\
                cw.cwpy.ydata.party.is_adventuring()):
            bmp = cw.cwpy.rsrc.buttons["DECK_dbg"]
            self.dealtarg.Append(u"カード置場", bmp)
            self.notcast += 1
        if cw.cwpy.ydata.party:
            bmp = cw.cwpy.rsrc.buttons["SACK_dbg"]
            self.dealtarg.Append(u"荷物袋", bmp)
            self.notcast += 1
        bmp = cw.cwpy.rsrc.buttons["CAST_dbg"]
        for member in cw.cwpy.get_pcards():
            self.dealtarg.Append(member.name, bmp)
        # 配付先のデフォルトは荷物袋。なければカード置場
        if cw.cwpy.ydata.party:
            self.dealtarg.SetStringSelection(u"荷物袋")
        else:
            self.dealtarg.SetStringSelection(u"カード置場")

        self.dtlbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                       -1, (-1, -1),
                                                       name=u"情報")
        self.dealbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                        -1, (-1, -1),
                                                        name=u"配付")
        self.findbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                        -1, (-1, -1),
                                                        name=u"検索")
        self.stopbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                        -1, (-1, -1),
                                                        name=u"中断")
        self.updbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                       -1, (-1, -1),
                                                       name=u"更新")
        self.delbtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                       -1, (-1, -1),
                                                       name=u"除去")

        self.closebtn = cw.cwpy.rsrc.create_wxbutton_dbg(self,
                                                         wx.ID_CANCEL,
                                                         (-1, -1),
                                                         name=u"閉じる")

        self.mname = wx.CheckBox(self, -1, u"カード名")
        self.mdesc = wx.CheckBox(self, -1, u"解説")
        self.mscenario = wx.CheckBox(self, -1, u"シナリオ")
        self.mauthor = wx.CheckBox(self, -1, u"作者")

        self.timglist = wx.ImageList(cw.ppis(16), cw.ppis(16))
        self.timgidx_storehouse = self.timglist.Add(
            cw.cwpy.rsrc.buttons["DECK_dbg"])
        self.timgidx_backpack = self.timglist.Add(
            cw.cwpy.rsrc.buttons["SACK_dbg"])
        self.timgidx_party = self.timglist.Add(
            cw.cwpy.rsrc.debugs["MEMBER_dbg"])
        self.timgidx_yado = self.timglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_GOSSIP_dbg"])
        self.timgidx_member = self.timglist.Add(
            cw.cwpy.rsrc.buttons["CAST_dbg"])
        self.timgidx_skill = self.timglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_SKILL_dbg"])
        self.timgidx_item = self.timglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_ITEM_dbg"])
        self.timgidx_beast = self.timglist.Add(
            cw.cwpy.rsrc.debugs["EVT_GET_BEAST_dbg"])

        self.targets = wx.lib.agw.customtreectrl.CustomTreeCtrl(self, -1, size=(200, -1),
            style=wx.BORDER|wx.TR_DEFAULT_STYLE,
            agwStyle=wx.TR_NO_BUTTONS|wx.TR_SINGLE|wx.TR_HIDE_ROOT|\
            wx.lib.agw.customtreectrl.TR_AUTO_CHECK_CHILD|\
            wx.lib.agw.customtreectrl.TR_AUTO_CHECK_PARENT)
        self.targets.SetImageList(self.timglist)
        self.status = wx.StaticText(self,
                                    -1,
                                    label=u"対象はありません",
                                    style=wx.ST_NO_AUTORESIZE)

        self.root = self.targets.AddRoot(u"")

        self.mname.SetValue(True)
        self.mdesc.SetValue(True)

        self._bind()
        self._do_layout()

        self._update_cards()
Exemplo n.º 26
0
    def __init__(self, parent, conv):
        wx.Panel.__init__(self, parent)

        base = cw.data.xml2etree(u"Data/SkinBase/Skin.xml")
        basesexes = base.getfind("Sexes")
        baseperiods = base.getfind("Periods")
        basenatures = base.getfind("Natures")
        basemakings = base.getfind("Makings")

        self.grid = wx.grid.Grid(self,
                                 -1,
                                 size=cw.ppis((200, 200)),
                                 style=wx.BORDER)
        self.grid.CreateGrid(len(basesexes) + len(baseperiods) +\
                             len(basenatures) + len(basemakings), 12)
        self.grid.SetRowLabelAlignment(wx.LEFT, wx.CENTER)

        self.grid.SetColLabelValue(0, u"名称")
        self.grid.SetColLabelValue(1, u"器用")
        self.grid.SetColLabelValue(2, u"敏捷")
        self.grid.SetColLabelValue(3, u"知力")
        self.grid.SetColLabelValue(4, u"筋力")
        self.grid.SetColLabelValue(5, u"生命")
        self.grid.SetColLabelValue(6, u"精神")
        self.grid.SetColLabelValue(7, u"好戦")
        self.grid.SetColLabelValue(8, u"社交")
        self.grid.SetColLabelValue(9, u"勇猛")
        self.grid.SetColLabelValue(10, u"慎重")
        self.grid.SetColLabelValue(11, u"狡猾")

        self.grid.SetColSize(0, cw.ppis(80))
        for col in xrange(1, 7):
            self.grid.SetColFormatNumber(col)
            self.grid.SetColSize(col, cw.ppis(40))
            for row in xrange(0, self.grid.GetNumberRows()):
                self.grid.SetCellEditor(row, col,
                                        wx.grid.GridCellNumberEditor(-99, 99))
        for col in xrange(7, 12):
            self.grid.SetColFormatFloat(col, 2, 1)
            self.grid.SetColSize(col, cw.ppis(40))
            for row in xrange(0, self.grid.GetNumberRows()):
                self.grid.SetCellEditor(row, col,
                                        wx.grid.GridCellFloatEditor(4, 1))

        row = 0
        for data in basesexes:
            self.grid.SetRowLabelValue(row, data.gettext("Name", ""))
            row += 1
        for data in baseperiods:
            self.grid.SetRowLabelValue(row, data.gettext("Name", ""))
            row += 1
        for data in basenatures:
            self.grid.SetRowLabelValue(row, data.gettext("Name", ""))
            row += 1
        for data in basemakings:
            self.grid.SetRowLabelValue(row, data.gettext("Name", ""))
            row += 1

        self.set_values(conv)

        self.grid.SetRowLabelSize(wx.grid.GRID_AUTOSIZE)

        self._do_layout()