0.1.8-2
------- Fix for dealing with empty 'growable' property, using MiniFrame for properties panel, the panel is restored together with the main window. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
0.1.8-2
|
||||||
|
-------
|
||||||
|
|
||||||
|
Fix for dealing with empty 'growable' property, using MiniFrame
|
||||||
|
for properties panel, the panel is restored together with the
|
||||||
|
main window.
|
||||||
|
|
||||||
0.1.8-1
|
0.1.8-1
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ import sys
|
|||||||
# Global constants
|
# Global constants
|
||||||
|
|
||||||
progname = 'XRCed'
|
progname = 'XRCed'
|
||||||
version = '0.1.8-1'
|
version = '0.1.8-2'
|
||||||
# Minimal wxWidgets version
|
# Minimal wxWidgets version
|
||||||
MinWxVersion = (2,6,0)
|
MinWxVersion = (2,6,0)
|
||||||
if wx.VERSION[:3] < MinWxVersion:
|
if wx.VERSION[:3] < MinWxVersion:
|
||||||
|
@@ -218,7 +218,7 @@ class ParamPage(wx.Panel):
|
|||||||
xxx.params[param].remove()
|
xxx.params[param].remove()
|
||||||
del xxx.params[param]
|
del xxx.params[param]
|
||||||
w.SetValue('')
|
w.SetValue('')
|
||||||
w.modified = False # mark as not changed
|
w.SetModified(False) # mark as not changed
|
||||||
w.Enable(False)
|
w.Enable(False)
|
||||||
# Set modified flag (provokes undo storing is necessary)
|
# Set modified flag (provokes undo storing is necessary)
|
||||||
panel.SetModified(True)
|
panel.SetModified(True)
|
||||||
|
@@ -37,9 +37,9 @@ class PPanel(wx.Panel):
|
|||||||
for w in self.GetChildren():
|
for w in self.GetChildren():
|
||||||
w.Enable(value)
|
w.Enable(value)
|
||||||
#wx.Panel.Enable(self, value)
|
#wx.Panel.Enable(self, value)
|
||||||
def SetModified(self):
|
def SetModified(self, state=True):
|
||||||
self.modified = True
|
self.modified = state
|
||||||
g.panel.SetModified(True)
|
if state: g.panel.SetModified(True)
|
||||||
# Common method to set modified state
|
# Common method to set modified state
|
||||||
def OnChange(self, evt):
|
def OnChange(self, evt):
|
||||||
if self.freeze: return
|
if self.freeze: return
|
||||||
@@ -320,7 +320,6 @@ class ParamFont(PPanel):
|
|||||||
dlg = wx.FontDialog(self, data)
|
dlg = wx.FontDialog(self, data)
|
||||||
if dlg.ShowModal() == wx.ID_OK:
|
if dlg.ShowModal() == wx.ID_OK:
|
||||||
font = dlg.GetFontData().GetChosenFont()
|
font = dlg.GetFontData().GetChosenFont()
|
||||||
print font.GetEncoding()
|
|
||||||
if font.GetEncoding() == wx.FONTENCODING_SYSTEM:
|
if font.GetEncoding() == wx.FONTENCODING_SYSTEM:
|
||||||
encName = ''
|
encName = ''
|
||||||
else:
|
else:
|
||||||
@@ -421,7 +420,7 @@ class ParamUnit(PPanel):
|
|||||||
self.SetModified()
|
self.SetModified()
|
||||||
except:
|
except:
|
||||||
# !!! Strange, if I use wx.LogWarning, event is re-generated
|
# !!! Strange, if I use wx.LogWarning, event is re-generated
|
||||||
print 'incorrect unit format'
|
print 'ERROR: incorrect unit format'
|
||||||
def OnSpinUp(self, evt):
|
def OnSpinUp(self, evt):
|
||||||
self.Change(1)
|
self.Change(1)
|
||||||
def OnSpinDown(self, evt):
|
def OnSpinDown(self, evt):
|
||||||
@@ -625,8 +624,7 @@ class ParamContent(PPanel):
|
|||||||
if self.textModified: # text has newer value
|
if self.textModified: # text has newer value
|
||||||
try:
|
try:
|
||||||
return self.text.GetValue().split('|')
|
return self.text.GetValue().split('|')
|
||||||
except SyntaxError:
|
except ValueError:
|
||||||
wx.LogError('Syntax error in parameter value: ' + self.GetName())
|
|
||||||
return []
|
return []
|
||||||
return self.value
|
return self.value
|
||||||
def SetValue(self, value):
|
def SetValue(self, value):
|
||||||
@@ -648,6 +646,9 @@ class ParamContent(PPanel):
|
|||||||
self.SetModified()
|
self.SetModified()
|
||||||
self.textModified = False
|
self.textModified = False
|
||||||
dlg.Destroy()
|
dlg.Destroy()
|
||||||
|
def SetModified(self, state=True):
|
||||||
|
PPanel.SetModified(self, state)
|
||||||
|
self.textModified = False
|
||||||
|
|
||||||
# CheckList content
|
# CheckList content
|
||||||
class ParamContentCheckList(ParamContent):
|
class ParamContentCheckList(ParamContent):
|
||||||
@@ -728,8 +729,7 @@ class ParamIntList(ParamContent):
|
|||||||
if self.textModified: # text has newer value
|
if self.textModified: # text has newer value
|
||||||
try:
|
try:
|
||||||
self.value = map(int, self.text.GetValue().split('|'))
|
self.value = map(int, self.text.GetValue().split('|'))
|
||||||
except SyntaxError:
|
except ValueError:
|
||||||
wx.LogError('Syntax error in parameter value: ' + self.GetName())
|
|
||||||
self.value = []
|
self.value = []
|
||||||
dlg = IntListDialog(self, self.value)
|
dlg = IntListDialog(self, self.value)
|
||||||
if dlg.ShowModal() == wx.ID_OK:
|
if dlg.ShowModal() == wx.ID_OK:
|
||||||
|
@@ -311,9 +311,8 @@ class Frame(wx.Frame):
|
|||||||
|
|
||||||
tree.RegisterKeyEvents()
|
tree.RegisterKeyEvents()
|
||||||
|
|
||||||
# !!! frame styles are broken
|
# Miniframe for split mode
|
||||||
# Miniframe for not embedded mode
|
miniFrame = wx.MiniFrame(self, -1, 'Properties & Style',
|
||||||
miniFrame = wx.Frame(self, -1, 'Properties & Style',
|
|
||||||
(conf.panelX, conf.panelY),
|
(conf.panelX, conf.panelY),
|
||||||
(conf.panelWidth, conf.panelHeight))
|
(conf.panelWidth, conf.panelHeight))
|
||||||
self.miniFrame = miniFrame
|
self.miniFrame = miniFrame
|
||||||
@@ -910,6 +909,7 @@ class Frame(wx.Frame):
|
|||||||
self.miniFrame.Show(True)
|
self.miniFrame.Show(True)
|
||||||
self.miniFrame.SetDimensions(conf.panelX, conf.panelY,
|
self.miniFrame.SetDimensions(conf.panelX, conf.panelY,
|
||||||
conf.panelWidth, conf.panelHeight)
|
conf.panelWidth, conf.panelHeight)
|
||||||
|
self.miniFrame.Layout()
|
||||||
# Reduce width
|
# Reduce width
|
||||||
self.SetDimensions(pos.x, pos.y,
|
self.SetDimensions(pos.x, pos.y,
|
||||||
max(size.width - sizePanel.width, self.minWidth), size.height)
|
max(size.width - sizePanel.width, self.minWidth), size.height)
|
||||||
@@ -1285,6 +1285,7 @@ Homepage: http://xrced.sourceforge.net\
|
|||||||
return
|
return
|
||||||
|
|
||||||
def OnIconize(self, evt):
|
def OnIconize(self, evt):
|
||||||
|
if evt.Iconized():
|
||||||
conf.x, conf.y = self.GetPosition()
|
conf.x, conf.y = self.GetPosition()
|
||||||
conf.width, conf.height = self.GetSize()
|
conf.width, conf.height = self.GetSize()
|
||||||
if conf.embedPanel:
|
if conf.embedPanel:
|
||||||
@@ -1293,6 +1294,9 @@ Homepage: http://xrced.sourceforge.net\
|
|||||||
conf.panelX, conf.panelY = self.miniFrame.GetPosition()
|
conf.panelX, conf.panelY = self.miniFrame.GetPosition()
|
||||||
conf.panelWidth, conf.panelHeight = self.miniFrame.GetSize()
|
conf.panelWidth, conf.panelHeight = self.miniFrame.GetSize()
|
||||||
self.miniFrame.Iconize()
|
self.miniFrame.Iconize()
|
||||||
|
else:
|
||||||
|
if not conf.embedPanel:
|
||||||
|
self.miniFrame.Iconize(False)
|
||||||
evt.Skip()
|
evt.Skip()
|
||||||
|
|
||||||
def OnCloseWindow(self, evt):
|
def OnCloseWindow(self, evt):
|
||||||
|
@@ -314,6 +314,24 @@ class xxxObject:
|
|||||||
else: obj = self
|
else: obj = self
|
||||||
obj.name = name
|
obj.name = name
|
||||||
obj.element.setAttribute('name', name)
|
obj.element.setAttribute('name', name)
|
||||||
|
# Special processing for growablecols-like parameters
|
||||||
|
# represented by several nodes
|
||||||
|
def special(self, tag, node):
|
||||||
|
print 'special',tag
|
||||||
|
if not self.params.has_key(tag):
|
||||||
|
# Create new multi-group
|
||||||
|
self.params[tag] = xxxParamMulti(node)
|
||||||
|
self.params[tag].append(xxxParamInt(node))
|
||||||
|
def setSpecial(self, param, value):
|
||||||
|
# Straightforward implementation: remove, add again
|
||||||
|
self.params[param].remove()
|
||||||
|
del self.params[param]
|
||||||
|
for i in value:
|
||||||
|
node = g.tree.dom.createElement(param)
|
||||||
|
text = g.tree.dom.createTextNode(str(i))
|
||||||
|
node.appendChild(text)
|
||||||
|
self.element.appendChild(node)
|
||||||
|
self.special(param, node)
|
||||||
|
|
||||||
# Imitation of FindResource/DoFindResource from xmlres.cpp
|
# Imitation of FindResource/DoFindResource from xmlres.cpp
|
||||||
def DoFindResource(parent, name, classname, recursive):
|
def DoFindResource(parent, name, classname, recursive):
|
||||||
@@ -771,45 +789,11 @@ class xxxFlexGridSizer(xxxGridSizer):
|
|||||||
specials = ['growablecols', 'growablerows']
|
specials = ['growablecols', 'growablerows']
|
||||||
allParams = ['cols', 'rows', 'vgap', 'hgap'] + specials
|
allParams = ['cols', 'rows', 'vgap', 'hgap'] + specials
|
||||||
paramDict = {'growablecols': ParamIntList, 'growablerows': ParamIntList}
|
paramDict = {'growablecols': ParamIntList, 'growablerows': ParamIntList}
|
||||||
# Special processing for growable* parameters
|
|
||||||
# (they are represented by several nodes)
|
|
||||||
def special(self, tag, node):
|
|
||||||
if not self.params.has_key(tag):
|
|
||||||
# Create new multi-group
|
|
||||||
self.params[tag] = xxxParamMulti(node)
|
|
||||||
self.params[tag].append(xxxParamInt(node))
|
|
||||||
def setSpecial(self, param, value):
|
|
||||||
# Straightforward implementation: remove, add again
|
|
||||||
self.params[param].remove()
|
|
||||||
del self.params[param]
|
|
||||||
for i in value:
|
|
||||||
node = g.tree.dom.createElement(param)
|
|
||||||
text = g.tree.dom.createTextNode(str(i))
|
|
||||||
node.appendChild(text)
|
|
||||||
self.element.appendChild(node)
|
|
||||||
self.special(param, node)
|
|
||||||
|
|
||||||
class xxxGridBagSizer(xxxSizer):
|
class xxxGridBagSizer(xxxSizer):
|
||||||
specials = ['growablecols', 'growablerows']
|
specials = ['growablecols', 'growablerows']
|
||||||
allParams = ['vgap', 'hgap'] + specials
|
allParams = ['vgap', 'hgap'] + specials
|
||||||
paramDict = {'growablecols':ParamIntList, 'growablerows':ParamIntList}
|
paramDict = {'growablecols': ParamIntList, 'growablerows': ParamIntList}
|
||||||
# Special processing for growable* parameters
|
|
||||||
# (they are represented by several nodes)
|
|
||||||
def special(self, tag, node):
|
|
||||||
if not self.params.has_key(tag):
|
|
||||||
# Create new multi-group
|
|
||||||
self.params[tag] = xxxParamMulti(node)
|
|
||||||
self.params[tag].append(xxxParamInt(node))
|
|
||||||
def setSpecial(self, param, value):
|
|
||||||
# Straightforward implementation: remove, add again
|
|
||||||
self.params[param].remove()
|
|
||||||
del self.params[param]
|
|
||||||
for i in value:
|
|
||||||
node = g.tree.dom.createElement(param)
|
|
||||||
text = g.tree.dom.createTextNode(str(i))
|
|
||||||
node.appendChild(text)
|
|
||||||
self.element.appendChild(node)
|
|
||||||
self.special(param, node)
|
|
||||||
|
|
||||||
# Container with only one child.
|
# Container with only one child.
|
||||||
# Not shown in tree.
|
# Not shown in tree.
|
||||||
|
Reference in New Issue
Block a user