]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/tools/XRCed/params.py
Send the calendar and date changed events to the datepicker ctrl first
[wxWidgets.git] / wxPython / wx / tools / XRCed / params.py
index 3a05721ca01c22f0409ddd5762a74ae2e2fb838f..fd7601985c82e1b5bcacfb1af96f22b8fcf6ade4 100644 (file)
@@ -25,17 +25,19 @@ genericExStyles = [
     '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)
@@ -57,9 +59,10 @@ class ParamBinaryOr(PPanel):
         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):
@@ -260,7 +263,7 @@ class ParamFont(PPanel):
         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:
@@ -284,7 +287,7 @@ class ParamFont(PPanel):
                 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
@@ -389,12 +392,16 @@ class ParamUnit(PPanel):
         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
@@ -450,12 +457,12 @@ class ParamMultilineText(PPanel):
         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)
@@ -486,7 +493,8 @@ class ParamEncoding(ParamText):
 
 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):