diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2024-12-26 16:23:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-26 16:23:38 +0100 |
| commit | b9432f040d9cea0139715da1d29ee7182e7d719e (patch) | |
| tree | b85d53b2d30efb255395e252f091e22b8d3cab36 /lib/gui/edit_json/editable_list.py | |
| parent | ef7d056173cc6d7782d6120c031dae9276725a3d (diff) | |
Edit json (#3371)
* convert kerning tool to json edit
Diffstat (limited to 'lib/gui/edit_json/editable_list.py')
| -rw-r--r-- | lib/gui/edit_json/editable_list.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/gui/edit_json/editable_list.py b/lib/gui/edit_json/editable_list.py new file mode 100644 index 00000000..51026a0c --- /dev/null +++ b/lib/gui/edit_json/editable_list.py @@ -0,0 +1,39 @@ +import wx +from wx.lib.mixins.listctrl import TextEditMixin + + +class EditableListCtrl(wx.ListCtrl, TextEditMixin): + + def __init__(self, parent, ID=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0): + wx.ListCtrl.__init__(self, parent, ID, pos, size, style) + TextEditMixin.__init__(self) + + def OpenEditor(self, column, row): + self.original_data = self.GetItemText(row, column) + if column == 2: + TextEditMixin.OpenEditor(self, column, row) + self.editor.Bind(wx.EVT_KEY_DOWN, self.on_escape) + + def on_escape(self, event=None): + keycode = event.GetKeyCode() + if keycode == wx.WXK_ESCAPE: + self.CloseEditor(event=None, swap=True) + event.Skip() + + def CloseEditor(self, event=None, swap=False): + text = self.editor.GetValue() + if swap: + self.editor.Hide() + TextEditMixin.CloseEditor(self, event) + return + + if text: + try: + float(text) + except ValueError: + swap = True + + if swap: + self.editor.SetValue(self.original_data) + + TextEditMixin.CloseEditor(self, event) |
