Index: src/plugins/contrib/wxSmith/wxSmith-unix.cbp
===================================================================
--- src/plugins/contrib/wxSmith/wxSmith-unix.cbp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxSmith-unix.cbp	(working copy)
@@ -269,12 +269,24 @@
 		<Unit filename="wxsversionconverter.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsanimationctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsanimationctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsbitmapbutton.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsbitmapbutton.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsbitmapcombobox.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsbitmapcombobox.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsboxsizer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -323,12 +335,24 @@
 		<Unit filename="wxwidgets/defitems/wxscolourdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxscolourpickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxscolourpickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxscombobox.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets/defitems/wxscombobox.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxscontexthelpbutton.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxscontexthelpbutton.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxscustomwidget.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -347,6 +371,12 @@
 		<Unit filename="wxwidgets/defitems/wxsdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsdialupmanager.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsdialupmanager.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsdirdialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -359,12 +389,36 @@
 		<Unit filename="wxwidgets/defitems/wxsfiledialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfilepickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfilepickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfindreplacedialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfindreplacedialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsflexgridsizer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsflexgridsizer.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfontdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfontdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfontpickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsfontpickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsframe.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -401,12 +455,24 @@
 		<Unit filename="wxwidgets/defitems/wxsgridsizer.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxshtmleasyprinting.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxshtmleasyprinting.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxshtmlwindow.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets/defitems/wxshtmlwindow.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxshyperlinkctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxshyperlinkctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxslistbook.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -425,6 +491,18 @@
 		<Unit filename="wxwidgets/defitems/wxslistctrl.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxslistview.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxslistview.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsmediactrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsmediactrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsmenu.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -449,6 +527,12 @@
 		<Unit filename="wxwidgets/defitems/wxsmenuitem.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsmessagedialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsmessagedialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsmultichoicedialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -461,12 +545,36 @@
 		<Unit filename="wxwidgets/defitems/wxsnotebook.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxspagesetupdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxspagesetupdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxspanel.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets/defitems/wxspanel.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxspasswordentrydialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxspasswordentrydialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsprintdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsprintdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsprogressdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsprogressdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxsradiobox.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -479,6 +587,24 @@
 		<Unit filename="wxwidgets/defitems/wxsradiobutton.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextformattingdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextformattingdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextstyleorganiserdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxsrichtextstyleorganiserdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxssashlayoutwindow.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -509,6 +635,18 @@
 		<Unit filename="wxwidgets/defitems/wxsscrollingdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxssearchctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxssearchctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxssimplehtmllistbox.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxssimplehtmllistbox.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxssinglechoicedialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -611,6 +749,12 @@
 		<Unit filename="wxwidgets/defitems/wxstextctrl.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxstextentrydialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxstextentrydialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxstimer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -641,6 +785,12 @@
 		<Unit filename="wxwidgets/defitems/wxstoolbaritem.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets/defitems/wxstreebook.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets/defitems/wxstreebook.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets/defitems/wxstreectrl.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
Index: src/plugins/contrib/wxSmith/wxSmith.cbp
===================================================================
--- src/plugins/contrib/wxSmith/wxSmith.cbp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxSmith.cbp	(working copy)
@@ -293,12 +293,24 @@
 		<Unit filename="wxsversionconverter.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsanimationctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsanimationctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsbitmapbutton.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsbitmapbutton.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsbitmapcombobox.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsbitmapcombobox.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsboxsizer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -347,12 +359,24 @@
 		<Unit filename="wxwidgets\defitems\wxscolourdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxscolourpickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxscolourpickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxscombobox.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxscombobox.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxscontexthelpbutton.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxscontexthelpbutton.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxscustomwidget.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -371,24 +395,60 @@
 		<Unit filename="wxwidgets\defitems\wxsdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsdialupmanager.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsdialupmanager.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsdirdialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsdirdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsdirpickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsdirpickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsfiledialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsfiledialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfilepickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfilepickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfindreplacedialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfindreplacedialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsflexgridsizer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsflexgridsizer.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfontdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfontdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfontpickerctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsfontpickerctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsframe.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -425,12 +485,24 @@
 		<Unit filename="wxwidgets\defitems\wxsgridsizer.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxshtmleasyprinting.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxshtmleasyprinting.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxshtmlwindow.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxshtmlwindow.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxshyperlinkctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxshyperlinkctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxslistbook.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -449,6 +521,18 @@
 		<Unit filename="wxwidgets\defitems\wxslistctrl.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxslistview.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxslistview.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsmediactrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsmediactrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsmenu.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -473,6 +557,12 @@
 		<Unit filename="wxwidgets\defitems\wxsmenuitem.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsmessagedialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsmessagedialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsmultichoicedialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -485,12 +575,36 @@
 		<Unit filename="wxwidgets\defitems\wxsnotebook.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxspagesetupdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxspagesetupdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxspanel.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
 		<Unit filename="wxwidgets\defitems\wxspanel.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxspasswordentrydialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxspasswordentrydialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsprintdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsprintdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsprogressdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsprogressdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxsradiobox.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -503,6 +617,24 @@
 		<Unit filename="wxwidgets\defitems\wxsradiobutton.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextformattingdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextformattingdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextstyleorganiserdialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxsrichtextstyleorganiserdialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxssashlayoutwindow.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -533,6 +665,18 @@
 		<Unit filename="wxwidgets\defitems\wxsscrollingdialog.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxssearchctrl.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxssearchctrl.h">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxssimplehtmllistbox.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxssimplehtmllistbox.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxssinglechoicedialog.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -635,6 +779,12 @@
 		<Unit filename="wxwidgets\defitems\wxstextctrl.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxstextentrydialog.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxstextentrydialog.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxstimer.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -665,6 +815,12 @@
 		<Unit filename="wxwidgets\defitems\wxstoolbaritem.h">
 			<Option target="wxSmithLib" />
 		</Unit>
+		<Unit filename="wxwidgets\defitems\wxstreebook.cpp">
+			<Option target="wxSmithLib" />
+		</Unit>
+		<Unit filename="wxwidgets\defitems\wxstreebook.h">
+			<Option target="wxSmithLib" />
+		</Unit>
 		<Unit filename="wxwidgets\defitems\wxstreectrl.cpp">
 			<Option target="wxSmithLib" />
 		</Unit>
@@ -1004,6 +1160,7 @@
 					<wxPanel wxs="wxsmith/wxsNotebookParentQP.wxs" src="wxwidgets/defitems/wxsnotebook.cpp" hdr="wxwidgets/defitems/wxsnotebook.cpp" name="wxsNotebookParentQP" language="CPP" />
 					<wxPanel wxs="wxsmith/wxsChoicebookParentQP.wxs" src="wxwidgets/defitems/wxschoicebook.cpp" hdr="wxwidgets/defitems/wxschoicebook.cpp" name="wxsChoicebookParentQP" language="CPP" />
 					<wxPanel wxs="wxsmith/wxsListbookParentQP.wxs" src="wxwidgets/defitems/wxslistbook.cpp" hdr="wxwidgets/defitems/wxslistbook.cpp" name="wxsListbookParentQP" language="CPP" />
+					<wxPanel wxs="wxsmith/wxsTreebookParentQP.wxs" src="wxwidgets/defitems/wxstreebook.cpp" hdr="wxwidgets/defitems/wxstreebook.cpp" name="wxsTreebookParentQP" language="CPP" />
 					<wxPanel wxs="wxsmith/wxsSettings.wxs" src="wxssettings.cpp" hdr="wxssettings.h" name="wxsSettings" language="CPP" />
 					<wxPanel wxs="wxsmith/wxsmenueditor.wxs" src="wxwidgets/defitems/wxsmenueditor.cpp" hdr="wxwidgets/defitems/wxsmenueditor.h" name="wxsMenuEditor" language="CPP" />
 					<wxPanel wxs="wxsmith/wxstoolbareditor.wxs" src="wxwidgets/defitems/wxstoolbareditor.cpp" hdr="wxwidgets/defitems/wxstoolbareditor.h" name="wxsToolBarEditor" language="CPP" />
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/Makefile.am	(working copy)
@@ -74,7 +74,33 @@
 ./wxssingleinstancechecker.cpp \
 ./wxsstopwatch.cpp \
 ./wxssymbolpickerdialog.cpp \
-./wxsglcanvas.cpp
+./wxsglcanvas.cpp \
+./wxshyperlinkctrl.cpp \
+./wxsanimationctrl.cpp \
+./wxsmediactrl.cpp \
+./wxsfindreplacedialog.cpp \
+./wxsfontdialog.cpp \
+./wxsmessagedialog.cpp \
+./wxspagesetupdialog.cpp \
+./wxspasswordentrydialog.cpp \
+./wxsprintdialog.cpp \
+./wxsprogressdialog.cpp \
+./wxsrichtextformattingdialog.cpp \
+./wxsrichtextstyleorganiserdialog.cpp \
+./wxstextentrydialog.cpp \
+./wxscolourpickerctrl.cpp \
+./wxsdirpickerctrl.cpp \
+./wxsfilepickerctrl.cpp \
+./wxsfontpickerctrl.cpp \
+./wxsbitmapcombobox.cpp \
+./wxscontexthelpbutton.cpp \
+./wxsdialupmanager.cpp \
+./wxshtmleasyprinting.cpp \
+./wxslistview.cpp \
+./wxsrichtextctrl.cpp \
+./wxssearchctrl.cpp \
+./wxssimplehtmllistbox.cpp \
+./wxstreebook.cpp
 
 noinst_HEADERS = \
 ./wxsgauge.h \
@@ -139,5 +165,32 @@
 ./wxssingleinstancechecker.h \
 ./wxsstopwatch.h \
 ./wxssymbolpickerdialog.h \
-./wxsglcanvas.h
+./wxsglcanvas.h \
+./wxshyperlinkctrl.h \
+./wxsanimationctrl.h \
+./wxsmediactrl.h \
+./wxsfindreplacedialog.h \
+./wxsfontdialog.h \
+./wxsmessagedialog.h \
+./wxspagesetupdialog.h \
+./wxspasswordentrydialog.h \
+./wxsprintdialog.h \
+./wxsprogressdialog.h \
+./wxsrichtextformattingdialog.h \
+./wxsrichtextstyleorganiserdialog.h \
+./wxstextentrydialog.h \
+./wxscolourpickerctrl.h \
+./wxsdirpickerctrl.h \
+./wxsfilepickerctrl.h \
+./wxsfontpickerctrl.h \
+./wxsbitmapcombobox.h \
+./wxscontexthelpbutton.h \
+./wxsdialupmanager.h \
+./wxshtmleasyprinting.h \
+./wxslistview.h \
+./wxsrichtextctrl.h \
+./wxssearchctrl.h \
+./wxssimplehtmllistbox.h \
+./wxstreebook.h
 
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.cpp	(revision 0)
@@ -0,0 +1,125 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsanimationctrl.h"
+#include "wx/animate.h"
+
+
+namespace
+{
+    wxsRegisterItem<wxsAnimationCtrl> Reg(_T("AnimationCtrl"),wxsTWidget,_T("Standard"),370);
+
+    WXS_ST_BEGIN(wxsAnimationCtrlStyles,_T("wxAC_DEFAULT_STYLE"))
+        WXS_ST_CATEGORY("wxAnimationCtrl")
+        WXS_ST(wxAC_DEFAULT_STYLE)
+        WXS_ST(wxAC_NO_AUTORESIZE)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsAnimationCtrl::wxsAnimationCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        NULL,
+        wxsAnimationCtrlStyles),
+		m_bPlay(false)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsAnimationCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/animate.h>"),GetInfo().ClassName,hfInPCH);
+
+			wxString sAnimName = GetCoderContext()->GetUniqueName(_T("anim"));
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("\twxAnimation %s(%n);\n"), sAnimName.wx_str(), m_sAnimation.wx_str());
+            Codef(_T("%C(%W, %I, %s, %P, %S, %T, %N);\n"), sAnimName.wx_str(),);
+            #else
+            Codef(_T("\twxAnimation %s(%n);\n"), sAnimName.c_str(), m_sAnimation.c_str());
+            Codef(_T("%C(%W, %I, %s, %P, %S, %T, %N);\n"), sAnimName.c_str());
+            #endif
+
+			if(!m_bmpInactive.IsEmpty()){
+				Codef(_T("%ASetInactiveBitmap(%i);\n"), &m_bmpInactive, _T("wxART_OTHER"));
+			}
+            if(m_bPlay){
+				Codef(_T("%APlay();\n"));
+            }
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsAnimationCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsAnimationCtrl::OnBuildPreview(wxWindow* parent,long flags)
+{
+    wxAnimationCtrl* preview = new wxAnimationCtrl(parent, GetId(), m_sAnimation, Pos(parent), Size(parent), Style());
+
+    if(!m_bmpInactive.IsEmpty())
+    {
+        preview->SetInactiveBitmap(m_bmpInactive.GetPreview(wxDefaultSize));
+    }
+    if(m_bPlay)
+    {
+        preview->Play();
+    }
+
+    return SetupWindow(preview,flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsAnimationCtrl::OnEnumWidgetProperties(long flags)
+{
+    WXS_SHORT_STRING(wxsAnimationCtrl, m_sAnimation, _("Animation"), _T("animation"), _T(""), false)
+	WXS_BITMAP(wxsAnimationCtrl, m_bmpInactive, _("Inactive Bitmap"), _T("inactive_bitmap"), _T("wxART_OTHER"));
+	WXS_BOOL(wxsAnimationCtrl, m_bPlay, _("Play"), _T("play"), false)
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsanimationctrl.h	(revision 0)
@@ -0,0 +1,43 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSANIMATIONCTRL_H
+#define WXSANIMATIONCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxAnimationCtrl widget */
+class wxsAnimationCtrl: public wxsWidget
+{
+    public:
+
+        wxsAnimationCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxString 			m_sAnimation;			//!< The animation file.
+        wxsBitmapData	m_bmpInactive;			//!< The inactivity bitmap.
+        bool					m_bPlay;					//!< Play the animation.
+};
+
+#endif // WXSANIMATIONCTRL_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapbutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapbutton.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapbutton.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsBitmapButton> Reg(_T("BitmapButton"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsBitmapButton> Reg(_T("BitmapButton"),wxsTWidget,_T("Standard"),360);
 
     WXS_ST_BEGIN(wxsBitmapButtonStyles,_T("wxBU_AUTODRAW"))
         WXS_ST_CATEGORY("wxBitmapButton")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.cpp	(revision 0)
@@ -0,0 +1,319 @@
+/** \file wxsbitmapcombobox.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include <wx/bmpcbox.h>
+#include "wxsbitmapcombobox.h"
+
+#include <wx/arrimpl.cpp> // This is a magic incantation which must be done!
+WX_DEFINE_OBJARRAY(BmpComboBitmapDataArray);
+
+
+namespace
+{
+    wxsRegisterItem<wxsBitmapComboBox> Reg(_T("BitmapComboBox"), wxsTWidget, _T("Standard"), 350);
+
+
+    WXS_ST_BEGIN(wxsBitmapComboBoxStyles, wxEmptyString)
+    WXS_ST_CATEGORY("wxBitmapComboBox")
+    WXS_ST(wxCB_READONLY)
+    WXS_ST(wxCB_SORT)
+    WXS_ST(wxTE_PROCESS_ENTER)
+    WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsBitmapComboBoxEvents)
+		WXS_EVI(EVT_COMBOBOX, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEvent, Selected)
+		WXS_EVI(EVT_TEXT, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEvent, TextUpdated)
+		WXS_EVI(EVT_TEXT_ENTER, wxEVT_COMMAND_TEXT_ENTER, wxCommandEvent, TextEnter)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsBitmapComboBox::wxsBitmapComboBox(wxsItemResData *Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsBitmapComboBoxEvents,
+        wxsBitmapComboBoxStyles),
+    m_defaultSelection(-1),
+    m_iNumImages(0)
+{
+    UpdateArraySizes(m_iNumImages);
+}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsBitmapComboBox::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            {
+                AddHeader(_T("<wx/bmpcbox.h>"), GetInfo().ClassName, hfInPCH);
+                Codef(_T("%C(%W, %I, wxEmptyString, %P, %S, 0, 0, %T, %V, %N);\n"));
+
+                for(size_t i = 0; i <  m_arrChoices.GetCount(); ++i)
+                {
+                    if(m_defaultSelection == (int)i)
+                    {
+                        Codef(_T("%ASetSelection( "));
+                    }
+#if wxCHECK_VERSION(2, 9, 0)
+                    Codef(_T("%AAppend(%t)"), m_arrChoices[i].wx_str());
+#else
+                    Codef(_T("%AAppend(%t)"), m_arrChoices[i].c_str());
+#endif
+                    if(m_defaultSelection == (int)i)
+                    {
+                        Codef(_T(" )"));
+                    }
+                    Codef(_T(";\n"));
+                }
+				// SetItemBitmap() uses an unsigned int.
+				for(unsigned int i = 0;i < m_arrImagePaths.GetCount();i++){
+                    Codef(_T("%ASetItemBitmap(%d, wxBitmap(%n, wxBITMAP_TYPE_ANY));\n"), i, m_arrImagePaths[i].c_str());
+				}
+
+                BuildSetupWindowCode();
+                return;
+            }
+
+        default:
+            {
+                wxsCodeMarks::Unknown(_T("wxsBitmapComboBox::OnBuildCreatingCode"), GetLanguage());
+            }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject *wxsBitmapComboBox::OnBuildPreview(wxWindow *Parent, long Flags)
+{
+    wxBitmapComboBox *preview = new wxBitmapComboBox(Parent, GetId(), wxEmptyString, Pos(Parent), Size(Parent), m_arrChoices, Style());
+    // SetItemBitmap() uses an unsigned int.
+    for(unsigned int i = 0;i < m_arrImagePaths.GetCount();i++){
+		preview->SetItemBitmap(i, wxBitmap(m_arrImagePaths[i], wxBITMAP_TYPE_ANY));
+    }
+    if(m_defaultSelection != -1){
+		preview->SetSelection(m_defaultSelection);
+    }
+
+    return SetupWindow(preview, Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsBitmapComboBox::OnEnumWidgetProperties(long Flags)
+{
+    WXS_ARRAYSTRING(wxsBitmapComboBox, m_arrChoices, _("Choices"), _T("content"), _T("item"))
+    WXS_LONG(wxsBitmapComboBox, m_defaultSelection, _("Selection"), _T("selection"), -1)
+}
+
+/*! \brief Add extra control properties.
+ *
+ * \param Grid wxsPropertyGridManager*	A PropertyGridManager object.
+ * \return void
+ *
+ */
+ void wxsBitmapComboBox::OnAddExtraProperties(wxsPropertyGridManager *Grid)
+{
+    const wxString sPriorTo(_("Selection"));
+    wxString sImage(_("Image"));
+    wxString sImages(_("Images"));
+
+#if wxCHECK_VERSION(2, 9, 0) || wxCHECK_PROPGRID_VERSION(1, 4, 0)
+    Grid->SelectPage(0);
+#else
+    Grid->SetTargetPage(0);
+#endif
+    m_idNumImages = Grid->GetGrid()->Insert(sPriorTo, NEW_IN_WXPG14X wxIntProperty(_("Number of images"), wxPG_LABEL, m_iNumImages));
+
+    if(m_iNumImages > 0) {
+        m_idImages = Grid->GetGrid()->Insert(sPriorTo, NEW_IN_WXPG14X wxParentProperty(sImages.c_str(), wxPG_LABEL));
+	}
+    for(int i = 0; i < m_iNumImages; i++) {
+        m_arrBitmapIds[i] = Grid->GetGrid()->AppendIn(m_idImages, NEW_IN_WXPG14X wxImageFileProperty(wxString::Format(wxT("%s %d"), sImage.c_str(), i + 1), wxPG_LABEL));
+		Grid->SetPropertyValue(m_arrBitmapIds[i], m_arrImagePaths[i]);
+    }
+
+    wxsWidget::OnAddExtraProperties(Grid);
+}
+
+/*! \brief One of the control's extra properties changed.
+ *
+ * \param Grid 	wxsPropertyGridManager*	A PropertyGridManager object.
+ * \param id 		wxPGId										The property's ID.
+ * \return void
+ *
+ */
+void wxsBitmapComboBox::OnExtraPropertyChanged(wxsPropertyGridManager *Grid, wxPGId Id)
+{
+    const wxString sPriorTo(_("Selection"));
+    wxString sImage(_("Image"));
+    wxString sImages(_("Images"));
+
+    // The "Number of images" field has changed.
+    if(Id == m_idNumImages) {
+        // Number of fields is going to change...
+        int iNewFields = Grid->GetPropertyValueAsInt(Id);
+        if(iNewFields < 0) {
+            iNewFields = 0;
+            Grid->SetPropertyValue(Id, iNewFields);
+        }
+
+        // Now it's time to delete / add properties for fields
+        if(iNewFields < m_iNumImages) {
+            for(int i = iNewFields;i < m_iNumImages;i++){
+#if wxCHECK_VERSION(2, 9, 0) || wxCHECK_PROPGRID_VERSION(1, 4, 0)
+                Grid->DeleteProperty(m_arrBitmapIds[i]);
+#else
+                Grid->Delete(m_arrBitmapIds[i]);
+#endif
+			}
+            // If there are no images, delete the parent field.
+            if(iNewFields == 0) {
+#if wxCHECK_VERSION(2, 9, 0) || wxCHECK_PROPGRID_VERSION(1, 4, 0)
+                Grid->DeleteProperty(m_idImages);
+#else
+                Grid->Delete(m_idImages);
+#endif
+                m_idImages = NULL;
+            }
+        }
+        else if(iNewFields > m_iNumImages){
+            // Adding new properties
+#if wxCHECK_VERSION(2, 9, 0) || wxCHECK_PROPGRID_VERSION(1, 4, 0)
+			Grid->SelectPage(0);
+#else
+			Grid->SetTargetPage(0);
+#endif
+			UpdateArraySizes(iNewFields);
+            // If the parent field was previously deleted, recreate it.
+            if(!m_idImages) {
+                m_idImages = Grid->GetGrid()->Insert(sPriorTo, NEW_IN_WXPG14X wxParentProperty(sImages.c_str(), wxPG_LABEL));
+            }
+            for(int i = m_iNumImages; i < iNewFields; i++) {
+                m_arrBitmapIds[i] = Grid->GetGrid()->AppendIn(m_idImages, NEW_IN_WXPG14X wxImageFileProperty(wxString::Format(wxT("%s %d"), sImage.c_str(), i + 1), wxPG_LABEL));
+            }
+        }
+
+        m_iNumImages = iNewFields;
+        NotifyPropertyChange(true);
+        return;
+    }
+
+    // One of the image paths has changed.
+    for(int i = 0; i < m_iNumImages; i++) {
+        if(m_arrBitmapIds[i] == Id) {
+            m_arrImagePaths[i] = Grid->GetPropertyValueAsString(Id);
+            NotifyPropertyChange(true);
+            return;
+        }
+    }
+
+    wxsWidget::OnExtraPropertyChanged(Grid,Id);
+}
+
+/*! \brief Read XML control data.
+ *
+ * \param Element 	TiXmlElement*	A pointer to the parent node of the XML block.
+ * \param IsXRC 		bool						Whether this is an XRC file.
+ * \param IsExtra 		bool						Whether the data is extra information not conforming to the XRC standard.
+ * \return bool											Success or failure.
+ *
+ */
+ bool wxsBitmapComboBox::OnXmlRead(TiXmlElement *Element, bool IsXRC, bool IsExtra)
+{
+    if(IsXRC)
+    {
+        TiXmlElement *FieldsCnt = Element->FirstChildElement("num_images");
+        if(!FieldsCnt){
+            m_iNumImages = 0;
+        }
+        else{
+            m_iNumImages = wxAtoi(cbC2U(FieldsCnt->GetText()));
+        }
+
+        if(m_iNumImages < 0){
+			m_iNumImages = 0;
+        }
+        UpdateArraySizes(m_iNumImages);
+
+        for(int i = 0;i < m_iNumImages;i++){
+			wxString s = wxString::Format(_T("image_%d"), i);
+			if(TiXmlElement *ImageElem = Element->FirstChildElement(cbU2C(s))){
+				m_arrImagePaths[i] = cbC2U(ImageElem->GetText());
+			}
+        }
+    }
+
+    return wxsWidget::OnXmlRead(Element, IsXRC, IsExtra);
+}
+
+/*! \brief Write XML data.
+ *
+ * \param Element 	TiXmlElement*	A pointer to the parent node of the XML block.
+ * \param IsXRC 		bool						Whether this is an XRC file.
+ * \param IsExtra 		bool						Whether the data is extra information not conforming to the XRC standard.
+ * \return bool											Success or failure.
+ *
+ */
+ bool wxsBitmapComboBox::OnXmlWrite(TiXmlElement *Element, bool IsXRC, bool IsExtra)
+{
+    if(IsXRC)
+    {
+        Element->InsertEndChild(TiXmlElement("num_images"))->InsertEndChild(TiXmlText(cbU2C(wxString::Format(_T("%d"), m_iNumImages))));
+
+        for(int i = 0;i < m_iNumImages;i++){
+			wxString s = wxString::Format(_T("image_%d"), i);
+			Element->InsertEndChild(TiXmlElement(cbU2C(s)))->InsertEndChild(TiXmlText(cbU2C(m_arrImagePaths[i])));
+        }
+    }
+
+    return wxsWidget::OnXmlWrite(Element, IsXRC, IsExtra);
+}
+
+/*! \brief Update arrays sizes to match changes in the properties.
+ *
+ * \param 	size 	int	The new array size.
+ * \return 	void
+ *
+ */
+void wxsBitmapComboBox::UpdateArraySizes(int size)
+{
+    m_arrBitmapIds.SetCount(size);
+    m_arrImagePaths.SetCount(size);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbitmapcombobox.h	(revision 0)
@@ -0,0 +1,61 @@
+/** \file wxsbitmapcombobox.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSBITMAPCOMBOBOX_H
+#define WXSBITMAPCOMBOBOX_H
+
+#include "../wxswidget.h"
+#include <wx/dynarray.h>
+
+WX_DECLARE_OBJARRAY(wxsBitmapData, BmpComboBitmapDataArray);
+
+/** \brief Class for wxsBitmapComboBox widget */
+class wxsBitmapComboBox: public wxsWidget
+{
+    public:
+
+        wxsBitmapComboBox(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+        virtual void OnAddExtraProperties(wxsPropertyGridManager* Grid);
+        virtual void OnExtraPropertyChanged(wxsPropertyGridManager* Grid,wxPGId Id);
+        virtual bool OnXmlRead(TiXmlElement* Element,bool IsXRC,bool IsExtra);
+        virtual bool OnXmlWrite(TiXmlElement* Element,bool IsXRC,bool IsExtra);
+
+		void UpdateArraySizes(int size);
+
+        wxArrayString 									m_arrChoices;			//!< Array of entries for the choice list.
+        long 													m_defaultSelection;	//!< The item selected by default.
+		BmpComboBitmapDataArray		m_arrBmps;					//!< Array of bitmaps for entries.
+
+		WX_DEFINE_ARRAY(wxPGId, IdsArray);							//!< Define an array of property IDs.
+
+		int											m_iNumImages;						//!< The number of images.
+		wxPGId     								m_idNumImages;					//!< The ID of the field containing the number of images.
+		wxPGId     								m_idImages;							//!< The ID of the image parent field.
+		wxArrayString						m_arrImagePaths;					//!< An array of paths to images.
+		IdsArray   								m_arrBitmapIds;						//!< An array of IDs of the image path fields.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsboxsizer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsboxsizer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsboxsizer.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsBoxSizer> Reg(_T("BoxSizer"), wxsTSizer, _T("Layout"), 70);
+    wxsRegisterItem<wxsBoxSizer> Reg(_T("BoxSizer"), wxsTSizer, _T("Layout"), 90);
 }
 
 wxsBoxSizer::wxsBoxSizer(wxsItemResData* Data):
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbutton.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsbutton.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsButton> Reg(_T("Button"),wxsTWidget,_T("Standard"),90);
+    wxsRegisterItem<wxsButton> Reg(_T("Button"),wxsTWidget,_T("Standard"),340);
 
     WXS_ST_BEGIN(wxsButtonStyles,_T(""))
         WXS_ST_CATEGORY("wxButton")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxscalendarctrl.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
@@ -21,12 +22,11 @@
 */
 
 #include "wxscalendarctrl.h"
-
 #include <wx/calctrl.h>
 
 namespace
 {
-    wxsRegisterItem<wxsCalendarCtrl> Reg(_T("CalendarCtrl"),wxsTWidget,_T("Advanced"),30);
+    wxsRegisterItem<wxsCalendarCtrl> Reg(_T("CalendarCtrl"),wxsTWidget,_T("Advanced"),150);
 
     WXS_ST_BEGIN(wxsCalendarCtrlStyles,_T(""))
         WXS_ST_CATEGORY("wxCalendarCtrl")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscalendarctrl.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxscalendarctrl.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscheckbox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscheckbox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscheckbox.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsCheckBox> Reg(_T("CheckBox"),wxsTWidget,_T("Standard"),60);
+    wxsRegisterItem<wxsCheckBox> Reg(_T("CheckBox"),wxsTWidget,_T("Standard"),330);
 
     WXS_ST_BEGIN(wxsCheckBoxStyles,_T(""))
         WXS_ST_CATEGORY("wxCheckBox")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschecklistbox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschecklistbox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschecklistbox.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsCheckListBox> Reg(_T("CheckListBox"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsCheckListBox> Reg(_T("CheckListBox"),wxsTWidget,_T("Standard"),320);
 
     WXS_ST_BEGIN(wxsCheckListBoxStyles,_T(""))
         WXS_ST_CATEGORY("wxCheckListBox")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoice.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoice.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoice.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsChoice> Reg(_T("Choice"),wxsTWidget,_T("Standard"),70);
+    wxsRegisterItem<wxsChoice> Reg(_T("Choice"),wxsTWidget,_T("Standard"),310);
 
     WXS_ST_BEGIN(wxsChoiceStyles,_T(""))
         WXS_ST_CATEGORY("wxChoice")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoicebook.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoicebook.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxschoicebook.cpp	(working copy)
@@ -39,7 +39,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsChoicebook> Reg(_T("Choicebook"),wxsTContainer,_T("Standard"),61);
+    wxsRegisterItem<wxsChoicebook> Reg(_T("Choicebook"),wxsTContainer,_T("Standard"),300);
 
     /** \brief Extra parameters for notebook's children */
     class wxsChoicebookExtra: public wxsPropertyContainer
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxscolourdialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsColourDialog> Reg(_T("ColourDialog"),wxsTTool,_T("Dialogs"),50,false);
+    wxsRegisterItem<wxsColourDialog> Reg(_T("ColourDialog"),wxsTTool,_T("Dialogs"),200,false);
 }
 
 wxsColourDialog::wxsColourDialog(wxsItemResData* Data):
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourdialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxscolourdialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.cpp	(revision 0)
@@ -0,0 +1,115 @@
+/**  \file wxscolourpickerctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxscolourpickerctrl.h"
+
+#include <wx/clrpicker.h>
+
+namespace
+{
+    wxsRegisterItem<wxsColourPickerCtrl> Reg(_T("ColourPickerCtrl"), wxsTWidget, _T("Advanced"), 140);
+
+    WXS_ST_BEGIN(wxsColourPickerCtrlStyles, _T(""))
+        WXS_ST_CATEGORY("wxColourPickerCtrl")
+        WXS_ST(wxCLRP_SHOW_LABEL)
+        WXS_ST(wxCLRP_USE_TEXTCTRL)
+    WXS_ST_END()
+
+
+    WXS_EV_BEGIN(wxsColourPickerCtrlEvents)
+        WXS_EVI(EVT_COLOURPICKER_CHANGED, wxEVT_COMMAND_COLOURPICKER_CHANGED, wxColourPickerEvent, ColourChanged)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsColourPickerCtrl::wxsColourPickerCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsColourPickerCtrlEvents,
+        wxsColourPickerCtrlStyles),
+        m_cdColour(*wxBLACK)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsColourPickerCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/clrpicker.h>"),GetInfo().ClassName,0);
+
+			wxString ss = m_cdColour.BuildCode(GetCoderContext());
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %s, %P, %S, %T, %V, %N);\n"), ss.wx_str());
+			#else
+            Codef(_T("%C(%W, %I, %s, %P, %S, %T, %V, %N);\n"), ss.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsColourPickerCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsColourPickerCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+	wxColourPickerCtrl* Preview;
+    wxColour clr = m_cdColour.GetColour();
+    if(clr.IsOk()){
+		Preview = new wxColourPickerCtrl(Parent, GetId(), clr, Pos(Parent), Size(Parent), Style());
+    }
+    else{
+		Preview = new wxColourPickerCtrl(Parent, GetId(), *wxBLACK, Pos(Parent), Size(Parent), Style());
+    }
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsColourPickerCtrl::OnEnumWidgetProperties(long Flags)
+{
+    WXS_COLOUR(wxsColourPickerCtrl, m_cdColour, _("Colour"), _T("colour"));
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscolourpickerctrl.h	(revision 0)
@@ -0,0 +1,42 @@
+/**  \file wxscolourpickerctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSCOLOURPICKERCTRL_H
+#define WXSCOLOURPICKERCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsColourPickerCtrl widget */
+class wxsColourPickerCtrl: public wxsWidget
+{
+    public:
+
+        wxsColourPickerCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+		wxsColourData	m_cdColour;		//!< The selected colour.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxscombobox.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
@@ -25,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsComboBox> Reg(_T("ComboBox"),wxsTWidget,_T("Standard"),70);
+    wxsRegisterItem<wxsComboBox> Reg(_T("ComboBox"),wxsTWidget,_T("Standard"),290);
 
 
     WXS_ST_BEGIN(wxsComboBoxStyles,_T(""))
@@ -39,8 +40,8 @@
     WXS_ST_END()
 
     WXS_EV_BEGIN(wxsComboBoxEvents)
-        WXS_EVI(EVT_COMBOBOX,wxEVT_COMMAND_COMBOBOX_SELECTED,wxCommandEvent,Select)
-        WXS_EVI(EVT_TEXT,wxEVT_COMMAND_TEXT_UPDATED,wxCommandEvent,Text)
+        WXS_EVI(EVT_COMBOBOX,wxEVT_COMMAND_COMBOBOX_SELECTED,wxCommandEvent,Selected)
+        WXS_EVI(EVT_TEXT,wxEVT_COMMAND_TEXT_UPDATED,wxCommandEvent,TextUpdated)
         WXS_EVI(EVT_TEXT_ENTER,wxEVT_COMMAND_TEXT_ENTER,wxCommandEvent,TextEnter)
     WXS_EV_END()
 }
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscombobox.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxscombobox.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.cpp	(revision 0)
@@ -0,0 +1,103 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include <wx/cshelp.h>
+#include "wxscontexthelpbutton.h"
+
+namespace
+{
+    wxsRegisterItem<wxsContextHelpButton> Reg(_T("ContextHelpButton"),wxsTWidget,_T("Standard"), 280);
+
+    WXS_ST_BEGIN(wxsContextHelpButtonStyles, wxT("wxBU_AUTODRAW"))
+        WXS_ST_CATEGORY("wxContextHelpButton")
+         WXS_ST(wxBU_AUTODRAW)
+		 WXS_ST(wxBU_BOTTOM)
+		 WXS_ST(wxBU_LEFT)
+		 WXS_ST(wxBU_RIGHT)
+		 WXS_ST(wxBU_TOP)
+		 WXS_ST(wxBU_EXACTFIT)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsContextHelpButton::wxsContextHelpButton(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        NULL,
+        wxsContextHelpButtonStyles)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ * \note The control's ID must be wxID_CONTEXT_HELP.
+ * \note A help provider must be created before this control and any controls that use context-sensitive help
+ *  are declared. E.g. wxHelpProvider::Set(new wxSimpleHelpProvider);
+ */
+void wxsContextHelpButton::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/cshelp.h>"), GetInfo().ClassName, hfInPCH);
+
+            Codef(_T("%C(%W, wxID_CONTEXT_HELP, %P, %S, %T);\n"));
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsContextHelpButton::OnBuildCreatingCode"), GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsContextHelpButton::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+    wxContextHelpButton* Preview = new wxContextHelpButton(Parent, GetId(), Pos(Parent), Size(Parent), Style());
+
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsContextHelpButton::OnEnumWidgetProperties(long Flags)
+{
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscontexthelpbutton.h	(revision 0)
@@ -0,0 +1,39 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSCONTEXTHELPBUTTON_H
+#define WXSCONTEXTHELPBUTTON_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxContextHelpButton widget */
+class wxsContextHelpButton: public wxsWidget
+{
+    public:
+
+        wxsContextHelpButton(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscustomwidget.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscustomwidget.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxscustomwidget.cpp	(working copy)
@@ -30,7 +30,7 @@
         wxsTWidget,
         _T(""),_T(""),_T(""),_T(""),
         _T("Standard"),
-        10,
+        380,
         _T("Custom"),
         wxsCPP,
         0,0,
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsdatepickerctrl.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
@@ -21,12 +22,11 @@
 */
 
 #include "wxsdatepickerctrl.h"
-
 #include <wx/datectrl.h>
 
 namespace
 {
-    wxsRegisterItem<wxsDatePickerCtrl> Reg(_T("DatePickerCtrl"),wxsTWidget,_T("Advanced"),30);
+    wxsRegisterItem<wxsDatePickerCtrl> Reg(_T("DatePickerCtrl"),wxsTWidget,_T("Advanced"),130);
 
     WXS_ST_BEGIN(wxsDatePickerCtrlStyles,_T("wxDP_DEFAULT|wxDP_SHOWCENTURY"))
         WXS_ST_CATEGORY("wxDatePickerCtrl")
@@ -44,6 +44,11 @@
     WXS_EV_END()
 }
 
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
 wxsDatePickerCtrl::wxsDatePickerCtrl(wxsItemResData* Data):
     wxsWidget(
         Data,
@@ -52,6 +57,11 @@
         wxsDatePickerCtrlStyles)
 {}
 
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
 void wxsDatePickerCtrl::OnBuildCreatingCode()
 {
     switch ( GetLanguage() )
@@ -72,13 +82,25 @@
     }
 }
 
-
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
 wxObject* wxsDatePickerCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
 {
     wxDatePickerCtrl* Preview = new wxDatePickerCtrl(Parent,GetId(),wxDefaultDateTime,Pos(Parent),Size(Parent),Style());
     return SetupWindow(Preview,Flags);
 }
 
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
 void wxsDatePickerCtrl::OnEnumWidgetProperties(long Flags)
 {
 }
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdatepickerctrl.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsdatepickerctrl.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.cpp	(revision 0)
@@ -0,0 +1,145 @@
+/** \file wxsdialupmanager.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include <wx/dialup.h>
+#include "wxsdialupmanager.h"
+
+namespace
+{
+    wxsRegisterItem<wxsDialUpManager> Reg(_T("DialUpManager"), wxsTTool, _T("Tools"), 80, false);
+
+    WXS_EV_BEGIN(wxsDialUpManagerEvents)
+        WXS_EVI(EVT_DIALUP_CONNECTED, wxEVT_DIALUP_CONNECTED, wxDialUpEvent, Connected)
+        WXS_EVI(EVT_DIALUP_DISCONNECTED, wxEVT_DIALUP_DISCONNECTED, wxDialUpEvent, Disconnected)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+ wxsDialUpManager::wxsDialUpManager(wxsItemResData* Data):
+    wxsTool(
+        Data,
+        &Reg.Info,
+        wxsDialUpManagerEvents,
+        NULL,
+         flVariable|flId|flSubclass|flExtraCode),
+         m_iAutoCheckInterval(60)
+#ifndef __WXMSW__
+         ,
+         m_sWellKnownHost(wxT("www.yahoo.com")),
+         m_iPortNo(80),
+         m_sDialCommand(wxT("/usr/bin/pon")),
+         m_sHangUpCommand(wxT("/usr/bin/poff"))
+#endif
+{
+	// AutoCheckOnlineStatus defaults to ON on Windows and OFF on Linux.
+#ifdef __WXMSW__
+		m_bAutoCheckOnlineStatus = true;
+#else
+		m_bAutoCheckOnlineStatus = false;
+#endif
+}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsDialUpManager::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/dialup.h>"),GetInfo().ClassName,hfInPCH);
+
+            Codef(wxT("%O = wxDialUpManager::Create();\n"));
+
+#ifdef __WXMSW__
+			// AutoCheckOnlineStatus defaults to ON on Windows and OFF on Linux.
+			if(!m_bAutoCheckOnlineStatus){
+				Codef(_T("%ADisableAutoCheckOnlineStatus();\n"));
+			}
+#else
+			if(m_bAutoCheckOnlineStatus){
+				if(m_iAutoCheckInterval != 60){
+					Codef(_T("%AEnableAutoCheckOnlineStatus(%d);\n"), m_iAutoCheckInterval);
+				}
+				else{
+					Codef(_T("%AEnableAutoCheckOnlineStatus();\n"));
+				}
+			}
+			// These functions are only used on Unix.
+			if(!m_sWellKnownHost.IsSameAs(wxT("www.yahoo.com")) || m_iPortNo != 80){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%ASetWellKnownHost(%n, %d);\n"), m_sWellKnownHost.wx_str(), m_iPortNo);
+				#else
+				Codef(_T("%ASetWellKnownHost(%n, %d);\n"), m_sWellKnownHost.c_str(), m_iPortNo);
+				#endif
+			}
+
+			if(!m_sDialCommand.IsSameAs(wxT("/usr/bin/pon")) || !m_sHangUpCommand.IsSameAs(wxT("/usr/bin/poff"))){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%ASetConnectCommand(%n);\n"), m_sDialCommand.wx_str(), m_sHangUpCommand.wx_str());
+				#else
+				Codef(_T("%ASetConnectCommand(%n);\n"), m_sWellKnownHost.c_str(), m_sHangUpCommand.c_str());
+				#endif
+			}
+#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsDialUpManager::OnBuildCreatingCode"), GetLanguage());
+        }
+    }
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsDialUpManager::OnEnumToolProperties(long Flags)
+{
+	bool bAutoCheck;
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		bAutoCheck = true;
+	}
+	else{
+		bAutoCheck = false;
+	}
+    WXS_BOOL(wxsDialUpManager, m_bAutoCheckOnlineStatus, _("Auto-check online status"), _T("auto_check_online_status"), bAutoCheck)
+#ifndef __WXMSW__
+	// These properties are only used on Unix.
+    WXS_LONG(wxsDialUpManager, m_iAutoCheckInterval, _("Auto-check interval (secs)"), wxT("auto_check_interval"), 60)
+	WXS_SHORT_STRING(wxsDialUpManager, m_sWellKnownHost, _("Well Known Host"), wxT("well_known_host"), wxT("www.yahoo.com"), false)
+	WXS_LONG(wxsDialUpManager, m_iPortNo, _("Port no."), wxT("port_no"), 80)
+	WXS_SHORT_STRING(wxsDialUpManager, m_sDialCommand, _("Dial command"), wxT("dial_command"), wxT("/usr/bin/pon"), false)
+	WXS_SHORT_STRING(wxsDialUpManager, m_sHangUpCommand, _("Hang up command"), wxT("hangup_command"), wxT("/usr/bin/poff"), false)
+#endif
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdialupmanager.h	(revision 0)
@@ -0,0 +1,48 @@
+/** \file wxsdialupmanager.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSDIALUPMANAGER_H
+#define WXSDIALUPMANAGER_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxDialUpManager tool. */
+class wxsDialUpManager: public wxsTool
+{
+    public:
+
+        wxsDialUpManager(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        bool			m_bAutoCheckOnlineStatus;		//!< Automatically check online status.
+        long			m_iAutoCheckInterval;					//!< Automatic online status check interval (seconds).
+#ifndef __WXMSW__
+        wxString	m_sWellKnownHost;						//!< On Unix, the well known host used to check whether we're connected to the internet.
+        long			m_iPortNo;										//!< On Unix, the well known host's port no.
+        wxString	m_sDialCommand;						//!< On Unix, the dial command.
+        wxString	m_sHangUpCommand;				//!< On Unix, the hang up command.
+#endif
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsdirdialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsDirDialog> Reg(_T("DirDialog"),wxsTTool,_T("Dialogs"),50,false);
+    wxsRegisterItem<wxsDirDialog> Reg(_T("DirDialog"),wxsTTool,_T("Dialogs"),190,false);
 
     WXS_ST_BEGIN(wxsDirDialogStyles,_T("wxDD_DEFAULT_STYLE"))
         WXS_ST_CATEGORY("wxDirDialog")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirdialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsdirdialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.cpp	(revision 0)
@@ -0,0 +1,115 @@
+/**  \file wxsdirpickerctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsdirpickerctrl.h"
+#include <wx/filepicker.h>
+
+namespace
+{
+    wxsRegisterItem<wxsDirPickerCtrl> Reg(_T("DirPickerCtrl"), wxsTWidget, _T("Advanced"), 120);
+
+#ifdef __WXGTK__
+    // GTK apps usually don't have a textctrl next to the picker
+    WXS_ST_BEGIN(wxsDirPickerCtrlStyles,_T("wxDIRP_DIR_MUST_EXIST"))
+#else
+    WXS_ST_BEGIN(wxsDirPickerCtrlStyles,_T("wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST"))
+#endif
+		WXS_ST_CATEGORY("wxDirPickerCtrl")
+        WXS_ST(wxDIRP_CHANGE_DIR)
+        WXS_ST(wxDIRP_DIR_MUST_EXIST)
+        WXS_ST(wxDIRP_USE_TEXTCTRL)
+    WXS_ST_END()
+
+
+    WXS_EV_BEGIN(wxsDirPickerCtrlEvents)
+        WXS_EVI(EVT_DIRPICKER_CHANGED, wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEvent , DirChanged)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsDirPickerCtrl::wxsDirPickerCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsDirPickerCtrlEvents,
+        wxsDirPickerCtrlStyles),
+        m_sMessage(wxDirSelectorPromptStr),
+        m_sPath(wxEmptyString)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsDirPickerCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/filepicker.h>"),GetInfo().ClassName,0);
+
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %n %t, %P, %S, %T, %V, %N);\n"), m_sPath.wx_str(), m_sMessage.wx_str());
+			#else
+            Codef(_T("%C(%W, %I, %n, %t, %P, %S, %T, %V, %N);\n"), m_sPath.c_str(), m_sMessage.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsDirPickerCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long					The control flags.
+ * \return wxObject* 					The constructed control.
+ *
+ */
+wxObject* wxsDirPickerCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+	wxDirPickerCtrl* Preview;
+	Preview = new wxDirPickerCtrl(Parent, GetId(), m_sPath, m_sMessage, Pos(Parent), Size(Parent), Style());
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsDirPickerCtrl::OnEnumWidgetProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsDirPickerCtrl, m_sMessage, _("Message"), _T("message"), wxDirSelectorPromptStr, false)
+    WXS_SHORT_STRING(wxsDirPickerCtrl, m_sPath, _("Path"), _T("path"), wxEmptyString, false)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsdirpickerctrl.h	(revision 0)
@@ -0,0 +1,43 @@
+/**  \file wxsdirpickerctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSDIRPICKERCTRL_H
+#define WXSDIRPICKERCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsDirPickerCtrl widget */
+class wxsDirPickerCtrl: public wxsWidget
+{
+    public:
+
+        wxsDirPickerCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+		wxString	m_sMessage;		//!< The dialogue message.
+		wxString	m_sPath;				//!< The directory path.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsfiledialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsFileDialog> Reg(_T("FileDialog"),wxsTTool,_T("Dialogs"),50,false);
+    wxsRegisterItem<wxsFileDialog> Reg(_T("FileDialog"),wxsTTool,_T("Dialogs"),180,false);
 
     WXS_ST_BEGIN(wxsFileDialogStyles,_T("wxFD_DEFAULT_STYLE"))
         WXS_ST_CATEGORY("wxFileDialog")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfiledialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsfiledialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.cpp	(revision 0)
@@ -0,0 +1,121 @@
+/**  \file wxsfilepickerctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsfilepickerctrl.h"
+
+#include <wx/filepicker.h>
+
+namespace
+{
+    wxsRegisterItem<wxsFilePickerCtrl> Reg(_T("FilePickerCtrl"), wxsTWidget, _T("Advanced"), 110);
+
+#ifdef __WXGTK__
+    // GTK apps usually don't have a textctrl next to the picker
+    WXS_ST_BEGIN(wxsFilePickerCtrlStyles,_T("wxFLP_OPEN|wxFLP_FILE_MUST_EXIST"))
+#else
+    WXS_ST_BEGIN(wxsFilePickerCtrlStyles,_T("wxFLP_USE_TEXTCTRL|wxFLP_OPEN|wxFLP_FILE_MUST_EXIST"))
+#endif
+		WXS_ST_CATEGORY("wxFilePickerCtrl")
+        WXS_ST(wxFLP_CHANGE_DIR)
+        WXS_ST(wxFLP_FILE_MUST_EXIST)
+        WXS_ST(wxFLP_OPEN)
+        WXS_ST(wxFLP_OVERWRITE_PROMPT)
+        WXS_ST(wxFLP_SAVE)
+        WXS_ST(wxFLP_USE_TEXTCTRL)
+    WXS_ST_END()
+
+
+    WXS_EV_BEGIN(wxsFilePickerCtrlEvents)
+        WXS_EVI(EVT_FILEPICKER_CHANGED, wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEvent , FileChanged)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsFilePickerCtrl::wxsFilePickerCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsFilePickerCtrlEvents,
+        wxsFilePickerCtrlStyles),
+        m_sMessage(wxFileSelectorPromptStr),
+        m_sPath(wxEmptyString),
+        m_sWildcard(wxFileSelectorDefaultWildcardStr)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsFilePickerCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/filepicker.h>"),GetInfo().ClassName,0);
+
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %n %t, %n, %P, %S, %T, %V, %N);\n"), m_sPath.wx_str(), m_sMessage.wx_str(), m_sWildcard.wx_str());
+			#else
+            Codef(_T("%C(%W, %I, %n, %t, %n, %P, %S, %T, %V, %N);\n"), m_sPath.c_str(), m_sMessage.c_str(), m_sWildcard.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsFilePickerCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long					The control flags.
+ * \return wxObject* 					The constructed control.
+ *
+ */
+wxObject* wxsFilePickerCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+	wxFilePickerCtrl* Preview;
+	Preview = new wxFilePickerCtrl(Parent, GetId(), m_sPath, m_sMessage, m_sWildcard, Pos(Parent), Size(Parent), Style());
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsFilePickerCtrl::OnEnumWidgetProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsFilePickerCtrl, m_sMessage, _("Message"), _T("message"), wxFileSelectorPromptStr, false)
+    WXS_SHORT_STRING(wxsFilePickerCtrl, m_sPath, _("Path"), _T("path"), wxEmptyString, false)
+    WXS_SHORT_STRING(wxsFilePickerCtrl, m_sWildcard, _("Wildcard"), _T("wildcard"), wxFileSelectorDefaultWildcardStr, false)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfilepickerctrl.h	(revision 0)
@@ -0,0 +1,44 @@
+/**  \file wxsfilepickerctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSFILEPICKERCTRL_H
+#define WXSFILEPICKERCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsFilePickerCtrl widget */
+class wxsFilePickerCtrl: public wxsWidget
+{
+    public:
+
+        wxsFilePickerCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+		wxString	m_sMessage;		//!< The dialogue message.
+		wxString	m_sPath;				//!< The directory path.
+		wxString	m_sWildcard;		//!< The wildcard string.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.cpp	(revision 0)
@@ -0,0 +1,114 @@
+/** \file wxsfindreplacedialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxsfindreplacedialog.h"
+#include <wx/fdrepdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsFindReplaceDialog> Reg(
+        _T("FindReplaceDialog"),       	// Class base name
+        wxsTTool,                       				// Item type
+        _T("Dialogs"),                  			// Category in palette
+        170,                             					// Priority in palette
+        false);                         					// We do not allow this item inside XRC files
+
+
+    WXS_ST_BEGIN(wxsFindReplaceDialogStyles, NULL);
+		WXS_ST_CATEGORY("wxFindReplaceDialog")
+		WXS_ST(wxFR_REPLACEDIALOG)
+		WXS_ST(wxFR_NOUPDOWN)
+		WXS_ST(wxFR_NOMATCHCASE)
+		WXS_ST(wxFR_NOWHOLEWORD)
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsFindReplaceDialogEvents)
+        WXS_EVI(EVT_FIND, wxEVT_COMMAND_FIND, wxFindDialogEvent, Find)
+        WXS_EVI(EVT_FIND_NEXT, wxEVT_COMMAND_FIND_NEXT, wxFindDialogEvent, FindNext)
+        WXS_EVI(EVT_FIND_REPLACE, wxEVT_COMMAND_FIND_REPLACE, wxFindDialogEvent, Replace)
+        WXS_EVI(EVT_FIND_REPLACE_ALL, wxEVT_COMMAND_FIND_REPLACE_ALL, wxFindDialogEvent, ReplaceAll)
+        WXS_EVI(EVT_FIND_CLOSE, wxEVT_COMMAND_FIND_CLOSE, wxFindDialogEvent, Close)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsFindReplaceDialog::wxsFindReplaceDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			wxsFindReplaceDialogEvents,
+			wxsFindReplaceDialogStyles,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sCaption(wxEmptyString)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsFindReplaceDialog::OnBuildCreatingCode()
+{
+	wxString sfindReplaceData;
+	wxString sNote(_("// NOTE: In order for events to connect properly you must set the ID of this wxFindReplaceDialog to -1 in wxSmith."));
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/fdrepdlg.h>"), GetInfo().ClassName, 0);
+
+			sfindReplaceData = GetCoderContext()->GetUniqueName(_T("findReplaceData"));
+			#if wxCHECK_VERSION(2, 9, 0)
+			AddDeclaration(wxT("wxFindReplaceData %s;"), sfindReplaceData.wx_str());
+			#else
+			AddDeclaration(wxString::Format(wxT("wxFindReplaceData %s;"), sfindReplaceData.c_str()));
+			#endif
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("\t%s\n"), sNote.wx_str());
+            Codef(_T("%C(%W, &%s, %t, %T);\n"), sfindReplaceData.wx_str(), m_sCaption.wx_str());
+            #else
+            Codef(_T("\t%s\n"), sNote.c_str());
+            Codef(_T("%C(%W, &%s, %t, %T);\n"), sfindReplaceData.c_str(), m_sCaption.c_str());
+            #endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsFindReplaceDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsFindReplaceDialog::OnEnumToolProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsFindReplaceDialog, m_sCaption, _("Caption"), _T("caption"), wxEmptyString, false);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfindreplacedialog.h	(revision 0)
@@ -0,0 +1,41 @@
+/** \file wxsfindreplacedialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSFINDREPLACEDIALOG_H
+#define WXSFINDREPLACEDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxFindReplaceDialog dialogue. */
+class wxsFindReplaceDialog: public wxsTool
+{
+    public:
+
+        wxsFindReplaceDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString m_sCaption;	//!< The dialogue caption.
+};
+
+#endif      //  WXSFINDREPLACEDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsflexgridsizer.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsflexgridsizer.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsflexgridsizer.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.cpp	(revision 0)
@@ -0,0 +1,150 @@
+/** \file wxsfontdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsfontdialog.h"
+#include "../wxsitemresdata.h"
+#include <wx/fontdlg.h>
+
+namespace
+{
+    wxsRegisterItem<wxsFontDialog> Reg(_T("FontDialog"), wxsTTool, _T("Dialogs"), 160, false);
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsFontDialog::wxsFontDialog(wxsItemResData* Data):
+    wxsTool(Data,&Reg.Info),
+    m_bAllowSymbols(true),
+	m_bEnableEffects(true),
+	m_bShowHelp(false),
+	m_iMinSize(0),
+	m_iMaxSize(0)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsFontDialog::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/fontdlg.h>"),GetInfo().ClassName,hfInPCH);
+
+			wxString sfontName = GetCoderContext()->GetUniqueName(_T("fontData"));
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("\twxFontData %s;\n"), sfontName.wx_str());
+			#else
+            Codef(_T("\twxFontData %s;\n"), sfontName.c_str());
+			#endif
+
+			wxString sClr = m_cdColour.BuildCode(GetCoderContext());
+			#if wxCHECK_VERSION(2, 9, 0)
+			if(!sClr.IsEmpty()){
+				Codef(_T("\t%s.SetColour(%s);\n"), sfontName.wx_str(), sClr.wx_str());
+			}
+			#else
+			if(!sClr.IsEmpty()){
+				Codef(_T("\t%s.SetColour(%s);\n"), sfontName.c_str(), sClr.c_str());
+			}
+			#endif
+			if(!m_bEnableEffects){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s.EnableEffects(%b);\n"), sfontName.wx_str(), m_bEnableEffects);
+				#else
+				Codef(_T("\t%s.EnableEffects(%b);\n"), sfontName.c_str(), m_bEnableEffects);
+				#endif
+			}
+			#if wxCHECK_VERSION(2, 9, 0)
+			Codef(_T("\t%s.SetInitialFont(*wxNORMAL_FONT);\n"), sfontName.wx_str());
+			#else
+			Codef(_T("\t%s.SetInitialFont(*wxNORMAL_FONT);\n"), sfontName.c_str());
+			#endif
+
+			// These functions are Windows only.
+			if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+				if(!m_bShowHelp){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s.SetAllowSymbols(%b);\n"), sfontName.wx_str(), m_bAllowSymbols);
+					#else
+					Codef(_T("\t%s.SetAllowSymbols(%b);\n"), sfontName.c_str(), m_bAllowSymbols);
+					#endif
+				}
+				if(m_iMinSize > 0 || m_iMaxSize > 0){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s.SetRange(%d, %d);\n"), sfontName.wx_str(), m_iMinSize, m_iMaxSize);
+					#else
+					Codef(_T("\t%s.SetRange(%d, %d);\n"), sfontName.c_str(), m_iMinSize, m_iMaxSize);
+					#endif
+				}
+				if(m_bShowHelp){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s.SetShowHelp(%b);\n"), sfontName.wx_str(), m_bShowHelp);
+					#else
+					Codef(_T("\t%s.SetShowHelp(%b);\n"), sfontName.c_str(), m_bShowHelp);
+					#endif
+				}
+			}
+
+			#if wxCHECK_VERSION(2, 9, 0)
+			Codef(_T("%C(%W, %s);\n"), sfontName.wx_str());
+			#else
+			Codef(_T("%C(%W, %s);\n"), sfontName.c_str());
+			#endif
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsFontDialog::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsFontDialog::OnEnumToolProperties(long Flags)
+{
+	// These functions are Windows only.
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		WXS_BOOL(wxsFontDialog, m_bAllowSymbols, _("Allow Symbols"), _T("allow_symbols"), true)
+	}
+    WXS_COLOUR(wxsFontDialog, m_cdColour, _("Colour"), _T("colour"));
+    // This one is used by generic as well as Windows, so keep it available.
+	WXS_BOOL(wxsFontDialog, m_bEnableEffects, _("Enable Effects"), _T("enable_effects"), true)
+	// These functions are Windows only.
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		WXS_LONG(wxsFontDialog, m_iMinSize,  _("Min. Size"), _T("min_size"), 0)
+		WXS_LONG(wxsFontDialog, m_iMaxSize,  _("Max. Size"), _T("max_size"), 0)
+		WXS_BOOL(wxsFontDialog, m_bShowHelp, _("Show Help"), _T("show_help"), false)
+	}
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontdialog.h	(revision 0)
@@ -0,0 +1,46 @@
+/** \file wxsfontdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSFONTDIALOG_H
+#define WXSFONTDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxFontDialog dialogue. */
+class wxsFontDialog: public wxsTool
+{
+    public:
+
+        wxsFontDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        bool					m_bAllowSymbols;	//!< Allow symbol fonts to be selected..
+        bool					m_bEnableEffects;		//!< Enable effects.
+        bool					m_bShowHelp;			//!< Show the help button.
+        long					m_iMinSize;				//!< The minimum allowed font size.
+        long					m_iMaxSize;				//!< The maximum allowed font size.
+        wxsColourData	m_cdColour;				//!< The font colour..
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.cpp	(revision 0)
@@ -0,0 +1,117 @@
+/**  \file wxsfontpickerctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsfontpickerctrl.h"
+
+#include <wx/fontpicker.h>
+
+namespace
+{
+    wxsRegisterItem<wxsFontPickerCtrl> Reg(_T("FontPickerCtrl"), wxsTWidget, _T("Advanced"), 100);
+
+    WXS_ST_BEGIN(wxsFontPickerCtrlStyles,_T("wxFNTP_FONTDESC_AS_LABEL|wxFNTP_USEFONT_FOR_LABEL"))
+		WXS_ST_CATEGORY("wxFontPickerCtrl")
+        WXS_ST(wxFNTP_FONTDESC_AS_LABEL)
+        WXS_ST(wxFNTP_USEFONT_FOR_LABEL)
+        WXS_ST(wxFNTP_USE_TEXTCTRL)
+    WXS_ST_END()
+
+
+    WXS_EV_BEGIN(wxsFontPickerCtrlEvents)
+        WXS_EVI(EVT_FONTPICKER_CHANGED, wxEVT_COMMAND_FONTPICKER_CHANGED, wxFontPickerEvent, FontChanged)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsFontPickerCtrl::wxsFontPickerCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsFontPickerCtrlEvents,
+        wxsFontPickerCtrlStyles,
+        flVariable | flId | flPosition | flSize | flEnabled | flFocused | flHidden | flColours  | flToolTip | flHelpText | flSubclass | flMinMaxSize | flExtraCode)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsFontPickerCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/fontpicker.h>"),GetInfo().ClassName,0);
+
+			wxString sFntName = GetCoderContext()->GetUniqueName(_T("PickerFont"));
+			wxString sFnt = m_fdFont.BuildFontCode(sFntName, GetCoderContext());
+			if(!sFnt.Len() > 0){
+				sFntName = wxT("wxNullFont");
+			}
+			#if wxCHECK_VERSION(2, 9, 0)
+			Codef(_T("%s"), sFnt.wx_str());
+			Codef(_T("%C(%W, %I, %s, %P, %S, %T, %V, %N);\n"), sFntName.wx_str());
+			#else
+			Codef(_T("%s"), sFnt.c_str());
+			Codef(_T("%C(%W, %I, %s, %P, %S, %T, %V, %N);\n"), sFntName.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsFontPickerCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long					The control flags.
+ * \return wxObject* 					The constructed control.
+ *
+ */
+wxObject* wxsFontPickerCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+	wxFontPickerCtrl* Preview;
+	wxFont fnt = m_fdFont.BuildFont();
+	Preview = new wxFontPickerCtrl(Parent, GetId(), fnt, Pos(Parent), Size(Parent), Style());
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsFontPickerCtrl::OnEnumWidgetProperties(long Flags)
+{
+    WXS_FONT(wxsFontPickerCtrl, m_fdFont, _("Font"), _T("font"))
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsfontpickerctrl.h	(revision 0)
@@ -0,0 +1,42 @@
+/**  \file wxsfontpickerctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSFONTPICKERCTRL_H
+#define WXSFONTPICKERCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsFontPickerCtrl widget */
+class wxsFontPickerCtrl: public wxsWidget
+{
+    public:
+
+        wxsFontPickerCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+		wxsFontData	m_fdFont;		//!< The font.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgauge.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgauge.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgauge.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsGauge> Reg(_T("Gauge"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsGauge> Reg(_T("Gauge"),wxsTWidget,_T("Standard"),270);
 
     WXS_ST_BEGIN(wxsGaugeStyles,_T(""))
         WXS_ST(wxGA_HORIZONTAL)
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsgenericdirctrl.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsGenericDirCtrl> Reg(_T("GenericDirCtrl"),wxsTWidget,_T("Advanced"),30);
+    wxsRegisterItem<wxsGenericDirCtrl> Reg(_T("GenericDirCtrl"),wxsTWidget,_T("Advanced"),90);
 
     WXS_ST_BEGIN(wxsGenericDirCtrlStyles,_T(""))
         WXS_ST_CATEGORY("wxGenericDirCtrl")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgenericdirctrl.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsgenericdirctrl.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsglcanvas.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2008 Ron Collins
 *
@@ -53,7 +54,7 @@
         _T("GLCanvas"),                 // Class name
         wxsTWidget,                     // Item type
         _T("Advanced"),                 // Category in palette
-        75,                             // Priority in palette
+        80,                             // Priority in palette
         false);                         // We do not allow this item inside XRC files
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsglcanvas.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsglcanvas.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2008 Ron Collins
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsgrid.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2008  Bartlomiej Swiecki
 * Copyright (C) 2008 Ron Collins
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsGrid> Reg(_T("Grid"),wxsTWidget,_T("Advanced"),50);
+    wxsRegisterItem<wxsGrid> Reg(_T("Grid"),wxsTWidget,_T("Advanced"),70);
 
     WXS_ST_BEGIN(wxsGridStyles,_T(""))
         WXS_ST_DEFAULTS()
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgrid.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxsgrid.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2008  Bartlomiej Swiecki
 * Copyright (C) 2008 Ron Collins
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgridsizer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgridsizer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsgridsizer.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsGridSizer> Reg(_T("GridSizer"),wxsTSizer,_T("Layout"),80);
+    wxsRegisterItem<wxsGridSizer> Reg(_T("GridSizer"),wxsTSizer,_T("Layout"),60);
 }
 
 wxsGridSizer::wxsGridSizer(wxsItemResData* Data):
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.cpp	(revision 0)
@@ -0,0 +1,102 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxshtmleasyprinting.h"
+#include <wx/html/htmprint.h>
+
+namespace
+{
+    wxsRegisterItem<wxsHtmlEasyPrinting> Reg(_T("HtmlEasyPrinting"), wxsTTool, _T("Tools"), 75, false);
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsHtmlEasyPrinting::wxsHtmlEasyPrinting(wxsItemResData* Data):
+    wxsTool(
+        Data,
+        &Reg.Info,
+        NULL,
+        NULL),
+        m_sHeader(wxEmptyString),
+        m_sFooter(wxEmptyString),
+        m_iHeaderPages(wxPAGE_ALL),
+        m_iFooterPages(wxPAGE_ALL)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsHtmlEasyPrinting::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/html/htmprint.h>"),GetInfo().ClassName,hfInPCH);
+
+            Codef(_T("%C(%N, %W);\n"));
+
+			if(!m_sHeader.IsEmpty()){
+#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%ASetHeader(%s, %d);\n"), m_sHeader.wx_str(), m_iHeaderPages);
+#else
+				Codef(_T("%ASetHeader(%s, %d);\n"), m_sHeader.c_str(), m_iHeaderPages);
+#endif
+			}
+			if(!m_sFooter.IsEmpty()){
+#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%ASetHeader(%s, %d);\n"), m_sFooter.wx_str(), m_iFooterPages);
+#else
+				Codef(_T("%ASetHeader(%s, %d);\n"), m_sFooter.c_str(), m_iFooterPages);
+#endif
+			}
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsHtmlEasyPrinting::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsHtmlEasyPrinting::OnEnumToolProperties(long flags)
+{
+	static const long arrHeaderPages[] = {wxPAGE_ALL, wxPAGE_EVEN, wxPAGE_ODD};																			//!< Header and footer page values.
+	static const wxChar* arrHeaderPageNames[]  = {wxT("wxPAGE_ALL"), wxT("wxPAGE_EVEN"), wxT("wxPAGE_ODD"), NULL};		//!< Header and footer page value names.
+
+    WXS_SHORT_STRING(wxsHtmlEasyPrinting, m_sHeader, _("Header"), _T("header"), wxEmptyString, false)
+    WXS_SHORT_STRING(wxsHtmlEasyPrinting, m_sFooter, _("Footer"), _T("footer"), wxEmptyString, false)
+    WXS_ENUM(wxsHtmlEasyPrinting, m_iHeaderPages, _("Header Pages"), _T("header_pages"), arrHeaderPages, arrHeaderPageNames, wxPAGE_ALL);
+    WXS_ENUM(wxsHtmlEasyPrinting, m_iFooterPages, _("Footer Pages"), _T("footer_pages"), arrHeaderPages, arrHeaderPageNames, wxPAGE_ALL);
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmleasyprinting.h	(revision 0)
@@ -0,0 +1,44 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSHTMLEASYPRINTING_H
+#define WXSHTMLEASYPRINTING_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxHyperlinkCtrl widget */
+class wxsHtmlEasyPrinting: public wxsTool
+{
+    public:
+
+        wxsHtmlEasyPrinting(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString 	m_sHeader;					//!< The header text.
+        wxString 	m_sFooter;					//!< The footer text.
+        long			m_iHeaderPages;		//!< The pages on which the header should appear.
+        long			m_iFooterPages;		//!< The pages on which the footer should appear.
+};
+
+
+#endif // WXSHTMLEASYPRINTING_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxshtmlwindow.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
@@ -25,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsHtmlWindow> Reg(_T("HtmlWindow"),wxsTWidget,_T("Advanced"),50);
+    wxsRegisterItem<wxsHtmlWindow> Reg(_T("HtmlWindow"),wxsTWidget,_T("Advanced"),60);
 
     WXS_ST_BEGIN(wxsHtmlWindowStyles,_T("wxHW_SCROLLBAR_AUTO"))
         WXS_ST_CATEGORY("wxHtmlWindow")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshtmlwindow.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/**  \file wxshtmlwindow.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2006-2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.cpp	(revision 0)
@@ -0,0 +1,151 @@
+/** \file wxshyperlinkctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxshyperlinkctrl.h"
+#include "wx/hyperlink.h"
+
+
+namespace
+{
+    wxsRegisterItem<wxsHyperlinkCtrl> Reg(_T("HyperlinkCtrl"),wxsTWidget,_T("Standard"),260);
+
+    WXS_ST_BEGIN(wxsHyperlinkCtrlStyles,_T("wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE"))
+        WXS_ST_CATEGORY("wxHyperlinkCtrl")
+        WXS_ST(wxHL_CONTEXTMENU)
+        WXS_ST(wxHL_ALIGN_LEFT)
+        WXS_ST(wxHL_ALIGN_RIGHT)
+        WXS_ST(wxHL_ALIGN_CENTRE)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsHyperlinkCtrlEvents)
+        WXS_EVI(EVT_HYPERLINK,wxEVT_COMMAND_HYPERLINK,wxCommandEvent,Click)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsHyperlinkCtrl::wxsHyperlinkCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsHyperlinkCtrlEvents,
+        wxsHyperlinkCtrlStyles),
+		m_Label(wxT("http://www.codeblocks.org"))
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsHyperlinkCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/hyperlink.h>"),GetInfo().ClassName,hfInPCH);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %t, %t, %P, %S, %T, %N);\n"),m_Label.wx_str(), m_URL.wx_str());
+            #else
+            Codef(_T("%C(%W, %I, %t, %t, %P, %S, %T, %N);\n"),m_Label.c_str(), m_URL.c_str());
+            #endif
+
+			wxString ss = m_NormalColour.BuildCode( GetCoderContext() );
+			#if wxCHECK_VERSION(2, 9, 0)
+			if (!ss.IsEmpty()) Codef(_T("%ASetNormalColour(%s);\n"), ss.wx_str());
+			#else
+			if (!ss.IsEmpty()) Codef(_T("%ASetNormalColour(%s);\n"), ss.c_str());
+			#endif
+
+			ss = m_HoverColour.BuildCode( GetCoderContext() );
+			#if wxCHECK_VERSION(2, 9, 0)
+			if (!ss.IsEmpty()) Codef(_T("%ASetHoverColour(%s);\n"), ss.wx_str());
+			#else
+			if (!ss.IsEmpty()) Codef(_T("%ASetHoverColour(%s);\n"), ss.c_str());
+			#endif
+
+			ss = m_VisitedColour.BuildCode( GetCoderContext() );
+			#if wxCHECK_VERSION(2, 9, 0)
+			if (!ss.IsEmpty()) Codef(_T("%ASetVisitedColour(%s);\n"), ss.wx_str());
+			#else
+			if (!ss.IsEmpty()) Codef(_T("%ASetVisitedColour(%s);\n"), ss.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsHyperlinkCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsHyperlinkCtrl::OnBuildPreview(wxWindow* parent,long flags)
+{
+    wxHyperlinkCtrl* preview = new wxHyperlinkCtrl(parent,GetId(),m_Label,m_URL,Pos(parent),Size(parent),Style());
+	wxColour cc = m_NormalColour.GetColour();
+	if ( cc.IsOk() )
+	{
+		preview->SetNormalColour(cc);
+	}
+	cc = m_HoverColour.GetColour();
+	if ( cc.IsOk() )
+	{
+		preview->SetHoverColour(cc);
+	}
+	cc = m_VisitedColour.GetColour();
+	if ( cc.IsOk() )
+	{
+		preview->SetVisitedColour(cc);
+	}
+
+    return SetupWindow(preview,flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsHyperlinkCtrl::OnEnumWidgetProperties(long flags)
+{
+    WXS_STRING(wxsHyperlinkCtrl,m_Label,_("Label"),_T("label"),_T(""),false)
+    WXS_SHORT_STRING(wxsHyperlinkCtrl,m_URL,_("URL"),_T("url"),_T(""),false)
+    WXS_COLOUR(wxsHyperlinkCtrl, m_NormalColour,_T("Normal"),_T("normal_colour"))
+    WXS_COLOUR(wxsHyperlinkCtrl, m_HoverColour,_T("Hover"),_T("hover_colour"))
+    WXS_COLOUR(wxsHyperlinkCtrl, m_VisitedColour,_T("Visited"),_T("visited_colour"))
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxshyperlinkctrl.h	(revision 0)
@@ -0,0 +1,47 @@
+/** \file wxshyperlinkctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSHYPERLINKCTRL_H
+#define WXSHYPERLINKCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxHyperlinkCtrl widget */
+class wxsHyperlinkCtrl: public wxsWidget
+{
+    public:
+
+        wxsHyperlinkCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxString 			m_Label;					//!< The label text.
+        wxString 			m_URL;					//!< The URL text.
+        wxsColourData	m_NormalColour;		//!< The normal text colour.
+        wxsColourData	m_HoverColour;			//!< The colour to use when hovering over the text.
+        wxsColourData	m_VisitedColour;		//!< The colour to use when the URL has been visited.
+};
+
+
+#endif // WXSHYPERLINKCTRL_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbook.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbook.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbook.cpp	(working copy)
@@ -40,7 +40,7 @@
 // TODO: Add images
 namespace
 {
-    wxsRegisterItem<wxsListbook> Reg(_T("Listbook"),wxsTContainer,_T("Standard"),61);
+    wxsRegisterItem<wxsListbook> Reg(_T("Listbook"),wxsTContainer,_T("Standard"),250);
 
     /** \brief Extra parameters for notebook's children */
     class wxsListbookExtra: public wxsPropertyContainer
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistbox.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsListBox> Reg(_T("ListBox"),wxsTWidget,_T("Standard"),70);
+    wxsRegisterItem<wxsListBox> Reg(_T("ListBox"),wxsTWidget,_T("Standard"),240);
 
     WXS_ST_BEGIN(wxsListBoxStyles,_T(""))
         WXS_ST_CATEGORY("wxListBox")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistctrl.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsListCtrl> Reg(_T("ListCtrl"),wxsTWidget,_T("Standard"),60);
+    wxsRegisterItem<wxsListCtrl> Reg(_T("ListCtrl"),wxsTWidget,_T("Standard"),230);
 
     WXS_ST_BEGIN(wxsListCtrlStyles,_T(""))
         WXS_ST_CATEGORY("wxListCtrl")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.cpp	(revision 0)
@@ -0,0 +1,131 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxslistview.h"
+#include <wx/listctrl.h>
+
+namespace
+{
+    wxsRegisterItem<wxsListView> Reg(_T("ListView"),wxsTWidget,_T("Standard"),220);
+
+    WXS_ST_BEGIN(wxsListViewStyles,_T(""))
+        WXS_ST_CATEGORY("wxListView")
+        WXS_ST(wxLC_LIST);
+        WXS_ST(wxLC_REPORT)
+        WXS_ST(wxLC_ICON)
+        WXS_ST(wxLC_SMALL_ICON)
+        WXS_ST(wxLC_ALIGN_TOP)
+        WXS_ST(wxLC_ALIGN_LEFT)
+        WXS_ST(wxLC_AUTOARRANGE)
+        WXS_ST(wxLC_USER_TEXT)
+        WXS_ST(wxLC_EDIT_LABELS)
+        WXS_ST(wxLC_NO_HEADER)
+        WXS_ST(wxLC_SINGLE_SEL)
+        WXS_ST(wxLC_SORT_ASCENDING)
+        WXS_ST(wxLC_SORT_DESCENDING)
+        WXS_ST(wxLC_VIRTUAL)
+        WXS_ST(wxLC_HRULES)
+        WXS_ST(wxLC_VRULES)
+        WXS_ST(wxLC_NO_SORT_HEADER)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsListViewEvents)
+        WXS_EVI(EVT_LIST_BEGIN_DRAG,wxEVT_COMMAND_LIST_BEGIN_DRAG,wxListEvent,BeginDrag)
+        WXS_EVI(EVT_LIST_BEGIN_RDRAG,wxEVT_COMMAND_LIST_BEGIN_RDRAG,wxListEvent,BeginRDrag)
+        WXS_EVI(EVT_LIST_BEGIN_LABEL_EDIT,wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT,wxListEvent,BeginLabelEdit)
+        WXS_EVI(EVT_LIST_END_LABEL_EDIT,wxEVT_COMMAND_LIST_END_LABEL_EDIT,wxListEvent,EndLabelEdit)
+        WXS_EVI(EVT_LIST_DELETE_ITEM,wxEVT_COMMAND_LIST_DELETE_ITEM,wxListEvent,DeleteItem)
+        WXS_EVI(EVT_LIST_DELETE_ALL_ITEMS,wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS,wxListEvent,DeleteAllItems)
+        WXS_EVI(EVT_LIST_ITEM_SELECTED,wxEVT_COMMAND_LIST_ITEM_SELECTED,wxListEvent,ItemSelect)
+        WXS_EVI(EVT_LIST_ITEM_DESELECTED,wxEVT_COMMAND_LIST_ITEM_DESELECTED,wxListEvent,ItemDeselect)
+        WXS_EVI(EVT_LIST_ITEM_ACTIVATED,wxEVT_COMMAND_LIST_ITEM_ACTIVATED,wxListEvent,ItemActivated)
+        WXS_EVI(EVT_LIST_ITEM_FOCUSED,wxEVT_COMMAND_LIST_ITEM_FOCUSED,wxListEvent,ItemFocused)
+        WXS_EVI(EVT_LIST_ITEM_MIDDLE_CLICK,wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK,wxListEvent,ItemMClick)
+        WXS_EVI(EVT_LIST_ITEM_RIGHT_CLICK,wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK,wxListEvent,ItemRClick)
+        WXS_EVI(EVT_LIST_KEY_DOWN,wxEVT_COMMAND_LIST_KEY_DOWN,wxListEvent,KeyDown)
+        WXS_EVI(EVT_LIST_INSERT_ITEM,wxEVT_COMMAND_LIST_INSERT_ITEM,wxListEvent,InsertItem)
+        WXS_EVI(EVT_LIST_COL_CLICK,wxEVT_COMMAND_LIST_COL_CLICK,wxListEvent,ColumnClick)
+        WXS_EVI(EVT_LIST_COL_RIGHT_CLICK,wxEVT_COMMAND_LIST_COL_RIGHT_CLICK,wxListEvent,ColumnRClick)
+        WXS_EVI(EVT_LIST_COL_BEGIN_DRAG,wxEVT_COMMAND_LIST_COL_BEGIN_DRAG,wxListEvent,ColumnBeginDrag)
+        WXS_EVI(EVT_LIST_COL_DRAGGING,wxEVT_COMMAND_LIST_COL_DRAGGING,wxListEvent,ColumnDragging)
+        WXS_EVI(EVT_LIST_COL_END_DRAG,wxEVT_COMMAND_LIST_COL_END_DRAG,wxListEvent,ColumnEndDrag)
+        WXS_EVI(EVT_LIST_CACHE_HINT,wxEVT_COMMAND_LIST_CACHE_HINT,wxListEvent,CacheHint)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsListView::wxsListView(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsListViewEvents,
+        wxsListViewStyles)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsListView::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/listctrl.h>"),GetInfo().ClassName,hfInPCH);
+            Codef(_T("%C(%W, %I, %P, %S, %T, %V, %N);\n"));
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsListView::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsListView::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+    wxListView* Preview = new wxListView(Parent,GetId(),Pos(Parent),Size(Parent),Style());
+    return SetupWindow(Preview,Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsListView::OnEnumWidgetProperties(long Flags)
+{
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxslistview.h	(revision 0)
@@ -0,0 +1,39 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSLISTVIEW_H
+#define WXSLISTVIEW_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsListView widget */
+class wxsListView: public wxsWidget
+{
+    public:
+
+        wxsListView(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.cpp	(revision 0)
@@ -0,0 +1,207 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*	Icon elements from NUVOLA ICON THEME for KDE 3.x
+*	distributed under the terms of the GNU LGPL.
+*	Copyright (c)  2003-2004  David Vignoni.
+*	http://www.icon-king.com
+*/
+
+#include "wxsmediactrl.h"
+#include "wx/mediactrl.h"
+
+
+namespace
+{
+    wxsRegisterItem<wxsMediaCtrl> Reg(_T("MediaCtrl"),wxsTWidget,_T("Standard"),210);
+
+    WXS_EV_BEGIN(wxsMediaCtrlEvents)
+		WXS_EVI(EVT_MEDIA_LOADED, wxEVT_MEDIA_LOADED, wxMediaEvent, Loaded)
+		WXS_EVI(EVT_MEDIA_PLAY, wxEVT_MEDIA_PLAY, wxMediaEvent, Play)
+		WXS_EVI(EVT_MEDIA_PAUSE, wxEVT_MEDIA_PAUSE, wxMediaEvent, Pause)
+		WXS_EVI(EVT_MEDIA_STATECHANGED, wxEVT_MEDIA_STATECHANGED, wxMediaEvent, StateChanged)
+		WXS_EVI(EVT_MEDIA_STOP, wxEVT_MEDIA_STOP, wxMediaEvent, Stop)
+		WXS_EVI(EVT_MEDIA_FINISHED, wxEVT_MEDIA_FINISHED, wxMediaEvent, Finished)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsMediaCtrl::wxsMediaCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsMediaCtrlEvents,
+        NULL),
+        m_sMediaFile(wxEmptyString),
+        m_sProxy(wxEmptyString),
+		m_iControls(wxMEDIACTRLPLAYERCONTROLS_DEFAULT),
+		m_iVolume(5)
+//		m_sBackend(wxEmptyString)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsMediaCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/mediactrl.h>"),GetInfo().ClassName,hfInPCH);
+
+            Codef(_T("%C(%W, %I, %s, %P, %S, %T);\n"), wxT("wxEmptyString"));
+            #if wxCHECK_VERSION(2, 9, 0)
+			if(m_sMediaFile.StartsWith(wxT("http://"))){
+				// Online media, possibly with proxy.
+				if(!m_sProxy.IsEmpty()){
+					Codef(_T("%ALoadURIWithProxy(%n, %n);\n"), m_sMediaFile.wx_str(), m_sProxy.wx_str());
+				}
+				else{
+					Codef(_T("%ALoadURI(%n);\n"), m_sMediaFile.wx_str());
+				}
+			}
+			else{
+				// Local media file.
+				Codef(_T("%ALoad(%n);\n"), m_sMediaFile.wx_str());
+			}
+            #else
+			if(m_sMediaFile.StartsWith(wxT("http://"))){
+				// Online media, possibly with proxy.
+				if(!m_sProxy.IsEmpty()){
+					Codef(_T("%ALoadURIWithProxy(%n, %n);\n"), m_sMediaFile.c_str(), m_sProxy.c_str());
+				}
+				else{
+					Codef(_T("%ALoadURI(%n);\n"), m_sMediaFile.c_str());
+				}
+			}
+			else{
+				// Local media file.
+				Codef(_T("%ALoad(%n);\n"), m_sMediaFile.c_str());
+			}
+            #endif
+			switch(m_iControls){
+				case wxMEDIACTRLPLAYERCONTROLS_NONE:
+					Codef(_T("%AShowPlayerControls(%s);\n"), wxT("wxMEDIACTRLPLAYERCONTROLS_NONE"));
+					break;
+				case wxMEDIACTRLPLAYERCONTROLS_STEP:
+					Codef(_T("%AShowPlayerControls(%s);\n"), wxT("wxMEDIACTRLPLAYERCONTROLS_STEP"));
+					break;
+				case wxMEDIACTRLPLAYERCONTROLS_VOLUME:
+					Codef(_T("%AShowPlayerControls(%s);\n"), wxT("wxMEDIACTRLPLAYERCONTROLS_VOLUME"));
+					break;
+				case wxMEDIACTRLPLAYERCONTROLS_DEFAULT:
+					Codef(_T("%AShowPlayerControls(%s);\n"), wxT("wxMEDIACTRLPLAYERCONTROLS_DEFAULT"));
+					break;
+			}
+			// WXS_ENUM won't store doubles so I store the volume level as an int  = (real value * 10)
+			// and jump through hoops to get a double in the output.
+			wxString sVol;
+			if(m_iVolume == 10){
+				sVol = wxT("1.0");
+			}
+			else{
+				sVol = wxString::Format(wxT("0.%d"), m_iVolume);
+			}
+			Codef(_T("%ASetVolume(%s);\n"), sVol.c_str());
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsMediaCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsMediaCtrl::OnBuildPreview(wxWindow* parent,long flags)
+{
+    wxMediaCtrl* preview = new wxMediaCtrl(parent, GetId(), wxEmptyString, Pos(parent), Size(parent), Style());//, m_sBackend);
+
+	if(m_sMediaFile.StartsWith(wxT("http://"))){
+		// Online media, possibly with proxy.
+		if(!m_sProxy.IsEmpty()){
+			preview->LoadURIWithProxy(m_sMediaFile, m_sProxy);
+		}
+		else{
+			preview->LoadURI(m_sMediaFile);
+		}
+	}
+	else{
+		// Local media file.
+		preview->Load(m_sMediaFile);
+	}
+	switch(m_iControls){
+		case wxMEDIACTRLPLAYERCONTROLS_NONE:
+			preview->ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_NONE);
+			break;
+		case wxMEDIACTRLPLAYERCONTROLS_STEP:
+			preview->ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_STEP);
+			break;
+		case wxMEDIACTRLPLAYERCONTROLS_VOLUME:
+			preview->ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_VOLUME);
+			break;
+		case wxMEDIACTRLPLAYERCONTROLS_DEFAULT:
+			preview->ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_DEFAULT);
+			break;
+	}
+	// WXS_ENUM won't store doubles so I store the volume level as an int  = (real value * 10) and divide by 10 here.
+    // Note: If the cast is omitted, the result is always rounded to 0 or 1, I presume by implicit casting to long.
+    preview->SetVolume((double)m_iVolume / 10);
+
+    return SetupWindow(preview, flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+  * \todo (Gary#5#): Support backends...possibly.
+ */
+void wxsMediaCtrl::OnEnumWidgetProperties(long flags)
+{
+	static const long VolumeLevels[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};															//!< Volume levels.
+	/*!< Volume level names. */
+	static const wxChar* VolumeNames[]  = {wxT("0.0"), wxT("0.1"), wxT("0.2"), wxT("0.3"), wxT("0.4"), wxT("0.5"), wxT("0.6"), wxT("0.7"), wxT("0.8"), wxT("0.9"), wxT("1.0"), NULL};
+	static const long ControlStates[] = {wxMEDIACTRLPLAYERCONTROLS_NONE, 										//!< No controls.
+														 wxMEDIACTRLPLAYERCONTROLS_STEP, 										//!< Step controls like fastfoward, step one frame etc.
+														 wxMEDIACTRLPLAYERCONTROLS_VOLUME, 									//!< Volume controls like the speaker icon, volume slider, etc.
+														 wxMEDIACTRLPLAYERCONTROLS_DEFAULT}; 								//!< Default controls for the toolkit.
+	static const wxChar* ControlNames[]  = {wxT("None"), wxT("Step"), wxT("Volume"), wxT("Default"), NULL};	//!< Control state names.
+
+    WXS_SHORT_STRING(wxsMediaCtrl, m_sMediaFile, _("Media File"), _T("media_file"), _T(""), false)
+    WXS_SHORT_STRING(wxsMediaCtrl, m_sProxy, _("Proxy"), _T("proxy"), _T(""), false)
+	WXS_ENUM(wxsMediaCtrl, m_iControls, _("Controls"), _T("controls"), ControlStates, ControlNames, wxMEDIACTRLPLAYERCONTROLS_DEFAULT)
+	WXS_ENUM(wxsMediaCtrl, m_iVolume,  _("Volume"), _T("volume"), VolumeLevels, VolumeNames, 5)
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmediactrl.h	(revision 0)
@@ -0,0 +1,48 @@
+/*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXMEDIACTRL_H
+#define WXMEDIACTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxMediaCtrl widget */
+class wxsMediaCtrl: public wxsWidget
+{
+    public:
+
+        wxsMediaCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxString 			m_sMediaFile;			//!< The media file path or URI.
+		wxString 			m_sProxy;				//!< Proxy URI.
+        bool					m_bPlay;					//!< Play the animation.
+        long					m_iControls;				//!< wxMediaCtrlPlayerControls enum value.
+		long					m_iVolume;				//!< The volume level. This value is divided by 10 to obtain the actual level.
+//		wxString 			m_sBackend;			//!< The media back-end.
+//		wxValidator 		m_validator;				//!< The control validator.
+
+};
+
+#endif // WXMEDIACTRL_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenu.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenu.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenu.cpp	(working copy)
@@ -29,7 +29,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsMenu> Reg(_T("Menu"),wxsTTool,_T("Tools"),90,false);
+    wxsRegisterItem<wxsMenu> Reg(_T("Menu"),wxsTTool,_T("Tools"),70,false);
 
     class MenuEditorDialog: public wxScrollingDialog
     {
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenubar.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenubar.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmenubar.cpp	(working copy)
@@ -29,7 +29,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsMenuBar> Reg(_T("MenuBar"),wxsTTool,_T("Tools"),90);
+    wxsRegisterItem<wxsMenuBar> Reg(_T("MenuBar"),wxsTTool,_T("Tools"),60);
 
     class MenuEditorDialog: public wxScrollingDialog
     {
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.cpp	(revision 0)
@@ -0,0 +1,107 @@
+/** \file wxsmessagedialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxsmessagedialog.h"
+#include <wx/msgdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsMessageDialog> Reg(
+        _T("MessageDialog"),       		// Class base name
+        wxsTTool,                       			// Item type
+        _T("Dialogs"),                  		// Category in palette
+        150,                             				// Priority in palette
+        false);                         				// We do not allow this item inside XRC files
+
+
+    WXS_ST_BEGIN(wxsMessageDialogStyles, wxT("wxOK | wxCANCEL"));
+		WXS_ST_CATEGORY("wxMessageDialog")
+		WXS_ST(wxOK)
+		WXS_ST(wxCANCEL)
+		WXS_ST(wxYES_NO)
+		WXS_ST(wxYES_DEFAULT)
+		WXS_ST(wxNO_DEFAULT)
+		WXS_ST(wxICON_EXCLAMATION)
+		WXS_ST(wxICON_HAND)
+		WXS_ST(wxICON_ERROR)
+		WXS_ST(wxICON_QUESTION)
+		WXS_ST(wxICON_INFORMATION)
+		// This style is Windows only.
+		if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+			WXS_ST(wxSTAY_ON_TOP)
+		}
+    WXS_ST_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsMessageDialog::wxsMessageDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			wxsMessageDialogStyles,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sCaption(wxMessageBoxCaptionStr),
+			m_sMessage(wxEmptyString)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsMessageDialog::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/progdlg.h>"), GetInfo().ClassName, 0);
+
+			#if wxCHECK_VERSION(2, 9, 0)
+			Codef(_T("%C(%W, %t, %t, %T, %P);\n"), m_sMessage.wx_str(), m_sCaption.wx_str());
+			#else
+			Codef(_T("%C(%W, %t, %t, %T, %P);\n"), m_sMessage.c_str(), m_sCaption.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsMessageDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsMessageDialog::OnEnumToolProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsMessageDialog, m_sCaption, _("Caption"), _T("caption"), _T(""), true);
+    WXS_SHORT_STRING(wxsMessageDialog, m_sMessage, _("Message"), _T("message"), wxMessageBoxCaptionStr, true);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmessagedialog.h	(revision 0)
@@ -0,0 +1,42 @@
+/** \file wxsmessagedialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSMESSAGEDIALOG_H
+#define WXSMESSAGEDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxMessageDialog dialogue. */
+class wxsMessageDialog: public wxsTool
+{
+    public:
+
+        wxsMessageDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString 	m_sCaption;			//!< The dialogue's caption.
+        wxString 	m_sMessage;			//!< The dialogue message.
+};
+
+#endif      //  WXSMESSAGEDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsmultichoicedialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsMultiChoiceDialog> Reg(_T("MultiChoiceDialog"),wxsTTool,_T("Dialogs"),50,false);
+    wxsRegisterItem<wxsMultiChoiceDialog> Reg(_T("MultiChoiceDialog"),wxsTTool,_T("Dialogs"),140,false);
 
     WXS_ST_BEGIN(wxsMultiChoiceDialogStyles,_T("wxCHOICEDLG_STYLE"))
         WXS_ST_CATEGORY("wxMultiChoiceDialog")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsmultichoicedialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxsmultichoicedialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsnotebook.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsnotebook.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsnotebook.cpp	(working copy)
@@ -45,7 +45,7 @@
 // TODO: Add notebook images
 namespace
 {
-    wxsRegisterItem<wxsNotebook> Reg(_T("Notebook"),wxsTContainer,_T("Standard"),61);
+    wxsRegisterItem<wxsNotebook> Reg(_T("Notebook"),wxsTContainer,_T("Standard"),200);
 
     /** \brief Extra parameters for notebook's children */
     class wxsNotebookExtra: public wxsPropertyContainer
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.cpp	(revision 0)
@@ -0,0 +1,373 @@
+/** \file wxspagesetupdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxspagesetupdialog.h"
+#include "../wxsitemresdata.h"
+#include <wx/printdlg.h>
+
+namespace
+{
+    wxsRegisterItem<wxsPageSetupDialog> Reg(_T("PageSetupDialog"), wxsTTool, _T("Dialogs"), 130, false);
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsPageSetupDialog::wxsPageSetupDialog(wxsItemResData* Data):
+    wxsTool(Data,&Reg.Info),
+	m_bEnableHelp(false),
+    m_bEnableMargins(true),
+	m_bEnableOrientation(true),
+    m_bEnablePaper(true),
+    m_bDefaultInfo(false),
+    m_bDefaultMinMargins(false),
+    m_bEnablePrinter(true),
+	m_iMarginLeft(-1),
+	m_iMarginTop(-1),
+	m_iMarginRight(-1),
+	m_iMarginBottom(-1),
+	m_iMarginMinLeft(-1),
+	m_iMarginMinTop(-1),
+	m_iMarginMinRight(-1),
+	m_iMarginMinBottom(-1),
+	m_iPaperID(wxPAPER_NONE),
+	m_iPaperWidth(-1),
+	m_iPaperHeight(-1)
+{
+	// Set up the array of paper IDs.
+	arrPaperIDs.Add(wxT("wxPAPER_NONE"));
+	arrPaperIDs.Add(wxT("wxPAPER_LETTER"));
+	arrPaperIDs.Add(wxT("wxPAPER_LEGAL"));
+	arrPaperIDs.Add(wxT("wxPAPER_A4"));
+	arrPaperIDs.Add(wxT("wxPAPER_CSHEET"));
+	arrPaperIDs.Add(wxT("wxPAPER_DSHEET"));
+	arrPaperIDs.Add(wxT("wxPAPER_ESHEET"));
+	arrPaperIDs.Add(wxT("wxPAPER_LETTERSMALL"));
+	arrPaperIDs.Add(wxT("wxPAPER_TABLOID"));
+	arrPaperIDs.Add(wxT("wxPAPER_LEDGER"));
+	arrPaperIDs.Add(wxT("wxPAPER_STATEMENT"));
+	arrPaperIDs.Add(wxT("wxPAPER_EXECUTIVE"));
+	arrPaperIDs.Add(wxT("wxPAPER_A3"));
+	arrPaperIDs.Add(wxT("wxPAPER_A4SMALL"));
+	arrPaperIDs.Add(wxT("wxPAPER_A5"));
+	arrPaperIDs.Add(wxT("wxPAPER_B4"));
+	arrPaperIDs.Add(wxT("wxPAPER_B5"));
+	arrPaperIDs.Add(wxT("wxPAPER_FOLIO"));
+	arrPaperIDs.Add(wxT("wxPAPER_QUARTO"));
+	arrPaperIDs.Add(wxT("wxPAPER_10X14"));
+	arrPaperIDs.Add(wxT("wxPAPER_11X17"));
+	arrPaperIDs.Add(wxT("wxPAPER_NOTE"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_9"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_10"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_11"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_12"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_14"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_DL"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_C5"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_C3"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_C4"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_C6"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_C65"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_B4"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_B5"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_B6"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_ITALY"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_MONARCH"));
+	arrPaperIDs.Add(wxT("wxPAPER_ENV_PERSONAL"));
+	arrPaperIDs.Add(wxT("wxPAPER_FANFOLD_US"));
+	arrPaperIDs.Add(wxT("wxPAPER_FANFOLD_STD_GERMAN"));
+	arrPaperIDs.Add(wxT("wxPAPER_FANFOLD_LGL_GERMAN"));
+}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsPageSetupDialog::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/printdlg.h>"),GetInfo().ClassName,hfInPCH);
+
+			wxString sDataName = GetCoderContext()->GetUniqueName(_T("pageSetupDialogData"));
+			#if wxCHECK_VERSION(2, 9, 0)
+			AddDeclaration(wxString::Format(wxT("wxPageSetupDialogData  *%s;"), sDataName.wx_str()));
+            Codef(_T("\t%s = new wxPageSetupDialogData;\n"), sDataName.wx_str());
+			#else
+			AddDeclaration(wxString::Format(wxT("wxPageSetupDialogData  *%s;"), sDataName.c_str()));
+            Codef(_T("\t%s = new wxPageSetupDialogData;\n"), sDataName.c_str());
+			#endif
+
+			// These functions are Windows only.
+			if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+				if(m_bEnableHelp){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->EnableHelp(%b);\n"), sDataName.wx_str(), m_bEnableHelp);
+					#else
+					Codef(_T("\t%s->EnableHelp(%b);\n"), sDataName.c_str(), m_bEnableHelp);
+					#endif
+				}
+				if(!m_bEnableMargins){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->EnableMargins(%b);\n"), sDataName.wx_str(), m_bEnableMargins);
+					#else
+					Codef(_T("\t%s->EnableMargins(%b);\n"), sDataName.c_str(), m_bEnableMargins);
+					#endif
+				}
+				if(!m_bEnableOrientation){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->EnableOrientation(%b);\n"), sDataName.wx_str(), m_bEnableOrientation);
+					#else
+					Codef(_T("\t%s->EnableOrientation(%b);\n"), sDataName.c_str(), m_bEnableOrientation);
+					#endif
+				}
+				if(!m_bEnablePaper){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->EnablePaper(%b);\n"), sDataName.wx_str(), m_bEnablePaper);
+					#else
+					Codef(_T("\t%s->EnablePaper(%b);\n"), sDataName.c_str(), m_bEnablePaper);
+					#endif
+				}
+				if(m_bDefaultInfo){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetDefaultInfo(%b);\n"), sDataName.wx_str(), m_bDefaultInfo);
+					#else
+					Codef(_T("\t%s->SetDefaultInfo(%b);\n"), sDataName.c_str(), m_bDefaultInfo);
+					#endif
+				}
+				if(m_bDefaultMinMargins){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetDefaultMinMargins(%b);\n"), sDataName.wx_str(), m_bDefaultMinMargins);
+					#else
+					Codef(_T("\t%s->SetDefaultMinMargins(%b);\n"), sDataName.c_str(), m_bDefaultMinMargins);
+					#endif
+				}
+			}
+
+			if(!m_bEnablePrinter){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->EnablePrinter(%b);\n"), sDataName.wx_str(), m_bEnablePrinter);
+				#else
+				Codef(_T("\t%s->EnablePrinter(%b);\n"), sDataName.c_str(), m_bEnablePrinter);
+				#endif
+			}
+			if(m_iMarginLeft > -1 && m_iMarginTop > -1){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetMarginTopLeft(wxPoint(%d, %d));\n"), sDataName.wx_str(), m_iMarginLeft, m_iMarginTop);
+				#else
+				Codef(_T("\t%s->SetMarginTopLeft(wxPoint(%d, %d));\n"), sDataName.c_str(), m_iMarginLeft, m_iMarginTop);
+				#endif
+			}
+			if(m_iMarginRight > -1 && m_iMarginBottom > -1){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetMarginBottomRight(wxPoint(%d, %d));\n"), sDataName.wx_str(), m_iMarginRight, m_iMarginBottom);
+				#else
+				Codef(_T("\t%s->SetMarginBottomRight(wxPoint(%d, %d));\n"), sDataName.c_str(), m_iMarginRight, m_iMarginBottom);
+				#endif
+			}
+			// These functions are Windows only.
+			if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+				if(m_iMarginMinLeft > -1 && m_iMarginMinTop > -1){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetMinMarginTopLeft(wxPoint(%d, %d));\n"), sDataName.wx_str(), m_iMarginMinLeft, m_iMarginMinTop);
+					#else
+					Codef(_T("\t%s->SetMinMarginTopLeft(wxPoint(%d, %d));\n"), sDataName.c_str(), m_iMarginMinLeft, m_iMarginMinTop);
+					#endif
+				}
+				if(m_iMarginMinRight > -1 && m_iMarginMinBottom > -1){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetMinMarginBottomRight(wxPoint(%d, %d));\n"), sDataName.wx_str(), m_iMarginMinRight, m_iMarginMinBottom);
+					#else
+					Codef(_T("\t%s->SetMinMarginBottomRight(wxPoint(%d, %d));\n"), sDataName.c_str(), m_iMarginMinRight, m_iMarginMinBottom);
+					#endif
+				}
+			}
+			// If PaperId = wxPAPER_NONE and paper size = wxDefaultSize, the default system settings will be used.
+            if(m_iPaperID != wxPAPER_NONE){
+				// Set paper wxPAPER_NONE is not set.
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetPaperId(%s);\n"), sDataName.wx_str(), arrPaperIDs[m_iPaperID].wx_str());
+				#else
+				Codef(_T("\t%s->SetPaperId(%s);\n"), sDataName.c_str(), arrPaperIDs[m_iPaperID].c_str());
+				#endif
+            }
+            else{
+				// Set paper size if wxPAPER_NONE is set.
+				if(m_iPaperWidth != -1 && m_iPaperHeight != -1){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetPaperSize(wxSize(%d, %d));\n"), sDataName.wx_str(), m_iPaperWidth, m_iPaperHeight);
+					#else
+					Codef(_T("\t%s->SetPaperSize(wxSize(%d, %d));\n"), sDataName.c_str(), m_iPaperWidth, m_iPaperHeight);
+					#endif
+				}
+            }
+
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %s);\n"), sDataName.wx_str());
+			#else
+            Codef(_T("%C(%W, %s);\n"), sDataName.c_str());
+			#endif
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsPageSetupDialog::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsPageSetupDialog::OnEnumToolProperties(long Flags)
+{
+    /*! \brief Paper IDs.
+     */
+	static const long PaperIDs[] = {
+		wxPAPER_NONE,
+		wxPAPER_LETTER,
+		wxPAPER_LEGAL,
+		wxPAPER_A4,
+		wxPAPER_CSHEET,
+		wxPAPER_DSHEET,
+		wxPAPER_ESHEET,
+		wxPAPER_LETTERSMALL,
+		wxPAPER_TABLOID,
+		wxPAPER_LEDGER,
+		wxPAPER_STATEMENT,
+		wxPAPER_EXECUTIVE,
+		wxPAPER_A3,
+		wxPAPER_A4SMALL,
+		wxPAPER_A5,
+		wxPAPER_B4,
+		wxPAPER_B5,
+		wxPAPER_FOLIO,
+		wxPAPER_QUARTO,
+		wxPAPER_10X14,
+		wxPAPER_11X17,
+		wxPAPER_NOTE,
+		wxPAPER_ENV_9,
+		wxPAPER_ENV_10,
+		wxPAPER_ENV_11,
+		wxPAPER_ENV_12,
+		wxPAPER_ENV_14,
+		wxPAPER_ENV_DL,
+		wxPAPER_ENV_C5,
+		wxPAPER_ENV_C3,
+		wxPAPER_ENV_C4,
+		wxPAPER_ENV_C6,
+		wxPAPER_ENV_C65,
+		wxPAPER_ENV_B4,
+		wxPAPER_ENV_B5,
+		wxPAPER_ENV_B6,
+		wxPAPER_ENV_ITALY,
+		wxPAPER_ENV_MONARCH,
+		wxPAPER_ENV_PERSONAL,
+		wxPAPER_FANFOLD_US,
+		wxPAPER_FANFOLD_STD_GERMAN,
+		wxPAPER_FANFOLD_LGL_GERMAN
+	};
+    /*! \brief Paper ID names.
+     */
+	static const wxChar* PaperIDNames[]  = {
+		_("Use specific dimensions"),
+		_("Letter, 8 1/2 by 11 inches"),
+		_("Legal, 8 1/2 by 14 inches"),
+		_("A4 Sheet, 210 by 297 millimeters"),
+		_("C Sheet, 17 by 22 inches"),
+		_("D Sheet, 22 by 34 inches"),
+		_("E Sheet, 34 by 44 inches"),
+		_("Letter Small, 8 1/2 by 11 inches"),
+		_("Tabloid, 11 by 17 inches"),
+		_("Ledger, 17 by 11 inches"),
+		_("Statement, 5 1/2 by 8 1/2 inches"),
+		_("Executive, 7 1/4 by 10 1/2 inches"),
+		_("A3 sheet, 297 by 420 millimeters"),
+		_("A4 small sheet, 210 by 297 millimeters"),
+		_("A5 sheet, 148 by 210 millimeters"),
+		_("B4 sheet, 250 by 354 millimeters"),
+		_("B5 sheet, 182-by-257-millimeter paper"),
+		_("Folio, 8-1/2-by-13-inch paper"),
+		_("Quarto, 215-by-275-millimeter paper"),
+		_("10-by-14-inch sheet"),
+		_("11-by-17-inch sheet"),
+		_("Note, 8 1/2 by 11 inches"),
+		_("#9 Envelope, 3 7/8 by 8 7/8 inches"),
+		_("#10 Envelope, 4 1/8 by 9 1/2 inches"),
+		_("#11 Envelope, 4 1/2 by 10 3/8 inches"),
+		_("#12 Envelope, 4 3/4 by 11 inches"),
+		_("#14 Envelope, 5 by 11 1/2 inches"),
+		_("DL Envelope, 110 by 220 millimeters"),
+		_("C5 Envelope, 162 by 229 millimeters"),
+		_("C3 Envelope, 324 by 458 millimeters"),
+		_("C4 Envelope, 229 by 324 millimeters"),
+		_("C6 Envelope, 114 by 162 millimeters"),
+		_("C65 Envelope, 114 by 229 millimeters"),
+		_("B4 Envelope, 250 by 353 millimeters"),
+		_("B5 Envelope, 176 by 250 millimeters"),
+		_("B6 Envelope, 176 by 125 millimeters"),
+		_("Italy Envelope, 110 by 230 millimeters"),
+		_("Monarch Envelope, 3 7/8 by 7 1/2 inches"),
+		_("6 3/4 Envelope, 3 5/8 by 6 1/2 inches"),
+		_("US Std Fanfold, 14 7/8 by 11 inches"),
+		_("German Std Fanfold, 8 1/2 by 12 inches"),
+		_("German Legal Fanfold, 8 1/2 by 13 inches"),
+		NULL
+	};
+
+
+	// These functions are Windows only.
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		WXS_BOOL(wxsPageSetupDialog, m_bDefaultInfo, _("Default Info"), _T("default_info"), false)
+		WXS_BOOL(wxsPageSetupDialog, m_bEnableHelp, _("Enable Help"), _T("enable_help"), false)
+		WXS_BOOL(wxsPageSetupDialog, m_bEnableMargins, _("Enable Margins"), _T("enable_margins"), true)
+	}
+	WXS_LONG(wxsPageSetupDialog, m_iMarginLeft,  _("Margin Left (mm)"), _T("margin_left"), -1)
+	WXS_LONG(wxsPageSetupDialog, m_iMarginTop,  _("Margin Top (mm)"), _T("margin_top"), -1)
+	WXS_LONG(wxsPageSetupDialog, m_iMarginRight,  _("Margin Right (mm)"), _T("margin_right"), -1)
+	WXS_LONG(wxsPageSetupDialog, m_iMarginBottom,  _("Margin Bottom (mm)"), _T("margin_bottom"), -1)
+	// These functions are Windows only.
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		WXS_BOOL(wxsPageSetupDialog, m_bDefaultMinMargins, _("Default Min. Margins"), _T("default_min_margins"), false)
+		WXS_LONG(wxsPageSetupDialog, m_iMarginMinLeft,  _("Min. Margin Left (mm)"), _T("min_margin_left"), -1)
+		WXS_LONG(wxsPageSetupDialog, m_iMarginMinTop,  _("Min. Margin Top (mm)"), _T("min_margin_top"), -1)
+		WXS_LONG(wxsPageSetupDialog, m_iMarginMinRight,  _("Min. Margin Right (mm)"), _T("min_margin_right"), -1)
+		WXS_LONG(wxsPageSetupDialog, m_iMarginMinBottom,  _("Min. Margin Bottom (mm)"), _T("min_margin_bottom"), -1)
+	}
+	// These functions are Windows only.
+	if((wxPlatformInfo::Get().GetOperatingSystemId() & wxOS_WINDOWS) > 0){
+		WXS_BOOL(wxsPageSetupDialog, m_bEnableOrientation, _("Enable Orientation"), _T("enable_orientation"), true)
+		WXS_BOOL(wxsPageSetupDialog, m_bEnablePaper, _("Enable Paper"), _T("enable_paper"), true)
+	}
+	WXS_ENUM(wxsPageSetupDialog, m_iPaperID, _("Paper ID"), _T("paper_id"), PaperIDs, PaperIDNames, wxPAPER_NONE)
+	WXS_LONG(wxsPageSetupDialog, m_iPaperWidth,  _("Paper Width"), _T("paper_width"), -1)
+	WXS_LONG(wxsPageSetupDialog, m_iPaperHeight,  _("Paper Height"), _T("paper_height"), -1)
+	WXS_BOOL(wxsPageSetupDialog, m_bEnablePrinter, _("Enable Printer"), _T("enable_printer"), true)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspagesetupdialog.h	(revision 0)
@@ -0,0 +1,61 @@
+/** \file wxspagesetupdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSPAGESETUPDIALOG_H
+#define WXSPAGESETUPDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxPageSetupDialog dialogue. */
+class wxsPageSetupDialog: public wxsTool
+{
+    public:
+
+        wxsPageSetupDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        bool		m_bEnableHelp;				//!< Enable the help button.
+        bool		m_bEnableMargins;			//!< Enable the margin block.
+        bool		m_bEnableOrientation;		//!< Enable the orientation block.
+        bool		m_bEnablePaper;				//!< Enable the paper block.
+        bool		m_bDefaultInfo;					//!< Use default info. If true, the dialogue will simply return default printer information (such as orientation) instead of displaying.
+        bool		m_bDefaultMinMargins;		//!< Use the default margins.
+        bool		m_bEnablePrinter;				//!< Enable printer selection.
+		long		m_iMarginLeft;					//!< The left margin in mm.
+		long		m_iMarginTop;					//!< The top margin in mm.
+		long		m_iMarginRight;				//!< The right margin in mm.
+		long		m_iMarginBottom;				//!< The bottom margin in mm.
+		long		m_iMarginMinLeft;				//!< The minimum value for the left margin, in mm.
+		long		m_iMarginMinTop;				//!< The minimum value for the top margin, in mm.
+		long		m_iMarginMinRight;			//!< The minimum value for the right margin, in mm.
+		long		m_iMarginMinBottom;		//!< The minimum value for the bottom margin, in mm.
+		long		m_iPaperID;						//!< The paper ID.
+		long		m_iPaperWidth;					//!< The paper width.
+		long		m_iPaperHeight;				//!< The paper height.
+
+		wxArrayString arrPaperIDs;				//!< Array of paper ID constant names.
+
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspanel.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspanel.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspanel.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsPanel> Reg(_T("Panel"),wxsTContainer, _T("Standard"), 75);
+    wxsRegisterItem<wxsPanel> Reg(_T("Panel"),wxsTContainer, _T("Standard"), 190);
 
     WXS_ST_BEGIN(wxsPanelStyles,_T("wxTAB_TRAVERSAL"))
         WXS_ST_CATEGORY("wxPanel")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.cpp	(revision 0)
@@ -0,0 +1,102 @@
+/** \file wxspasswordentrydialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxspasswordentrydialog.h"
+#include <wx/textdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsPasswordEntryDialog> Reg(
+        _T("PasswordEntryDialog"),    	// Class base name
+        wxsTTool,                       				// Item type
+        _T("Dialogs"),                  			// Category in palette
+        120,                             					// Priority in palette
+        false);                         					// We do not allow this item inside XRC files
+
+
+    WXS_ST_BEGIN(wxsPasswordEntryDialogStyles, wxT("wxOK | wxCANCEL | wxCENTRE | wxWS_EX_VALIDATE_RECURSIVELY | wxTE_PASSWORD"));
+		WXS_ST_CATEGORY("wxPasswordEntryDialog")
+		WXS_ST(wxCANCEL)
+		WXS_ST(wxCENTRE)
+		WXS_ST(wxOK)
+		WXS_ST(wxTE_CENTRE)
+		WXS_ST(wxTE_NOHIDESEL)
+		WXS_ST(wxTE_RIGHT)
+		WXS_EXST(wxWS_EX_VALIDATE_RECURSIVELY)
+    WXS_ST_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsPasswordEntryDialog::wxsPasswordEntryDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			wxsPasswordEntryDialogStyles,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sCaption(wxGetPasswordFromUserPromptStr),
+			m_sMessage(wxEmptyString),
+			m_sDefaultValue(wxEmptyString)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsPasswordEntryDialog::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/textdlg.h>"), GetInfo().ClassName, 0);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %t, %t, %t, %T, %P);\n"), m_sMessage.wx_str(), m_sCaption.wx_str(), m_sDefaultValue.wx_str());
+            #else
+            Codef(_T("%C(%W, %t, %t, %t, %T, %P);\n"), m_sMessage.c_str(), m_sCaption.c_str(), m_sDefaultValue.c_str());
+            #endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsPasswordEntryDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsPasswordEntryDialog::OnEnumToolProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsPasswordEntryDialog, m_sCaption, _("Caption"), _T("caption"), wxGetPasswordFromUserPromptStr, false);
+    WXS_SHORT_STRING(wxsPasswordEntryDialog, m_sMessage, _("Message"), _T("message"), wxEmptyString, false);
+    WXS_SHORT_STRING(wxsPasswordEntryDialog, m_sDefaultValue, _("Default Value"), _T("default_value"), wxEmptyString, false);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxspasswordentrydialog.h	(revision 0)
@@ -0,0 +1,43 @@
+/** \file wxspasswordentrydialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXPASSWORDENTRYDIALOG_H
+#define WXPASSWORDENTRYDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxPasswordEntryDialog dialogue. */
+class wxsPasswordEntryDialog: public wxsTool
+{
+    public:
+
+        wxsPasswordEntryDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString m_sCaption;			//!< The caption text.
+        wxString m_sMessage;			//!< The message text.
+        wxString m_sDefaultValue;		//!< The default text to insert into the text box.
+};
+
+#endif      //  WXPASSWORDENTRYDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.cpp	(revision 0)
@@ -0,0 +1,188 @@
+/** \file wxsprintdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxsprintdialog.h"
+#include "../wxsitemresdata.h"
+#include <wx/printdlg.h>
+
+namespace
+{
+    wxsRegisterItem<wxsPrintDialog> Reg(_T("PrintDialog"), wxsTTool, _T("Dialogs"), 110, false);
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsPrintDialog::wxsPrintDialog(wxsItemResData* Data):
+    wxsTool(Data,&Reg.Info),
+	m_bEnableHelp(false),
+	m_bEnablePageNumbers(true),
+	m_bEnablePrintToFile(true),
+	m_bEnableSelection(false),
+	m_bCollate(false),
+	m_bPrintToFile(false),
+	m_bSelection(false),
+	m_iFromPage(0),
+	m_iToPage(0),
+	m_iMinPage(0),
+	m_iMaxPage(0),
+	m_iNoCopies(1)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsPrintDialog::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/printdlg.h>"),GetInfo().ClassName,hfInPCH);
+
+			wxString sDataName = GetCoderContext()->GetUniqueName(_T("printDialogData"));
+			#if wxCHECK_VERSION(2, 9, 0)
+			AddDeclaration(wxString::Format(wxT("wxPrintDialogData  *%s;"), sDataName.wx_str()));
+            Codef(_T("\t%s = new wxPrintDialogData;\n"), sDataName.wx_str());
+			#else
+			AddDeclaration(wxString::Format(wxT("wxPrintDialogData  *%s;"), sDataName.c_str()));
+            Codef(_T("\t%s = new wxPrintDialogData;\n"), sDataName.c_str());
+			#endif
+
+			if(m_bEnableHelp){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->EnableHelp(%b);\n"), sDataName.wx_str(), m_bEnableHelp);
+				#else
+				Codef(_T("\t%s->EnableHelp(%b);\n"), sDataName.c_str(), m_bEnableHelp);
+				#endif
+			}
+			if(!m_bEnablePageNumbers){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->EnablePageNumbers(%b);\n"), sDataName.wx_str(), m_bEnablePageNumbers);
+				#else
+				Codef(_T("\t%s->EnablePageNumbers(%b);\n"), sDataName.c_str(), m_bEnablePageNumbers);
+				#endif
+			}
+			if(!m_bEnablePrintToFile){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->EnablePrintToFile(%b);\n"), sDataName.wx_str(), m_bEnablePrintToFile);
+				#else
+				Codef(_T("\t%s->EnablePrintToFile(%b);\n"), sDataName.c_str(), m_bEnablePrintToFile);
+				#endif
+			}
+			if(m_bEnableSelection){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->EnableSelection(%b);\n"), sDataName.wx_str(), m_bEnableSelection);
+				#else
+				Codef(_T("\t%s->EnableSelection(%b);\n"), sDataName.c_str(), m_bEnableSelection);
+				#endif
+				if(m_bSelection){
+					#if wxCHECK_VERSION(2, 9, 0)
+					Codef(_T("\t%s->SetSelection(%b);\n"), sDataName.wx_str(), m_bSelection);
+					#else
+					Codef(_T("\t%s->SetSelection(%b);\n"), sDataName.c_str(), m_bSelection);
+					#endif
+				}
+			}
+			if(m_bCollate){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetCollate(%b);\n"), sDataName.wx_str(), m_bCollate);
+				#else
+				Codef(_T("\t%s->SetCollate(%b);\n"), sDataName.c_str(), m_bCollate);
+				#endif
+			}
+			if(m_iFromPage > 0){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetFromPage(%d);\n"), sDataName.wx_str(), m_iFromPage);
+				#else
+				Codef(_T("\t%s->SetFromPage(%d);\n"), sDataName.c_str(), m_iFromPage);
+				#endif
+			}
+			if(m_iToPage > 0){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetToPage(%d);\n"), sDataName.wx_str(), m_iToPage);
+				#else
+				Codef(_T("\t%s->SetToPage(%d);\n"), sDataName.c_str(), m_iToPage);
+				#endif
+			}
+			if(m_iMinPage > 0){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetMinPage(%d);\n"), sDataName.wx_str(), m_iMinPage);
+				#else
+				Codef(_T("\t%s->SetMinPage(%d);\n"), sDataName.c_str(), m_iMinPage);
+				#endif
+			}
+			if(m_iMaxPage > 0){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetMaxPage(%d);\n"), sDataName.wx_str(), m_iMaxPage);
+				#else
+				Codef(_T("\t%s->SetMaxPage(%d);\n"), sDataName.c_str(), m_iMaxPage);
+				#endif
+			}
+			if(m_iNoCopies > 1){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("\t%s->SetNoCopies(%d);\n"), sDataName.wx_str(), m_iNoCopies);
+				#else
+				Codef(_T("\t%s->SetNoCopies(%d);\n"), sDataName.c_str(), m_iNoCopies);
+				#endif
+			}
+
+			#if wxCHECK_VERSION(2, 9, 0)
+			Codef(_T("%C(%W, %v);\n"), sDataName.wx_str());
+			#else
+			Codef(_T("%C(%W, %v);\n"), sDataName.c_str());
+			#endif
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsPrintDialog::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsPrintDialog::OnEnumToolProperties(long Flags)
+{
+	WXS_BOOL(wxsPrintDialog, m_bEnableHelp, _("Enable Help"), _T("enable_help"), false)
+	WXS_BOOL(wxsPrintDialog, m_bEnablePageNumbers, _("Enable Page Numbers"), _T("enable_page_numbers"), true)
+	WXS_LONG(wxsPrintDialog, m_iFromPage,  _("From Page"), _T("from_page"), 0)
+	WXS_LONG(wxsPrintDialog, m_iToPage,  _("To Page"), _T("to_page"), 0)
+	WXS_LONG(wxsPrintDialog, m_iMinPage,  _("Min. Page"), _T("min_page"), 0)
+	WXS_LONG(wxsPrintDialog, m_iMaxPage,  _("Max. Page"), _T("max_page"), 0)
+	WXS_LONG(wxsPrintDialog, m_iNoCopies,  _("Number of Copies"), _T("number_of_copies"), 1)
+	WXS_BOOL(wxsPrintDialog, m_bCollate, _("Collate"), _T("collate"), false)
+	WXS_BOOL(wxsPrintDialog, m_bEnablePrintToFile, _("Enable Print To File"), _T("enable_print_to_file"), true)
+	WXS_BOOL(wxsPrintDialog, m_bPrintToFile, _("Print To File"), _T("print_to_file"), false)
+	WXS_BOOL(wxsPrintDialog, m_bEnableSelection, _("Enable Selection"), _T("enable_selection"), false)
+	WXS_BOOL(wxsPrintDialog, m_bSelection, _("Selection"), _T("selection"), false)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprintdialog.h	(revision 0)
@@ -0,0 +1,52 @@
+/** \file wxsprintdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSPRINTDIALOG_H
+#define WXSPRINTDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxPrintDialog dialogue. */
+class wxsPrintDialog: public wxsTool
+{
+    public:
+
+        wxsPrintDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        bool		m_bEnableHelp;				//!< Enable the help button.
+        bool		m_bEnablePageNumbers;	//!< Enable the page number block.
+        bool		m_bEnablePrintToFile;		//!< Enable the print to file block.
+        bool		m_bEnableSelection;			//!< Enable the selection block.
+        bool		m_bCollate;						//!< Whether to collate copies.
+        bool		m_bPrintToFile;					//!< Whether to print to file.
+        bool		m_bSelection;					//!< Whether to print the selection Results are implementation-dependent.
+        long		m_iFromPage;					//!< The page to print from.
+        long		m_iToPage;						//!< The page to print to.
+        long		m_iMinPage;						//!< The minimum page no. to print from.
+        long		m_iMaxPage;					//!< The maximum page no. to print to.
+        long		m_iNoCopies;					//!< The number of copies to print.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.cpp	(revision 0)
@@ -0,0 +1,112 @@
+/** \file wxsprogressdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxsprogressdialog.h"
+#include <wx/progdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsProgressDialog> Reg(
+        _T("ProgressDialog"),       		// Class base name
+        wxsTTool,                       			// Item type
+        _T("Dialogs"),                  		// Category in palette
+        100,                             				// Priority in palette
+        false);                         				// We do not allow this item inside XRC files
+
+
+    WXS_ST_BEGIN(wxsProgressDialogStyles, wxT("wxPD_AUTO_HIDE | wxPD_APP_MODAL"));
+		WXS_ST_CATEGORY("wxProgressDialog")
+		WXS_ST(wxPD_APP_MODAL)
+		WXS_ST(wxPD_AUTO_HIDE)
+		WXS_ST(wxPD_CAN_ABORT)
+		WXS_ST(wxPD_CAN_SKIP)
+		WXS_ST(wxPD_ELAPSED_TIME)
+		WXS_ST(wxPD_ESTIMATED_TIME)
+		WXS_ST(wxPD_REMAINING_TIME)
+		WXS_ST(wxPD_SMOOTH)
+    WXS_ST_END()
+
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsProgressDialog::wxsProgressDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			wxsProgressDialogStyles,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sTitle(wxEmptyString),
+			m_sMessage(wxEmptyString),
+			m_iMaxValue(100),
+			m_bRunAtStartup(false)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ * This function either creates an uninitialised pointer or initialises and runs the dialogue at start-up,
+ * depending on the state of m_bRunAtStartup.
+ * There is no way to initialise the dialogue without having it run at the same time, by design.
+ */
+void wxsProgressDialog::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/progdlg.h>"), GetInfo().ClassName, 0);
+
+			if(m_bRunAtStartup){
+				// Initialise and display the dialogue at application start-up.
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%C(%t, %t, %d, %W, %T);\n"), m_sTitle.wx_str(), m_sMessage.wx_str(), m_iMaxValue);
+				#else
+				Codef(_T("%C(%t, %t, %d, %W, %T);\n"), m_sTitle.c_str(), m_sMessage.c_str(), m_iMaxValue);
+				#endif
+			}
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsProgressDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsProgressDialog::OnEnumToolProperties(long Flags)
+{
+	WXS_BOOL(wxsProgressDialog, m_bRunAtStartup, _("Run At Startup"), _T("run_at_startup"), false)
+    WXS_SHORT_STRING(wxsProgressDialog, m_sTitle, _("Title"), _T("title"), wxEmptyString, true);
+    WXS_SHORT_STRING(wxsProgressDialog, m_sMessage, _("Message"), _T("message"), wxEmptyString, true);
+	WXS_LONG(wxsProgressDialog, m_iMaxValue,  _("Max. Value"), _T("max_value"), 100)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsprogressdialog.h	(revision 0)
@@ -0,0 +1,44 @@
+/** \file wxsprogressdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSPROGRESSDIALOG_H
+#define WXSPROGRESSDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxProgressDialog dialogue. */
+class wxsProgressDialog: public wxsTool
+{
+    public:
+
+        wxsProgressDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString 	m_sTitle;				//!< The dialogue's title.
+        wxString 	m_sMessage;		//!< The dialogue message.
+        long			m_iMaxValue;		//!< The maximum progress value.
+        bool			m_bRunAtStartup;	//!< Run the dialogue at start-up. If false, the pointer is set to null and must be initialised by the user.
+};
+
+#endif      //  WXSPROGRESSDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobox.cpp	(working copy)
@@ -27,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsRadioBox> Reg(_T("RadioBox"),wxsTWidget,_T("Standard"),60);
+    wxsRegisterItem<wxsRadioBox> Reg(_T("RadioBox"),wxsTWidget,_T("Standard"),180);
 
     WXS_ST_BEGIN(wxsRadioBoxStyles,_T(""))
         WXS_ST_CATEGORY("wxRadioBox")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobutton.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsradiobutton.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsRadioButton> Reg(_T("RadioButton"),wxsTWidget,_T("Standard"),60);
+    wxsRegisterItem<wxsRadioButton> Reg(_T("RadioButton"),wxsTWidget,_T("Standard"),170);
 
     WXS_ST_BEGIN(wxsRadioButtonStyles,_T(""))
         WXS_ST_CATEGORY("wxRadioButton")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.cpp	(revision 0)
@@ -0,0 +1,463 @@
+/**  wxsrichtextctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include <wx/richtext/richtextctrl.h>
+#include "wxsrichtextctrl.h"
+
+namespace
+{
+    wxsRegisterItem<wxsRichTextCtrl> Reg(_T("RichTextCtrl"), wxsTWidget, _T("Standard"), 160);
+
+	// Commented items are currently unimplemented in wx.
+	static const long arrAlignmentStates[] = {
+//		wxTEXT_ALIGNMENT_DEFAULT,
+		wxTEXT_ALIGNMENT_LEFT,
+		wxTEXT_ALIGNMENT_CENTRE,
+		wxTEXT_ALIGNMENT_RIGHT
+//		wxTEXT_ALIGNMENT_JUSTIFIED
+	};
+	static const wxChar* arrAlignmentNames[]  = {
+//		wxT("wxTEXT_ALIGNMENT_DEFAULT"),
+		wxT("wxTEXT_ALIGNMENT_LEFT"),
+		wxT("wxTEXT_ALIGNMENT_CENTRE"),
+		wxT("wxTEXT_ALIGNMENT_RIGHT"),
+		NULL
+	};
+
+	static const long arrAttributeStates[] = {
+		wxTEXT_ATTR_TEXT_COLOUR,
+		wxTEXT_ATTR_BACKGROUND_COLOUR,
+		wxTEXT_ATTR_FONT_FACE,
+		wxTEXT_ATTR_FONT_SIZE,
+		wxTEXT_ATTR_FONT_WEIGHT,
+		wxTEXT_ATTR_FONT_ITALIC,
+		wxTEXT_ATTR_FONT_UNDERLINE,
+		wxTEXT_ATTR_FONT,
+		wxTEXT_ATTR_ALIGNMENT,
+		wxTEXT_ATTR_LEFT_INDENT,
+		wxTEXT_ATTR_RIGHT_INDENT,
+		wxTEXT_ATTR_TABS,
+		// Extra formatting flags not in wxTextAttr
+		wxTEXT_ATTR_PARA_SPACING_AFTER,
+		wxTEXT_ATTR_PARA_SPACING_BEFORE,
+		wxTEXT_ATTR_LINE_SPACING,
+		wxTEXT_ATTR_CHARACTER_STYLE_NAME,
+		wxTEXT_ATTR_PARAGRAPH_STYLE_NAME,
+		wxTEXT_ATTR_LIST_STYLE_NAME,
+		wxTEXT_ATTR_BULLET_STYLE,
+		wxTEXT_ATTR_BULLET_NUMBER,
+		wxTEXT_ATTR_BULLET_TEXT,
+		wxTEXT_ATTR_BULLET_NAME,
+		wxTEXT_ATTR_URL,
+		wxTEXT_ATTR_PAGE_BREAK,
+		wxTEXT_ATTR_EFFECTS,
+		wxTEXT_ATTR_OUTLINE_LEVEL
+	};
+	static const wxChar* arrAttributeNames[]  = {
+		wxT("wxTEXT_ATTR_TEXT_COLOUR"),
+		wxT("wxTEXT_ATTR_BACKGROUND_COLOUR"),
+		wxT("wxTEXT_ATTR_FONT_FACE"),
+		wxT("wxTEXT_ATTR_FONT_SIZE"),
+		wxT("wxTEXT_ATTR_FONT_WEIGHT"),
+		wxT("wxTEXT_ATTR_FONT_ITALIC"),
+		wxT("wxTEXT_ATTR_FONT_UNDERLINE"),
+		wxT("wxTEXT_ATTR_FONT"),
+		wxT("wxTEXT_ATTR_ALIGNMENT"),
+		wxT("wxTEXT_ATTR_LEFT_INDENT"),
+		wxT("wxTEXT_ATTR_RIGHT_INDENT"),
+		wxT("wxTEXT_ATTR_TABS"),
+		// Extra formatting flags not in wxTEXTAttr
+		wxT("wxTEXT_ATTR_PARA_SPACING_AFTER"),
+		wxT("wxTEXT_ATTR_PARA_SPACING_BEFORE"),
+		wxT("wxTEXT_ATTR_LINE_SPACING"),
+		wxT("wxTEXT_ATTR_CHARACTER_STYLE_NAME"),
+		wxT("wxTEXT_ATTR_PARAGRAPH_STYLE_NAME"),
+		wxT("wxTEXT_ATTR_LIST_STYLE_NAME"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE"),
+		wxT("wxTEXT_ATTR_BULLET_NUMBER"),
+		wxT("wxTEXT_ATTR_BULLET_TEXT"),
+		wxT("wxTEXT_ATTR_BULLET_NAME"),
+		wxT("wxTEXT_ATTR_URL"),
+		wxT("wxTEXT_ATTR_PAGE_BREAK"),
+		wxT("wxTEXT_ATTR_EFFECTS"),
+		wxT("wxTEXT_ATTR_OUTLINE_LEVEL"),
+		NULL
+	};
+
+	static const long arrBulletStates[] = {
+		wxTEXT_ATTR_BULLET_STYLE_ARABIC,
+		wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER,
+		wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER,
+		wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER,
+		wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER,
+		wxTEXT_ATTR_BULLET_STYLE_SYMBOL,
+//		wxTEXT_ATTR_BULLET_STYLE_BITMAP,
+		wxTEXT_ATTR_BULLET_STYLE_PARENTHESES,
+		wxTEXT_ATTR_BULLET_STYLE_PERIOD,
+		wxTEXT_ATTR_BULLET_STYLE_STANDARD,
+		wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS,
+		wxTEXT_ATTR_BULLET_STYLE_OUTLINE,
+		wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT,
+		wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT,
+		wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE
+	};
+	static const wxChar* arrBulletNames[]  = {
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ARABIC"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_SYMBOL"),
+//		wxT("wxTEXT_ATTR_BULLET_STYLE_BITMAP"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_PARENTHESES"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_PERIOD"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_STANDARD"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_OUTLINE"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT"),
+		wxT("wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE"),
+		NULL
+	};
+
+	static const long arrSpacingStates[] = {
+		wxTEXT_ATTR_LINE_SPACING_NORMAL,
+		wxTEXT_ATTR_LINE_SPACING_HALF,
+		wxTEXT_ATTR_LINE_SPACING_TWICE,
+	};
+	static const wxChar* arrSpacingNames[]  = {
+		wxT("wxTEXT_ATTR_LINE_SPACING_NORMAL"),
+		wxT("wxTEXT_ATTR_LINE_SPACING_HALF"),
+		wxT("wxTEXT_ATTR_LINE_SPACING_TWICE"),
+		NULL
+	};
+
+	static const long arrEffectStates[] = {
+		wxTEXT_ATTR_EFFECT_CAPITALS,
+//		wxTEXT_ATTR_EFFECT_SMALL_CAPITALS,
+		wxTEXT_ATTR_EFFECT_STRIKETHROUGH
+//		wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH,
+//		wxTEXT_ATTR_EFFECT_SHADOW,
+//		wxTEXT_ATTR_EFFECT_EMBOSS,
+//		wxTEXT_ATTR_EFFECT_OUTLINE,
+//		wxTEXT_ATTR_EFFECT_ENGRAVE,
+//		wxTEXT_ATTR_EFFECT_SUPERSCRIPT,
+//		wxTEXT_ATTR_EFFECT_SUBSCRIPT
+	};
+	static const wxChar* arrEffectNames[]  = {
+		wxT("wxTEXT_ATTR_EFFECT_CAPITALS"),
+//		wxT("wxTEXT_ATTR_EFFECT_SMALL_CAPITALS"),
+		wxT("wxTEXT_ATTR_EFFECT_STRIKETHROUGH"),
+//		wxT("wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH"),
+//		wxT("wxTEXT_ATTR_EFFECT_SHADOW"),
+//		wxT("wxTEXT_ATTR_EFFECT_EMBOSS"),
+//		wxT("wxTEXT_ATTR_EFFECT_OUTLINE"),
+//		wxT("wxTEXT_ATTR_EFFECT_ENGRAVE"),
+//		wxT("wxTEXT_ATTR_EFFECT_SUPERSCRIPT"),
+//		wxT("wxTEXT_ATTR_EFFECT_SUBSCRIPT"),
+		NULL
+	};
+
+    WXS_ST_BEGIN(wxsRichTextCtrlStyles, _T("wxRE_MULTILINE"))
+		WXS_ST(wxRE_CENTRE_CARET)
+		WXS_ST(wxRE_MULTILINE)
+		WXS_ST(wxRE_READONLY)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsRichTextCtrlEvents)
+        WXS_EVI(EVT_TEXT, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEvent, Text)
+        WXS_EVI(EVT_TEXT_ENTER, wxEVT_COMMAND_TEXT_ENTER, wxCommandEvent, TextEnter)
+        WXS_EVI(EVT_TEXT_URL, wxEVT_COMMAND_TEXT_URL, wxTextUrlEvent, TextUrl)
+        WXS_EVI(EVT_RICHTEXT_CHARACTER, wxEVT_COMMAND_RICHTEXT_CHARACTER, wxRichTextEvent, RichTextChar)
+        WXS_EVI(EVT_RICHTEXT_DELETE, wxEVT_COMMAND_RICHTEXT_DELETE, wxRichTextEvent, RichTextDelete)
+        WXS_EVI(EVT_RICHTEXT_RETURN, wxEVT_COMMAND_RICHTEXT_RETURN, wxRichTextEvent, RichTextReturn)
+        WXS_EVI(EVT_RICHTEXT_STYLE_CHANGED, wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED, wxRichTextEvent, RichTextSttyleChanged)
+        WXS_EVI(EVT_RICHTEXT_STYLESHEET_CHANGED, wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING, wxRichTextEvent, RichTextStylesheetChanged)
+        WXS_EVI(EVT_RICHTEXT_STYLESHEET_REPLACING, wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING, wxRichTextEvent, RichTextStylesheetReplacing)
+        WXS_EVI(EVT_RICHTEXT_STYLESHEET_REPLACED, wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED, wxRichTextEvent, RichTextStylesheetReplaced)
+        WXS_EVI(EVT_RICHTEXT_CONTENT_INSERTED, wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED, wxRichTextEvent, RichTextContentInserted)
+        WXS_EVI(EVT_RICHTEXT_CONTENT_DELETED, wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED, wxRichTextEvent, RichTextContentDeleted)
+        WXS_EVI(EVT_RICHTEXT_BUFFER_RESET, wxEVT_COMMAND_RICHTEXT_BUFFER_RESET, wxRichTextEvent, RichTextBufferReset)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsRichTextCtrl::wxsRichTextCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsRichTextCtrlEvents,
+        wxsRichTextCtrlStyles,
+        flVariable | flId | flPosition | flSize | flEnabled | flFocused | flHidden | flColours  | flToolTip | flHelpText | flSubclass | flMinMaxSize | flExtraCode),
+    m_sText(_("Text")),
+	m_iAlignment(wxTEXT_ALIGNMENT_LEFT),
+	m_iAttribute(0),
+	m_iBullets(wxTEXT_ATTR_BULLET_STYLE_NONE),
+	m_iSpacing(wxTEXT_ATTR_LINE_SPACING_NORMAL),
+	m_iEffects(wxTEXT_ATTR_EFFECT_NONE)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsRichTextCtrl::OnBuildCreatingCode()
+{
+	wxString sFlags;
+	bool bClrChanged = false;
+
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/richtext/richtextctrl.h>"),GetInfo().ClassName,hfInPCH);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %t, %P, %S, %T, %V, %N);\n"), m_sText.wx_str());
+            #else
+            Codef(_T("%C(%W, %I, %t, %P, %S, %T, %V, %N);\n"), m_sText.c_str());
+            #endif
+
+			wxString sAttrName = GetCoderContext()->GetUniqueName(_T("rchtxtAttr"));
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("\twxRichTextAttr %s;\n"), sAttrName.wx_str());
+			#else
+            Codef(_T("\twxRichTextAttr %s;\n"), sAttrName.c_str());
+			#endif
+			// Alignment.
+			// wxTEXT_ALIGNMENT_LEFT is the default.
+			if(m_iAlignment == wxTEXT_ALIGNMENT_CENTRE){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetAlignment(wxTEXT_ALIGNMENT_CENTRE);\n"), sAttrName.wx_str());
+				#else
+				Codef( _T("%s.SetAlignment(wxTEXT_ALIGNMENT_CENTRE);\n"), sAttrName.c_str());
+				#endif
+            }
+			else if(m_iAlignment == wxTEXT_ALIGNMENT_RIGHT){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetAlignment(wxTEXT_ALIGNMENT_RIGHT);\n"), sAttrName.wx_str());
+				#else
+				Codef( _T("%s.SetAlignment(wxTEXT_ALIGNMENT_RIGHT);\n"), sAttrName.c_str());
+				#endif
+            }
+			// Attribute flags.
+            for(int i = 0;arrAttributeNames[i];i++){
+                if(m_iAttribute & arrAttributeStates[i]){
+                	sFlags << arrAttributeNames[i] << _T("|");
+                }
+            }
+			if(!sFlags.IsEmpty()){
+				sFlags.RemoveLast();
+
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetFlags(%s);\n"), sAttrName.wx_str(), sFlags.wx_str());
+				#else
+				Codef( _T("%s.SetFlags(%s);\n"), sAttrName.c_str(), sFlags.c_str());
+				#endif
+            }
+			// Bullet flags.
+			sFlags.Clear();
+            for(int i = 0;arrBulletNames[i];i++){
+                if(m_iBullets & arrBulletStates[i]){
+                	sFlags << arrBulletNames[i] << _T("|");
+                }
+            }
+			if(!sFlags.IsEmpty()){
+				sFlags.RemoveLast();
+
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetBulletStyle(%s);\n"), sAttrName.wx_str(), sFlags.wx_str());
+				#else
+				Codef( _T("%s.SetBulletStyle(%s);\n"), sAttrName.c_str(), sFlags.c_str());
+				#endif
+            }
+			// Line spacing.
+			// wxTEXT_ATTR_LINE_SPACING_NORMAL is the default.
+			if(m_iSpacing == wxTEXT_ATTR_LINE_SPACING_HALF){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetLineSpacing(wxTEXT_ATTR_LINE_SPACING_HALF);\n"), sAttrName.wx_str());
+				#else
+				Codef( _T("%s.SetLineSpacing(wxTEXT_ATTR_LINE_SPACING_HALF);\n"), sAttrName.c_str());
+				#endif
+            }
+			else if(m_iSpacing== wxTEXT_ATTR_LINE_SPACING_TWICE){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetLineSpacing(wxTEXT_ATTR_LINE_SPACING_TWICE);\n"), sAttrName.wx_str());
+				#else
+				Codef( _T("%s.SetLineSpacing(wxTEXT_ATTR_LINE_SPACING_TWICE);\n"), sAttrName.c_str());
+				#endif
+            }
+			// Text effect flags.
+			sFlags.Clear();
+            for(int i = 0;arrEffectNames[i];i++){
+                if(m_iEffects & arrEffectStates[i]){
+                	sFlags << arrEffectNames[i] << _T("|");
+                }
+            }
+			if(!sFlags.IsEmpty()){
+				sFlags.RemoveLast();
+
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetTextEffects(%s);\n"), sAttrName.wx_str(), sFlags.wx_str());
+				Codef( _T("%s.SetTextEffectFlags(%s);\n"), sAttrName.wx_str(), sFlags.wx_str());
+				#else
+				Codef( _T("%s.SetTextEffects(%s);\n"), sAttrName.c_str(), sFlags.c_str());
+				Codef( _T("%s.SetTextEffectFlags(%s);\n"), sAttrName.c_str(), sFlags.c_str());
+				#endif
+            }
+			// Text colours.
+			wxString ss = m_cdTextColour.BuildCode(GetCoderContext());
+			if(!ss.IsEmpty()){
+				bClrChanged = true;
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetTextColour(%s);\n"), sAttrName.wx_str(), ss.wx_str());
+				#else
+				Codef( _T("%s.SetTextColour(%s);\n"), sAttrName.c_str(), ss.c_str());
+				#endif
+			}
+			ss = m_cdTextBackground.BuildCode(GetCoderContext());
+			if(!ss.IsEmpty()){
+				bClrChanged = true;
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%s.SetBackgroundColour(%s);\n"), sAttrName.wx_str(), ss.wx_str());
+				#else
+				Codef( _T("%s.SetBackgroundColour(%s);\n"), sAttrName.c_str(), ss.c_str());
+				#endif
+			}
+			// Font characteristics.
+			wxString sFntName = GetCoderContext()->GetUniqueName(_T("Font"));
+			wxString sFnt = m_fdFont.BuildFontCode(sFntName, GetCoderContext());
+			if(sFnt.Len() > 0){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef(_T("%s"), sFnt.wx_str());
+				Codef( _T("%s.SetFontFaceName(%s.GetFaceName());\n"), sAttrName.wx_str(), sFnt.wx_str());
+				Codef( _T("%s.SetFontSize(%s.GetPointSize());\n"), sAttrName.wx_str(), sFnt.wx_str());
+				Codef( _T("%s.SetFontStyle(%s.GetStyle());\n"), sAttrName.wx_str(), sFnt.wx_str());
+				Codef( _T("%s.SetFontUnderlined(%s.GetUnderlined());\n"), sAttrName.wx_str(), sFnt.wx_str());
+				Codef( _T("%s.SetFontWeight(%s.GetWeight());\n"), sAttrName.wx_str(), sFnt.wx_str());
+				#else
+				Codef(_T("%s"), sFnt.c_str());
+				Codef( _T("%s.SetFontFaceName(%s.GetFaceName());\n"), sAttrName.c_str(), sFntName.c_str());
+				Codef( _T("%s.SetFontSize(%s.GetPointSize());\n"), sAttrName.c_str(), sFntName.c_str());
+				Codef( _T("%s.SetFontStyle(%s.GetStyle());\n"), sAttrName.c_str(), sFntName.c_str());
+				Codef( _T("%s.SetFontUnderlined(%s.GetUnderlined());\n"), sAttrName.c_str(), sFntName.c_str());
+				Codef( _T("%s.SetFontWeight(%s.GetWeight());\n"), sAttrName.c_str(), sFntName.c_str());
+				#endif
+			}
+
+			if(m_iAlignment != wxTEXT_ALIGNMENT_LEFT || m_iAttribute != 0 || m_iBullets != wxTEXT_ATTR_BULLET_STYLE_NONE ||
+					m_iSpacing != wxTEXT_ATTR_LINE_SPACING_NORMAL || m_iEffects != wxTEXT_ATTR_EFFECT_NONE || bClrChanged || !sFnt.IsEmpty()){
+				#if wxCHECK_VERSION(2, 9, 0)
+				Codef( _T("%ASetBasicStyle(%s);\n"), sAttrName.wx_str());
+				#else
+				Codef( _T("%ASetBasicStyle(%s);\n"), sAttrName.c_str());
+				#endif
+			}
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsRichTextCtrl::OnBuildCreatingCode"), GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject* wxsRichTextCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
+{
+    wxRichTextCtrl* Preview = new wxRichTextCtrl(Parent, GetId(), m_sText, Pos(Parent), Size(Parent), Style());
+	wxRichTextAttr rchtxtAttr;
+	bool bClrChanged = false;
+
+	// Attribute flags.
+	rchtxtAttr.SetFlags(m_iAttribute);
+	// Alignment.
+	// wxTEXT_ALIGNMENT_LEFT is the default.
+	if(m_iAlignment == wxTEXT_ALIGNMENT_CENTRE){
+		rchtxtAttr.SetAlignment(wxTEXT_ALIGNMENT_CENTRE);
+	}
+	else if(m_iAlignment == wxTEXT_ALIGNMENT_RIGHT){
+		rchtxtAttr.SetAlignment(wxTEXT_ALIGNMENT_RIGHT);
+	}
+	rchtxtAttr.SetFlags(m_iBullets);
+	rchtxtAttr.SetLineSpacing(m_iSpacing);
+	wxColour cc = m_cdTextColour.GetColour();
+	if(cc.IsOk()){
+		bClrChanged = true;
+		rchtxtAttr.SetTextColour(cc);
+	}
+	cc = m_cdTextBackground.GetColour();
+	if(cc.IsOk()){
+		bClrChanged = true;
+		rchtxtAttr.SetBackgroundColour(cc);
+	}
+	rchtxtAttr.SetTextEffects(m_iEffects);
+	rchtxtAttr.SetTextEffectFlags(m_iEffects);
+	// Font characteristics.
+	wxFont fnt = m_fdFont.BuildFont();
+	if(fnt.IsOk()){
+		rchtxtAttr.SetFontFaceName(fnt.GetFaceName());
+		rchtxtAttr.SetFontSize(fnt.GetPointSize());
+		rchtxtAttr.SetFontStyle(fnt.GetStyle());
+		rchtxtAttr.SetFontUnderlined(fnt.GetUnderlined());
+		rchtxtAttr.SetFontWeight(fnt.GetWeight());
+	}
+
+	if(m_iAlignment != wxTEXT_ALIGNMENT_LEFT || m_iAttribute != 0 || m_iBullets != wxTEXT_ATTR_BULLET_STYLE_NONE ||
+			m_iSpacing != wxTEXT_ATTR_LINE_SPACING_NORMAL || m_iEffects != wxTEXT_ATTR_EFFECT_NONE || bClrChanged || fnt.IsOk()){
+		Preview->SetBasicStyle(rchtxtAttr);
+	}
+
+    return SetupWindow(Preview, Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsRichTextCtrl::OnEnumWidgetProperties(long Flags)
+{
+    WXS_STRING(wxsRichTextCtrl, m_sText, _("Text"), _T("value"), wxEmptyString, false)
+	WXS_FLAGS(wxsRichTextCtrl, m_iAttribute, _("Attributes"), _T("attributes"), arrAttributeStates, arrAttributeNames, 0)
+	WXS_FLAGS(wxsRichTextCtrl, m_iBullets, _("Bullet Style"), _T("bullet_style"), arrBulletStates, arrBulletNames, wxTEXT_ATTR_BULLET_STYLE_NONE)
+	WXS_ENUM(wxsRichTextCtrl, m_iSpacing, _("Line Spacing"), _T("line_spacing"), arrSpacingStates, arrSpacingNames, wxTEXT_ATTR_LINE_SPACING_NORMAL)
+	WXS_ENUM(wxsRichTextCtrl, m_iAlignment, _("Paragraph Alignment"), _T("paragraph_alignment"), arrAlignmentStates, arrAlignmentNames, wxTEXT_ALIGNMENT_LEFT)
+	WXS_FLAGS(wxsRichTextCtrl, m_iEffects, _("Text Effects"), _T("text_effects"), arrEffectStates, arrEffectNames, wxTEXT_ATTR_EFFECT_NONE)
+	WXS_COLOUR(wxsRichTextCtrl, m_cdTextColour, _("Text Colour"), wxT("text_colour"))
+	WXS_COLOUR(wxsRichTextCtrl, m_cdTextBackground, _("Text Background Colour"), wxT("text_background_colour"))
+    WXS_FONT(wxsRichTextCtrl, m_fdFont, _("Font"), _T("font"))
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextctrl.h	(revision 0)
@@ -0,0 +1,50 @@
+/**  wxsrichtextctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSRICHTEXTCTRL_H
+#define WXSRICHTEXTCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxRichTextCtrl widget */
+class wxsRichTextCtrl: public wxsWidget
+{
+    public:
+
+        wxsRichTextCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxString 				m_sText;								//!< The default text to display.
+        long						m_iAlignment;						//!< Text alignment value.
+        long						m_iAttribute;							//!< Attribute flags passed to SetFlags().
+        long						m_iBullets;							//!< Bullet style flags.
+        long						m_iSpacing;							//!< Line spacing value.
+        long						m_iEffects;							//!< Text effect flags.
+        wxsColourData	m_cdTextColour;					//!< The text foreground colour.
+        wxsColourData	m_cdTextBackground;		//!< The text background colour.
+		wxsFontData		m_fdFont;								//!< The font.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.cpp	(revision 0)
@@ -0,0 +1,123 @@
+/** \file wxsrichtextformattingdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxsrichtextformattingdialog.h"
+#include <wx/richtext/richtextformatdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsRichTextFormattingDialog> Reg(
+        _T("RichTextFormattingDialog"),      // Class base name
+        wxsTTool,                       						// Item type
+        _T("Dialogs"),                  					// Category in palette
+        90,                             								// Priority in palette
+        false);                         							// We do not allow this item inside XRC files
+
+    static const long arrPageValues[] = {
+		wxRICHTEXT_FORMAT_BULLETS,
+		wxRICHTEXT_FORMAT_FONT,
+		wxRICHTEXT_FORMAT_HELP_BUTTON,
+		wxRICHTEXT_FORMAT_INDENTS_SPACING,
+		wxRICHTEXT_FORMAT_LIST_STYLE,
+    	wxRICHTEXT_FORMAT_STYLE_EDITOR,
+		wxRICHTEXT_FORMAT_TABS
+	};
+
+    static const wxChar* arrPageValueNames[] = {
+		_T("wxRICHTEXT_FORMAT_BULLETS"),
+    	_T("wxRICHTEXT_FORMAT_FONT"),
+		_T("wxRICHTEXT_FORMAT_HELP_BUTTON"),
+		_T("wxRICHTEXT_FORMAT_INDENTS_SPACING"),
+		_T("wxRICHTEXT_FORMAT_LIST_STYLE"),
+    	_T("wxRICHTEXT_FORMAT_STYLE_EDITOR"),
+    	_T("wxRICHTEXT_FORMAT_TABS"),
+		NULL
+	};
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsRichTextFormattingDialog::wxsRichTextFormattingDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			NULL,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sTitle(_T("Formatting")),
+			m_iFlags(wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS|wxRICHTEXT_FORMAT_INDENTS_SPACING)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsRichTextFormattingDialog::OnBuildCreatingCode()
+{
+	wxString sFlags;
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/richtext/richtextformatdlg.h>"), GetInfo().ClassName, 0);
+
+            for(int i = 0;arrPageValueNames[i];i++){
+                if(m_iFlags & arrPageValues[i]){
+                	sFlags << arrPageValueNames[i] << _T("|");
+                }
+            }
+			if(sFlags.IsEmpty()){
+				sFlags = _T("0");
+			}
+            else{
+				sFlags.RemoveLast();
+            }
+
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%s, %W, %t, %I, %P, %S, %T);\n"), sFlags.wx_str(), m_sTitle.wx_str());
+			#else
+            Codef(_T("%C(%s, %W, %t, %I, %P, %S, %T);\n"), sFlags.c_str(), m_sTitle.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsRichTextFormattingDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsRichTextFormattingDialog::OnEnumToolProperties(long Flags)
+{
+	WXS_FLAGS(wxsRichTextFormattingDialog, m_iFlags, _("Page Flags"), _T("page_flags"), arrPageValues, arrPageValueNames,
+								wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS|wxRICHTEXT_FORMAT_INDENTS_SPACING )
+    WXS_SHORT_STRING(wxsRichTextFormattingDialog, m_sTitle, _("Title"), _T("title"), _("Formatting"), true);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextformattingdialog.h	(revision 0)
@@ -0,0 +1,42 @@
+/** \file wxsrichtextformattingdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSRICHTEXTFORMATTINGDIALOG_H
+#define WXSRICHTEXTFORMATTINGDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxRichTextFormattingDialog dialogue. */
+class wxsRichTextFormattingDialog: public wxsTool
+{
+    public:
+
+        wxsRichTextFormattingDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString 	m_sTitle;				//!< The dialogue's caption.
+		long			m_iFlags;				//!< Page flags.
+};
+
+#endif      //  WXSRICHTEXTFORMATTINGDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.cpp	(revision 0)
@@ -0,0 +1,142 @@
+/** \file wxsrichtextstyleorganiserdialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxsrichtextstyleorganiserdialog.h"
+#include <wx/richtext/richtextstyledlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsRichTextStyleOrganiserDialog> Reg(
+        _T("RichTextStyleOrganiserDialog"),      // Class base name
+        wxsTTool,                       								// Item type
+        _T("Dialogs"),                  							// Category in palette
+        80,                             										// Priority in palette
+        false);                         									// We do not allow this item inside XRC files
+
+    static const long arrStyleValues[] = {
+		wxRICHTEXT_ORGANISER_APPLY_STYLES,
+		wxRICHTEXT_ORGANISER_CREATE_STYLES,
+		wxRICHTEXT_ORGANISER_DELETE_STYLES,
+		wxRICHTEXT_ORGANISER_EDIT_STYLES,
+		wxRICHTEXT_ORGANISER_OK_CANCEL,
+		wxRICHTEXT_ORGANISER_RENAME_STYLES,
+		wxRICHTEXT_ORGANISER_RENUMBER,
+		wxRICHTEXT_ORGANISER_SHOW_ALL,
+		wxRICHTEXT_ORGANISER_SHOW_CHARACTER,
+		wxRICHTEXT_ORGANISER_SHOW_LIST,
+		wxRICHTEXT_ORGANISER_SHOW_PARAGRAPH
+	};
+
+    static const wxChar* arrStyleValueNames[] = {
+    	_T("wxRICHTEXT_ORGANISER_APPLY_STYLES"),
+    	_T("wxRICHTEXT_ORGANISER_CREATE_STYLES"),
+    	_T("wxRICHTEXT_ORGANISER_DELETE_STYLES"),
+		_T("wxRICHTEXT_ORGANISER_EDIT_STYLES"),
+		_T("wxRICHTEXT_ORGANISER_OK_CANCEL"),
+		_T("wxRICHTEXT_ORGANISER_RENAME_STYLES"),
+		_T("wxRICHTEXT_ORGANISER_RENUMBER"),
+		_T("wxRICHTEXT_ORGANISER_SHOW_ALL"),
+		_T("wxRICHTEXT_ORGANISER_SHOW_CHARACTER"),
+		_T("wxRICHTEXT_ORGANISER_SHOW_LIST"),
+		_T("wxRICHTEXT_ORGANISER_SHOW_PARAGRAPH"),
+		NULL
+	};
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsRichTextStyleOrganiserDialog::wxsRichTextStyleOrganiserDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			NULL,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sCaption(SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE),
+			m_iFlags(wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_DELETE_STYLES|wxRICHTEXT_ORGANISER_CREATE_STYLES|
+								wxRICHTEXT_ORGANISER_APPLY_STYLES|wxRICHTEXT_ORGANISER_EDIT_STYLES|wxRICHTEXT_ORGANISER_RENAME_STYLES)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsRichTextStyleOrganiserDialog::OnBuildCreatingCode()
+{
+	wxString sFlags;
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T(" <wx/richtext/richtextstyledlg.h>"), GetInfo().ClassName, 0);
+
+            for(int i = 0;arrStyleValueNames[i];i++){
+                if(m_iFlags & arrStyleValues[i]){
+                	sFlags << arrStyleValueNames[i] << _T("|");
+                }
+            }
+			if(sFlags.IsEmpty()){
+				sFlags = _T("0");
+			}
+            else{
+				sFlags.RemoveLast();
+            }
+
+			#if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%s, NULL, NULL, %W, %I, %t, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE);\n"),
+							sFlags.wx_str(), m_sCaption.wx_str());
+			#else
+            Codef(_T("%C(%s, NULL, NULL, %W, %I, %t, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, ")
+							wxT("SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE);\n"),
+							sFlags.c_str(), m_sCaption.c_str());
+			#endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsRichTextStyleOrganiserDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsRichTextStyleOrganiserDialog::OnEnumToolProperties(long Flags)
+{
+    // Default to wxRICHTEXT_ORGANISER_ORGANISE.
+	WXS_FLAGS(wxsRichTextStyleOrganiserDialog, m_iFlags, _("Style Flags"), _T("style_flags"), arrStyleValues, arrStyleValueNames,
+														wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_DELETE_STYLES|wxRICHTEXT_ORGANISER_CREATE_STYLES
+														|wxRICHTEXT_ORGANISER_APPLY_STYLES|wxRICHTEXT_ORGANISER_EDIT_STYLES|wxRICHTEXT_ORGANISER_RENAME_STYLES )
+    WXS_SHORT_STRING(wxsRichTextStyleOrganiserDialog, m_sCaption, _("Caption"), _T("caption"), SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE, true);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsrichtextstyleorganiserdialog.h	(revision 0)
@@ -0,0 +1,42 @@
+/** \file wxsrichtextstyleorganiserdialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSRICHTEXTSTYLEORGANISERDIALOG_H
+#define WXSRICHTEXTSTYLEORGANISERDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxRichTextStyleOrganiserDialog dialogue. */
+class wxsRichTextStyleOrganiserDialog: public wxsTool
+{
+    public:
+
+        wxsRichTextStyleOrganiserDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString 	m_sCaption;		//!< The dialogue's caption.
+		long			m_iFlags;				//!< Page flags.
+};
+
+#endif      //  WXSRICHTEXTSTYLEORGANISERDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashlayoutwindow.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashlayoutwindow.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashlayoutwindow.cpp	(working copy)
@@ -32,7 +32,7 @@
         _T("SashLayoutWindow"),
         wxsTContainer,
         _T("Layout"),
-        10,
+        50,
         false);
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashwindow.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashwindow.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssashwindow.cpp	(working copy)
@@ -28,7 +28,7 @@
         _T("SashWindow"),
         wxsTContainer,
         _T("Layout"),                   // Category in palette
-        11,                             // Priority in palette
+        40,                             // Priority in palette
         false);                         // We do not allow this item inside XRC files
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrollbar.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrollbar.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrollbar.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsScrollBar> Reg(_T("ScrollBar"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsScrollBar> Reg(_T("ScrollBar"),wxsTWidget,_T("Standard"),150);
 
     WXS_ST_BEGIN(wxsScrollBarStyles,_T(""))
         WXS_ST_CATEGORY("wxScrollBar")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrolledwindow.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrolledwindow.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsscrolledwindow.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsScrolledWindow> Reg(_T("ScrolledWindow"),wxsTContainer, _T("Standard"), 75);
+    wxsRegisterItem<wxsScrolledWindow> Reg(_T("ScrolledWindow"),wxsTContainer, _T("Standard"), 140);
 
     WXS_ST_BEGIN(wxsScrolledWindowStyles,_T("wxHSCROLL|wxVSCROLL"))
         WXS_ST_CATEGORY("wxScrolledWindow")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.cpp	(revision 0)
@@ -0,0 +1,135 @@
+/** \file wxssearchctrl.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxssearchctrl.h"
+#include "wx/srchctrl.h"
+
+
+namespace
+{
+    wxsRegisterItem<wxsSearchCtrl> Reg(_T("SearchCtrl"), wxsTWidget, _T("Standard"), 130);
+
+    WXS_ST_BEGIN(wxsSearchCtrlStyles, wxEmptyString)
+        WXS_ST_CATEGORY("wxSearchCtrl")
+        WXS_ST(wxTE_PROCESS_ENTER)
+        WXS_ST(wxTE_PROCESS_TAB)
+        WXS_ST(wxTE_NOHIDESEL)
+        WXS_ST(wxTE_LEFT)
+        WXS_ST(wxTE_CENTRE)
+        WXS_ST(wxTE_RIGHT)
+        WXS_ST(wxTE_CAPITALIZE)
+        WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsSearchCtrlEvents)
+        WXS_EVI(EVT_TEXT, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEvent, Text)
+        WXS_EVI(EVT_TEXT_ENTER, wxEVT_COMMAND_TEXT_ENTER, wxCommandEvent, TextEnter)
+        WXS_EVI(EVT_SEARCHCTRL_SEARCH_BTN, wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEvent, SearchClicked)
+        WXS_EVI(EVT_SEARCHCTRL_CANCEL_BTN, wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEvent, CancelClicked)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsSearchCtrl::wxsSearchCtrl(wxsItemResData* Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsSearchCtrlEvents,
+        wxsSearchCtrlStyles),
+        m_sValue(wxEmptyString),
+        m_bShowSearchBtn(true),
+        m_bShowCancelBtn(false)
+{}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsSearchCtrl::OnBuildCreatingCode()
+{
+    switch ( GetLanguage() )
+    {
+        case wxsCPP:
+        {
+            AddHeader(_T("<wx/srchctrl.h>"),GetInfo().ClassName,hfInPCH);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %I, %t, %P, %S, %T, %V, %N);\n"), m_sValue.wx_str(),);
+            #else
+            Codef(_T("%C(%W, %I, %t, %P, %S, %T, %V, %N);\n"), m_sValue.c_str());
+            #endif
+
+			if(!m_bShowSearchBtn){
+				Codef(_T("%AShowSearchButton(%b);\n"), m_bShowSearchBtn);
+			}
+			if(m_bShowCancelBtn){
+				Codef(_T("%AShowCancelButton(%b);\n"), m_bShowCancelBtn);
+			}
+
+            BuildSetupWindowCode();
+            return;
+        }
+
+        default:
+        {
+            wxsCodeMarks::Unknown(_T("wxsSearchCtrl::OnBuildCreatingCode"),GetLanguage());
+        }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long					The control flags.
+ * \return wxObject* 					The constructed control.
+ *
+ */
+wxObject* wxsSearchCtrl::OnBuildPreview(wxWindow* parent,long flags)
+{
+    wxSearchCtrl* preview = new wxSearchCtrl(parent, GetId(), m_sValue, Pos(parent), Size(parent), Style());
+
+	if(!m_bShowSearchBtn){
+		preview->ShowSearchButton(m_bShowSearchBtn);
+	}
+	if(m_bShowCancelBtn){
+		preview->ShowCancelButton(m_bShowCancelBtn);
+	}
+
+    return SetupWindow(preview,flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsSearchCtrl::OnEnumWidgetProperties(long flags)
+{
+    WXS_SHORT_STRING(wxsSearchCtrl, m_sValue, _("Value"), _T("value"), wxEmptyString, false)
+	WXS_BOOL(wxsSearchCtrl, m_bShowSearchBtn, _("Search Button"), _T("search_button"), true)
+	WXS_BOOL(wxsSearchCtrl, m_bShowCancelBtn, _("Cancel Button"), _T("cancel_button"), false)
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssearchctrl.h	(revision 0)
@@ -0,0 +1,44 @@
+/** \file wxssearchctrl.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010  Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSSEARCHCTRL_H
+#define WXSSEARCHCTRL_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxSearchCtrl widget */
+class wxsSearchCtrl: public wxsWidget
+{
+    public:
+
+        wxsSearchCtrl(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxString 			m_sValue;									//!< The default text value.
+        bool					m_bShowSearchBtn;					//!< If true, show the "Search" button.
+        bool					m_bShowCancelBtn;					//!< If true, show the "Cancel" button.
+};
+
+#endif // WXSSEARCHCTRL_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.cpp	(revision 0)
@@ -0,0 +1,136 @@
+/** \file wxssimplehtmllistbox.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include <wx/htmllbox.h>
+#include "wxssimplehtmllistbox.h"
+
+namespace
+{
+    wxsRegisterItem<wxsSimpleHtmlListBox> Reg(_T("SimpleHtmlListBox"), wxsTWidget, _T("Standard"), 120);
+
+    WXS_ST_BEGIN(wxsSimpleHtmlListBoxStyles, wxT("wxHLB_DEFAULT_STYLE"))
+    WXS_ST_CATEGORY("wxSimpleHtmlListBox")
+    WXS_ST(wxHLB_DEFAULT_STYLE)
+    WXS_ST(wxHLB_MULTIPLE)
+    WXS_ST(wxLB_EXTENDED)
+    WXS_ST(wxLB_HSCROLL)
+    WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsSimpleHtmlListBoxEvents)
+    WXS_EVI(EVT_LISTBOX, wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEvent, Select)
+    WXS_EVI(EVT_LISTBOX_DCLICK, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEvent, DClick)
+    WXS_EVI(EVT_HTML_CELL_CLICKED, wxEVT_COMMAND_HTML_CELL_CLICKED, wxHtmlCellEvent, CellClicked)
+    WXS_EVI(EVT_HTML_CELL_HOVER, wxEVT_COMMAND_HTML_CELL_HOVER, wxHtmlCellEvent, CellHover)
+    WXS_EVI(EVT_HTML_LINK_CLICKED, wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEvent, LinkClicked)
+    WXS_EV_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsSimpleHtmlListBox::wxsSimpleHtmlListBox(wxsItemResData *Data):
+    wxsWidget(
+        Data,
+        &Reg.Info,
+        wxsSimpleHtmlListBoxEvents,
+        wxsSimpleHtmlListBoxStyles,
+        flVariable | flId | flPosition | flSize | flEnabled | flFocused | flHidden | flColours  | flToolTip | flHelpText | flSubclass | flMinMaxSize | flExtraCode),
+    DefaultSelection(-1)
+{
+}
+
+/*! \brief Create the initial control.
+ *
+ * \return void
+ *
+ */
+void wxsSimpleHtmlListBox::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            {
+                AddHeader(_T("<wx/htmllbox.h>"), GetInfo().ClassName, hfInPCH);
+                Codef(_T("%C(%W, %I, %P, %S, 0, 0, %T, %V, %N);\n"));
+                for(size_t i = 0; i <  ArrayChoices.GetCount(); ++i)
+                {
+                    if(DefaultSelection == (int)i)
+                    {
+                        Codef(_T("%ASetSelection( "));
+                    }
+#if wxCHECK_VERSION(2, 9, 0)
+                    Codef(_T("%AAppend(%t)"), ArrayChoices[i].wx_str());
+#else
+                    Codef(_T("%AAppend(%t)"), ArrayChoices[i].c_str());
+#endif
+                    if(DefaultSelection == (int)i)
+                    {
+                        Codef(_T(" )"));
+                    }
+                    Codef(_T(";\n"));
+                }
+
+                BuildSetupWindowCode();
+                return;
+            }
+
+        default:
+            {
+                wxsCodeMarks::Unknown(_T("wxsSimpleHtmlListBox::OnBuildCreatingCode"), GetLanguage());
+            }
+    }
+}
+
+/*! \brief	Build the control preview.
+ *
+ * \param parent wxWindow*	The parent window.
+ * \param flags long				The control flags.
+ * \return wxObject* 				The constructed control.
+ *
+ */
+wxObject *wxsSimpleHtmlListBox::OnBuildPreview(wxWindow *Parent, long Flags)
+{
+    wxSimpleHtmlListBox *Preview = new wxSimpleHtmlListBox(Parent, GetId(), Pos(Parent), Size(Parent), 0, 0, Style());
+    for(size_t i = 0; i <  ArrayChoices.GetCount(); ++i)
+    {
+        int Val = Preview->Append(ArrayChoices[i]);
+        if((int)i == DefaultSelection)
+        {
+            Preview->SetSelection(Val);
+        }
+    }
+
+    return SetupWindow(Preview, Flags);
+}
+
+/*! \brief Enumerate the control's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsSimpleHtmlListBox::OnEnumWidgetProperties(long Flags)
+{
+    WXS_ARRAYSTRING(wxsSimpleHtmlListBox, ArrayChoices, _("Choices"), _T("content"), _T("item"))
+    WXS_LONG(wxsSimpleHtmlListBox, DefaultSelection, _("Default"), _T("default"), 0)
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssimplehtmllistbox.h	(revision 0)
@@ -0,0 +1,43 @@
+/** \file wxssimplehtmllistbox.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2006-2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSSIMPLEHTMLLISTBOX_H
+#define WXSSIMPLEHTMLLISTBOX_H
+
+#include "../wxswidget.h"
+
+/** \brief Class for wxsSimpleHtmlListBox widget */
+class wxsSimpleHtmlListBox: public wxsWidget
+{
+    public:
+
+        wxsSimpleHtmlListBox(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long Flags);
+        virtual void OnEnumWidgetProperties(long Flags);
+
+        wxArrayString ArrayChoices;		//!< The choice list.
+        long DefaultSelection;				//!< The default list selection.
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxssinglechoicedialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
@@ -26,7 +27,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsSingleChoiceDialog> Reg(_T("SingleChoiceDialog"),wxsTTool,_T("Dialogs"),50,false);
+    wxsRegisterItem<wxsSingleChoiceDialog> Reg(_T("SingleChoiceDialog"),wxsTTool,_T("Dialogs"),70,false);
 
     WXS_ST_BEGIN(wxsSingleChoiceDialogStyles,_T("wxCHOICEDLG_STYLE"))
         WXS_ST_CATEGORY("wxSingleChoiceDialog")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssinglechoicedialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxssinglechoicedialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2007  Bartlomiej Swiecki
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssingleinstancechecker.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssingleinstancechecker.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssingleinstancechecker.cpp	(working copy)
@@ -29,7 +29,7 @@
         _T("SingleInstanceChecker"),  // Class name
         wxsTTool,                     // Item type
         _T("Tools"),                  // Category in palette
-        75,                           // Priority in palette
+        50,                           // Priority in palette
         false);                       // We do not allow this item inside XRC files
 }
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsslider.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsslider.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsslider.cpp	(working copy)
@@ -27,7 +27,7 @@
 // TODO: Add some flag like "Using Selection range" to note when using selmin / selmax (current comparision to 0 isn't enough)
 namespace
 {
-    wxsRegisterItem<wxsSlider> Reg(_T("Slider"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsSlider> Reg(_T("Slider"),wxsTWidget,_T("Standard"),110);
 
     WXS_ST_BEGIN(wxsSliderStyles,_T(""))
         WXS_ST(wxSL_HORIZONTAL)
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspacer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspacer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspacer.cpp	(working copy)
@@ -34,7 +34,7 @@
         _T(""),
         _T("www.wxwidgets.org"),
         _T("Layout"),
-        30,
+        100,
         _T(""),
         wxsCPP,
         2,6,
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinbutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinbutton.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinbutton.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsSpinButton> Reg(_T("SpinButton"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsSpinButton> Reg(_T("SpinButton"),wxsTWidget,_T("Standard"),100);
 
     WXS_ST_BEGIN(wxsSpinButtonStyles,_T("wxSP_VERTICAL|wxSP_ARROW_KEYS"))
         WXS_ST_CATEGORY("wxsSpinButton")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsspinctrl.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsSpinCtrl> Reg(_T("SpinCtrl"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsSpinCtrl> Reg(_T("SpinCtrl"),wxsTWidget,_T("Standard"),90);
 
     WXS_ST_BEGIN(wxsSpinCtrlStyles,_T(""))
         WXS_ST_CATEGORY("wxSpinCtrl")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbitmap.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbitmap.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbitmap.cpp	(working copy)
@@ -27,9 +27,10 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStaticBitmap> Reg(_T("StaticBitmap"),wxsTWidget,_T("Standard"),70);
+    wxsRegisterItem<wxsStaticBitmap> Reg(_T("StaticBitmap"),wxsTWidget,_T("Standard"),80);
 
-    WXS_ST_BEGIN(wxsStaticBitmapStyles,_T(""))
+	// Cryogen 25/3/10 Bug #15354. Default to wxSIMPLE_BORDER.
+    WXS_ST_BEGIN(wxsStaticBitmapStyles,_T("wxSIMPLE_BORDER"))
         WXS_ST_CATEGORY("wxStaticBitmap")
         WXS_ST_DEFAULTS()
     WXS_ST_END()
@@ -38,29 +39,7 @@
     WXS_EV_BEGIN(wxsStaticBitmapEvents)
     WXS_EV_END()
 
-
-    class Background: public wxPanel
-    {
-        public:
-
-            Background(wxWindow* Parent): wxPanel(Parent)
-            {
-            }
-
-            void OnPaint(wxPaintEvent& event)
-            {
-                wxPaintDC dc(this);
-                dc.SetPen(wxColour(0x80,0x80,0x80));
-                dc.SetBrush(*wxTRANSPARENT_BRUSH);
-                dc.DrawRectangle(0,0,GetSize().GetWidth(),GetSize().GetHeight());
-            }
-
-            DECLARE_EVENT_TABLE()
-    };
-
-    BEGIN_EVENT_TABLE(Background,wxPanel)
-        EVT_PAINT(Background::OnPaint)
-    END_EVENT_TABLE()
+// Cryogen 24/3/10 Bug #15354. Removed class Background.
 }
 
 wxsStaticBitmap::wxsStaticBitmap(wxsItemResData* Data):
@@ -104,24 +83,10 @@
 
 wxObject* wxsStaticBitmap::OnBuildPreview(wxWindow* Parent,long Flags)
 {
-    if ( Flags & wxsFlags::pfExact )
-    {
-        wxStaticBitmap* Preview = new wxStaticBitmap(Parent,GetId(),Bitmap.GetPreview(Size(Parent)),Pos(Parent),Size(Parent),Style());
-        return SetupWindow(Preview,Flags);
-    }
-
-    // We do fake background under the bitmap - that's because bitmaps tend to be
-    // invisible when not selected
-
-    Background* Back = new Background(Parent);
-    wxStaticBitmap* Preview = new wxStaticBitmap(Back,GetId(),Bitmap.GetPreview(Size(Parent)),Pos(Parent),Size(Parent),Style());
-    SetupWindow(Preview,Flags);
-    wxBoxSizer* Sizer = new wxBoxSizer(wxHORIZONTAL);
-    Sizer->Add(Preview,1,wxEXPAND,0);
-    Back->SetSizer(Sizer);
-    Sizer->SetSizeHints(Back);
-    Sizer->Fit(Back);
-    return Back;
+	// Cryogen 24/3/10 Bug #15354. Since we're no longer using the Background class we don't need to differentiate between cases where
+	// the user has assigned a bitmap and those where he hasn't and we're using the fake background. Just return the preview.
+	wxStaticBitmap* Preview = new wxStaticBitmap(Parent,GetId(),Bitmap.GetPreview(Size(Parent)),Pos(Parent),Size(Parent),Style());
+    return SetupWindow(Preview,Flags);
 }
 
 void wxsStaticBitmap::OnEnumWidgetProperties(long Flags)
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbox.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbox.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticbox.cpp	(working copy)
@@ -25,7 +25,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStaticBox> Reg(_T("StaticBox"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsStaticBox> Reg(_T("StaticBox"),wxsTWidget,_T("Standard"),70);
 
     WXS_ST_BEGIN(wxsStaticBoxStyles,_T(""))
         WXS_ST_CATEGORY("wxStaticBox")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticboxsizer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticboxsizer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstaticboxsizer.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStaticBoxSizer> Reg(_T("StaticBoxSizer"),wxsTSizer,_T("Layout"),40);
+    wxsRegisterItem<wxsStaticBoxSizer> Reg(_T("StaticBoxSizer"),wxsTSizer,_T("Layout"),20);
 }
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatictext.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatictext.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatictext.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStaticText> Reg(_T("StaticText"),wxsTWidget,_T("Standard"),80);
+    wxsRegisterItem<wxsStaticText> Reg(_T("StaticText"),wxsTWidget,_T("Standard"),50);
 
     WXS_ST_BEGIN(wxsStaticTextStyles,_T(""))
         WXS_ST_CATEGORY("wxStaticText")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatusbar.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatusbar.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstatusbar.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStatusBar> Reg(_T("StatusBar"),wxsTTool,_T("Tools"),50);
+    wxsRegisterItem<wxsStatusBar> Reg(_T("StatusBar"),wxsTTool,_T("Tools"),40);
 
     WXS_ST_BEGIN(wxsStatusBarStyles,_T(""))
         WXS_ST_CATEGORY("wxStatusBar")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstddialogbuttonsizer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstddialogbuttonsizer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstddialogbuttonsizer.cpp	(working copy)
@@ -31,7 +31,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsStdDialogButtonSizer> Reg(_("StdDialogButtonSizer"),wxsTSizer,_T("Layout"),50);
+    wxsRegisterItem<wxsStdDialogButtonSizer> Reg(_("StdDialogButtonSizer"),wxsTSizer,_T("Layout"),10);
 
     class wxsSizerPreview: public wxPanel
     {
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstopwatch.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstopwatch.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxsstopwatch.cpp	(working copy)
@@ -30,7 +30,7 @@
         _T("StopWatch"),                // Class base name
         wxsTTool,                       // Item type
         _T("Tools"),                    // Category in palette
-        75,                             // Priority in palette
+        30,                             // Priority in palette
         false);                         // We do not allow this item inside XRC files
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.cpp	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxssymbolpickerdialog.cpp
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2008 Ron Collins
 *
@@ -29,7 +30,7 @@
         _T("SymbolPickerDialog"),       // Class base name
         wxsTTool,                       // Item type
         _T("Dialogs"),                  // Category in palette
-        40,                             // Priority in palette
+        60,                             // Priority in palette
         false);                         // We do not allow this item inside XRC files
 
 
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxssymbolpickerdialog.h	(working copy)
@@ -1,4 +1,5 @@
-/*
+/** \file wxssymbolpickerdialog.h
+*
 * This file is part of wxSmith plugin for Code::Blocks Studio
 * Copyright (C) 2008 Ron Collins
 *
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextctrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextctrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextctrl.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsTextCtrl> Reg(_T("TextCtrl"),wxsTWidget,_T("Standard"),75);
+    wxsRegisterItem<wxsTextCtrl> Reg(_T("TextCtrl"),wxsTWidget,_T("Standard"),40);
 
     WXS_ST_BEGIN(wxsTextCtrlStyles,_T(""))
         WXS_ST(wxTE_NO_VSCROLL)
@@ -48,8 +48,6 @@
         WXS_ST_DEFAULTS()
     WXS_ST_END()
 
-
-
     WXS_EV_BEGIN(wxsTextCtrlEvents)
         WXS_EVI(EVT_TEXT,wxEVT_COMMAND_TEXT_UPDATED,wxCommandEvent,Text)
         WXS_EVI(EVT_TEXT_ENTER,wxEVT_COMMAND_TEXT_ENTER,wxCommandEvent,TextEnter)
@@ -69,7 +67,6 @@
     MaxLength(0)
 {}
 
-
 void wxsTextCtrl::OnBuildCreatingCode()
 {
     switch ( GetLanguage() )
@@ -94,14 +91,12 @@
     }
 }
 
-
 wxObject* wxsTextCtrl::OnBuildPreview(wxWindow* Parent,long Flags)
 {
     wxTextCtrl* Preview = new wxTextCtrl(Parent,GetId(),Text,Pos(Parent),Size(Parent),Style());
     return SetupWindow(Preview,Flags);
 }
 
-
 void wxsTextCtrl::OnEnumWidgetProperties(long Flags)
 {
     WXS_STRING(wxsTextCtrl,Text,_("Text"),_T("value"),_T(""),false)
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.cpp	(revision 0)
@@ -0,0 +1,112 @@
+/** \file wxstextentrydialog.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "../wxsitemresdata.h"
+#include "wxstextentrydialog.h"
+#include <wx/textdlg.h>
+
+
+namespace
+{
+    wxsRegisterItem<wxsTextEntryDialog> Reg(
+        _T("TextEntryDialog"),       		// Class base name
+        wxsTTool,                       		// Item type
+        _T("Dialogs"),                  		// Category in palette
+        50,                             			// Priority in palette
+        false);                         			// We do not allow this item inside XRC files
+
+
+    WXS_ST_BEGIN(wxsTextEntryDialogStyles, wxT("wxOK | wxCANCEL | wxCENTRE | wxWS_EX_VALIDATE_RECURSIVELY"));
+		WXS_ST_CATEGORY("wxTextEntryDialog")
+		WXS_ST(wxOK)
+		WXS_ST(wxCANCEL)
+		WXS_ST(wxCENTRE)
+		WXS_ST(wxWS_EX_VALIDATE_RECURSIVELY)
+		WXS_ST(wxTE_MULTILINE)
+		WXS_ST(wxTE_PASSWORD)
+		WXS_ST(wxTE_READONLY)
+		WXS_ST(wxTE_RICH)
+		WXS_ST(wxTE_RICH2)
+		WXS_ST(wxTE_NOHIDESEL)
+		WXS_ST(wxHSCROLL)
+		WXS_ST(wxTE_CENTRE)
+		WXS_ST(wxTE_RIGHT)
+		WXS_ST(wxTE_CHARWRAP)
+		WXS_ST(wxTE_WORDWRAP)
+		WXS_ST(wxTE_BESTWRAP)
+		WXS_ST(wxTE_CAPITALIZE)
+    WXS_ST_END()
+}
+
+/*! \brief Ctor
+ *
+ * \param Data wxsItemResData*	The control's resource data.
+ *
+ */
+wxsTextEntryDialog::wxsTextEntryDialog(wxsItemResData *Data):
+    wxsTool(Data,
+			&Reg.Info,
+			NULL,
+			wxsTextEntryDialogStyles,
+			(flVariable | flId | flSubclass | flExtraCode)),
+			m_sCaption(wxGetTextFromUserPromptStr),
+			m_sMessage(wxEmptyString),
+			m_sDefaultValue(wxEmptyString)
+{
+}
+
+/*! \brief Create the dialogue.
+ *
+ * \return void
+ *
+ */
+void wxsTextEntryDialog::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            AddHeader(_T("<wx/textdlg.h>"), GetInfo().ClassName, 0);
+
+            #if wxCHECK_VERSION(2, 9, 0)
+            Codef(_T("%C(%W, %t, %t, %t, %T, %P);\n"), m_sMessage.wx_str(), m_sCaption.wx_str(), m_sDefaultValue.wx_str());
+            #else
+            Codef(_T("%C(%W, %t, %t, %t, %T, %P);\n"), m_sMessage.c_str(), m_sCaption.c_str(), m_sDefaultValue.c_str());
+            #endif
+
+            BuildSetupWindowCode();
+            break;
+
+        default:
+            wxsCodeMarks::Unknown(_T("wxsTextEntryDialog::OnBuildCreatingCode"), GetLanguage());
+    }
+}
+
+/*! \brief Enumerate the dialogue's properties.
+ *
+ * \param flags long	The control flags.
+ * \return void
+ *
+ */
+void wxsTextEntryDialog::OnEnumToolProperties(long Flags)
+{
+    WXS_SHORT_STRING(wxsTextEntryDialog, m_sCaption, _("Caption"), _T("caption"), wxGetTextFromUserPromptStr, false);
+    WXS_SHORT_STRING(wxsTextEntryDialog, m_sMessage, _("Message"), _T("message"), wxEmptyString, false);
+    WXS_SHORT_STRING(wxsTextEntryDialog, m_sDefaultValue, _("Default Value"), _T("default_value"), wxEmptyString, false);
+}
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstextentrydialog.h	(revision 0)
@@ -0,0 +1,43 @@
+/** \file wxstextentrydialog.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXTEXTENTRYDIALOG_H
+#define WXTEXTENTRYDIALOG_H
+
+#include "../wxstool.h"
+
+/** \brief Class for wxTextEntryDialog dialogue. */
+class wxsTextEntryDialog: public wxsTool
+{
+    public:
+
+        wxsTextEntryDialog(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnBuildCreatingCode();
+        virtual void OnEnumToolProperties(long Flags);
+
+        wxString m_sCaption;			//!< The caption text.
+        wxString m_sMessage;			//!< The message text.
+        wxString m_sDefaultValue;		//!< The default text to insert into the text box.
+};
+
+#endif      //  WXTEXTENTRYDIALOG_H
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsTimer> Reg(_T("Timer"),wxsTTool,_T("Tools"),80,false);
+    wxsRegisterItem<wxsTimer> Reg(_T("Timer"),wxsTTool,_T("Tools"),20,false);
 
     WXS_EV_BEGIN(wxsTimerEvents)
         WXS_EVI(EVT_TIMER,wxEVT_TIMER,wxTimerEvent,Trigger)
@@ -43,7 +43,7 @@
         flVariable|flId|flSubclass|flExtraCode)
 {
     m_Interval = 0;
-    m_OneShoot = false;
+    m_OneShot = false;
 }
 
 void wxsTimer::OnBuildCreatingCode()
@@ -54,7 +54,7 @@
         {
             AddHeader(_T("<wx/timer.h>"),GetInfo().ClassName,hfInPCH);
             Codef(_T("%ASetOwner(this, %I);\n"));
-            if ( m_Interval > 0 ) Codef(_T("%AStart(%d, %b);\n"),m_Interval,m_OneShoot);
+            if ( m_Interval > 0 ) Codef(_T("%AStart(%d, %b);\n"),m_Interval,m_OneShot);
             BuildSetupWindowCode();
             return;
         }
@@ -69,5 +69,5 @@
 void wxsTimer::OnEnumToolProperties(long Flags)
 {
     WXS_LONG(wxsTimer,m_Interval,_("Interval"),_T("interval"),0);
-    WXS_BOOL(wxsTimer,m_OneShoot,_("One Shoot"),_T("oneshoot"),false);
+    WXS_BOOL(wxsTimer,m_OneShot,_("One Shot"),_T("oneshot"),false);
 }
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.h	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstimer.h	(working copy)
@@ -38,7 +38,7 @@
         virtual bool OnIsPointer() { return false; }
 
         long m_Interval;
-        bool m_OneShoot;
+        bool m_OneShot;
 };
 
 #endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstogglebutton.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstogglebutton.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstogglebutton.cpp	(working copy)
@@ -26,7 +26,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsToggleButton> Reg(_T("ToggleButton"),wxsTWidget,_T("Standard"),50);
+    wxsRegisterItem<wxsToggleButton> Reg(_T("ToggleButton"),wxsTWidget,_T("Standard"),30);
 
     WXS_ST_BEGIN(wxsToggleButtonStyles,_T(""))
         WXS_ST_CATEGORY("wxToggleButton")
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstoolbar.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstoolbar.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstoolbar.cpp	(working copy)
@@ -29,7 +29,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsToolBar> Reg(_T("ToolBar"),wxsTTool,_T("Tools"),80);
+    wxsRegisterItem<wxsToolBar> Reg(_T("ToolBar"),wxsTTool,_T("Tools"),10);
 
     class ToolBarEditorDialog: public wxScrollingDialog
     {
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.cpp	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.cpp	(revision 0)
@@ -0,0 +1,449 @@
+/** \file wxstreebook.cpp
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#include "wxstreebook.h"
+#include "../../wxsadvqppchild.h"
+#include "../wxsitemresdata.h"
+#include <wx/treebook.h>
+#include <wx/menu.h>
+#include <wx/textdlg.h>
+#include "../wxsflags.h"
+#include "logmanager.h"
+
+using namespace wxsFlags;
+
+//(*Headers(wxsTreebookParentQP)
+#include <wx/sizer.h>
+#include <wx/textctrl.h>
+#include <wx/checkbox.h>
+#include <wx/panel.h>
+//*)
+
+//(*InternalHeaders(wxsTreebookParentQP)
+#include <wx/intl.h>
+#include <wx/string.h>
+//*)
+
+namespace
+{
+    wxsRegisterItem<wxsTreebook> Reg(_T("Treebook"), wxsTContainer, _T("Standard"), 20);
+
+    /** \brief Extra parameters for Treebook's children
+    *
+    * I store the data required to manage the tree hierarchy here.
+    * Child windows are stored as a flat list here but reconstructed in tree order when the code is built.
+    * The parent node is the node in the tree to which a given node is attached. If the parent node value is -1,
+    * the default, the node is attached to the trunk of the tree. Since the number assigned by the control to a node
+    * changes with each insertion and deletion, the collection is re-parsed after each such operation and the node
+    * numbers adjusted.
+    */
+    class wxsTreebookExtra: public wxsPropertyContainer
+    {
+        public:
+
+            wxsTreebookExtra():
+                m_Label(_("Page name")),
+                m_Selected(false),
+                m_iParentNode(0),
+                m_iTreePos(0)
+            {}
+
+            wxString m_Label;
+            bool m_Selected;
+            int m_iIndex;
+            long m_iParentNode;
+            int m_iTreePos;
+
+        protected:
+
+            virtual void OnEnumProperties(long Flags)
+            {
+                WXS_SHORT_STRING(wxsTreebookExtra, m_Label, _("Page name"), _T("label"), _T(""), false);
+                WXS_BOOL(wxsTreebookExtra, m_Selected, _("Page selected"), _T("selected"), false);
+            }
+    };
+
+    /** \brief Internal Quick properties panel */
+    class wxsTreebookParentQP: public wxsAdvQPPChild
+    {
+        public:
+
+            wxsTreebookParentQP(wxsAdvQPP *parent, wxsTreebookExtra *Extra, wxWindowID id = -1):
+                wxsAdvQPPChild(parent, _("Treebook")),
+                m_Extra(Extra)
+            {
+                //(*Initialize(wxsTreebookParentQP)
+                Create(parent, id, wxDefaultPosition, wxSize(120,133), wxTAB_TRAVERSAL, _T("id"));
+                FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
+                StaticBoxSizer1 = new wxStaticBoxSizer(wxVERTICAL, this, _("Label"));
+                Label = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
+                StaticBoxSizer1->Add(Label, 0, wxBOTTOM|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
+                FlexGridSizer1->Add(StaticBoxSizer1, 1, wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
+                StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Selection"));
+                Selected = new wxCheckBox(this, ID_CHECKBOX1, _("Selected"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHECKBOX1"));
+                Selected->SetValue(false);
+                StaticBoxSizer2->Add(Selected, 1, wxBOTTOM|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
+                FlexGridSizer1->Add(StaticBoxSizer2, 1, wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
+                SetSizer(FlexGridSizer1);
+                FlexGridSizer1->SetSizeHints(this);
+
+                Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&wxsTreebookParentQP::OnLabelText);
+                Connect(ID_CHECKBOX1,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&wxsTreebookParentQP::OnSelectionChange);
+                //*)
+                ReadData();
+
+                Label->Connect(-1, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&wxsTreebookParentQP::OnLabelKillFocus, 0, this);
+            }
+
+            virtual ~wxsTreebookParentQP()
+            {
+                //(*Destroy(wxsTreebookParentQP)
+                //*)
+            }
+
+        private:
+
+            virtual void Update()
+            {
+                ReadData();
+            }
+
+            void ReadData()
+            {
+                if(!GetPropertyContainer() || !m_Extra) return;
+                Label->SetValue(m_Extra->m_Label);
+                Selected->SetValue(m_Extra->m_Selected);
+            }
+
+            void SaveData()
+            {
+                if(!GetPropertyContainer() || !m_Extra) return;
+                m_Extra->m_Label = Label->GetValue();
+                m_Extra->m_Selected = Selected->GetValue();
+                NotifyChange();
+            }
+
+            //(*Identifiers(wxsTreebookParentQP)
+            static const long ID_TEXTCTRL1;
+            static const long ID_CHECKBOX1;
+            //*)
+
+            //(*Handlers(wxsTreebookParentQP)
+            void OnLabelText(wxCommandEvent &event);
+            void OnLabelKillFocus(wxFocusEvent &event);
+            void OnSelectionChange(wxCommandEvent &event);
+            //*)
+
+            //(*Declarations(wxsTreebookParentQP)
+            wxStaticBoxSizer* StaticBoxSizer2;
+            wxCheckBox* Selected;
+            wxTextCtrl* Label;
+            wxStaticBoxSizer* StaticBoxSizer1;
+            wxFlexGridSizer* FlexGridSizer1;
+            //*)
+
+            wxsTreebookExtra *m_Extra;
+
+            DECLARE_EVENT_TABLE()
+    };
+
+    //(*IdInit(wxsTreebookParentQP)
+    const long wxsTreebookParentQP::ID_TEXTCTRL1 = wxNewId();
+    const long wxsTreebookParentQP::ID_CHECKBOX1 = wxNewId();
+    //*)
+
+    BEGIN_EVENT_TABLE(wxsTreebookParentQP, wxPanel)
+        //(*EventTable(wxsTreebookParentQP)
+        //*)
+    END_EVENT_TABLE()
+
+    void wxsTreebookParentQP::OnLabelText(wxCommandEvent &event)       {
+        SaveData();
+    }
+    void wxsTreebookParentQP::OnLabelKillFocus(wxFocusEvent &event)    {
+        SaveData();
+        event.Skip();
+    }
+    void wxsTreebookParentQP::OnSelectionChange(wxCommandEvent &event) {
+        SaveData();
+    }
+
+    WXS_ST_BEGIN(wxsTreebookStyles, wxT("wxBK_DEFAULT"))
+    WXS_ST_CATEGORY("wxTreebook")
+    WXS_ST(wxBK_DEFAULT)
+    WXS_ST(wxBK_LEFT)
+    WXS_ST(wxBK_RIGHT)
+    WXS_ST(wxBK_TOP)
+    WXS_ST(wxBK_BOTTOM)
+    WXS_ST_DEFAULTS()
+    WXS_ST_END()
+
+    WXS_EV_BEGIN(wxsTreebookEvents)
+    WXS_EVI(EVT_TREEBOOK_PAGE_CHANGED, wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED, wxNotebookEvent, PageChanged)
+    WXS_EVI(EVT_TREEBOOK_PAGE_CHANGING, wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING, wxNotebookEvent, PageChanging)
+    WXS_EVI(EVT_TREEBOOK_NODE_COLLAPSED, wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED, wxNotebookEvent, NodeCollapsed)
+    WXS_EVI(EVT_TREEBOOK_NODE_EXPANDED, wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED, wxNotebookEvent, NodeExpanded)
+    WXS_EV_END()
+
+    const long popupNewPageId = wxNewId();
+    const long popupSubPageId = wxNewId();
+    const long popupPrevPageId = wxNewId();
+    const long popupNextPageId = wxNewId();
+    const long popupFirstId = wxNewId();
+    const long popupLastId = wxNewId();
+}
+
+wxsTreebook::wxsTreebook(wxsItemResData *Data):
+    wxsContainer(
+        Data,
+        &Reg.Info,
+        wxsTreebookEvents,
+        wxsTreebookStyles)
+{
+}
+
+void wxsTreebook::OnEnumContainerProperties(long Flags)
+{
+}
+
+bool wxsTreebook::OnCanAddChild(wxsItem *Item, bool ShowMessage)
+{
+    if(Item->GetType() == wxsTSizer)
+    {
+        if(ShowMessage)
+        {
+            wxMessageBox(_("Can not add sizer into treebook.\nAdd panels first"));
+        }
+        return false;
+    }
+
+    return wxsContainer::OnCanAddChild(Item, ShowMessage);
+}
+
+wxsPropertyContainer *wxsTreebook::OnBuildExtra()
+{
+    return new wxsTreebookExtra();
+}
+
+wxString wxsTreebook::OnXmlGetExtraObjectClass()
+{
+    return _T("treebookpage");
+}
+
+void wxsTreebook::OnAddChildQPP(wxsItem *Child, wxsAdvQPP *QPP)
+{
+    wxsTreebookExtra *Extra = (wxsTreebookExtra*)GetChildExtra(GetChildIndex(Child));
+    if(Extra)
+    {
+        QPP->Register(new wxsTreebookParentQP(QPP, Extra), _("Treebook"));
+    }
+}
+
+wxObject *wxsTreebook::OnBuildPreview(wxWindow *Parent, long PreviewFlags)
+{
+    UpdateCurrentSelection();
+    wxTreebook *Treebook = new wxTreebook(Parent, -1, Pos(Parent), Size(Parent), Style());
+
+    if(!GetChildCount() && !(PreviewFlags & pfExact))
+    {
+        // Adding additional empty Treebook to prevent from having zero-sized Treebook
+        Treebook->AddPage(new wxPanel(Treebook, -1, wxDefaultPosition, wxSize(50, 50)), _("No pages"));
+    }
+
+    AddChildrenPreview(Treebook, PreviewFlags);
+
+	for ( int i=0; i<GetChildCount(); i++ )
+	{
+	    wxsItem* Child = GetChild(i);
+	    wxsTreebookExtra* Extra = (wxsTreebookExtra*)GetChildExtra(i);
+
+	    wxWindow* ChildPreview = wxDynamicCast(GetChild(i)->GetLastPreview(),wxWindow);
+	    if ( !ChildPreview ) continue;
+
+	    bool Selected = (Child == m_CurrentSelection);
+	    if ( PreviewFlags & pfExact ) Selected = Extra->m_Selected;
+
+	    Treebook->AddPage(ChildPreview,Extra->m_Label,Selected);
+	}
+
+    return Treebook;
+}
+
+void wxsTreebook::OnBuildCreatingCode()
+{
+    switch(GetLanguage())
+    {
+        case wxsCPP:
+            {
+                AddHeader(_T("<wx/treebook.h>"), GetInfo().ClassName, 0);
+                AddHeader(_T("<wx/treebook.h>"), _T("wxTreebookEvent"), 0);
+                Codef(_T("%C(%W, %I, %P, %S, %T, %N);\n"));
+                BuildSetupWindowCode();
+                AddChildrenCode();
+
+                for(int i = 0; i < GetChildCount(); i++)
+                {
+                    wxsTreebookExtra *Extra = (wxsTreebookExtra*)GetChildExtra(i);
+#if wxCHECK_VERSION(2, 9, 0)
+                    Codef(_T("%AAddPage(%o, %t, %b);\n"), i, Extra->m_Label.wx_str(), Extra->m_Selected);
+#else
+                    Codef(_T("%AAddPage(%o, %t, %b);\n"), i, Extra->m_Label.c_str(), Extra->m_Selected);
+#endif
+                }
+
+                break;
+            }
+
+        default:
+            {
+                wxsCodeMarks::Unknown(_T("wxsTreebook::OnBuildCreatingCode"), GetLanguage());
+            }
+    }
+}
+
+bool wxsTreebook::OnMouseClick(wxWindow *Preview, int PosX, int PosY)
+{
+    UpdateCurrentSelection();
+    wxTreebook *Treebook = (wxTreebook*)Preview;
+    int Hit = Treebook->HitTest(wxPoint(PosX, PosY));
+    if(Hit != wxNOT_FOUND)
+    {
+        wxsItem *OldSel = m_CurrentSelection;
+        m_CurrentSelection = GetChild(Hit);
+        GetResourceData()->SelectItem(m_CurrentSelection, true);
+        return OldSel != m_CurrentSelection;
+    }
+    return false;
+}
+
+bool wxsTreebook::OnIsChildPreviewVisible(wxsItem *Child)
+{
+    UpdateCurrentSelection();
+    return Child == m_CurrentSelection;
+}
+
+bool wxsTreebook::OnEnsureChildPreviewVisible(wxsItem *Child)
+{
+    if(IsChildPreviewVisible(Child)) return false;
+    m_CurrentSelection = Child;
+    UpdateCurrentSelection();
+    return true;
+}
+
+void wxsTreebook::UpdateCurrentSelection()
+{
+    wxsItem *NewCurrentSelection = 0;
+    for(int i = 0; i < GetChildCount(); i++)
+    {
+        if(m_CurrentSelection == GetChild(i)) return;
+        wxsTreebookExtra *Extra = (wxsTreebookExtra*)GetChildExtra(i);
+        if((i == 0) || Extra->m_Selected)
+        {
+            NewCurrentSelection = GetChild(i);
+        }
+    }
+    m_CurrentSelection = NewCurrentSelection;
+}
+
+void wxsTreebook::OnPreparePopup(wxMenu *Menu)
+{
+    Menu->Append(popupNewPageId, _("Add new page"));
+    Menu->AppendSeparator();
+    // This require some extra fixing
+    //wxMenuItem* Item1 = Menu->Append(popupPrevPageId,_("Go to previous page"));
+    //wxMenuItem* Item2 = Menu->Append(popupNextPageId,_("Go to next page"));
+    //Menu->AppendSeparator();
+    wxMenuItem *Item3 = Menu->Append(popupFirstId, _("Make current page the first one"));
+    wxMenuItem *Item4 = Menu->Append(popupLastId, _("Make current page the last one"));
+    if(!m_CurrentSelection || GetChildIndex(m_CurrentSelection) == 0)
+    {
+        //Item1->Enable(false);
+        Item3->Enable(false);
+    }
+    if(!m_CurrentSelection || GetChildIndex(m_CurrentSelection) == GetChildCount() - 1)
+    {
+        //Item2->Enable(false);
+        Item4->Enable(false);
+    }
+}
+
+bool wxsTreebook::OnPopup(long Id)
+{
+    if(Id == popupNewPageId)
+    {
+        wxTextEntryDialog Dlg(0, _("Enter name of new page"), _("Adding page"), _("New page"));
+        if(Dlg.ShowModal() == wxID_OK)
+        {
+            wxsItem *Panel = wxsItemFactory::Build(_T("wxPanel"), GetResourceData());
+            if(Panel)
+            {
+                GetResourceData()->BeginChange();
+                if(AddChild(Panel))
+                {
+                    wxsTreebookExtra *Extra = (wxsTreebookExtra*)GetChildExtra(GetChildCount() - 1);
+                    if(Extra)
+                    {
+                        Extra->m_Label = Dlg.GetValue();
+                    }
+                    m_CurrentSelection = Panel;
+                }
+                else
+                {
+                    delete Panel;
+                }
+                GetResourceData()->EndChange();
+            }
+        }
+    }
+    else if(Id == popupNextPageId)
+    {
+        GetResourceData()->BeginChange();
+        int Index = GetChildIndex(m_CurrentSelection);
+        m_CurrentSelection = GetChild(Index - 1);
+        UpdateCurrentSelection();
+        GetResourceData()->EndChange();
+    }
+    else if(Id == popupPrevPageId)
+    {
+        GetResourceData()->BeginChange();
+        int Index = GetChildIndex(m_CurrentSelection);
+        m_CurrentSelection = GetChild(Index + 1);
+        UpdateCurrentSelection();
+        GetResourceData()->EndChange();
+    }
+    else if(Id == popupFirstId)
+    {
+        GetResourceData()->BeginChange();
+        MoveChild(GetChildIndex(m_CurrentSelection), 0);
+        GetResourceData()->EndChange();
+    }
+    else if(Id == popupLastId)
+    {
+        GetResourceData()->BeginChange();
+        MoveChild(GetChildIndex(m_CurrentSelection), GetChildCount() - 1);
+        GetResourceData()->EndChange();
+    }
+    else
+    {
+        return wxsContainer::OnPopup(Id);
+    }
+    return true;
+}
+
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.h
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.h	(revision 0)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreebook.h	(revision 0)
@@ -0,0 +1,54 @@
+/** \file wxstreebook.h
+*
+* This file is part of wxSmith plugin for Code::Blocks Studio
+* Copyright (C) 2010 Gary Harris
+*
+* wxSmith is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 3 of the License, or
+* (at your option) any later version.
+*
+* wxSmith is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with wxSmith. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+#ifndef WXSTREEBOOK_H
+#define WXSTREEBOOK_H
+
+#include "../wxscontainer.h"
+
+/** \brief wxTreebook container */
+class wxsTreebook : public wxsContainer
+{
+	public:
+
+		wxsTreebook(wxsItemResData* Data);
+
+    private:
+
+        virtual void OnEnumContainerProperties(long Flags);
+        virtual bool OnCanAddChild(wxsItem* Item,bool ShowMessage);
+        virtual wxsPropertyContainer* OnBuildExtra();
+        virtual wxString OnXmlGetExtraObjectClass();
+        virtual void OnAddChildQPP(wxsItem* Child,wxsAdvQPP* QPP);
+        virtual wxObject* OnBuildPreview(wxWindow* Parent,long PreviewFlags);
+        virtual void OnBuildCreatingCode();
+        virtual bool OnMouseClick(wxWindow* Preview,int PosX,int PosY);
+        virtual bool OnIsChildPreviewVisible(wxsItem* Child);
+        virtual bool OnEnsureChildPreviewVisible(wxsItem* Child);
+        virtual void OnPreparePopup(wxMenu* Menu);
+        virtual bool OnPopup(long Id);
+
+        void UpdateCurrentSelection();
+
+        wxsItem						*m_CurrentSelection;		//!< The currently selected page.
+
+};
+
+#endif
Index: src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreectrl.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreectrl.cpp	(revision 6404)
+++ src/plugins/contrib/wxSmith/wxwidgets/defitems/wxstreectrl.cpp	(working copy)
@@ -24,7 +24,7 @@
 
 namespace
 {
-    wxsRegisterItem<wxsTreeCtrl> Reg(_T("TreeCtrl"),wxsTWidget,_T("Standard"),70);
+    wxsRegisterItem<wxsTreeCtrl> Reg(_T("TreeCtrl"),wxsTWidget,_T("Standard"),10);
 
     WXS_ST_BEGIN(wxsTreeCtrlStyles,_T("wxTR_DEFAULT_STYLE"))
         WXS_ST_CATEGORY("wxTreeCtrl")
