12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import wx
- import metrics
- class StoryMetadataFrame(wx.Frame):
- """
- Changes automatically update as the user makes them;
- """
- def __init__(self, app, parent = None):
- self.app = app
- self.parent = parent
- wx.Frame.__init__(self, parent, wx.ID_ANY, title = parent.title + ' Metadata', \
- style = wx.MINIMIZE_BOX | wx.CLOSE_BOX | wx.CAPTION | wx.SYSTEM_MENU)
- panel = wx.Panel(parent = self, id = wx.ID_ANY)
- borderSizer = wx.BoxSizer(wx.VERTICAL)
- panel.SetSizer(borderSizer)
- panelSizer = wx.FlexGridSizer(8, 1, metrics.size('relatedControls'), metrics.size('relatedControls'))
- borderSizer.Add(panelSizer, flag = wx.ALL, border = metrics.size('windowBorder'))
- for name, desc in [
- ("identity", ("What your work identifies as:",
- "Is it a game, a story, a poem, or something else?\n(This is used for dialogs and error messages only.)",
- False)),
- ("description", ("A short description of your work:",
- "This is inserted in the HTML file's <meta> description tag, used by\nsearch engines and other automated tools.",
- True))
- ]:
- textlabel = wx.StaticText(panel, label = desc[0])
- if desc[2]:
- textctrl = wx.TextCtrl(panel, size=(200,60), style=wx.TE_MULTILINE)
- else:
- textctrl = wx.TextCtrl(panel, size=(200,-1))
- textctrl.SetValue(parent.metadata.get(name, ''))
- textctrl.Bind(wx.EVT_TEXT, lambda e, name=name, textctrl=textctrl:
- self.saveSetting(name,textctrl.GetValue()))
- hSizer = wx.BoxSizer(wx.HORIZONTAL)
- hSizer.Add(textlabel,1,wx.ALIGN_LEFT|wx.ALIGN_TOP)
- hSizer.Add(textctrl,1,wx.EXPAND)
- panelSizer.Add(hSizer,flag=wx.ALL|wx.EXPAND)
- panelSizer.Add(wx.StaticText(panel, label = desc[1]))
- panelSizer.Add((1,2))
- panelSizer.Fit(self)
- borderSizer.Fit(self)
- self.SetIcon(self.app.icon)
- self.Show()
- self.panelSizer = panelSizer
- self.borderSizer = borderSizer
- def saveSetting(self, name, value):
- self.parent.metadata[name]=value
- self.parent.setDirty(True)
|