mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-05 03:20:08 +01:00
first pass over propgrid code snippets
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
|
||||
class MyPropertyClass(wx.propgrid.DirProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
class MyPropertyClass(wx.propgrid.FileProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
class MyPropertyClass(wx.propgrid.FloatProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
class MyPropertyClass(wx.propgrid.IntProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
editorPointer = wx.propgrid.PropertyGrid.RegisterEditorClass(MyEditorClass(), "MyEditor")
|
||||
@@ -0,0 +1,46 @@
|
||||
|
||||
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)
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
# Register editor class - needs only to be called once
|
||||
multiButtonEditor = SampleMultiButtonEditor()
|
||||
wx.propgrid.PropertyGrid.RegisterEditorClass(multiButtonEditor)
|
||||
|
||||
# Insert the property that will have multiple buttons
|
||||
propGrid.Append(
|
||||
wx.propgrid.LongStringProperty("MultipleButtons", wx.propgrid.PG_LABEL))
|
||||
|
||||
# Change property to use editor created in the previous code segment
|
||||
propGrid.SetPropertyEditor("MultipleButtons", multiButtonEditor)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
class MyPropertyClass(wx.propgrid.PGProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
class MyPropertyClass(wx.propgrid.UIntProperty):
|
||||
...
|
||||
def DoGetValidator(self):
|
||||
validator = MyValidator(...)
|
||||
|
||||
... prepare validator...
|
||||
|
||||
return validator
|
||||
Reference in New Issue
Block a user