# Name: generate.py # Purpose: Code-generation related classes # Author: Roman Rolinsky # Created: 25.07.2007 # RCS-ID: $Id$ from globals import * from presenter import Presenter class PythonOptions(wx.Dialog): def __init__(self, parent, cfg, dataFile): pre = wx.PreDialog() g.res.LoadOnDialog(pre, parent, "PYTHON_OPTIONS") self.PostCreate(pre) self.cfg = cfg self.dataFile = dataFile self.AutoGenerateCB = xrc.XRCCTRL(self, "AutoGenerateCB") self.EmbedCB = xrc.XRCCTRL(self, "EmbedCB") self.GettextCB = xrc.XRCCTRL(self, "GettextCB") self.MakeXRSFileCB = xrc.XRCCTRL(self, "MakeXRSFileCB") self.FileNameTC = xrc.XRCCTRL(self, "FileNameTC") self.BrowseBtn = xrc.XRCCTRL(self, "BrowseBtn") self.GenerateBtn = xrc.XRCCTRL(self, "GenerateBtn") self.SaveOptsBtn = xrc.XRCCTRL(self, "SaveOptsBtn") self.Bind(wx.EVT_BUTTON, self.OnBrowse, self.BrowseBtn) self.Bind(wx.EVT_BUTTON, self.OnGenerate, self.GenerateBtn) self.Bind(wx.EVT_BUTTON, self.OnSaveOpts, self.SaveOptsBtn) if self.cfg.Read("filename", "") != "": self.FileNameTC.SetValue(self.cfg.Read("filename")) else: name = os.path.splitext(os.path.split(dataFile)[1])[0] name += '_xrc.py' self.FileNameTC.SetValue(name) self.AutoGenerateCB.SetValue(self.cfg.ReadBool("autogenerate", False)) self.EmbedCB.SetValue(self.cfg.ReadBool("embedResource", False)) self.MakeXRSFileCB.SetValue(self.cfg.ReadBool("makeXRS", False)) self.GettextCB.SetValue(self.cfg.ReadBool("genGettext", False)) def OnBrowse(self, evt): path = self.FileNameTC.GetValue() dirname = os.path.abspath(os.path.dirname(path)) name = os.path.split(path)[1] dlg = wx.FileDialog(self, 'Save As', dirname, name, '*.py', wx.SAVE | wx.OVERWRITE_PROMPT) if dlg.ShowModal() == wx.ID_OK: path = dlg.GetPath() self.FileNameTC.SetValue(path) dlg.Destroy() def OnGenerate(self, evt): pypath = self.FileNameTC.GetValue() embed = self.EmbedCB.GetValue() genGettext = self.GettextCB.GetValue() Presenter.generatePython(self.dataFile, pypath, embed, genGettext) self.OnSaveOpts() def OnSaveOpts(self, evt=None): self.cfg.Write("filename", self.FileNameTC.GetValue()) self.cfg.WriteBool("autogenerate", self.AutoGenerateCB.GetValue()) self.cfg.WriteBool("embedResource", self.EmbedCB.GetValue()) self.cfg.WriteBool("makeXRS", self.MakeXRSFileCB.GetValue()) self.cfg.WriteBool("genGettext", self.GettextCB.GetValue()) self.EndModal(wx.ID_OK)