Updated gui.panel.note and simplified hooke.plugin.note.
[hooke.git] / hooke / ui / gui / panel / note.py
index 7dc68480484e79bc8cc8dd9ffc447685b85d1edd..30de470cb0546466d6c000461a8b0763b7ea7409 100644 (file)
@@ -5,20 +5,34 @@
 \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