+
+class shaderEditor(wx.Dialog):
+ def __init__(self, parent, callback, v, f):
+ super(shaderEditor, self).__init__(parent, title="Shader editor", style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
+ self._callback = callback
+ s = wx.BoxSizer(wx.VERTICAL)
+ self.SetSizer(s)
+ self._vertex = wx.TextCtrl(self, -1, v, style=wx.TE_MULTILINE)
+ self._fragment = wx.TextCtrl(self, -1, f, style=wx.TE_MULTILINE)
+ s.Add(self._vertex, 1, flag=wx.EXPAND)
+ s.Add(self._fragment, 1, flag=wx.EXPAND)
+
+ self._vertex.Bind(wx.EVT_TEXT, self.OnText, self._vertex)
+ self._fragment.Bind(wx.EVT_TEXT, self.OnText, self._fragment)
+
+ self.SetPosition(self.GetParent().GetPosition())
+ self.SetSize((self.GetSize().GetWidth(), self.GetParent().GetSize().GetHeight()))
+ self.Show()
+
+ def OnText(self, e):
+ self._callback(self._vertex.GetValue(), self._fragment.GetValue())