summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins')
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/_bitmaps.py321
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/DynamicSashWindow.pngbin0 -> 2431 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/EditableListBox.pngbin0 -> 4512 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/LEDNumberCtrl.pngbin0 -> 320 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/TreeListCtrl.pngbin0 -> 4758 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/separator.pngbin0 -> 154 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/sizer.pngbin0 -> 176 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/spacer.pngbin0 -> 208 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/tool.pngbin0 -> 1129 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBitmapButton.pngbin0 -> 2992 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBoxSizer.pngbin0 -> 184 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxButton.pngbin0 -> 3272 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxCheckBox.pngbin0 -> 2764 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoice.pngbin0 -> 4090 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoicebook.pngbin0 -> 6639 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxComboBox.pngbin0 -> 2041 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxDialog.pngbin0 -> 3302 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFilePickerCtrl.pngbin0 -> 4570 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFlexGridSizer.pngbin0 -> 193 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFrame.pngbin0 -> 3579 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGauge.pngbin0 -> 1904 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid.pngbin0 -> 1341 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridBagSizer.pngbin0 -> 215 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridSizer.pngbin0 -> 192 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid_bad.pngbin0 -> 6359 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxHyperlinkCtrl.pngbin0 -> 3150 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListBox.pngbin0 -> 7029 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListCtrl.pngbin0 -> 7128 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListbook.pngbin0 -> 8189 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenu.pngbin0 -> 3008 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuBar.pngbin0 -> 2451 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuItem.pngbin0 -> 1102 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxNotebook.pngbin0 -> 3660 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxRadioButton.pngbin0 -> 2485 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrollBar.pngbin0 -> 2010 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrolledWindow.pngbin0 -> 4525 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSlider.pngbin0 -> 2399 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinButton.pngbin0 -> 1083 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinCtrl.pngbin0 -> 2187 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSplitterWindow.pngbin0 -> 1841 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBitmap.pngbin0 -> 1441 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBox.pngbin0 -> 1586 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBoxSizer.pngbin0 -> 1559 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticLine.pngbin0 -> 450 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticText.pngbin0 -> 2756 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStatusBar.pngbin0 -> 817 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTextCtrl.pngbin0 -> 884 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToggleButton.pngbin0 -> 3318 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToolBar.pngbin0 -> 2613 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreeCtrl.pngbin0 -> 8952 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreebook.pngbin0 -> 9215 bytes
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/controls.py577
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/core.py607
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/gizmos.crx129
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/wxlib.py39
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_gizmos.py158
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_wxlib.py62
57 files changed, 1893 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/_bitmaps.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/_bitmaps.py
new file mode 100644
index 0000000..9fd8584
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/_bitmaps.py
@@ -0,0 +1,321 @@
+#----------------------------------------------------------------------
+# This file was generated by ../encode_bitmaps.py
+#
+from wx.lib.embeddedimage import PyEmbeddedImage
+
+wxDialog = PyEmbeddedImage(
+ "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")
+
+#----------------------------------------------------------------------
+wxFrame = PyEmbeddedImage(
+ "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"
+ "qjjmXEwsYiIUUO4pIeVxrHWxFROhlaKyYxewJ8kzKknSlkB77jxrKWuFsANrDUWlUCV3fSsW"
+ "JTE9vf3QN+AA2yRBCmCijYHZGPwCUhlC1m6hWnVwQfPOSSi3VxOUd6D799FoNFA9u7DROiy+"
+ "i7K2U+dtvWlWCiWC5+fI79hHm4C43QQxKMBX2sfzPDcwq1GbMu+99h7vddx5t2xsn3bCkXFf"
+ "1ObVBewmD+s2K7Bx1P0xa9w5ne2QD17fdgHfbcPW8TTaozh4gNI9JqKA0AqtdgvVSWiFPirl"
+ "gXtuJYpAMzKYsNUtPgSFb2qLzJ77AWZ5kdDztwa4T7gEaCvV3Q7Z/qSOMWyUzgAh0ND6Lv02"
+ "X8J2zUmUR0lH+A+P7+LpP3oCY4yrzT91kg/LZJvO2P5vkk5ouve/EorOvn2z2eCfv34Dv7dS"
+ "5ugDh7DG4Pk+d3ecTP9bibh9rFq1SqlY6FQ1EMYxfveWNtNHLwc2jNz+lg8u0ehurMvIf9Ry"
+ "hYDqfgb4NAb1j13bRZEMfErKwKekDHxKysCnpAx8SsrAp6QMfErKwKekDHxKysCnpAx8SsrA"
+ "p6QMfErKwKekDHxKysCnpAx8SsrAp6QMfErKwKekDHxKysCnpAx8SsrAp6QMfErKwKekDHxK"
+ "ysCnpAx8SsrAp6QMfErKwKekDHxKysCnpAx8SsrAp6QMfErKwKekDHxKysCnpAx8SsrAp6QM"
+ "fErKwH8M2u5BRF3wG09MzfRRazu2evNTUTN9fPK11kRRRLVaxff9tMfziZaIuKePa4166qmn"
+ "5PDhwzSbzU/pM8k+PokIWmuuXr3K/wCobQ9DCns9YgAAAABJRU5ErkJggg==")
+
+#----------------------------------------------------------------------
+wxPanel = PyEmbeddedImage(
+ "iVBORw0KGgoAAAANSUhEUgAAAE0AAABGCAIAAAAGrI4kAAAAA3NCSVQICAjb4U/gAAAAyklE"
+ "QVRoge3bsQnEQAxEUY3ZGhZ34Zrd3YJLEEgX+LKLjeHfvGg300exdJ6npKAbkvZ9n3NW1dvD"
+ "PELSWmtExJzzOI6qQi62qjJz3K+q2rbt7ZEe8a27P8hN3iRJYu7wlztZ3MniThZ3sriTxZ0s"
+ "7mRxJ4s7WdzJ4k4Wd7K4k8WdLO5kcSeLO1ncyeJOFneyuJPFnSzuZHEniztZ3MniThZ3sriT"
+ "xZ0sf9bZ3e/O8ajuHhEhqbszE3kF2t2SRkSstTITebd8R17X9QFVODvBZcI23wAAAABJRU5E"
+ "rkJggg==")
+
+#----------------------------------------------------------------------
+wxPropertySheetDialog = PyEmbeddedImage(
+ "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"
+ "A8wUaWxs5P8AE8WsR2Tbeb8AAAAASUVORK5CYII=")
+
+#----------------------------------------------------------------------
+wxWizard = PyEmbeddedImage(
+ "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")
+
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/DynamicSashWindow.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/DynamicSashWindow.png
new file mode 100644
index 0000000..dccc64e
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/DynamicSashWindow.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/EditableListBox.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/EditableListBox.png
new file mode 100644
index 0000000..eab8bda
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/EditableListBox.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/LEDNumberCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/LEDNumberCtrl.png
new file mode 100644
index 0000000..72ad2d0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/LEDNumberCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/TreeListCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/TreeListCtrl.png
new file mode 100644
index 0000000..5ca19e3
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/TreeListCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/separator.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/separator.png
new file mode 100644
index 0000000..752e21e
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/separator.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/sizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/sizer.png
new file mode 100644
index 0000000..4fb2ca3
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/sizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/spacer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/spacer.png
new file mode 100644
index 0000000..8321a08
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/spacer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/tool.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/tool.png
new file mode 100644
index 0000000..63115dd
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/tool.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBitmapButton.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBitmapButton.png
new file mode 100644
index 0000000..54c0096
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBitmapButton.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBoxSizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBoxSizer.png
new file mode 100644
index 0000000..97d77a8
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxBoxSizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxButton.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxButton.png
new file mode 100644
index 0000000..03505a0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxButton.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxCheckBox.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxCheckBox.png
new file mode 100644
index 0000000..3622fd5
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxCheckBox.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoice.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoice.png
new file mode 100644
index 0000000..f101642
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoice.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoicebook.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoicebook.png
new file mode 100644
index 0000000..7475d50
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxChoicebook.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxComboBox.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxComboBox.png
new file mode 100644
index 0000000..e6f68e0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxComboBox.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxDialog.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxDialog.png
new file mode 100644
index 0000000..023ff21
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxDialog.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFilePickerCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFilePickerCtrl.png
new file mode 100644
index 0000000..b3faf0d
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFilePickerCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFlexGridSizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFlexGridSizer.png
new file mode 100644
index 0000000..21f86e0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFlexGridSizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFrame.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFrame.png
new file mode 100644
index 0000000..6c564ac
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxFrame.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGauge.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGauge.png
new file mode 100644
index 0000000..e2500c0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGauge.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid.png
new file mode 100644
index 0000000..b1b704c
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridBagSizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridBagSizer.png
new file mode 100644
index 0000000..1d0ba28
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridBagSizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridSizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridSizer.png
new file mode 100644
index 0000000..9ab886d
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGridSizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid_bad.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid_bad.png
new file mode 100644
index 0000000..9f54583
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxGrid_bad.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxHyperlinkCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxHyperlinkCtrl.png
new file mode 100644
index 0000000..d0be9de
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxHyperlinkCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListBox.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListBox.png
new file mode 100644
index 0000000..c295709
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListBox.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListCtrl.png
new file mode 100644
index 0000000..750e289
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListbook.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListbook.png
new file mode 100644
index 0000000..209ba2c
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxListbook.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenu.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenu.png
new file mode 100644
index 0000000..2860ddf
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenu.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuBar.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuBar.png
new file mode 100644
index 0000000..bd31766
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuBar.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuItem.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuItem.png
new file mode 100644
index 0000000..f76b807
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxMenuItem.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxNotebook.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxNotebook.png
new file mode 100644
index 0000000..49aa4d5
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxNotebook.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxRadioButton.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxRadioButton.png
new file mode 100644
index 0000000..f494c00
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxRadioButton.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrollBar.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrollBar.png
new file mode 100644
index 0000000..abfff63
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrollBar.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrolledWindow.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrolledWindow.png
new file mode 100644
index 0000000..2125467
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxScrolledWindow.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSlider.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSlider.png
new file mode 100644
index 0000000..566be76
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSlider.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinButton.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinButton.png
new file mode 100644
index 0000000..3011506
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinButton.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinCtrl.png
new file mode 100644
index 0000000..4ee9d5a
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSpinCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSplitterWindow.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSplitterWindow.png
new file mode 100644
index 0000000..e518f04
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxSplitterWindow.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBitmap.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBitmap.png
new file mode 100644
index 0000000..99d09ff
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBitmap.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBox.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBox.png
new file mode 100644
index 0000000..3480c42
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBox.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBoxSizer.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBoxSizer.png
new file mode 100644
index 0000000..2e15f26
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticBoxSizer.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticLine.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticLine.png
new file mode 100644
index 0000000..8d0dbb2
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticLine.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticText.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticText.png
new file mode 100644
index 0000000..96a54f3
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStaticText.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStatusBar.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStatusBar.png
new file mode 100644
index 0000000..88c763b
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxStatusBar.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTextCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTextCtrl.png
new file mode 100644
index 0000000..d24eaba
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTextCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToggleButton.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToggleButton.png
new file mode 100644
index 0000000..44e9eaf
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToggleButton.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToolBar.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToolBar.png
new file mode 100644
index 0000000..5ff49bd
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxToolBar.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreeCtrl.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreeCtrl.png
new file mode 100644
index 0000000..161c9bd
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreeCtrl.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreebook.png b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreebook.png
new file mode 100644
index 0000000..d3c1b41
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/bitmaps/wxTreebook.png
Binary files differ
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/controls.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/controls.py
new file mode 100644
index 0000000..a36d1ab
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/controls.py
@@ -0,0 +1,577 @@
+# Name: controls.py
+# Purpose: Control components
+# Author: Roman Rolinsky <rolinsky@femagsoft.com>
+# Created: 31.05.2007
+# RCS-ID: $Id: core.py 47823 2007-07-29 19:24:35Z ROL $
+
+from wx.tools.XRCed import component, images, attribute, params
+from wx.tools.XRCed.globals import TRACE
+import _bitmaps as bitmaps
+
+TRACE('*** creating control components')
+
+# Set panel images
+component.Manager.panelImages['Controls'] = images.ToolPanel_Controls.GetImage()
+
+### wxStaticText
+
+c = component.Component('wxStaticText', ['control','tool'],
+ ['pos', 'size', 'label', 'wrap'], defaults={'label': 'LABEL'},
+ image=images.TreeStaticText.GetImage())
+c.addStyles('wxALIGN_LEFT', 'wxALIGN_RIGHT', 'wxALIGN_CENTRE', 'wxST_NO_AUTORESIZE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'label', 'wxStaticText', 10)
+component.Manager.setTool(c, 'Controls', pos=(0,0))
+
+### wxStaticLine
+
+c = component.Component('wxStaticLine', ['control','tool'],
+ ['pos', 'size'], image=images.TreeStaticLine.GetImage())
+c.addStyles('wxLI_HORIZONTAL', 'wxLI_VERTICAL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'line', 'wxStaticLine', 20)
+component.Manager.setTool(c, 'Controls', pos=(0,3))
+
+### wxStaticBitmap
+
+c = component.Component('wxStaticBitmap', ['control','tool'],
+ ['pos', 'size', 'bitmap'],
+ image=images.TreeStaticBitmap.GetImage())
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'bitmap', 'wxStaticBitmap', 30)
+component.Manager.setTool(c, 'Controls', pos=(1,0))
+
+### wxTextCtrl
+
+c = component.Component('wxTextCtrl', ['control','tool'],
+ ['pos', 'size', 'value', 'maxlength'],
+ image=images.TreeTextCtrl.GetImage())
+c.addStyles('wxTE_NO_VSCROLL',
+ 'wxTE_AUTO_SCROLL',
+ 'wxTE_PROCESS_ENTER',
+ 'wxTE_PROCESS_TAB',
+ 'wxTE_MULTILINE',
+ 'wxTE_PASSWORD',
+ 'wxTE_READONLY',
+ 'wxHSCROLL',
+ 'wxTE_RICH',
+ 'wxTE_RICH2',
+ 'wxTE_AUTO_URL',
+ 'wxTE_NOHIDESEL',
+ 'wxTE_LEFT',
+ 'wxTE_CENTRE',
+ 'wxTE_RIGHT',
+ 'wxTE_DONTWRAP',
+ 'wxTE_LINEWRAP',
+ 'wxTE_CHARWRAP',
+ 'wxTE_WORDWRAP')
+c.setParamClass('value', params.ParamMultilineText)
+c.addEvents('EVT_TEXT', 'EVT_TEXT_ENTER', 'EVT_TEXT_URL', 'EVT_TEXT_MAXLEN')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'text ctrl', 'wxTextCtrl', 40)
+component.Manager.setTool(c, 'Controls', pos=(0,2))
+
+#### wxRichTextCtrl
+#
+#c = component.Component('wxRichTextCtrl', ['control','tool'],
+# ['pos', 'size', 'value', 'maxlength'],
+# image=images.TreeTextCtrl.GetImage())
+#c.addStyles('wxTE_PROCESS_ENTER',
+# 'wxTE_PROCESS_TAB',
+# 'wxTE_MULTILINE',
+# 'wxTE_READONLY',
+# 'wxTE_AUTO_URL')
+#c.setParamClass('value', params.ParamMultilineText)
+#c.addEvents('EVT_TEXT', 'EVT_TEXT_ENTER', 'EVT_TEXT_URL', 'EVT_TEXT_MAXLEN')
+#component.Manager.register(c)
+#component.Manager.setMenu(c, 'control', 'rich text ctrl', 'wxTRichextCtrl', 41)
+#
+### wxChoice
+
+c = component.Component('wxChoice', ['control','tool'],
+ ['pos', 'size', 'content', 'selection'],
+ image=images.TreeChoice.GetImage())
+c.addStyles('wxCB_SORT')
+c.setSpecial('content', attribute.ContentAttribute)
+c.addEvents('EVT_CHOICE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'choice', 'wxChoice', 50)
+component.Manager.setTool(c, 'Controls', pos=(3,2))
+
+### wxSlider
+
+c = component.Component('wxSlider', ['control','tool'],
+ ['pos', 'size', 'value', 'min', 'max',
+ 'tickfreq', 'pagesize', 'linesize', 'thumb', 'tick',
+ 'selmin', 'selmax'],
+ image=images.TreeSlider.GetImage())
+c.addStyles('wxSL_HORIZONTAL', 'wxSL_VERTICAL', 'wxSL_AUTOTICKS', 'wxSL_LABELS',
+ 'wxSL_LEFT', 'wxSL_RIGHT', 'wxSL_TOP', 'wxSL_BOTTOM',
+ 'wxSL_BOTH', 'wxSL_SELRANGE', 'wxSL_INVERSE')
+component.Manager.register(c)
+c.setParamClass('value', params.ParamInt)
+c.setParamClass('tickfreq', params.ParamIntNN)
+c.setParamClass('pagesize', params.ParamIntNN)
+c.setParamClass('linesize', params.ParamIntNN)
+c.setParamClass('thumb', params.ParamUnit)
+c.setParamClass('tick', params.ParamInt)
+c.setParamClass('selmin', params.ParamInt)
+c.setParamClass('selmax', params.ParamInt)
+c.addEvents('EVT_SCROLL', 'EVT_SCROLL_TOP', 'EVT_SCROLL_BOTTOM',
+ 'EVT_SCROLL_LINEUP', 'EVT_SCROLL_LINEDOWN', 'EVT_SCROLL_PAGEUP',
+ 'EVT_SCROLL_PAGEDOWN', 'EVT_SCROLL_THUMBTRACK', 'EVT_SCROLL_THUMBRELEASE',
+ 'EVT_SCROLL_CHANGED', 'EVT_SCROLL', 'EVT_SCROLL_TOP',
+ 'EVT_SCROLL_BOTTOM', 'EVT_SCROLL_LINEUP',
+ 'EVT_SCROLL_LINEDOWN', 'EVT_SCROLL_PAGEUP',
+ 'EVT_SCROLL_PAGEDOWN', 'EVT_SCROLL_THUMBTRACK',
+ 'EVT_SCROLL_THUMBRELEASE', 'EVT_SCROLL_CHANGED')
+component.Manager.setMenu(c, 'control', 'slider', 'wxSlider', 60)
+component.Manager.setTool(c, 'Controls', pos=(2,3))
+
+### wxGauge
+
+c = component.Component('wxGauge', ['control','tool'],
+ ['pos', 'size', 'range', 'value', 'shadow', 'bezel'],
+ image=images.TreeGauge.GetImage())
+c.addStyles('wxGA_HORIZONTAL', 'wxGA_VERTICAL', 'wxGA_SMOOTH')
+c.setParamClass('range', params.ParamIntNN)
+c.setParamClass('value', params.ParamIntNN)
+c.setParamClass('shadow', params.ParamUnit)
+c.setParamClass('bezel', params.ParamUnit)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'gauge', 'wxGauge', 70)
+component.Manager.setTool(c, 'Controls', pos=(1,3))
+
+### wxSpinCtrl
+
+c = component.Component('wxSpinCtrl', ['control','tool'],
+ ['pos', 'size', 'value', 'min', 'max'],
+ image=images.TreeSpinCtrl.GetImage())
+c.addStyles('wxSP_HORIZONTAL', 'wxSP_VERTICAL', 'wxSP_ARROW_KEYS', 'wxSP_WRAP')
+c.setParamClass('value', params.ParamInt)
+c.addEvents('EVT_SPINCTRL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'spin ctrl', 'wxSpinCtrl', 80)
+component.Manager.setTool(c, 'Controls', pos=(1,2))
+
+### wxScrollBar
+
+c = component.Component('wxScrollBar', ['control'],
+ ['pos', 'size', 'value', 'thumbsize', 'range', 'pagesize'],
+ image=images.TreeScrollBar.GetImage())
+c.addStyles('wxSB_HORIZONTAL', 'wxSB_VERTICAL')
+c.setParamClass('range', params.ParamIntNN)
+c.setParamClass('value', params.ParamIntNN)
+c.setParamClass('thumbsize', params.ParamUnit)
+c.setParamClass('pagesize', params.ParamUnit)
+c.addEvents('EVT_SCROLL', 'EVT_SCROLL_TOP', 'EVT_SCROLL_BOTTOM',
+ 'EVT_SCROLL_LINEUP', 'EVT_SCROLL_LINEDOWN', 'EVT_SCROLL_PAGEUP',
+ 'EVT_SCROLL_PAGEDOWN', 'EVT_SCROLL_THUMBTRACK', 'EVT_SCROLL_THUMBRELEASE',
+ 'EVT_SCROLL_CHANGED', 'EVT_SCROLL', 'EVT_SCROLL_TOP',
+ 'EVT_SCROLL_BOTTOM', 'EVT_SCROLL_LINEUP',
+ 'EVT_SCROLL_LINEDOWN', 'EVT_SCROLL_PAGEUP',
+ 'EVT_SCROLL_PAGEDOWN', 'EVT_SCROLL_THUMBTRACK',
+ 'EVT_SCROLL_THUMBRELEASE', 'EVT_SCROLL_CHANGED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'scroll bar', 'wxScrollBar', 90)
+component.Manager.setTool(c, 'Controls', pos=(3,3))
+
+### wxListCtrl
+
+c = component.Component('wxListCtrl', ['control','tool'], ['pos', 'size'],
+ image=images.TreeListCtrl.GetImage())
+c.addStyles('wxLC_LIST', 'wxLC_REPORT', 'wxLC_ICON', 'wxLC_SMALL_ICON',
+ 'wxLC_ALIGN_TOP', 'wxLC_ALIGN_LEFT', 'wxLC_AUTOARRANGE',
+ 'wxLC_USER_TEXT', 'wxLC_EDIT_LABELS', 'wxLC_NO_HEADER',
+ 'wxLC_SINGLE_SEL', 'wxLC_SORT_ASCENDING', 'wxLC_SORT_DESCENDING',
+ 'wxLC_VIRTUAL', 'wxLC_HRULES', 'wxLC_VRULES', 'wxLC_NO_SORT_HEADER')
+c.addEvents('EVT_LIST_BEGIN_DRAG',
+ 'EVT_LIST_BEGIN_RDRAG',
+ 'EVT_LIST_BEGIN_LABEL_EDIT',
+ 'EVT_LIST_END_LABEL_EDIT',
+ 'EVT_LIST_DELETE_ITEM',
+ 'EVT_LIST_DELETE_ALL_ITEMS',
+ 'EVT_LIST_ITEM_SELECTED',
+ 'EVT_LIST_ITEM_DESELECTED',
+ 'EVT_LIST_KEY_DOWN',
+ 'EVT_LIST_INSERT_ITEM',
+ 'EVT_LIST_COL_CLICK',
+ 'EVT_LIST_ITEM_RIGHT_CLICK',
+ 'EVT_LIST_ITEM_MIDDLE_CLICK',
+ 'EVT_LIST_ITEM_ACTIVATED',
+ 'EVT_LIST_CACHE_HINT',
+ 'EVT_LIST_COL_RIGHT_CLICK',
+ 'EVT_LIST_COL_BEGIN_DRAG',
+ 'EVT_LIST_COL_DRAGGING',
+ 'EVT_LIST_COL_END_DRAG',
+ 'EVT_LIST_ITEM_FOCUSED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'list ctrl', 'wxListCtrl', 100)
+component.Manager.setTool(c, 'Panels', pos=(0,1))
+
+### wxTreeCtrl
+
+c = component.Component('wxTreeCtrl', ['control','tool'], ['pos', 'size'],
+ image=images.TreeTreeCtrl.GetImage())
+c.addStyles('wxTR_EDIT_LABELS',
+ 'wxTR_NO_BUTTONS',
+ 'wxTR_HAS_BUTTONS',
+ 'wxTR_TWIST_BUTTONS',
+ 'wxTR_NO_LINES',
+ 'wxTR_FULL_ROW_HIGHLIGHT',
+ 'wxTR_LINES_AT_ROOT',
+ 'wxTR_HIDE_ROOT',
+ 'wxTR_ROW_LINES',
+ 'wxTR_HAS_VARIABLE_ROW_HEIGHT',
+ 'wxTR_SINGLE',
+ 'wxTR_MULTIPLE',
+ 'wxTR_EXTENDED',
+ 'wxTR_DEFAULT_STYLE')
+c.addEvents('EVT_TREE_BEGIN_DRAG',
+ 'EVT_TREE_BEGIN_RDRAG',
+ 'EVT_TREE_BEGIN_LABEL_EDIT',
+ 'EVT_TREE_END_LABEL_EDIT',
+ 'EVT_TREE_DELETE_ITEM',
+ 'EVT_TREE_GET_INFO',
+ 'EVT_TREE_SET_INFO',
+ 'EVT_TREE_ITEM_EXPANDED',
+ 'EVT_TREE_ITEM_EXPANDING',
+ 'EVT_TREE_ITEM_COLLAPSED',
+ 'EVT_TREE_ITEM_COLLAPSING',
+ 'EVT_TREE_SEL_CHANGED',
+ 'EVT_TREE_SEL_CHANGING',
+ 'EVT_TREE_KEY_DOWN',
+ 'EVT_TREE_ITEM_ACTIVATED',
+ 'EVT_TREE_ITEM_RIGHT_CLICK',
+ 'EVT_TREE_ITEM_MIDDLE_CLICK',
+ 'EVT_TREE_END_DRAG',
+ 'EVT_TREE_STATE_IMAGE_CLICK',
+ 'EVT_TREE_ITEM_GETTOOLTIP',
+ 'EVT_TREE_ITEM_MENU')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'tree ctrl', 'wxTreeCtrl', 110)
+component.Manager.setTool(c, 'Panels', pos=(0,2))
+
+### wxHtmlWindow
+
+c = component.Component('wxHtmlWindow', ['control'],
+ ['pos', 'size', 'borders', 'url', 'htmlcode'])
+c.addStyles('wxHW_SCROLLBAR_NEVER', 'wxHW_SCROLLBAR_AUTO', 'wxHW_NO_SELECTION')
+c.setParamClass('url', params.ParamLongText)
+c.setParamClass('htmlcode', params.ParamMultilineText)
+c.addEvents('EVT_HTML_CELL_CLICKED', 'EVT_HTML_CELL_HOVER',
+ 'EVT_HTML_LINK_CLICKED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'HTML window', 'wxHtmlWindow', 120)
+
+### wxCalendarCtrl
+
+c = component.Component('wxCalendarCtrl', ['control', 'tool'], ['pos', 'size'])
+c.addStyles('wxCAL_SUNDAY_FIRST', 'wxCAL_MONDAY_FIRST', 'wxCAL_SHOW_HOLIDAYS',
+ 'wxCAL_NO_YEAR_CHANGE', 'wxCAL_NO_MONTH_CHANGE',
+ 'wxCAL_SEQUENTIAL_MONTH_SELECTION', 'wxCAL_SHOW_SURROUNDING_WEEKS')
+c.addEvents('EVT_CALENDAR_SEL_CHANGED', 'EVT_CALENDAR_DAY_CHANGED',
+ 'EVT_CALENDAR_MONTH_CHANGED', 'EVT_CALENDAR_YEAR_CHANGED',
+ 'EVT_CALENDAR_DOUBLECLICKED', 'EVT_CALENDAR_WEEKDAY_CLICKED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'calendar ctrl', 'wxCalendarCtrl', 130)
+
+### wxGenericDirCtrl
+
+c = component.Component('wxGenericDirCtrl', ['control'],
+ ['pos', 'size', 'defaultfolder', 'filter', 'defaultfilter'])
+c.addStyles('wxDIRCTRL_DIR_ONLY', 'wxDIRCTRL_3D_INTERNAL', 'wxDIRCTRL_SELECT_FIRST',
+ 'wxDIRCTRL_SHOW_FILTERS', 'wxDIRCTRL_EDIT_LABELS')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'generic dir ctrl', 'wxGenericDirCtrl', 160)
+
+### wxFilePickerCtrl
+
+c = component.Component('wxFilePickerCtrl', ['control'],
+ ['pos', 'size', 'value', 'message', 'wildcard'])
+c.addStyles('wxFLP_OPEN', 'wxFLP_SAVE', 'wxFLP_OVERWRITE_PROMPT',
+ 'wxFLP_FILE_MUST_EXIST', 'wxFLP_CHANGE_DIR',
+ 'wxFLP_DEFAULT_STYLE', 'wxFLP_USE_TEXTCTRL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'file picker ctrl', 'wxFilePickerCtrl', 170)
+component.Manager.setTool(c, 'Controls', pos=(4,2))
+
+### wxDirPickerCtrl
+
+c = component.Component('wxDirPickerCtrl', ['control'],
+ ['pos', 'size', 'value', 'message', 'wildcard'])
+c.addStyles('wxDIRP_USE_TEXTCTRL',
+ 'wxDIRP_DIR_MUST_EXIST', 'wxDIRP_CHANGE_DIR',
+ 'wxDIRP_DEFAULT_STYLE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'dir picker ctrl', 'wxDirPickerCtrl', 171)
+
+### wxDatePickerCtrl
+
+c = component.Component('wxDatePickerCtrl', ['control'], ['pos', 'size'])
+c.addStyles('wxDP_DEFAULT', 'wxDP_SPIN', 'wxDP_DROPDOWN',
+ 'wxDP_ALLOWNONE', 'wxDP_SHOWCENTURY')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'date picker ctrl', 'wxDateCtrl', 180)
+
+### wxFontPickerCtrl
+
+c = component.Component('wxFontPickerCtrl', ['control'], ['pos', 'size', 'value'])
+c.addStyles('wxFNTP_USE_TEXTCTRL', 'wxFNTP_FONTDESC_AS_LABEL',
+ 'wxFNTP_USEFONT_FOR_LABEL', 'wxFNTP_DEFAULT_STYLE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'font picker ctrl', 'wxFontPickerCtrl', 181)
+
+### wxColourPickerCtrl
+
+c = component.Component('wxColourPickerCtrl', ['control'], ['pos', 'size', 'value'])
+c.addStyles('wxCLRP_USE_TEXTCTRL', 'wxCLRP_SHOW_LABEL', 'wxCLRP_DEFAULT_STYLE')
+c.addEvents('EVT_COMMAND_COLOURPICKER_CHANGED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'colour picker ctrl', 'wxColourPickerCtrl', 181)
+
+### wxAnimationCtrl
+
+c = component.Component('wxAnimationCtrl', ['control','tool'],
+ ['pos', 'size', 'animation', 'inactive-bitmap'])
+c.addStyles('wxAC_NO_AUTORESIZE', 'wxAC_DEFAULT_STYLE')
+c.setSpecial('inactive-bitmap', attribute.BitmapAttribute)
+c.setParamClass('inactive-bitmap', params.ParamBitmap)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'animation ctrl', 'wxAnimationCtrl', 182)
+
+### wxGrid
+
+c = component.Component('wxGrid', ['control'], ['pos', 'size'])
+c.addEvents('EVT_GRID_CELL_LEFT_CLICK',
+ 'EVT_GRID_CELL_RIGHT_CLICK',
+ 'EVT_GRID_CELL_LEFT_DCLICK',
+ 'EVT_GRID_CELL_RIGHT_DCLICK',
+ 'EVT_GRID_LABEL_LEFT_CLICK',
+ 'EVT_GRID_LABEL_RIGHT_CLICK',
+ 'EVT_GRID_LABEL_LEFT_DCLICK',
+ 'EVT_GRID_LABEL_RIGHT_DCLICK',
+ 'EVT_GRID_ROW_SIZE',
+ 'EVT_GRID_COL_SIZE',
+ 'EVT_GRID_RANGE_SELECT',
+ 'EVT_GRID_CELL_CHANGE',
+ 'EVT_GRID_SELECT_CELL',
+ 'EVT_GRID_EDITOR_SHOWN',
+ 'EVT_GRID_EDITOR_HIDDEN',
+ 'EVT_GRID_EDITOR_CREATED',
+ 'EVT_GRID_CELL_BEGIN_DRAG')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'grid', 'wxGrid', 190)
+component.Manager.setTool(c, 'Panels', pos=(2,1), span=(1,2))
+
+### wxHyperlinkCtrl
+
+c = component.Component('wxHyperlinkCtrl', ['control','tool'],
+ ['pos', 'size', 'label', 'url'],
+ params={'url': params.ParamText},
+ defaults={'url': 'http://'})
+c.addStyles('wxHL_CONTEXTMENU', 'wxHL_ALIGN_LEFT', 'wxHL_ALIGN_RIGHT',
+ 'wxHL_ALIGN_CENTRE', 'wxHL_DEFAULT_STYLE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'hyperlink', 'wxHyperlinkCtrl', 200)
+component.Manager.setTool(c, 'Controls', pos=(3,0))
+
+################################################################################
+# Buttons
+
+### wxButton
+
+c = component.Component('wxButton', ['control', 'tool', 'stdbtn'],
+ ['pos', 'size', 'label', 'default'],
+ image=images.TreeButton.GetImage())
+c.addStyles('wxBU_LEFT', 'wxBU_TOP', 'wxBU_RIGHT', 'wxBU_BOTTOM', 'wxBU_EXACTFIT')
+c.setParamClass('default', params.ParamBool)
+c.addEvents('EVT_BUTTON')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'button', 'button', 'wxButton', 10)
+component.Manager.setTool(c, 'Controls', pos=(0,1))
+
+### wxBitmapButton
+
+c = component.Component('wxBitmapButton', ['control', 'tool'],
+ ['pos', 'size', 'default',
+ 'bitmap', 'selected', 'focus', 'disabled', 'hover'],
+ image=images.TreeBitmapButton.GetImage())
+c.addStyles('wxBU_AUTODRAW', 'wxBU_LEFT', 'wxBU_RIGHT', 'wxBU_TOP', 'wxBU_BOTTOM',
+ 'wxBU_EXACTFIT')
+c.setParamClass('default', params.ParamBool)
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.setSpecial('selected', attribute.BitmapAttribute)
+c.setParamClass('selected', params.ParamBitmap)
+c.setSpecial('focus', attribute.BitmapAttribute)
+c.setParamClass('focus', params.ParamBitmap)
+c.setSpecial('disabled', attribute.BitmapAttribute)
+c.setParamClass('disabled', params.ParamBitmap)
+c.setSpecial('hover', attribute.BitmapAttribute)
+c.setParamClass('hover', params.ParamBitmap)
+c.addEvents('EVT_BUTTON')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'button', 'bitmap button', 'wxBitmapButton', 20)
+component.Manager.setTool(c, 'Controls', pos=(1,1))
+
+### wxRadioButton
+
+c = component.Component('wxRadioButton', ['control', 'tool'],
+ ['pos', 'size', 'label', 'value'],
+ image=images.TreeRadioButton.GetImage())
+c.addStyles('wxRB_GROUP', 'wxRB_SINGLE')
+c.setParamClass('value', params.ParamBool)
+c.addEvents('EVT_RADIOBUTTON')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'button', 'radio button', 'wxRadioButton', 30)
+component.Manager.setTool(c, 'Controls', pos=(3,1))
+
+### wxSpinButton
+
+c = component.Component('wxSpinButton', ['control', 'tool'],
+ ['pos', 'size', 'value', 'min', 'max'],
+ image=images.TreeSpinButton.GetImage())
+c.addStyles('wxSP_HORIZONTAL', 'wxSP_VERTICAL', 'wxSP_ARROW_KEYS', 'wxSP_WRAP')
+c.addEvents('EVT_SPIN', 'EVT_SPIN_UP', 'EVT_SPIN_DOWN')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'button', 'spin button', 'wxSpinButton', 40)
+component.Manager.setTool(c, 'Controls', pos=(2,0))
+
+### wxToggleButton
+
+c = component.Component('wxToggleButton', ['control', 'tool'],
+ ['pos', 'size', 'label', 'checked'],
+ image=images.TreeToggleButton.GetImage())
+c.addEvents('EVT_TOGGLEBUTTON')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'button', 'toggle button', 'wxToggleButton', 50)
+component.Manager.setTool(c, 'Controls', pos=(2,1))
+
+################################################################################
+# Boxes
+
+### wxCheckBox
+
+c = component.Component('wxCheckBox', ['control','tool'],
+ ['pos', 'size', 'label', 'checked'],
+ image=images.TreeCheckBox.GetImage())
+c.addStyles('wxCHK_2STATE', 'wxCHK_3STATE', 'wxCHK_ALLOW_3RD_STATE_FOR_USER',
+ 'wxALIGN_RIGHT')
+c.addEvents('EVT_CHECKBOX')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'check box', 'wxCheckBox', 10)
+component.Manager.setTool(c, 'Controls', pos=(4,1))
+
+### wxComboBox
+
+c = component.Component('wxComboBox', ['control','tool'],
+ ['pos', 'size', 'content', 'selection', 'value'],
+ image=images.TreeComboBox.GetImage())
+c.addStyles('wxCB_SIMPLE', 'wxCB_DROPDOWN', 'wxCB_READONLY',
+ 'wxCB_SORT', 'wxTE_PROCESS_ENTER')
+c.setSpecial('content', attribute.ContentAttribute)
+c.addEvents('EVT_COMBOBOX', 'EVT_TEXT', 'EVT_TEXT_ENTER')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'combo box', 'wxComboBox', 20)
+component.Manager.setTool(c, 'Controls', pos=(2,2))
+
+### wxOwnerDrawnComboBox
+
+c = component.Component('wxOwnerDrawnComboBox', ['control','tool'],
+ ['pos', 'size', 'content', 'selection', 'value'],
+ image=images.TreeComboBox.GetImage())
+c.addStyles('wxCB_SIMPLE', 'wxCB_DROPDOWN', 'wxCB_READONLY', 'wxCB_SORT',
+ 'wxODCB_STD_CONTROL_PAINT', 'wxODCB_DCLICK_CYCLES', 'wxTE_PROCESS_ENTER')
+c.setSpecial('content', attribute.ContentAttribute)
+c.addEvents('EVT_COMBOBOX', 'EVT_TEXT', 'EVT_TEXT_ENTER')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'owner-drawn combo box', 'wxOwnerDrawnComboBox', 21)
+
+#### wxBitmapComboBox
+## FIXME: needs special content support (bitmap, text)
+#
+#c = component.Component('wxBitmapComboBox', ['control','tool'],
+# ['pos', 'size', 'ownerdrawnitem', 'selection', 'value'],
+# image=images.TreeComboBox.GetImage())
+#c.addStyles('wxCB_READONLY', 'wxCB_SORT')
+#c.setSpecial('ownerdrawnitem', attribute.ContentAttribute)
+#c.addEvents('EVT_COMBOBOX', 'EVT_TEXT', 'EVT_TEXT_ENTER')
+#component.Manager.register(c)
+#component.Manager.setMenu(c, 'box', 'virtual combo box', 'wxBitmapComboBox', 20)
+#
+### wxRadioBox
+
+c = component.Component('wxRadioBox', ['control','tool'],
+ ['pos', 'size', 'label', 'dimension',
+ 'content', 'selection', 'dimension'])
+c.addStyles('wxRA_SPECIFY_ROWS', 'wxRA_SPECIFY_COLS', 'wxRA_HORIZONTAL',
+ 'wxRA_VERTICAL')
+c.setSpecial('content', attribute.HelpContentAttribute)
+c.setParamClass('content', params.ParamContentHelpList)
+c.setParamClass('dimension', params.ParamInt)
+c.addEvents('EVT_RADIOBOX')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'radio box', 'wxRadioBox', 30)
+#component.Manager.setTool(c, 'Panels')
+
+### wxListBox
+
+c = component.Component('wxListBox', ['control','tool'],
+ ['pos', 'size', 'content', 'selection'],
+ image=images.TreeListBox.GetImage())
+c.addStyles('wxLB_SINGLE', 'wxLB_MULTIPLE', 'wxLB_EXTENDED', 'wxLB_HSCROLL',
+ 'wxLB_ALWAYS_SB', 'wxLB_NEEDED_SB', 'wxLB_SORT')
+c.setSpecial('content', attribute.ContentAttribute)
+c.addEvents('EVT_LISTBOX', 'EVT_LISTBOX_DCLICK')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'list box', 'wxListBox', 40)
+component.Manager.setTool(c, 'Panels', pos=(0,0))
+
+### wxSimpleHtmlListBox
+
+c = component.Component('wxSimpleHtmlListBox', ['control','tool'],
+ ['pos', 'size', 'content', 'selection'],
+ image=images.TreeListBox.GetImage())
+c.addStyles('wxHLB_MULTIPLE', 'wxHLB_DEFAULT_STYLE')
+c.setSpecial('content', attribute.ContentAttribute)
+c.addEvents('EVT_LISTBOX', 'EVT_LISTBOX_DCLICK')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'html list box', 'wxSimpleHtmlListBox', 41)
+
+### wxCheckListBox
+
+c = component.Component('wxCheckListBox', ['control','tool'],
+ ['pos', 'size', 'content', 'selection'],
+ image=images.TreeCheckListBox.GetImage())
+c.addStyles('wxLB_SINGLE', 'wxLB_MULTIPLE', 'wxLB_EXTENDED', 'wxLB_HSCROLL',
+ 'wxLB_ALWAYS_SB', 'wxLB_NEEDED_SB', 'wxLB_SORT')
+c.setSpecial('content', attribute.CheckContentAttribute)
+c.setParamClass('content', params.ParamContentCheckList)
+c.addEvents('EVT_CHECKLISTBOX')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'check list box', 'wxCheckListBox', 50)
+#component.Manager.setTool(c, 'Panels', pos=(0,0))
+
+### wxStaticBox
+
+c = component.Component('wxStaticBox', ['control','tool'],
+ ['pos', 'size', 'label'],
+ image=images.TreeStaticBox.GetImage())
+component.Manager.register(c)
+component.Manager.setMenu(c, 'box', 'static box', 'wxStaticBox', 60)
+component.Manager.setTool(c, 'Panels', pos=(2,0))
+
+### unknown
+
+c = component.Component('unknown', ['control'], ['pos', 'size'])
+component.Manager.register(c)
+component.Manager.setMenu(c, 'control', 'unknown', 'unknown control')
+
+### wxXXX
+
+#c = component.Component('wxXXX', ['control','tool'],
+# ['pos', 'size', ...])
+#c.addStyles(...)
+#component.Manager.register(c)
+#component.Manager.setMenu(c, 'control', 'XXX', 'wxXXX', NN)
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/core.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/core.py
new file mode 100644
index 0000000..211a691
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/core.py
@@ -0,0 +1,607 @@
+# Name: core.py
+# Purpose: Core components
+# Author: Roman Rolinsky <rolinsky@femagsoft.com>
+# Created: 31.05.2007
+# RCS-ID: $Id: core.py 71860 2012-06-25 15:46:16Z ROL $
+
+import wx
+from wx.tools.XRCed import component, images, attribute, params, view
+from wx.tools.XRCed.globals import TRACE,is_object,is_element,STD_NAME
+import _bitmaps as bitmaps
+
+TRACE('*** creating core components')
+
+# Set panel images
+component.Manager.panelImages['Windows'] = images.ToolPanel_Windows.GetImage()
+component.Manager.panelImages['Menus'] = images.ToolPanel_Menus.GetImage()
+component.Manager.panelImages['Sizers'] = images.ToolPanel_Sizers.GetImage()
+component.Manager.panelImages['Panels'] = images.ToolPanel_Panels.GetImage()
+component.Manager.panelImages['Gizmos'] = images.ToolPanel_Gizmos.GetImage()
+
+### wxFrame
+
+class Frame(component.Container):
+ def getChildObject(self, node, obj, index):
+ # Do not count toolbar and menubar
+ objects = filter(is_element, node.childNodes)
+ indexOffset = 0 # count non-window children
+ for i,o in enumerate(objects):
+ if o.getAttribute('class') == 'wxMenuBar':
+ if i == index: return obj.GetMenuBar()
+ elif i < index: indexOffset += 1
+ elif o.getAttribute('class') == 'wxToolBar':
+ if i == index: return obj.GetToolBar()
+ elif i < index: indexOffset += 1
+ return component.Container.getChildObject(self, node, obj, index - indexOffset)
+
+c = Frame('wxFrame', ['frame','window','top_level'],
+ ['pos', 'size', 'title', 'centered'],
+ image=images.TreeFrame.GetImage())
+c.isTopLevel = True
+c.addStyles('wxDEFAULT_FRAME_STYLE', 'wxDEFAULT_DIALOG_STYLE', 'wxCAPTION',
+ 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',
+ 'wxRESIZE_BORDER', 'wxCLOSE_BOX',
+ 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',
+ 'wxFRAME_NO_TASKBAR', 'wxFRAME_SHAPED', 'wxFRAME_TOOL_WINDOW',
+ 'wxFRAME_FLOAT_ON_PARENT',
+ 'wxTAB_TRAVERSAL')
+c.addExStyles('wxFRAME_EX_CONTEXTHELP', 'wxFRAME_EX_METAL')
+c.addEvents('EVT_SIZE', 'EVT_CLOSE', 'EVT_MENU_HIGHLIGHT', 'EVT_ICONIZE', 'EVT_MAXIMIZE',
+ 'EVT_ACTIVATE', 'EVT_UPDATE_UI')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'frame', 'wxFrame', 10)
+component.Manager.setTool(c, 'Windows', bitmaps.wxFrame.GetBitmap(), (0,0))
+
+### wxMDIParentFrame
+
+class MDIParentFrame(component.Container):
+ def getChildObject(self, node, obj, index):
+ # Do not count toolbar and menubar
+ objects = filter(is_element, node.childNodes)
+ indexOffset = 0 # count non-window children
+ for i,o in enumerate(objects):
+ if o.getAttribute('class') == 'wxMenuBar':
+ if i == index: return obj.GetMenuBar()
+ elif i < index: indexOffset += 1
+ elif o.getAttribute('class') == 'wxToolBar':
+ if i == index: return obj.GetToolBar()
+ elif i < index: indexOffset += 1
+ return obj.GetClientWindow().GetChildren()[index]
+
+c = MDIParentFrame('wxMDIParentFrame', ['mdi_parent_frame','top_level'],
+ ['pos', 'size', 'title', 'centered'],
+ image=images.TreeFrame.GetImage())
+c.isTopLevel = True
+c.addStyles('wxDEFAULT_FRAME_STYLE', 'wxDEFAULT_DIALOG_STYLE', 'wxCAPTION',
+ 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',
+ 'wxRESIZE_BORDER', 'wxCLOSE_BOX',
+ 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',
+ 'wxFRAME_NO_TASKBAR', 'wxFRAME_SHAPED', 'wxFRAME_TOOL_WINDOW',
+ 'wxFRAME_FLOAT_ON_PARENT', 'wxFRAME_NO_WINDOW_MENU',
+ 'wxTAB_TRAVERSAL')
+c.addExStyles('wxFRAME_EX_METAL')
+c.addEvents('EVT_SIZE', 'EVT_CLOSE', 'EVT_MENU_HIGHLIGHT', 'EVT_ICONIZE', 'EVT_MAXIMIZE',
+ 'EVT_ACTIVATE', 'EVT_UPDATE_UI')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'MDI parent frame', 'wxMDIParentFrame', 11)
+#component.Manager.setTool(c, 'Windows', bitmaps.wxFrame.GetBitmap(), (0,0))
+
+### wxMDIChildFrame
+
+class MDIChildFrame(component.Container):
+ def getChildObject(self, node, obj, index):
+ # Do not count toolbar and menubar
+ objects = filter(is_element, node.childNodes)
+ indexOffset = 0 # count non-window children
+ for i,o in enumerate(objects):
+ if o.getAttribute('class') == 'wxMenuBar':
+ if i == index: return obj.GetMenuBar()
+ elif i < index: indexOffset += 1
+ elif o.getAttribute('class') == 'wxToolBar':
+ if i == index: return obj.GetToolBar()
+ elif i < index: indexOffset += 1
+ return component.Container.getChildObject(self, node, obj, index - indexOffset)
+
+c = MDIChildFrame('wxMDIChildFrame', ['mdi_child_frame','window'],
+ ['pos', 'size', 'title', 'centered'],
+ image=images.TreeFrame.GetImage())
+c.addStyles('wxDEFAULT_FRAME_STYLE', 'wxDEFAULT_DIALOG_STYLE', 'wxCAPTION',
+ 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',
+ 'wxRESIZE_BORDER', 'wxCLOSE_BOX',
+ 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',
+ 'wxFRAME_NO_TASKBAR', 'wxFRAME_SHAPED', 'wxFRAME_TOOL_WINDOW',
+ 'wxFRAME_FLOAT_ON_PARENT', 'wxFRAME_NO_WINDOW_MENU',
+ 'wxTAB_TRAVERSAL')
+c.addExStyles('wxFRAME_EX_METAL')
+c.addEvents('EVT_SIZE', 'EVT_CLOSE', 'EVT_MENU_HIGHLIGHT', 'EVT_ICONIZE', 'EVT_MAXIMIZE',
+ 'EVT_ACTIVATE', 'EVT_UPDATE_UI')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'MDI child frame', 'wxMDIChildFrame', 12)
+#component.Manager.setTool(c, 'Windows', bitmaps.wxFrame.GetBitmap(), (0,0))
+
+### wxDialog
+
+c = component.Container('wxDialog', ['frame','window','top_level'],
+ ['pos', 'size', 'title', 'centered', 'icon'],
+ image=images.TreeDialog.GetImage())
+c.isTopLevel = True
+c.setSpecial('icon', attribute.BitmapAttribute)
+c.addStyles('wxDEFAULT_DIALOG_STYLE', 'wxCAPTION',
+ 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',
+ 'wxRESIZE_BORDER', 'wxCLOSE_BOX',
+ 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',
+ 'wxDIALOG_NO_PARENT', 'wxFRAME_SHAPED',
+ 'wxTAB_TRAVERSAL')
+c.addExStyles('wxDIALOG_EX_CONTEXTHELP', 'wxDIALOG_EX_METAL')
+c.addEvents('EVT_INIT_DIALOG', 'EVT_SIZE', 'EVT_CLOSE',
+ 'EVT_ICONIZE', 'EVT_MAXIMIZE', 'EVT_ACTIVATE', 'EVT_UPDATE_UI')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'dialog', 'wxDialog', 20)
+component.Manager.setTool(c, 'Windows', bitmaps.wxDialog.GetBitmap(), (0,1))
+
+### wxPanel
+
+c = component.Container('wxPanel', ['window', 'top_level', 'control'],
+ ['pos', 'size'],
+ image=images.TreePanel.GetImage())
+c.addStyles('wxTAB_TRAVERSAL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'panel', 'wxPanel', 30)
+component.Manager.setMenu(c, 'container', 'panel', 'wxPanel', 10)
+component.Manager.setTool(c, 'Windows', bitmaps.wxPanel.GetBitmap(), (0,2))
+
+### wxWizard
+
+class Wizard(component.Container):
+ genericStyles = genericExStyles = []
+ def makeTestWin(self, res, name):
+ wiz = wx.wizard.PreWizard()
+ res.LoadOnObject(wiz, view.frame, STD_NAME, self.klass)
+ # Find and select first page
+ firstPage = None
+ for w in wiz.GetChildren():
+ if isinstance(w, wx.wizard.WizardPage):
+ firstPage = w
+ break
+ if firstPage:
+ wiz.RunWizard(firstPage)
+ else:
+ wx.LogMessage('Wizard is empty')
+ wiz.Destroy()
+ return None, None
+c = Wizard('wxWizard', ['wizard', 'top_level'],
+ ['pos', 'title', 'bitmap'],
+ image=images.TreeWizard.GetImage())
+c.addExStyles('wxWIZARD_EX_HELPBUTTON')
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'wizard', 'wxWizard', 40)
+component.Manager.setTool(c, 'Windows', bitmaps.wxWizard.GetBitmap(), (1,0), (1,2))
+
+### wxWizardPage
+
+class WizardPage(component.Container):
+ def makeTestWin(self, res, name):
+ # Create single-page wizard
+ wiz = wx.wizard.Wizard(view.frame, title='Test Wizard')
+ print self.klass
+ import pdb;pdb.set_trace()
+ page = wx.wizard.PrePyWizardPage()
+ print res.LoadOnObject(page, wiz, STD_NAME, self.klass)
+# page = res.LoadObject(wiz, STD_NAME, self.klass)
+ print page
+ wiz.RunWizard(page)
+ wiz.Destroy()
+ return None, None
+
+c = WizardPage('wxWizardPage', ['wizard_page', 'window'], ['bitmap'],
+ image=images.TreePanel.GetImage())
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'wizard page', 'wxWizardPage')
+
+### wxWizardPageSimple
+
+c = component.Container('wxWizardPageSimple', ['wizard_page', 'window'], ['bitmap'],
+ image=images.TreePanel.GetImage())
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'simple wizard page', 'wxWizardPageSimple')
+
+### wxPropertySheetDialog
+
+class ParamButtons(params.ParamBinaryOr):
+ '''Button flags.'''
+ values = ['wxOK', 'wxCANCEL', 'wxYES', 'wxNO', 'wxHELP', 'wxNO_DEFAULT']
+c = component.SmartContainer('wxPropertySheetDialog', ['frame','book','window','top_level'],
+ ['pos', 'size', 'title', 'centered', 'icon', 'buttons'],
+ params={'buttons': ParamButtons},
+ implicit_klass='propertysheetpage',
+ implicit_page='PropertySheetPage',
+ implicit_attributes=['label', 'selected', 'bitmap'],
+ implicit_params={'label': params.ParamText, 'selected': params.ParamBool},
+ image=images.TreeDialog.GetImage())
+c.isTopLevel = True
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.setSpecial('icon', attribute.BitmapAttribute)
+c.addStyles('wxDEFAULT_DIALOG_STYLE', 'wxCAPTION', 'wxFRAME_SHAPED',
+ 'wxTAB_TRAVERSAL', 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',
+ 'wxRESIZE_BORDER', 'wxCLOSE_BOX', 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',
+ 'wxDIALOG_MODAL', 'wxDIALOG_MODELESS', 'wxDIALOG_NO_PARENT',
+ 'wxTAB_TRAVERSAL')
+c.addExStyles('wxDIALOG_EX_CONTEXTHELP', 'wxDIALOG_EX_METAL')
+c.addEvents('EVT_INIT_DIALOG', 'EVT_SIZE', 'EVT_CLOSE',
+ 'EVT_ICONIZE', 'EVT_MAXIMIZE', 'EVT_ACTIVATE', 'EVT_UPDATE_UI')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'propery sheet dialog', 'wxPropertySheetDialog', 50)
+component.Manager.setTool(c, 'Windows', bitmaps.wxPropertySheetDialog.GetBitmap(), (1,1))
+
+### wxBoxSizer
+
+c = component.BoxSizer('wxBoxSizer', ['sizer'], ['orient'],
+ defaults={'orient': 'wxVERTICAL'},
+ images=[images.TreeSizerV.GetImage(), images.TreeSizerH.GetImage()])
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'box sizer', 'wxBoxSizer', 10)
+component.Manager.setTool(c, 'Sizers', pos=(0,0))
+
+### wxStaticBoxSizer
+
+c = component.BoxSizer('wxStaticBoxSizer', ['sizer'], ['label', 'orient'],
+ defaults={'orient': 'wxVERTICAL'},
+ images=[images.TreeSizerV.GetImage(), images.TreeSizerH.GetImage()])
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'static box sizer', 'wxStaticBoxSizer', 20)
+component.Manager.setTool(c, 'Sizers', pos=(0,2))
+
+### wxGridSizer
+
+c = component.Sizer('wxGridSizer', ['sizer'],
+ ['cols', 'rows', 'vgap', 'hgap'],
+ defaults={'cols': '2', 'rows': '2'},
+ image=images.TreeSizerGrid.GetImage())
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'grid sizer', 'wxGridSizer', 30)
+component.Manager.setTool(c, 'Sizers', pos=(0,1))
+
+### wxFlexGridSizer
+
+c = component.Sizer('wxFlexGridSizer', ['sizer'],
+ ['cols', 'rows', 'vgap', 'hgap', 'growablecols', 'growablerows'],
+ defaults={'cols': '2', 'rows': '2'},
+ image=images.TreeSizerFlexGrid.GetImage())
+c.setSpecial('growablecols', attribute.MultiAttribute)
+c.setParamClass('growablecols', params.ParamIntList)
+c.setSpecial('growablerows', attribute.MultiAttribute)
+c.setParamClass('growablerows', params.ParamIntList)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'flex grid sizer', 'wxFlexGridSizer', 40)
+component.Manager.setTool(c, 'Sizers', pos=(1,0))
+
+### wxGridBagSizer
+
+c = component.Sizer('wxGridBagSizer', ['sizer'],
+ ['vgap', 'hgap', 'growablecols', 'growablerows'],
+ image=images.TreeSizerGridBag.GetImage(),
+ implicit_attributes=['option', 'flag', 'border', 'minsize', 'ratio', 'cellpos', 'cellspan'])
+c.setSpecial('growablecols', attribute.MultiAttribute)
+c.setParamClass('growablecols', params.ParamIntList)
+c.setSpecial('growablerows', attribute.MultiAttribute)
+c.setParamClass('growablerows', params.ParamIntList)
+c.setImplicitParamClass('cellpos', params.ParamPosSize)
+c.setImplicitParamClass('cellspan', params.ParamPosSize)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'grid bag sizer', 'wxGridBagSizer', 50)
+component.Manager.setTool(c, 'Sizers', pos=(1,1))
+
+### wxStdDialogButtonSizer
+
+class StdDialogButtonSizer(component.Sizer):
+ def getChildObject(self, node, obj, index):
+ # This sizer orders buttons by fixed ordering, so we must
+ # get the ID to find them
+ try:
+ n = filter(is_element, node.childNodes)[index]
+ n = filter(is_element, n.childNodes)[0]
+ id = n.getAttribute('name')
+ except IndexError:
+ return None
+ items = filter(wx.SizerItem.IsWindow, obj.GetChildren())
+ for item in items:
+ w = item.GetWindow()
+ if w.GetName() == id: return w
+ return None
+c = StdDialogButtonSizer('wxStdDialogButtonSizer', ['btnsizer'], [],
+ implicit_klass='button',
+ implicit_attributes=[])
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'dialog button sizer', 'wxStdDialogButtonSizer', 60)
+#component.Manager.setTool(c, 'Sizers', pos=(0,2))
+
+### spacer
+
+c = component.SimpleComponent('spacer', ['spacer'], ['size', 'option', 'flag', 'border'],
+ image=images.TreeSpacer.GetImage())
+c.hasName = False
+component.Manager.register(c)
+component.Manager.setMenu(c, 'sizer', 'spacer', 'spacer', 70)
+component.Manager.setTool(c, 'Sizers', pos=(1,2))
+
+################################################################################
+# Containers
+
+# wxPanel is already added
+
+### wxScrolledWindow
+
+c = component.Container('wxScrolledWindow', ['window', 'control'], ['pos', 'size'])
+c.addStyles('wxHSCROLL', 'wxVSCROLL', 'wxTAB_TRAVERSAL')
+c.addEvents('EVT_SCROLLWIN_TOP',
+ 'EVT_SCROLLWIN_BOTTOM',
+ 'EVT_SCROLLWIN_LINEUP',
+ 'EVT_SCROLLWIN_LINEDOWN',
+ 'EVT_SCROLLWIN_PAGEUP',
+ 'EVT_SCROLLWIN_PAGEDOWN',
+ 'EVT_SCROLLWIN_THUMBTRACK',
+ 'EVT_SCROLLWIN_THUMBRELEASE')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'scrolled window', 'wxScrolledWindow', 20)
+component.Manager.setTool(c, 'Panels', pos=(3,0))
+
+### wxSplitterWindow
+
+c = component.Container('wxSplitterWindow', ['book', 'window', 'control'],
+ ['pos', 'size', 'orientation', 'sashpos', 'minsize', 'gravity'],
+ # note: no flt[0..1], so just leaving gravity as text
+ params={'orientation': params.ParamOrientation,
+ 'sashpos': params.ParamUnit,
+ 'minsize': params.ParamUnit},
+ image=images.TreeSplitterWindow.GetImage())
+c.addStyles('wxSP_3D', 'wxSP_3DSASH', 'wxSP_3DBORDER', 'wxSP_BORDER',
+ 'wxSP_FULLSASH', 'wxSP_NOBORDER', 'wxSP_PERMIT_UNSPLIT', 'wxSP_LIVE_UPDATE',
+ 'wxSP_NO_XP_THEME')
+c.addEvents('EVT_SPLITTER_SASH_POS_CHANGING', 'EVT_SPLITTER_SASH_POS_CHANGED',
+ 'EVT_SPLITTER_UNSPLIT', 'EVT_SPLITTER_DCLICK')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'splitter window', 'wxSplitterWindow', 30)
+component.Manager.setTool(c, 'Panels', pos=(2,3))
+
+### wxNotebook
+
+c = component.SmartContainer('wxNotebook', ['book', 'window', 'control'], ['pos', 'size'],
+ implicit_klass='notebookpage',
+ implicit_page='NotebookPage',
+ implicit_attributes=['label', 'selected', 'bitmap'],
+ implicit_params={'label': params.ParamText, 'selected': params.ParamBool},
+ image=images.TreeNotebook.GetImage())
+c.addStyles('wxBK_DEFAULT', 'wxBK_TOP', 'wxBK_LEFT', 'wxBK_RIGHT', 'wxBK_BOTTOM',
+ 'wxNB_FIXEDWIDTH', 'wxNB_MULTILINE', 'wxNB_NOPAGETHEME')
+c.addEquivStyles({'wxBK_DEFAULT': 'wxNB_DEFAULT', 'wxBK_LEFT': 'wxNB_LEFT',
+ 'wxBK_RIGHT': 'wxNB_RIGHT', 'wxBK_TOP': 'wxNB_TOP',
+ 'wxBK_BOTTOM': 'wxNB_BOTTOM'})
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addEvents('EVT_NOTEBOOK_PAGE_CHANGED', 'EVT_NOTEBOOK_PAGE_CHANGING')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'notebook', 'Notebook control', 40)
+component.Manager.setTool(c, 'Panels', pos=(1,0))
+
+### wxChoicebook
+
+c = component.SmartContainer('wxChoicebook', ['book', 'window', 'control'], ['pos', 'size'],
+ implicit_klass='choicebookpage',
+ implicit_page='ChoicebookPage',
+ implicit_attributes=['label', 'selected', 'bitmap'],
+ implicit_params={'label': params.ParamText, 'selected': params.ParamBool})
+c.addStyles('wxBK_DEFAULT', 'wxBK_TOP', 'wxBK_LEFT', 'wxBK_RIGHT', 'wxBK_BOTTOM')
+c.addEquivStyles({'wxBK_DEFAULT': 'wxCHB_DEFAULT', 'wxBK_LEFT': 'wxCHB_LEFT',
+ 'wxBK_RIGHT': 'wxCHB_RIGHT', 'wxBK_TOP': 'wxCHB_TOP',
+ 'wxBK_BOTTOM': 'wxCHB_BOTTOM'})
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addEvents('EVT_CHOICEBOOK_PAGE_CHANGED', 'EVT_CHOICEBOOK_PAGE_CHANGING')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'choicebook', 'wxChoicebook', 50)
+component.Manager.setTool(c, 'Panels', pos=(1,3))
+
+### wxListbook
+
+class ListBook(component.SmartContainer):
+ def getChildObject(self, node, obj, index):
+ # Listbook's first child is ListView
+ return obj.GetChildren()[index+1]
+c = ListBook('wxListbook', ['book', 'window', 'control'], ['pos', 'size'],
+ implicit_klass='listbookpage',
+ implicit_page='ListbookPage',
+ implicit_attributes=['label', 'selected', 'bitmap'],
+ implicit_params={'label': params.ParamText, 'selected': params.ParamBool})
+c.addStyles('wxBK_DEFAULT', 'wxBK_LEFT', 'wxBK_RIGHT', 'wxBK_TOP', 'wxBK_BOTTOM')
+c.addEquivStyles({'wxBK_DEFAULT': 'wxLB_DEFAULT', 'wxBK_LEFT': 'wxLB_LEFT',
+ 'wxBK_RIGHT': 'wxLB_RIGHT', 'wxBK_TOP': 'wxLB_TOP',
+ 'wxBK_BOTTOM': 'wxLB_BOTTOM'})
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addEvents('EVT_LISTBOOK_PAGE_CHANGED', 'EVT_LISTBOOK_PAGE_CHANGING')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'listbook', 'wxListbook', 60)
+component.Manager.setTool(c, 'Panels', pos=(0,3))
+
+### wxTreebook
+
+class TreeBook(component.SmartContainer):
+ def getChildObject(self, node, obj, index):
+ # Listbook's first child is ListView
+ return obj.GetChildren()[index+1]
+c = TreeBook('wxTreebook', ['book', 'window', 'control'], ['pos', 'size'],
+ implicit_klass='treebookpage',
+ implicit_page='TreebookPage',
+ implicit_attributes=['label', 'selected', 'bitmap', 'depth'],
+ implicit_params={'label': params.ParamText,
+ 'selected': params.ParamBool,
+ 'depth': params.ParamInt})
+c.addStyles('wxBK_DEFAULT', 'wxBK_LEFT', 'wxBK_RIGHT', 'wxBK_TOP', 'wxBK_BOTTOM')
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addEvents('EVT_TREEBOOK_PAGE_CHANGED', 'EVT_TREEBOOK_PAGE_CHANGING',
+ 'EVT_TREEBOOK_NODE_COLLAPSED', 'EVT_TREEBOOK_NODE_EXPANDED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'treebook', 'wxTreebook', 70)
+component.Manager.setTool(c, 'Panels', pos=(1,1), span=(1,2))
+
+### wxCollapsiblePane
+
+c = component.SmartContainer('wxCollapsiblePane', ['book', 'window', 'control'], ['pos', 'size', 'label', 'collapsed'],
+ implicit_klass='panewindow',
+ implicit_page='',
+ implicit_attributes=[])
+c.addStyles('wxCP_NO_TLW_RESIZE', 'wxCP_DEFAULT_STYLE')
+c.setParamClass('collapsed', params.ParamBool)
+c.addEvents('EVT_COMMAND_COLLPANE_CHANGED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'container', 'collapsible pane', 'wxCollapsiblePane', 71)
+
+################################################################################
+# Menus
+
+### wxMenuBar
+
+class MenuBar(component.SimpleContainer):
+ isTestable = True
+ # Menubar should be shown in a normal frame
+ def makeTestWin(self, res, name):
+ frame = wx.Frame(None, -1, '%s: %s' % (self.klass, name), name=STD_NAME)
+ object = res.LoadMenuBarOnFrame(frame, STD_NAME)
+ return None, frame
+ def getRect(self, obj):
+ return None
+
+c = MenuBar('wxMenuBar', ['menubar', 'top_level'], [],
+ image=images.TreeMenuBar.GetImage())
+c.addStyles('wxMB_DOCKABLE')
+c.addEvents('EVT_MENU', 'EVT_MENU_OPEN', 'EVT_MENU_CLOSE', 'EVT_MENU_HIGHLIGHT_ALL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'menu bar', 'wxMenuBar', 40)
+component.Manager.setMenu(c, 'bar', 'menu bar', 'wxMenuBar', 10)
+component.Manager.setTool(c, 'Menus', pos=(1,0))
+
+### wxMenu
+
+c = component.SimpleContainer('wxMenu', ['menu', 'top_level'],
+ ['label', 'help', 'enabled'],
+ image=images.TreeMenu.GetImage())
+#c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addStyles('wxMENU_TEAROFF')
+c.addEvents('EVT_MENU', 'EVT_MENU_OPEN', 'EVT_MENU_CLOSE', 'EVT_MENU_HIGHLIGHT_ALL')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'menu', 'wxMenu', 50)
+component.Manager.setMenu(c, 'ROOT', 'menu', 'wxMenu', 20)
+component.Manager.setTool(c, 'Menus', pos=(1,1), span=(2,1))
+
+### wxMenuItem
+
+c = component.SimpleComponent('wxMenuItem', ['menu_item'],
+ ['label', 'bitmap', 'accel', 'help',
+ 'checkable', 'radio', 'enabled', 'checked'],
+ image=images.TreeMenuItem.GetImage())
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.addEvents('EVT_MENU', 'EVT_MENU_HIGHLIGHT')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'ROOT', 'menu item', 'wxMenuItem', 10)
+component.Manager.setTool(c, 'Menus', pos=(1,2))
+
+### wxToolBar
+
+class ToolBar(component.SimpleContainer):
+ isTestable = True
+ # Toolbar should be shown in a normal frame
+ def makeTestWin(self, res, name):
+ frame = wx.Frame(None, -1, '%s: %s' % (self.klass, name), name=STD_NAME)
+ object = res.LoadToolBar(frame, STD_NAME)
+ return None, frame
+ def getRect(self, obj):
+ return None
+
+c = ToolBar('wxToolBar', ['toolbar', 'top_level', 'control'],
+ ['bitmapsize', 'margins', 'packing', 'separation',
+ 'dontattachtoframe', 'pos', 'size'],
+ image=images.TreeToolBar.GetImage())
+c.addStyles('wxTB_FLAT', 'wxTB_DOCKABLE', 'wxTB_VERTICAL', 'wxTB_HORIZONTAL',
+ 'wxTB_3DBUTTONS','wxTB_TEXT', 'wxTB_NOICONS', 'wxTB_NODIVIDER',
+ 'wxTB_NOALIGN', 'wxTB_HORZ_LAYOUT', 'wxTB_HORZ_TEXT',
+ 'wxTB_TOP', 'wxTB_LEFT', 'wxTB_RIGHT', 'wxTB_BOTTOM')
+c.setParamClass('dontattachtoframe', params.ParamBool)
+c.setParamClass('bitmapsize', params.ParamPosSize)
+c.setParamClass('margins', params.ParamPosSize)
+c.setParamClass('packing', params.ParamUnit)
+c.setParamClass('separation', params.ParamUnit)
+c.renameDict = {'dontattachtoframe': "don't attach"}
+c.addEvents('EVT_TOOL', 'EVT_TOOL_ENTER', 'EVT_TOOL_RCLICKED')
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'tool bar', 'wxToolBar', 50)
+component.Manager.setMenu(c, 'bar', 'tool bar', 'wxToolBar', 20)
+component.Manager.setTool(c, 'Menus', pos=(0,0))
+
+### wxTool
+
+c = component.SimpleComponent('tool', ['tool'],
+ ['bitmap', 'bitmap2', 'radio', 'toggle',
+ 'tooltip', 'longhelp', 'label'],
+ image=images.TreeTool.GetImage())
+component.Manager.register(c)
+c.setSpecial('bitmap', attribute.BitmapAttribute)
+c.setSpecial('bitmap2', attribute.BitmapAttribute)
+c.setParamClass('bitmap2', params.ParamBitmap)
+c.setParamClass('toggle', params.ParamBool)
+c.addEvents('EVT_TOOL', 'EVT_TOOL_ENTER', 'EVT_TOOL_RCLICKED')
+component.Manager.setMenu(c, 'ROOT', 'tool', 'wxTool', 10)
+component.Manager.setTool(c, 'Menus', pos=(0,1))
+
+### wxSeparator
+
+c = component.SimpleComponent('separator', ['separator'], [],
+ image=images.TreeSeparator.GetImage())
+c.hasName = False
+component.Manager.register(c)
+component.Manager.setMenu(c, 'ROOT', 'separator', 'separator', 20)
+component.Manager.setTool(c, 'Menus', pos=(0,2))
+
+### wxBreak
+
+c = component.SimpleComponent('break', ['break'], [],
+ image=images.TreeSeparator.GetImage())
+c.hasName = False
+component.Manager.register(c)
+component.Manager.setMenu(c, 'ROOT', 'break', 'break', 21)
+
+### wxStatusBar
+
+c = component.SimpleComponent('wxStatusBar', ['statusbar'], ['fields', 'widths', 'styles'])
+c.addStyles('wxST_SIZEGRIP')
+c.setParamClass('fields', params.ParamIntP)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'bar', 'status bar', 'wxStatusBar', 30)
+component.Manager.setTool(c, 'Menus', pos=(2,0))
+
+################################################################################
+
+### wxBitmap
+
+c = component.SimpleComponent('wxBitmap', ['top_level'], ['object'])
+c.renameDict = {'object': ''}
+c.setSpecial('object', attribute.BitmapAttribute)
+c.setParamClass('object', params.ParamBitmap)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'bitmap', 'wxBitmap', 60)
+
+### wxIcon
+
+c = component.SimpleComponent('wxIcon', ['top_level'], ['object'])
+c.renameDict = {'object': ''}
+c.setSpecial('object', attribute.BitmapAttribute)
+c.setParamClass('object', params.ParamBitmap)
+component.Manager.register(c)
+component.Manager.setMenu(c, 'TOP_LEVEL', 'icon', 'wxIcon', 70)
+
+### wxXXX
+
+#c = component.Component('wxXXX', ['control','tool'],
+# ['pos', 'size', ...])
+#c.addStyles(...)
+#component.Manager.register(c)
+#component.Manager.setMenu(c, 'control', 'XXX', 'wxXXX', NN)
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/gizmos.crx b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/gizmos.crx
new file mode 100644
index 0000000..5f3f1e4
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/gizmos.crx
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<resource>
+ <component class="Component" name="LEDNumberCtrl" provider="Roman Rolinsky &lt;genericsoma@gmail.com&gt;">
+ <groups>
+ <item>control</item>
+ </groups>
+ <attributes>
+ <item>pos</item>
+ <item>size</item>
+ <item>value</item>
+ </attributes>
+ <has-name>1</has-name>
+ <styles>
+ <item>wxLED_ALIGN_LEFT</item>
+ <item>wxLED_ALIGN_RIGHT</item>
+ <item>wxLED_ALIGN_CENTER</item>
+ <item>wxLED_ALIGN_FADED</item>
+ </styles>
+ <module>xh_gizmos</module>
+ <handler>LEDNumberCtrlXmlHandler</handler>
+ <menu>gizmo</menu>
+ <label>LED number</label>
+ <help>LED-style control</help>
+ <panel>Gizmos</panel>
+ <pos>1,0</pos>
+ </component>
+ <component class="Component" name="EditableListBox" provider="Roman Rolinsky &lt;genericsoma@gmail.com&gt;">
+ <groups>
+ <item>control</item>
+ </groups>
+ <attributes>
+ <item>pos</item>
+ <item>size</item>
+ <item>label</item>
+ <item>content:ContentAttribute</item>
+ </attributes>
+ <has-name>1</has-name>
+ <styles>
+ <item>wxEL_ALLOW_NEW</item>
+ <item>wxEL_ALLOW_EDIT</item>
+ <item>wxEL_ALLOW_DELETE</item>
+ </styles>
+ <module>xh_gizmos</module>
+ <handler>EditableListBoxXmlHandler</handler>
+ <menu>gizmo</menu>
+ <label>editable list box</label>
+ <help>list box with editable items</help>
+ <panel>Gizmos</panel>
+ <pos>0,1</pos>
+ </component>
+ <component class="Component" name="TreeListCtrl" provider="Roman Rolinsky &lt;genericsoma@gmail.com&gt;">
+ <groups>
+ <item>control</item>
+ </groups>
+ <attributes>
+ <item>pos</item>
+ <item>size</item>
+ </attributes>
+ <has-name>1</has-name>
+ <styles>
+ <item>wxTR_DEFAULT_STYLE</item>
+ <item>wxTR_EDIT_LABELS</item>
+ <item>wxTR_NO_BUTTONS</item>
+ <item>wxTR_HAS_BUTTONS</item>
+ <item>wxTR_TWIST_BUTTONS</item>
+ <item>wxTR_NO_LINES</item>
+ <item>wxTR_FULL_ROW_HIGHLIGHT</item>
+ <item>wxTR_LINES_AT_ROOT</item>
+ <item>wxTR_HIDE_ROOT</item>
+ <item>wxTR_ROW_LINES</item>
+ <item>wxTR_HAS_VARIABLE_ROW_HEIGHT</item>
+ <item>wxTR_SINGLE</item>
+ <item>wxTR_MULTIPLE</item>
+ <item>wxTR_EXTENDED</item>
+ </styles>
+ <module>xh_gizmos</module>
+ <handler>TreeListCtrlXmlHandler</handler>
+ <menu>gizmo</menu>
+ <label>tree list ctrl</label>
+ <help>tree combined with list control</help>
+ <panel>Gizmos</panel>
+ <pos>0,0</pos>
+ </component>
+ <component class="Component" name="DynamicSashWindow" provider="Roman Rolinsky &lt;genericsoma@gmail.com&gt;">
+ <groups>
+ <item>control</item>
+ </groups>
+ <attributes>
+ <item>pos</item>
+ <item>size</item>
+ </attributes>
+ <has-name>1</has-name>
+ <styles>
+ <item>wxDS_MANAGE_SCROLLBARS</item>
+ <item>wxDS_DRAG_CORNER</item>
+ </styles>
+ <events>
+ <item>wxEVT_DYNAMIC_SASH_SPLIT</item>
+ <item>wxEVT_DYNAMIC_SASH_UNIFY</item>
+ </events>
+ <module>xh_gizmos</module>
+ <handler>DynamicSashWindowXmlHandler</handler>
+ <menu>gizmo</menu>
+ <label>dynamic sash window</label>
+ <panel>Gizmos</panel>
+ <pos>0,2</pos>
+ </component>
+ <object class="wxPanel" name="test">
+ <object class="wxBoxSizer">
+ <object class="sizeritem">
+ <object class="EditableListBox">
+ <size>100,100</size>
+ <label>label</label>
+ <content>
+ <item>item1</item>
+ </content>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <object class="TreeListCtrl"/>
+ </object>
+ <object class="sizeritem">
+ <object class="DynamicSashWindow">
+ <size>100,100</size>
+ </object>
+ </object>
+ </object>
+ </object>
+</resource> \ No newline at end of file
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/wxlib.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/wxlib.py
new file mode 100644
index 0000000..25f29d0
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/wxlib.py
@@ -0,0 +1,39 @@
+# Name: wxlib.py
+# Purpose: Component plugins for wx.lib classes
+# Author: Roman Rolinsky <rolinsky@femagsoft.com>
+# Created: 05.09.2007
+# RCS-ID: $Id$
+
+import xh_wxlib
+from wx.tools.XRCed import component, params
+from wx.tools.XRCed.globals import TRACE
+from wx.lib.ticker_xrc import wxTickerXmlHandler
+
+TRACE('*** creating wx.lib components')
+
+# wx.lib.foldpanelbar.FoldPanelBar
+
+c = component.SmartContainer('wx.lib.foldpanelbar.FoldPanelBar', ['book', 'window', 'control'],
+ ['pos', 'size'],
+ implicit_klass='foldpanel',
+ implicit_page='FoldPanel',
+ implicit_attributes=['label', 'collapsed'],
+ implicit_params={'collapsed': params.ParamBool})
+c.addStyles('FPB_SINGLE_FOLD', 'FPB_COLLAPSE_TO_BOTTOM',
+ 'FPB_EXCLUSIVE_FOLD', 'FPB_HORIZONTAL', 'FPB_VERTICAL')
+component.Manager.register(c)
+component.Manager.addXmlHandler(xh_wxlib.FoldPanelBarXmlHandler)
+component.Manager.setMenu(c, 'bar', 'fold panel bar', 'FoldPanelBar', 1000)
+
+# wx.lib.ticker.Ticker
+
+class ParamDirection(params.RadioBox):
+ choices = {'right to left': 'rtl', 'left to right': 'ltr'}
+ default = 'rtl'
+c = component.Component('wxTicker', ['control'],
+ ['pos', 'size', 'start', 'text', 'ppf', 'fps', 'direction'],
+ params={'ppf': params.ParamInt, 'fps': params.ParamInt,
+ 'direction': ParamDirection})
+component.Manager.register(c)
+component.Manager.addXmlHandler(wxTickerXmlHandler)
+component.Manager.setMenu(c, 'control', 'ticker', 'Ticker', 1000)
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_gizmos.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_gizmos.py
new file mode 100644
index 0000000..4e74905
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_gizmos.py
@@ -0,0 +1,158 @@
+# Name: gizmos.py
+# Purpose: XML handlers for wx.gismos classes
+# Author: Roman Rolinsky <rolinsky@femagsoft.com>
+# Created: 09.07.2007
+# RCS-ID: $Id$
+
+import wx
+import wx.xrc as xrc
+import wx.gizmos as gizmos
+
+class LEDNumberCtrlXmlHandler(xrc.XmlResourceHandler):
+ def __init__(self):
+ xrc.XmlResourceHandler.__init__(self)
+ # Standard styles
+ self.AddWindowStyles()
+ # Custom styles
+ self.AddStyle('wxLED_ALIGN_LEFT', gizmos.LED_ALIGN_LEFT)
+ self.AddStyle('wxLED_ALIGN_RIGHT', gizmos.LED_ALIGN_RIGHT)
+ self.AddStyle('wxLED_ALIGN_CENTER', gizmos.LED_ALIGN_CENTER)
+ self.AddStyle('wxLED_DRAW_FADED', gizmos.LED_DRAW_FADED)
+
+ def CanHandle(self,node):
+ return self.IsOfClass(node, 'LEDNumberCtrl')
+
+ # Process XML parameters and create the object
+ def DoCreateResource(self):
+ assert self.GetInstance() is None
+ w = gizmos.LEDNumberCtrl(self.GetParentAsWindow(),
+ self.GetID(),
+ self.GetPosition(),
+ self.GetSize(),
+ self.GetStyle())
+ # wxLED_ALIGN_MASK was incorrect
+ align = self.GetStyle() & 7
+ if align: w.SetAlignment(self.GetStyle() & 7)
+ w.SetValue(self.GetText('value'))
+ self.SetupWindow(w)
+ return w
+
+
+class EditableListBoxXmlHandler(xrc.XmlResourceHandler):
+ def __init__(self):
+ xrc.XmlResourceHandler.__init__(self)
+ # Standard styles
+ self.AddWindowStyles()
+ # Custom styles
+ self.AddStyle('wxEL_ALLOW_NEW', gizmos.EL_ALLOW_NEW)
+ self.AddStyle('wxEL_ALLOW_EDIT', gizmos.EL_ALLOW_EDIT)
+ self.AddStyle('wxEL_ALLOW_DELETE', gizmos.EL_ALLOW_DELETE)
+
+ def CanHandle(self, node):
+ return self.IsOfClass(node, 'EditableListBox')
+# return self.IsOfClass(node, 'EditableListBox') or \
+# self.insideBox and node.GetName() == 'item'
+
+ # Process XML parameters and create the object
+ def DoCreateResource(self):
+ assert self.GetInstance() is None
+
+ w = gizmos.EditableListBox(self.GetParentAsWindow(),
+ self.GetID(),
+ self.GetText("label"),
+ self.GetPosition(),
+ self.GetSize(),
+ self.GetStyle(),
+ self.GetName())
+
+ # Doesn't work
+ #self.insideBox = True
+ #self.CreateChildrenPrivately(None, self.GetParamNode('content'))
+ #self.insideBox = False
+
+ # Long way
+ strings = []
+ n = self.GetParamNode('content')
+ if n: n = n.GetChildren()
+ while n:
+ if n.GetType() != xrc.XML_ELEMENT_NODE or n.GetName() != "item":
+ n = n.GetNext()
+ continue
+ strings.append(n.GetNodeContent())
+ n = n.GetNext()
+ w.SetStrings(strings)
+ self.SetupWindow(w)
+ return w
+
+
+class TreeListCtrlXmlHandler(xrc.XmlResourceHandler):
+ def __init__(self):
+ xrc.XmlResourceHandler.__init__(self)
+ # Standard styles
+ self.AddWindowStyles()
+ # Custom styles
+ self.AddStyle('wxTR_DEFAULT_STYLE', wx.TR_DEFAULT_STYLE)
+ self.AddStyle('wxTR_EDIT_LABELS', wx.TR_EDIT_LABELS)
+ self.AddStyle('wxTR_NO_BUTTONS', wx.TR_NO_BUTTONS)
+ self.AddStyle('wxTR_HAS_BUTTONS', wx.TR_HAS_BUTTONS)
+ self.AddStyle('wxTR_TWIST_BUTTONS', wx.TR_TWIST_BUTTONS)
+ self.AddStyle('wxTR_NO_LINES', wx.TR_NO_LINES)
+ self.AddStyle('wxTR_FULL_ROW_HIGHLIGHT', wx.TR_FULL_ROW_HIGHLIGHT)
+ self.AddStyle('wxTR_LINES_AT_ROOT', wx.TR_LINES_AT_ROOT)
+ self.AddStyle('wxTR_HIDE_ROOT', wx.TR_HIDE_ROOT)
+ self.AddStyle('wxTR_ROW_LINES', wx.TR_ROW_LINES)
+ self.AddStyle('wxTR_HAS_VARIABLE_ROW_HEIGHT', wx.TR_HAS_VARIABLE_ROW_HEIGHT)
+ self.AddStyle('wxTR_SINGLE', wx.TR_SINGLE)
+ self.AddStyle('wxTR_MULTIPLE', wx.TR_MULTIPLE)
+ self.AddStyle('wxTR_EXTENDED', wx.TR_EXTENDED)
+
+ def CanHandle(self, node):
+ return self.IsOfClass(node, 'TreeListCtrl')
+
+ # Process XML parameters and create the object
+ def DoCreateResource(self):
+ assert self.GetInstance() is None
+
+ w = gizmos.TreeListCtrl(self.GetParentAsWindow(),
+ self.GetID(),
+ style=self.GetStyle(),
+ name=self.GetName())
+ w.AddColumn("Main column")
+ w.AddColumn('Column 1')
+ w.SetMainColumn(0)
+ w.SetColumnWidth(0, 50)
+ w.SetColumnWidth(1, 50)
+ root = w.AddRoot('Root')
+ w.SetItemText(root, "col 1", 1)
+ item1 = w.AppendItem(root, 'item 1')
+ w.SetItemText(item1, "col 1", 1)
+ w.Expand(root)
+ return w
+
+
+class DynamicSashWindowXmlHandler(xrc.XmlResourceHandler):
+ def __init__(self):
+ xrc.XmlResourceHandler.__init__(self)
+ # Standard styles
+ self.AddWindowStyles()
+ # Custom styles
+ self.AddStyle('wxDS_MANAGE_SCROLLBARS', gizmos.DS_MANAGE_SCROLLBARS)
+ self.AddStyle('wxDS_DRAG_CORNER', gizmos.DS_DRAG_CORNER)
+
+ def CanHandle(self, node):
+ return self.IsOfClass(node, 'DynamicSashWindow')
+
+ # Process XML parameters and create the object
+ def DoCreateResource(self):
+ assert self.GetInstance() is None
+
+ w = gizmos.DynamicSashWindow(self.GetParentAsWindow(),
+ self.GetID(),
+ self.GetPosition(),
+ self.GetSize(),
+ self.GetStyle(),
+ self.GetName())
+
+ self.SetupWindow(w)
+ return w
+
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_wxlib.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_wxlib.py
new file mode 100644
index 0000000..7c52e57
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/tools/XRCed/plugins/xh_wxlib.py
@@ -0,0 +1,62 @@
+# Name: wxlib.py
+# Purpose: XML handlers for wx.lib classes
+# Author: Roman Rolinsky <rolinsky@femagsoft.com>
+# Created: 05.09.2007
+# RCS-ID: $Id$
+
+import wx
+import wx.xrc as xrc
+import wx.lib.foldpanelbar as fpb
+from wx.lib.ticker_xrc import wxTickerXmlHandler
+
+from wx.tools.XRCed.globals import TRACE
+
+class FoldPanelBarXmlHandler(xrc.XmlResourceHandler):
+ def __init__(self):
+ xrc.XmlResourceHandler.__init__(self)
+ # Standard styles
+ self.AddWindowStyles()
+ # Custom styles
+ self.AddStyle('FPB_SINGLE_FOLD', fpb.FPB_SINGLE_FOLD)
+ self.AddStyle('FPB_COLLAPSE_TO_BOTTOM', fpb.FPB_COLLAPSE_TO_BOTTOM)
+ self.AddStyle('FPB_EXCLUSIVE_FOLD', fpb.FPB_EXCLUSIVE_FOLD)
+ self.AddStyle('FPB_HORIZONTAL', fpb.FPB_HORIZONTAL)
+ self.AddStyle('FPB_VERTICAL', fpb.FPB_VERTICAL)
+ self._isInside = False
+
+ def CanHandle(self,node):
+ return not self._isInside and self.IsOfClass(node, 'wx.lib.foldpanelbar.FoldPanelBar') or \
+ self._isInside and self.IsOfClass(node, 'foldpanel')
+
+ # Process XML parameters and create the object
+ def DoCreateResource(self):
+ TRACE('DoCreateResource: %s', self.GetClass())
+ if self.GetClass() == 'foldpanel':
+ n = self.GetParamNode('object')
+ if n:
+ old_ins = self._isInside
+ self._isInside = False
+ bar = self._w
+ item = self.CreateResFromNode(n, bar, None)
+ self._isInside = old_ins
+ wnd = item
+ if wnd:
+ item = bar.AddFoldPanel(self.GetText('label'),
+ collapsed=self.GetBool('collapsed'))
+ bar.AddFoldPanelWindow(item, wnd)
+ return wnd
+ else:
+ w = fpb.FoldPanelBar(self.GetParentAsWindow(),
+ self.GetID(),
+ self.GetPosition(),
+ self.GetSize(),
+ self.GetStyle(),
+ self.GetStyle('exstyle'))
+ self.SetupWindow(w)
+ self._w = w
+ old_ins = self._isInside
+ self._isInside = True
+ self.CreateChildren(w, True)
+ self._isInside = old_ins
+ return w
+