\r
import wx\r
\r
+from ....util.callback import callback, in_callback\r
from . import Panel\r
\r
\r
class NotePanel (Panel, wx.Panel):\r
def __init__(self, callbacks=None, **kwargs):\r
- super(Note, self).__init__(name='note', callbacks=callbacks, **kwargs)\r
-\r
- self.Editor = wx.TextCtrl(self, style=wx.TE_MULTILINE)\r
-\r
- self.UpdateButton = wx.Button(self, -1, 'Update note')\r
-\r
+ super(NotePanel, self).__init__(\r
+ name='note', callbacks=callbacks, **kwargs)\r
+\r
+ self._c = {\r
+ 'editor': wx.TextCtrl(\r
+ parent=self,\r
+ style=wx.TE_MULTILINE),\r
+ 'update': wx.Button(\r
+ parent=self,\r
+ label='Update note'),\r
+ }\r
sizer = wx.BoxSizer(wx.VERTICAL)\r
- sizer.Add(self.Editor, 1, wx.EXPAND)\r
- sizer.Add(self.UpdateButton, 0, wx.EXPAND)\r
-\r
+ sizer.Add(self._c['editor'], 1, wx.EXPAND)\r
+ sizer.Add(self._c['update'], 0, wx.EXPAND)\r
self.SetSizer(sizer)\r
self.SetAutoLayout(True)\r
+\r
+ self.Bind(wx.EVT_BUTTON, self._on_update)\r
+\r
+ def set_text(self, text):\r
+ self._c['editor'].SetValue(text)\r
+\r
+ def _on_update(self, event):\r
+ text = self._c['editor'].GetValue()\r
+ in_callback(self, text)\r