Applied patch #1181805 TextEditMixin and EVT_LIST_END_LABEL_EDIT
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -403,6 +403,9 @@ class TextEditMixin:
|
||||
Authors: Steve Zatz, Pim Van Heuven (pim@think-wize.com)
|
||||
"""
|
||||
|
||||
editorBgColour = wx.Colour(255,255,175) # Yellow
|
||||
editorFgColour = wx.Colour(0,0,0) # black
|
||||
|
||||
def __init__(self):
|
||||
#editor = wx.TextCtrl(self, -1, pos=(-1,-1), size=(-1,-1),
|
||||
# style=wx.TE_PROCESS_ENTER|wx.TE_PROCESS_TAB \
|
||||
@@ -425,7 +428,8 @@ class TextEditMixin:
|
||||
}[col_style]
|
||||
|
||||
editor.Create(self, -1, style=style)
|
||||
editor.SetBackgroundColour(wx.Colour(red=255,green=255,blue=175)) #Yellow
|
||||
editor.SetBackgroundColour(self.editorBgColour)
|
||||
editor.SetForegroundColour(self.editorFgColour)
|
||||
font = self.GetFont()
|
||||
editor.SetFont(font)
|
||||
|
||||
@@ -561,10 +565,27 @@ class TextEditMixin:
|
||||
self.curCol = col
|
||||
|
||||
|
||||
# FIXME: this function is usually called twice - second time because
|
||||
# it is binded to wx.EVT_KILL_FOCUS. Can it be avoided? (MW)
|
||||
def CloseEditor(self, evt=None):
|
||||
''' Close the editor and save the new value to the ListCtrl. '''
|
||||
text = self.editor.GetValue()
|
||||
self.editor.Hide()
|
||||
self.SetFocus()
|
||||
|
||||
# post wxEVT_COMMAND_LIST_END_LABEL_EDIT
|
||||
# Event can be vetoed. It doesn't has SetEditCanceled(), what would
|
||||
# require passing extra argument to CloseEditor()
|
||||
evt = wx.ListEvent(wx.wxEVT_COMMAND_LIST_END_LABEL_EDIT, self.GetId())
|
||||
evt.m_itemIndex = self.curRow
|
||||
evt.m_col = self.curCol
|
||||
item = self.GetItem(self.curRow, self.curCol)
|
||||
evt.m_item.SetId(item.GetId())
|
||||
evt.m_item.SetColumn(item.GetColumn())
|
||||
evt.m_item.SetData(item.GetData())
|
||||
evt.m_item.SetText(text) #should be empty string if editor was canceled
|
||||
ret = self.GetEventHandler().ProcessEvent(evt)
|
||||
if not ret or evt.IsAllowed():
|
||||
if self.IsVirtual():
|
||||
# replace by whather you use to populate the virtual ListCtrl
|
||||
# data source
|
||||
|
Reference in New Issue
Block a user