-------
Using wx.GetDefaultPyEncoding/wx.SetDefaultPyEncoding for changing active encoding.
Fixed pasting siblings (Ctrl key pressed while pasting).
Dealed with ascii build (Python does not recognize 'ascii' as valid encoding).
If encoding is not specified it is not written in XRC. Will add more
customization in the future.
Changed to use SimpleTool instead or Toggle tool (does not work on Win32).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34344
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
Fixed pasting siblings (Ctrl key pressed while pasting).
Fixed pasting siblings (Ctrl key pressed while pasting).
+Dealed with ascii build (Python does not recognize 'ascii' as valid encoding).
+If encoding is not specified it is not written in XRC. Will add more
+customization in the future.
+
+Changed to use SimpleTool instead or Toggle tool (does not work on Win32).
+
# Created: 02.12.2002
# RCS-ID: $Id$
# Created: 02.12.2002
# RCS-ID: $Id$
from wxPython.wx import *
from wxPython.xrc import *
try:
from wxPython.wx import *
from wxPython.xrc import *
try:
progname = 'XRCed'
version = '0.1.5-2'
# Can be changed to set other default encoding different
progname = 'XRCed'
version = '0.1.5-2'
# Can be changed to set other default encoding different
-#defaultEncoding = sys.getdefaultencoding()
-defaultEncoding = wx.GetDefaultPyEncoding()
+defaultEncoding = ''
+# you comment above and can uncomment this:
+#import wx
+#defaultEncoding = wx.GetDefaultPyEncoding()
def __init__(self, parent, id = -1):
if wxPlatform != '__WXMAC__': # some problems with this style on macs
wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
def __init__(self, parent, id = -1):
if wxPlatform != '__WXMAC__': # some problems with this style on macs
wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
+ self.SetBackgroundColour(parent.GetBackgroundColour())
else:
wxNotebook.__init__(self, parent, id)
global panel
else:
wxNotebook.__init__(self, parent, id)
global panel
self.name = name
self.buffer = ''
def write(self, data):
self.name = name
self.buffer = ''
def write(self, data):
- self.buffer += data.encode(g.currentEncoding)
+ if g.currentEncoding:
+ self.buffer += data.encode(g.currentEncoding)
+ else:
+ self.buffer += data.encode()
def close(self):
wxMemoryFSHandler_AddFile(self.name, self.buffer)
def close(self):
wxMemoryFSHandler_AddFile(self.name, self.buffer)
def Remove(self):
map(wxWindow.Destroy, self.lines)
g.testWin.highLight = None
def Remove(self):
map(wxWindow.Destroy, self.lines)
g.testWin.highLight = None
+ def Refresh(self):
+ map(wxWindow.Refresh, self.lines)
################################################################################
################################################################################
g.testWin.highLight.Replace(pos, size)
else:
g.testWin.highLight = HighLightBox(pos, size)
g.testWin.highLight.Replace(pos, size)
else:
g.testWin.highLight = HighLightBox(pos, size)
+ g.testWin.highLight.Refresh()
g.testWin.highLight.item = item
def ShowTestWindow(self, item):
g.testWin.highLight.item = item
def ShowTestWindow(self, item):
memFile.close() # write to wxMemoryFS
xmlFlags = wxXRC_NO_SUBCLASSING
# Use translations if encoding is not specified
memFile.close() # write to wxMemoryFS
xmlFlags = wxXRC_NO_SUBCLASSING
# Use translations if encoding is not specified
- if g.currentEncoding == 'ascii':
+ if not g.currentEncoding:
xmlFlags != wxXRC_USE_LOCALE
res = wxXmlResource('', xmlFlags)
res.Load('memory:xxx.xrc')
xmlFlags != wxXRC_USE_LOCALE
res = wxXmlResource('', xmlFlags)
res.Load('memory:xxx.xrc')
tb.AddSimpleTool(wxID_COPY, copy_bmp, 'Copy', 'Copy')
tb.AddSimpleTool(self.ID_TOOL_PASTE, paste_bmp, 'Paste', 'Paste')
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
tb.AddSimpleTool(wxID_COPY, copy_bmp, 'Copy', 'Copy')
tb.AddSimpleTool(self.ID_TOOL_PASTE, paste_bmp, 'Paste', 'Paste')
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
- tb.AddCheckTool(self.ID_TOOL_LOCATE,
- images.getLocateBitmap(), images.getLocateArmedBitmap(),
- 'Locate', 'Locate control in test window and select it')
+ tb.AddSimpleTool(self.ID_TOOL_LOCATE,
+ images.getLocateBitmap(), #images.getLocateArmedBitmap(),
+ 'Locate', 'Locate control in test window and select it', True)
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
tb.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
tb.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
if dom.encoding:
g.currentEncoding = dom.encoding
wx.SetDefaultPyEncoding(g.currentEncoding.encode())
if dom.encoding:
g.currentEncoding = dom.encoding
wx.SetDefaultPyEncoding(g.currentEncoding.encode())
+ else:
+ g.currentEncoding = ''
# Change dir
self.dataFile = path = os.path.abspath(path)
dir = os.path.dirname(path)
# Change dir
self.dataFile = path = os.path.abspath(path)
dir = os.path.dirname(path)
if tree.selection and panel.IsModified():
self.OnRefresh(wxCommandEvent())
if g.currentEncoding:
if tree.selection and panel.IsModified():
self.OnRefresh(wxCommandEvent())
if g.currentEncoding:
- f = codecs.open(path, 'w', g.currentEncoding)
+ f = codecs.open(path, 'wt', g.currentEncoding)
- f = codecs.open(path, 'w')
+ f = codecs.open(path, 'wt')
# Make temporary copy for formatting it
# !!! We can't clone dom node, it works only once
#self.domCopy = tree.dom.cloneNode(True)
# Make temporary copy for formatting it
# !!! We can't clone dom node, it works only once
#self.domCopy = tree.dom.cloneNode(True)
<object class="sizeritem">
<object class="wxTextCtrl" name="TEXT">
<object class="sizeritem">
<object class="wxTextCtrl" name="TEXT">
<style>wxTE_MULTILINE</style>
</object>
<style>wxTE_MULTILINE</style>
</object>
<flag>wxALL|wxEXPAND</flag>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
</object>
<border>5</border>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<default>1</default>
</object>
<default>1</default>
</object>
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<label>Cancel</label>
</object>
</object>
</object>
<label>Cancel</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
</object>
<border>10</border>
</object>
</object>
<object class="sizeritem">
<object class="wxListBox" name="LIST">
<object class="sizeritem">
<object class="wxListBox" name="LIST">
<flag>wxTOP|wxBOTTOM|wxLEFT|wxEXPAND</flag>
<flag>wxTOP|wxBOTTOM|wxLEFT|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<border>5</border>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_UP">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_UP">
<label>Move Up</label>
</object>
<label>Move Up</label>
</object>
<flag>wxBOTTOM|wxEXPAND</flag>
<flag>wxBOTTOM|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_DOWN">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_DOWN">
<label>Move Down</label>
</object>
<label>Move Down</label>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="spacer">
<flag>wxEXPAND</flag>
</object>
<object class="spacer">
<option>1</option>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_APPEND">
<option>1</option>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_APPEND">
<label>Append...</label>
</object>
<label>Append...</label>
</object>
<flag>wxBOTTOM|wxEXPAND</flag>
<flag>wxBOTTOM|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<label>Remove</label>
</object>
<label>Remove</label>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
<flag>wxALL|wxEXPAND</flag>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
</object>
<border>5</border>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<default>1</default>
</object>
<default>1</default>
</object>
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<label>Cancel</label>
</object>
</object>
</object>
<label>Cancel</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
</object>
<border>10</border>
</object>
</object>
<object class="sizeritem">
<object class="wxCheckListBox" name="CHECK_LIST">
<object class="sizeritem">
<object class="wxCheckListBox" name="CHECK_LIST">
<flag>wxTOP|wxBOTTOM|wxLEFT|wxEXPAND</flag>
<flag>wxTOP|wxBOTTOM|wxLEFT|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<border>5</border>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_UP">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_UP">
<label>Move Up</label>
</object>
<label>Move Up</label>
</object>
<flag>wxBOTTOM|wxEXPAND</flag>
<flag>wxBOTTOM|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_DOWN">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_DOWN">
<label>Move Down</label>
</object>
<label>Move Down</label>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="spacer">
<flag>wxEXPAND</flag>
</object>
<object class="spacer">
<option>1</option>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_APPEND">
<option>1</option>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_APPEND">
<label>Append...</label>
</object>
<label>Append...</label>
</object>
<flag>wxBOTTOM|wxEXPAND</flag>
<flag>wxBOTTOM|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<label>Remove</label>
</object>
<label>Remove</label>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
<flag>wxALL|wxEXPAND</flag>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
</object>
<border>5</border>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<default>1</default>
</object>
<default>1</default>
</object>
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<label>Cancel</label>
</object>
</object>
</object>
<label>Cancel</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
</object>
<border>10</border>
</object>
</object>
<object class="sizeritem">
<object class="wxCheckListBox" name="CHECK_LIST">
<object class="sizeritem">
<object class="wxCheckListBox" name="CHECK_LIST">
<style></style>
</object>
<style></style>
</object>
<flag>wxALL|wxEXPAND</flag>
<flag>wxALL|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<default>1</default>
</object>
<default>1</default>
</object>
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<border>10</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<label>Cancel</label>
</object>
</object>
</object>
<label>Cancel</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
</object>
<border>10</border>
</object>
</object>
<object class="sizeritem">
<object class="wxListBox" name="LIST">
<object class="sizeritem">
<object class="wxListBox" name="LIST">
<style>wxLB_SORT</style>
</object>
<style>wxLB_SORT</style>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
<object class="sizeritem">
<border>10</border>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_ADD">
<object class="sizeritem">
<object class="wxButton" name="BUTTON_ADD">
<label>Add...</label>
</object>
<label>Add...</label>
</object>
<border>3</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<border>3</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_REMOVE">
<label>Remove</label>
</object>
</object>
</object>
<label>Remove</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>5</border>
</object>
</object>
<border>5</border>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="wxStaticLine"/>
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<object class="sizeritem">
<object class="wxButton" name="wxID_OK">
<default>1</default>
</object>
<default>1</default>
</object>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="wxID_CANCEL">
<label>Cancel</label>
</object>
</object>
</object>
<label>Cancel</label>
</object>
</object>
</object>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<flag>wxALL|wxALIGN_CENTRE_HORIZONTAL</flag>
<border>10</border>
</object>
</object>
<border>10</border>
</object>
</object>
<object class="sizeritem">
<object class="wxRadioButton" name="RADIO_STD">
<object class="sizeritem">
<object class="wxRadioButton" name="RADIO_STD">
<label>art:</label>
</object>
<label>art:</label>
</object>
<flag>wxALIGN_CENTRE_VERTICAL</flag>
</object>
<object class="sizeritem">
<object class="wxComboBox" name="COMBO_STD">
<flag>wxALIGN_CENTRE_VERTICAL</flag>
</object>
<object class="sizeritem">
<object class="wxComboBox" name="COMBO_STD">
<content>
<item>wxART_ADD_BOOKMARK</item>
<item>wxART_DEL_BOOKMARK</item>
<content>
<item>wxART_ADD_BOOKMARK</item>
<item>wxART_DEL_BOOKMARK</item>
<flag>wxRIGHT|wxEXPAND</flag>
<flag>wxRIGHT|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxRadioButton" name="RADIO_FILE">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxRadioButton" name="RADIO_FILE">
<label>file:</label>
</object>
<label>file:</label>
</object>
<flag>wxALIGN_CENTRE_VERTICAL</flag>
</object>
<object class="sizeritem">
<flag>wxALIGN_CENTRE_VERTICAL</flag>
</object>
<object class="sizeritem">
<object class="sizeritem">
<object class="wxTextCtrl" name="TEXT_FILE"/>
<object class="sizeritem">
<object class="wxTextCtrl" name="TEXT_FILE"/>
<flag>wxRIGHT|wxEXPAND</flag>
<flag>wxRIGHT|wxEXPAND</flag>
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_BROWSE">
<border>5</border>
</object>
<object class="sizeritem">
<object class="wxButton" name="BUTTON_BROWSE">
<size>40,-1d</size>
</object>
</object>
</object>
<size>40,-1d</size>
</object>
</object>
</object>
<flag>wxRIGHT|wxEXPAND</flag>
<flag>wxRIGHT|wxEXPAND</flag>
<border>5</border>
</object>
<vgap>2</vgap>
<growablecols>1</growablecols>
</object>
<border>5</border>
</object>
<vgap>2</vgap>
<growablecols>1</growablecols>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
<flag>wxEXPAND</flag>
</object>
</object>
self.textNode.data = value
else:
def value(self):
self.textNode.data = value
else:
def value(self):
- return self.textNode.data.encode(g.currentEncoding)
+ try:
+ return self.textNode.data.encode(g.currentEncoding)
+ except LookupError:
+ return self.textNode.data.encode()
def update(self, value):
try: # handle exception if encoding is wrong
self.textNode.data = unicode(value, g.currentEncoding)
except UnicodeDecodeError:
def update(self, value):
try: # handle exception if encoding is wrong
self.textNode.data = unicode(value, g.currentEncoding)
except UnicodeDecodeError:
- wxLogMessage("Unicode error: set encoding in file\nglobals.py to something appropriate")
+ self.textNode.data = unicode(value)
+ #wxLogMessage("Unicode error: set encoding in file\nglobals.py to something appropriate")
# Integer parameter
class xxxParamInt(xxxParam):
# Integer parameter
class xxxParamInt(xxxParam):