'wxWS_EX_PROCESS_UI_UPDATES'
]
-# Global var initialized in Panel.__init__ for button size in screen pixels
-buttonSize = None
-# Button size in dialog units
+# Global vars initialized in Panel.__init__ for button and textbox size in screen pixels
+buttonSize = textSise = None
+# Default Button size in dialog units
buttonSizeD = (35,-1)
+
# Class that can properly disable children
class PPanel(wx.Panel):
def __init__(self, parent, name):
wx.Panel.__init__(self, parent, -1, name=name)
self.modified = self.freeze = False
def Enable(self, value):
+ self.enabled = value
# Something strange is going on with enable so we make sure...
for w in self.GetChildren():
w.Enable(value)
sizer = wx.BoxSizer()
self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(200,-1))
sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
- self.button = wx.Button(self, self.ID_BUTTON_CHOICES, 'Edit...', size=buttonSize)
- sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
- self.SetSizer(sizer)
+ self.button = wx.Button(self, self.ID_BUTTON_CHOICES, 'Edit...',
+ size=(buttonSize[0], textSize[1]))
+ sizer.Add(self.button, 0, wx.EXPAND)
+ self.SetSizerAndFit(sizer)
wx.EVT_BUTTON(self, self.ID_BUTTON_CHOICES, self.OnButtonChoices)
wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
def GetValue(self):
PPanel.OnChange(self, evt)
self.textModified = True
def _defaultValue(self):
- return [`g._sysFont.GetPointSize()`, 'default', 'normal', 'normal', '0', '', '']
+ return [`g.sysFont().GetPointSize()`, 'default', 'normal', 'normal', '0', '', '']
def GetValue(self):
if self.textModified: # text has newer value
try:
self.value = self._defaultValue()
# Make initial font
# Default values
- size = g._sysFont.GetPointSize()
+ size = g.sysFont().GetPointSize()
family = wx.DEFAULT
style = weight = wx.NORMAL
underlined = 0
self.SetSizer(sizer)
self.spin.Bind(wx.EVT_SPIN_UP, self.OnSpinUp)
self.spin.Bind(wx.EVT_SPIN_DOWN, self.OnSpinDown)
+ self.text.Bind(wx.EVT_TEXT, self.OnChange)
+
def GetValue(self):
return self.text.GetValue()
def SetValue(self, value):
+ self.freeze = True
if not value: value = '0'
self.text.SetValue(value)
self.Change(0)
+ self.freeze = False
def Change(self, x):
self.freeze = True
# Check if we are working with dialog units
dlg.Destroy()
class ParamText(PPanel):
- def __init__(self, parent, name, textWidth=-1):
+ def __init__(self, parent, name, textWidth=-1, style=0):
PPanel.__init__(self, parent, name)
self.ID_TEXT_CTRL = wx.NewId()
# We use sizer even here to have the same size of text control
sizer = wx.BoxSizer()
- self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(textWidth,-1))
+ self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(textWidth,-1), style=style)
if textWidth == -1: option = 1
else: option = 0
sizer.Add(self.text, option, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, 2)
class ParamComment(ParamText):
def __init__(self, parent, name):
- ParamText.__init__(self, parent, name, 330 + buttonSize[0])
+ ParamText.__init__(self, parent, name, 330 + buttonSize[0],
+ style=wx.TE_PROCESS_ENTER)
class ContentDialog(wx.Dialog):
def __init__(self, parent, value):