mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-08 21:10:06 +01:00
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
|
|
class SampleMultiButtonEditor(wx.propgrid.PGTextCtrlEditor):
|
|
|
|
def GetName(self):
|
|
return "SampleMultiButtonEditor"
|
|
|
|
def CreateControls(self, propGrid, aProperty, pos, size):
|
|
# Create and populate buttons-subwindow
|
|
buttons = wx.propgrid.PGMultiButton(propGrid, size)
|
|
|
|
# Add two regular buttons
|
|
buttons.Add("...")
|
|
buttons.Add("A")
|
|
|
|
# Add a bitmap button
|
|
buttons.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER))
|
|
|
|
# Create the 'primary' editor control (textctrl in self case)
|
|
wndList = wx.propgrid.PGTextCtrlEditor.CreateControls(
|
|
propGrid, aProperty, pos, buttons.GetPrimarySize())
|
|
|
|
# Finally, move buttons-subwindow to correct position and make sure
|
|
# returned wx.propgrid.PGWindowList contains our custom button list.
|
|
buttons.Finalize(propGrid, pos)
|
|
wndList.SetSecondary(buttons)
|
|
return wndList
|
|
|
|
|
|
def OnEvent(self, propGrid, aProperty, ctrl, event):
|
|
if event.GetEventType() == wx.wxEVT_BUTTON:
|
|
buttons = propGrid.GetEditorControlSecondary()
|
|
if event.GetId() == buttons.GetButtonId(0):
|
|
# Do something when the first button is pressed
|
|
# Return true if the action modified the value in editor.
|
|
...
|
|
|
|
if event.GetId() == buttons.GetButtonId(1):
|
|
# Do something when the second button is pressed
|
|
...
|
|
|
|
if event.GetId() == buttons.GetButtonId(2):
|
|
# Do something when the third button is pressed
|
|
...
|
|
|
|
return wx.propgrid.PGTextCtrlEditor.OnEvent(propGrid, aProperty, ctrl, event)
|
|
|