--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dialogs/CommentEditDialog.py Wed Sep 26 18:08:57 2018 +0300
@@ -0,0 +1,86 @@
+# This file is part of Beremiz, a Integrated Development Environment for +# programming IEC 61131-3 automates supporting plcopen standard and CanFestival. +# Copyright (C) 2018: Andrey Skvortsov <andrej.skvortzov@gmail.com> +# See COPYING file for copyrights details. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from __future__ import absolute_import +class CommentEditDialog(wx.Dialog): + This dialog behaves like wx.TextEntryDialog, + but additionaly it allows to set custom font and + exact size for wx.TextCtrl. + That allows to edit comment and immediately + see how it'll be shown on wiresheet. + def __init__(self, parent, font, value="", size=wx.Size(400, 200)): + parent window (wx.Window) + the font for text control + the default value, which may be the empty string + desired initial size for text control. + Minimal size of text control is limited + wx.Dialog.__init__(self, parent, title=_("Please enter comment text")) + msg_label = wx.StaticText(self, label=_("Edit comment")) + input_size = wx.Size(max(size[0], 100), max(size[1], 100)) + input = wx.TextCtrl(self, style=wx.TE_MULTILINE) + input.SetInitialSize(input_size) + buttons = self.CreateButtonSizer(wx.OK | wx.CANCEL) + sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) + sizer.Add(msg_label, 0, + flag=wx.TOP | wx.LEFT | wx.RIGHT, + flag=wx.EXPAND | wx.LEFT | wx.RIGHT, + flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, + self.SetSizerAndFit(sizer) + def SetValue(self, value): + self.input.SetValue(value) + Returns the text that the user has entered + if the user has pressed wx.OK, + or the original value if the user has pressed Cancel. + return self.input.GetValue() --- a/dialogs/__init__.py Wed Sep 26 14:20:51 2018 +0300
+++ b/dialogs/__init__.py Wed Sep 26 18:08:57 2018 +0300
@@ -27,6 +27,7 @@
from __future__ import absolute_import
+from dialogs.CommentEditDialog import CommentEditDialog from dialogs.ConnectionDialog import ConnectionDialog
from dialogs.ActionBlockDialog import ActionBlockDialog
from dialogs.FBDBlockDialog import FBDBlockDialog
--- a/editors/Viewer.py Wed Sep 26 14:20:51 2018 +0300
+++ b/editors/Viewer.py Wed Sep 26 18:08:57 2018 +0300
@@ -2658,11 +2658,8 @@
self.AddNewElement(connection, bbox, wire)
def AddNewComment(self, bbox):
- dialog = wx.TextEntryDialog(self.ParentWindow,
- _("Please enter comment text"),
- "", wx.OK | wx.CANCEL | wx.TE_MULTILINE)
- dialog.SetClientSize(wx.Size(400, 200))
+ dialog = CommentEditDialog(self.ParentWindow, if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetValue()
@@ -3100,14 +3097,10 @@
def EditCommentContent(self, comment):
- dialog = wx.TextEntryDialog(self.ParentWindow,
- _("Please enter comment text"),
- wx.OK | wx.CANCEL | wx.TE_MULTILINE)
- width, height = comment.GetSize()
- dialogSize = wx.Size(max(width + 30, 400), max(height + 60, 200))
- dialog.SetClientSize(dialogSize)
+ dialog = CommentEditDialog(self.ParentWindow, if dialog.ShowModal() == wx.ID_OK:
value = dialog.GetValue()
rect = comment.GetRedrawRect(1, 1)