Difference between revisions of "Comparison of wxSmith features"

From Code::Blocks
 
(74 intermediate revisions by 18 users not shown)
Line 1: Line 1:
Here is a list of [[wxSmith]] features when compared to other [[wikipedia:WxWidgets|wxWidgets]] [[wikipedia:Rapid application development|RAD]] solutions.  
+
[[Category:wxSmith Documentation]]
 +
Here is a list of [[wxSmith plugin|wxSmith]] features when compared to other [[wikipedia:WxWidgets|wxWidgets]] [[wikipedia:Rapid application development|RAD]] solutions.  
 +
 
 
Note that support for new features are added on a daily basis for some of these [[wikipedia:Rapid application development|RADs]].
 
Note that support for new features are added on a daily basis for some of these [[wikipedia:Rapid application development|RADs]].
<br>Please update this list when something gets added.
+
 
 +
Please update this list when something gets added.
  
 
==General information==
 
==General information==
Line 13: Line 16:
 
! [[wikipedia:Software licence|Software licence]]
 
! [[wikipedia:Software licence|Software licence]]
 
|- style="border: solid 1px gray;"
 
|- style="border: solid 1px gray;"
! style="text-align: left; background: #ececec;" | [[wxSmith]]
+
! style="text-align: left; background: #ececec;" | [[wxSmith plugin|wxSmith]]
 
| Bartlomiej Swiecki
 
| Bartlomiej Swiecki
 
| Free
 
| Free
Line 19: Line 22:
 
| [[wikipedia:GNU General Public License|GPL]]
 
| [[wikipedia:GNU General Public License|GPL]]
 
|- style="border: solid 1px gray;"
 
|- style="border: solid 1px gray;"
! style="text-align: left; background: #ececec;" | [[DialogBlocks]]
+
! style="text-align: left; background: #ececec;" | [http://www.anthemion.co.uk/dialogblocks/ DialogBlocks]
 
| Julian Smart
 
| Julian Smart
| Free (trial), $65 (normal), $30 (student)
+
| Free (trial), €66 (normal), €35 (student)
 
| No
 
| No
 
| [[wikipedia:Proprietary software|Proprietary]]
 
| [[wikipedia:Proprietary software|Proprietary]]
 
|- style="border: solid 1px gray;"
 
|- style="border: solid 1px gray;"
! style="text-align: left; background: #ececec;" | [[wxDesigner]]
+
! style="text-align: left; background: #ececec;" | [http://www.roebling.de/ wxDesigner]
| Robert Roembling
+
| Robert Roebling
| Free (trial), $129 (normal), $29 (student)
+
| Free (trial), €129 (normal), €29 (student)
 
| No
 
| No
 
| [[wikipedia:Proprietary software|Proprietary]]
 
| [[wikipedia:Proprietary software|Proprietary]]
 
|- style="border: solid 1px gray;"
 
|- style="border: solid 1px gray;"
! style="text-align: left; background: #ececec;" | [[wxFormBuilder]]
+
! style="text-align: left; background: #ececec;" | [http://wxformbuilder.org/ wxFormBuilder]
| José Antonio Hurtado, Juan Antonio Ortega
+
| José Antonio Hurtado, Juan Antonio Ortega, Ryan Mulder, Ryan Pusztai, Michal Bliznak
 
| Free
 
| Free
 
| Yes
 
| Yes
 
| [[wikipedia:GNU General Public License|GPL]]
 
| [[wikipedia:GNU General Public License|GPL]]
 
|- style="border: solid 1px gray;"
 
|- style="border: solid 1px gray;"
! style="text-align: left; background: #ececec;" | [[VisualWx]]
+
! style="text-align: left; background: #ececec;" | [http://visualwx.altervista.org/ VisualWx]
 
| {{dunno}}
 
| {{dunno}}
 
| Free
 
| Free
 
| No
 
| No
 
| {{dunno}}
 
| {{dunno}}
 +
|- style="border: solid 1px gray;"
 +
! style="text-align: left; background: #ececec;" | [http://wxdsgn.sf.net/ wxDevC++]
 +
| Guru Kathiresan , Tony Reina, Malcolm Nealon, Joel Low
 +
| Free
 +
| Yes
 +
| [[wikipedia:GNU General Public License|GPL]]
 +
|- style="border: solid 1px gray;"
 +
! style="text-align: left; background: #ececec;" | [http://twinforms.com/ wxForms for Delphi / C++ Builder]
 +
| Guru Kathiresan
 +
| Free (trial), $29.99
 +
| No
 +
| [[wikipedia:Proprietary software|Proprietary]]
 
|- style="background: #ececec; border: solid 1px gray;"
 
|- style="background: #ececec; border: solid 1px gray;"
 
! [[wikipedia:Rapid application development|RAD]]
 
! [[wikipedia:Rapid application development|RAD]]
Line 54: Line 69:
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
! style="width: 12em" | Widget
+
! style="width: 17em" | Widget
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wxDevC++
 +
! wxForms
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAnimationCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiManager
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiNotebook
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiToolBar
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiToolBarItem
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiToolBarLabel
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiToolBarSeparator
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxAuiToolBarSpacer
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-
 
|-
 
! style="text-align: left; background: #ececec;" | wxBitmapButton
 
! style="text-align: left; background: #ececec;" | wxBitmapButton
| {{no}}
 
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxBitmapComboBox
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxBoxSizer
 
! style="text-align: left; background: #ececec;" | wxBoxSizer
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 76: Line 178:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxButton
 
! style="text-align: left; background: #ececec;" | wxButton
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 86: Line 190:
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxCheckBox
 
! style="text-align: left; background: #ececec;" | wxCheckBox
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 100: Line 208:
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxChoice
 
! style="text-align: left; background: #ececec;" | wxChoice
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 112: Line 224:
 
! style="text-align: left; background: #ececec;" | wxChoicebook
 
! style="text-align: left; background: #ececec;" | wxChoicebook
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxColourDialog
 +
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxColourPickerCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxComboBox
 
! style="text-align: left; background: #ececec;" | wxComboBox
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 125: Line 259:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxContextHelpButton
 
! style="text-align: left; background: #ececec;" | wxContextHelpButton
 +
| {{yes}}{{refun|svn}}
 +
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxDatePickerCtrl
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | wxDatePickerCtrl
+
! style="text-align: left; background: #ececec;" | wxDialUpManager
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxDirDialog
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxDirPickerCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{dunno}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxFileDialog
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | wxDynamicSashWindow
+
! style="text-align: left; background: #ececec;" | wxFilePickerCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxFindReplaceDialog
 +
| {{yes}}{{refun|svn}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
Line 151: Line 336:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxFontDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxFontPickerCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxGauge
 
! style="text-align: left; background: #ececec;" | wxGauge
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 160: Line 367:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxGenericDirCtrl
 
! style="text-align: left; background: #ececec;" | wxGenericDirCtrl
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxGLCanvas
 
| {{yes}}
 
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxGrid
 
! style="text-align: left; background: #ececec;" | wxGrid
| {{no}}
 
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxGridBagSizer
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxGridSizer
 
! style="text-align: left; background: #ececec;" | wxGridSizer
Line 177: Line 406:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxHtmlEasyPrinting
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 186: Line 426:
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxHtmlWindow
 
! style="text-align: left; background: #ececec;" | wxHtmlWindow
Line 191: Line 433:
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | wxListbook
+
! style="text-align: left; background: #ececec;" | wxHyperLinkCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxImage
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxImageList
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxListbook
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxListBox
 
! style="text-align: left; background: #ececec;" | wxListBox
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 209: Line 484:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxListCtrl
 
! style="text-align: left; background: #ececec;" | wxListCtrl
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 216: Line 493:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxListView
 
! style="text-align: left; background: #ececec;" | wxListView
 +
| {{yes}}{{refun|svn}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxMediaCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxMenu
 
! style="text-align: left; background: #ececec;" | wxMenu
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxMenuBar
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxMessageDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxMultiChoiceDialog
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxNotebook
 
! style="text-align: left; background: #ececec;" | wxNotebook
Line 235: Line 552:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxOwnerDrawnComboBox
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPageSetupDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxPanel
 
! style="text-align: left; background: #ececec;" | wxPanel
Line 240: Line 577:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPasswordEntryDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPrintDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxProgressDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPropertySheetDialog
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
Line 249: Line 624:
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxRadioButton
 
! style="text-align: left; background: #ececec;" | wxRadioButton
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 256: Line 635:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextFormattingDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextStyleComboCtrl
 +
| {{yes}}{{refun|patch}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextStyleListBox
 +
| {{yes}}{{refun|patch}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextStyleListCtrl
 +
| {{yes}}{{refun|patch}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxRichTextStyleOrganiserDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSashLayoutWindow
 
! style="text-align: left; background: #ececec;" | wxSashLayoutWindow
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
| {{yes}}
 
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSashWindow
 
! style="text-align: left; background: #ececec;" | wxSashWindow
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
| {{yes}}
 
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxScrollBar
 
! style="text-align: left; background: #ececec;" | wxScrollBar
Line 275: Line 712:
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 282: Line 721:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxSearchCtrl
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxSimpleHtmlListBox
 +
| {{yes}}{{refun|svn}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxSingleChoiceDialog
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxSingleInstanceChecker
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSlider
 
! style="text-align: left; background: #ececec;" | wxSlider
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 298: Line 777:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSpinButton
 
! style="text-align: left; background: #ececec;" | wxSpinButton
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 307: Line 790:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSpinCtrl
 
! style="text-align: left; background: #ececec;" | wxSpinCtrl
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 314: Line 799:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxSplitterWindow
 
! style="text-align: left; background: #ececec;" | wxSplitterWindow
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 321: Line 808:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStaticBitmap
 
! style="text-align: left; background: #ececec;" | wxStaticBitmap
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 332: Line 821:
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStaticBoxSizer
 
! style="text-align: left; background: #ececec;" | wxStaticBoxSizer
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 342: Line 835:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStaticLine
 
! style="text-align: left; background: #ececec;" | wxStaticLine
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 349: Line 844:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStaticText
 
! style="text-align: left; background: #ececec;" | wxStaticText
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 356: Line 853:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStatusBar
 
! style="text-align: left; background: #ececec;" | wxStatusBar
 +
| {{yes}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
| {{no}}
 
 
| {{yes}}
 
| {{yes}}
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxStopWatch
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxSymbolPickerDialog
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxStdDialogButtonSizer
 
! style="text-align: left; background: #ececec;" | wxStdDialogButtonSizer
 +
| {{yes}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
| {{no}}
+
| {{yes}}
| {{no}}
+
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxTextCtrl
 
! style="text-align: left; background: #ececec;" | wxTextCtrl
Line 375: Line 894:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxTextEntryDialog
 +
| {{yes}}{{refun|svn}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxTimer
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxToggleButton
 
! style="text-align: left; background: #ececec;" | wxToggleButton
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxToolbar
 
! style="text-align: left; background: #ececec;" | wxToolbar
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 391: Line 934:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxTreebook
 
! style="text-align: left; background: #ececec;" | wxTreebook
 +
| {{yes}}{{refun|svn}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxTreeCtrl
 
! style="text-align: left; background: #ececec;" | wxTreeCtrl
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 405: Line 952:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxVListBox
 
! style="text-align: left; background: #ececec;" | wxVListBox
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 412: Line 961:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | wxVScrolledWindow
 
! style="text-align: left; background: #ececec;" | wxVScrolledWindow
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 421: Line 972:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
Line 431: Line 984:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
 
! Widget
 
! Widget
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wx-DevC++
 +
! wxForms
 
|-
 
|-
 
|}
 
|}
  
VisualWx additionally supports the following contrib widgets:  
+
*{{note|patch}} Currently available via patch but should be integrated into the main distribution soon.
*wxStyledTextCtrl
+
*{{note|svn}} Currently available from the SVN repository and in nightly builds and will be part of the next release.
*wxEditableListBox
+
 
*wxLEDNumberCtrl
+
==Contrib widgets supported==
*wxPlotWindow
+
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 +
|- style="background: #ececec;"
 +
! style="width: 17em" | Widget
 +
! wxSmith
 +
! DialogBlocks
 +
! wxDesigner
 +
! wxFormBuilder
 +
! VisualWx
 +
! wxDevC++
 +
! wxForms
 +
|-
 +
! style="text-align: left; background: #ececec;" | awxLed
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxChartCtrl
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxCustomButton
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxDynamicSashWindow
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxEditableListBox
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxFlatNotebook
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxImageButton
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxImagePanel
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxLEDNumberCtrl
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxMathPlot
 +
| {{yes}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
| {{dunno}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPlotCtrl
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPlotWindow
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPropertyGrid
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxPropertyGridManager
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxScintilla
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxStyledTextCtrl
 +
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | wxTreeListCtrl
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
| {{yes}}
 +
| {{no}}
 +
|- style="background: #ececec;"
 +
! Widget
 +
! wxSmith
 +
! DialogBlocks
 +
! wxDesigner
 +
! wxFormBuilder
 +
! VisualWx
 +
! wxDevC++
 +
! wxForms
 +
|-
 +
|}
  
 
==Languages supported==
 
==Languages supported==
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
! style="width: 12em" | Feature
+
! style="width: 17em" | Feature
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wxDevC++
 +
! wxForms
 
|-
 
|-
 
! style="text-align: left; background: #ececec;" | C++ code output
 
! style="text-align: left; background: #ececec;" | C++ code output
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | Delphi / Pascal code output
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 +
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Python code output
 
! style="text-align: left; background: #ececec;" | Python code output
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
| {{yes}}
+
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Lua code output
 
! style="text-align: left; background: #ececec;" | Lua code output
Line 477: Line 1,222:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Ruby code output
 
! style="text-align: left; background: #ececec;" | Ruby code output
Line 484: Line 1,231:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Perl code output
 
! style="text-align: left; background: #ececec;" | Perl code output
Line 491: Line 1,240:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | C# code output
 
! style="text-align: left; background: #ececec;" | C# code output
Line 496: Line 1,247:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Basic code output
 
! style="text-align: left; background: #ececec;" | Basic code output
 +
| {{no}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 507: Line 1,262:
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
 
! Feature
 
! Feature
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wxDevC++
 +
! wxForms
 
|-
 
|-
 
|}
 
|}
Line 518: Line 1,275:
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
{| border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;"
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
! style="width: 12em" | Feature
+
! style="width: 17em" | Feature
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wxDevC++
 +
! wxForms
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | XRC input
 
! style="text-align: left; background: #ececec;" | XRC input
Line 531: Line 1,290:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | XRC output
 
! style="text-align: left; background: #ececec;" | XRC output
Line 538: Line 1,299:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{yes}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | XRC code loading
 
! style="text-align: left; background: #ececec;" | XRC code loading
 +
| {{yes}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{dunno}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
| {{dunno}}
 
 
|-
 
|-
! style="text-align: left; background: #ececec;" | [[Validators]]
+
! style="text-align: left; background: #ececec;" | Validators{{refun|Validators}}
 +
| {{partial}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | Conditional UI{{refun|ConditionalUI}}
 
| {{no}}
 
| {{no}}
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
|-
 
! style="text-align: left; background: #ececec;" | [[Conditional UI]]
 
 
| {{no}}
 
| {{no}}
| {{yes}}
 
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | [[Event table and handler generation]]
+
! style="text-align: left; background: #ececec;" | Event table and handler generation{{refun|EventTable}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{partial}}
 
| {{partial}}
 
| {{yes}}
 
| {{yes}}
 
| {{partial}}
 
| {{partial}}
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 +
|-
 +
! style="text-align: left; background: #ececec;" | Bitmaps support{{refun|Bitmaps}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
| {{partial}}
 
| {{partial}}
 +
| {{yes}}
 +
| {{yes}}
 +
| {{yes}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | [[Bitmaps support]]
+
! style="text-align: left; background: #ececec;" | English descriptions{{refun|EnglishDesc}}
 
| {{no}}
 
| {{no}}
| {{yes}}
 
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
|-
 
! style="text-align: left; background: #ececec;" | [[English descriptions]]
 
| {{no}}
 
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
| {{yes}}
 
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | [[Easy access to window pointers]]
+
! style="text-align: left; background: #ececec;" | Easy access to window pointers{{refun|WindowPointers}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{no}}
 
| {{no}}
| {{no}}
+
| {{yes}}
 
| {{dunno}}
 
| {{dunno}}
 +
| {{yes}}
 +
| {{yes}}
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | [[Visually creating custom controls]]
+
! style="text-align: left; background: #ececec;" | Visually creating custom controls
| {{no}}
+
| {{partial}}
 
| {{yes}}
 
| {{yes}}
 
| {{partial}}
 
| {{partial}}
 +
| {{partial}}
 +
| {{partial}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
| {{partial}}
 
 
|-  
 
|-  
! style="text-align: left; background: #ececec;" | [[Template controls]]
+
! style="text-align: left; background: #ececec;" | Template controls{{refun|TemplateControls}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 601: Line 1,380:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 +
| {{no}}
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Sizer design
 
! style="text-align: left; background: #ececec;" | Sizer design
 +
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
Line 610: Line 1,393:
 
|-  
 
|-  
 
! style="text-align: left; background: #ececec;" | Non-sizer design
 
! style="text-align: left; background: #ececec;" | Non-sizer design
 +
| {{yes}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
| {{no}}
+
| {{yes}}
 +
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
 
! Feature
 
! Feature
! [[wxSmith]]
+
! wxSmith
! [[DialogBlocks]]
+
! DialogBlocks
! [[wxDesigner]]
+
! wxDesigner
! [[wxFormBuilder]]
+
! wxFormBuilder
! [[VisualWx]]
+
! VisualWx
 +
! wxDevC++
 +
! wxForms
 
|-
 
|-
 
|}
 
|}
  
*{{note|XRCnotworks}} Although XRC import is supported, it fails when I try to import XRC generated by other RADs, at least for now.
+
*{{note|XRCnotworks}} Currently, only one dialog resource per XRC file is imported.
 +
 
 +
=== Features explained ===
 +
 
 +
==== {{note|Validators}}Validators ====
 +
 
 +
The aim of the validator concept is to make dialogs very much easier to write. A validator is an object that can be plugged into a control (such as a wxTextCtrl), and mediates between C++ data and the control, transferring the data in either direction and validating it. It also is able to intercept events generated by the control, providing filtering behaviour without the need to derive a new control class.
 +
 
 +
How to use validators in a RAD that supports this concept: Just add a variable, select the variable and a validator, and the data transfer between variable and control is done for you.
 +
 
 +
==== {{note|ConditionalUI}}Conditional UI ====
 +
 
 +
It's the ability to adapt the user interface to the UI guidelines of different platform.
 +
 
 +
Just mark elements as for one platform (or several), and preview the look for any given platform.
 +
 
 +
[[Image:Conditional ui.PNG|Example of how it looks on DialogBlocks]]
 +
 
 +
==== {{note|EventTable}}Event table and handler generation ====
 +
 
 +
The RAD generates the event tables and empty handlers (including UI update handlers) so you can immediately concentrate on writing code to make the dialog come to life.
 +
 
 +
It includes a choice of event types for each window, with function name editing.
 +
 
 +
'''DialogBlocks Event Handler'''
 +
 
 +
Here DialogBlocks haves the list of event handlers.
 +
 
 +
The most noticeable feature here is that if you do a double-click on a event, you're transported to the function associated in the code. It's very handy.
 +
 
 +
[[Image:Event handler dialogblocks.PNG|Event Tables in DialogBlocks]]
 +
 
 +
'''VisualWx Event Handler'''
 +
 
 +
Here VisualWx filters the events:
 +
* Base wxWidgets Events
 +
* Component Events
 +
* Windows Events
 +
* VisualWx Events
 +
* Custom Events
 +
 
 +
[[Image:Event handler visualwx.PNG|Event Tables in VisualWx]]
 +
 
 +
==== {{note|Bitmaps}}Bitmap support ====
 +
 
 +
Bitmaps support means that you can import images into your project from a variety of formats and associate them with your static bitmap and bitmap button controls.
 +
 
 +
You can specify whether the bitmaps will converted into XPM format (the standard format for small bitmaps in wxWidgets) and whether the XPM image will be inserted as inline C++ code, or loaded from a file.
 +
 
 +
==== {{note|EnglishDesc}}English descriptions ====
 +
 
 +
English descriptions show a brief description of each element, to help you get used to sizers and also to make it easier to see at a glance the important aspects of your dialog element.
 +
 
 +
[[Image:Rad english descriptions.PNG|An example of DialogBlocks English descriptions]]
 +
 
 +
==== {{note|WindowPointers}}Easy access to window pointers ====
 +
 
 +
The ''easy access to window pointers'' concept means:
 +
 
 +
Give each window a variable name, and the RAD will add the name to the class declaration, and initialise it to the appropriate window in the implementation.
 +
 
 +
In XRC mode, the RAD can generate the code to find the window and assign it to the pointer variable.
 +
 
 +
==== {{note|TemplateControls}}Template controls ====
 +
 
 +
Template controls are sets of most common widgets together, like an Ok/Cancel pair buttons inside a sizer, being user-definable.

Latest revision as of 07:51, 7 January 2013

Here is a list of wxSmith features when compared to other wxWidgets RAD solutions.

Note that support for new features are added on a daily basis for some of these RADs.

Please update this list when something gets added.

General information

Basic general information about the RADs: developer, license/price etc.

RAD Developer Cost (USD) Open source Software licence
wxSmith Bartlomiej Swiecki Free Yes GPL
DialogBlocks Julian Smart Free (trial), €66 (normal), €35 (student) No Proprietary
wxDesigner Robert Roebling Free (trial), €129 (normal), €29 (student) No Proprietary
wxFormBuilder José Antonio Hurtado, Juan Antonio Ortega, Ryan Mulder, Ryan Pusztai, Michal Bliznak Free Yes GPL
VisualWx ? Free No ?
wxDevC++ Guru Kathiresan , Tony Reina, Malcolm Nealon, Joel Low Free Yes GPL
wxForms for Delphi / C++ Builder Guru Kathiresan Free (trial), $29.99 No Proprietary
RAD Developer Cost (USD) Open source Software licence

Widgets supported

Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
wxAnimationCtrl Yes Yes No Yes No Yes Yes
wxAuiManager Yes ? ? ? ? ? ?
wxAuiNotebook Yes Yes No Yes No Yes Yes
wxAuiToolBar Yes ? ? ? ? ? ?
wxAuiToolBarItem Yes ? ? ? ? ? ?
wxAuiToolBarLabel Yes ? ? ? ? ? ?
wxAuiToolBarSeparator Yes ? ? ? ? ? ?
wxAuiToolBarSpacer Yes ? ? ? ? ? ?
wxBitmapButton Yes Yes Yes Yes Yes Yes Yes
wxBitmapComboBox Yes ? ? ? ? ? ?
wxBoxSizer Yes Yes Yes Yes Yes Yes Yes
wxButton Yes Yes Yes Yes Yes Yes Yes
wxCalendarCtrl Yes Yes No Yes Yes Yes Yes
wxCheckBox Yes Yes Yes Yes Yes Yes Yes
wxCheckListBox Yes Yes No Yes Yes Yes Yes
wxChoice Yes Yes Yes Yes Yes Yes Yes
wxChoicebook Yes Yes No Yes Yes Yes No
wxColourDialog Yes No No No No Yes Yes
wxColourPickerCtrl Yes ? ? Yes ? Yes No
wxComboBox Yes Yes Yes Yes Yes Yes Yes
wxContextHelpButton Yes Yes No No Yes No No
wxDatePickerCtrl Yes Yes No Yes Yes Yes Yes
wxDialUpManager Yes No No No No Yes Yes
wxDirDialog Yes No No No No Yes Yes
wxDirPickerCtrl Yes ? ? Yes ? Yes No
wxFileDialog Yes No No No No Yes Yes
wxFilePickerCtrl Yes ? ? Yes ? Yes No
wxFindReplaceDialog Yes No No No No Yes Yes
wxFlexGridSizer Yes Yes Yes Yes Yes Yes Yes
wxFontDialog Yes No No No No Yes Yes
wxFontPickerCtrl Yes ? ? Yes ? Yes No
wxGauge Yes Yes Yes Yes Yes Yes Yes
wxGenericDirCtrl Yes Yes No Yes Yes No No
wxGLCanvas Yes ? ? ? ? ? ?
wxGrid Yes Yes Yes Yes Yes Yes Yes
wxGridBagSizer No Yes No Yes No No No
wxGridSizer Yes Yes Yes Yes Yes Yes Yes
wxHtmlEasyPrinting Yes No No No No Yes Yes
wxHtmlListBox No No No No No No Yes
wxHtmlWindow Yes Yes No Yes Yes Yes Yes
wxHyperLinkCtrl Yes No No Yes No Yes Yes
wxImage Yes ? ? ? ? ? ?
wxImageList Yes No No No No No Yes
wxListbook Yes Yes No Yes Yes Yes No
wxListBox Yes Yes Yes Yes Yes Yes Yes
wxListCtrl Yes Yes Yes Yes Yes Yes Yes
wxListView Yes No No No Yes No Yes
wxMediaCtrl Yes No No No No Yes Yes
wxMenu Yes Yes Yes Yes Yes Yes Yes
wxMenuBar Yes ? ? ? ? ? ?
wxMessageDialog Yes No No No No Yes Yes
wxMultiChoiceDialog Yes No No No No Yes Yes
wxNotebook Yes Yes Yes Yes Yes Yes Yes
wxOwnerDrawnComboBox No No No No No Yes Yes
wxPageSetupDialog Yes ? ? ? ? ? ?
wxPanel Yes Yes Yes Yes Yes Yes Yes
wxPasswordEntryDialog Yes No No No No Yes Yes
wxPrintDialog Yes No No No No Yes Yes
wxProgressDialog Yes No No No No Yes Yes
wxPropertySheetDialog No Yes No No No No Yes
wxRadioBox Yes Yes Yes Yes No Yes Yes
wxRadioButton Yes Yes Yes Yes Yes Yes Yes
wxRichTextCtrl Yes Yes Yes Yes Yes Yes Yes
wxRichTextFormattingDialog Yes ? ? ? ? ? ?
wxRichTextStyleComboCtrl Yes ? ? ? ? ? ?
wxRichTextStyleListBox Yes ? ? ? ? ? ?
wxRichTextStyleListCtrl Yes ? ? ? ? ? ?
wxRichTextStyleOrganiserDialog Yes ? ? ? ? ? ?
wxSashLayoutWindow Yes Yes No No Yes No No
wxSashWindow Yes Yes No No Yes No No
wxScrollBar Yes Yes No Yes Yes Yes Yes
wxScrolledWindow Yes Yes Yes Yes Yes Yes Yes
wxSearchCtrl Yes ? ? Yes ? ? ?
wxSimpleHtmlListBox Yes ? ? ? ? ? ?
wxSingleChoiceDialog Yes No No No No Yes Yes
wxSingleInstanceChecker Yes ? ? ? ? ? ?
wxSlider Yes Yes Yes Yes Yes Yes Yes
wxSpacer Yes Yes Yes Yes Yes No No
wxSpinButton Yes Yes Yes Yes Yes Yes Yes
wxSpinCtrl Yes Yes Yes Yes Yes Yes Yes
wxSplitterWindow Yes Yes Yes Yes Yes Yes Yes
wxStaticBitmap Yes Yes Yes Yes Yes Yes Yes
wxStaticBox Yes Yes No No Yes Yes Yes
wxStaticBoxSizer Yes Yes Yes Yes Yes Yes Yes
wxStaticLine Yes Yes Yes Yes Yes Yes Yes
wxStaticText Yes Yes Yes Yes Yes Yes Yes
wxStatusBar Yes Yes No Yes Yes Yes Yes
wxStopWatch Yes ? ? ? ? ? ?
wxSymbolPickerDialog Yes ? ? ? ? ? ?
wxStdDialogButtonSizer Yes Yes No Yes No Yes Yes
wxTextCtrl Yes Yes Yes Yes Yes Yes Yes
wxTextEntryDialog Yes No No No No Yes Yes
wxTimer Yes ? ? ? ? ? ?
wxToggleButton Yes Yes Yes Yes Yes Yes Yes
wxToolbar Yes Yes Yes Yes Yes Yes Yes
wxTreebook Yes No No No No Yes No
wxTreeCtrl Yes Yes Yes Yes Yes Yes Yes
wxVListBox No No No No No No No
wxVScrolledWindow No No No No No No No
wxWindow (Foreign) No Yes Yes No Yes No Yes
wxWizardPage No Yes No No Yes No No
Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wx-DevC++ wxForms
  • ^  Currently available via patch but should be integrated into the main distribution soon.
  • ^  Currently available from the SVN repository and in nightly builds and will be part of the next release.

Contrib widgets supported

Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
awxLed Yes No No Yes No No No
wxChartCtrl Yes ? ? ? ? ? ?
wxCustomButton Yes ? ? ? ? ? ?
wxDynamicSashWindow No No No No Yes No No
wxEditableListBox No No No No Yes No No
wxFlatNotebook Yes No No Yes No No No
wxImageButton Yes ? ? ? ? ? ?
wxImagePanel Yes ? ? ? ? ? ?
wxLEDNumberCtrl No No No No Yes No No
wxMathPlot Yes ? ? ? ? ? ?
wxPlotCtrl No No No Yes No No No
wxPlotWindow No No No No Yes No No
wxPropertyGrid No No No Yes No No No
wxPropertyGridManager No No No Yes No No No
wxScintilla No No No Yes No No No
wxStyledTextCtrl Yes No No No Yes Yes No
wxTreeListCtrl No No No Yes No Yes No
Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms

Languages supported

Feature wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
C++ code output Yes Yes Yes Yes Yes Yes Yes
Delphi / Pascal code output No No No No No No Yes
Python code output No Yes Yes Yes Yes No No
Lua code output No No No No Yes No No
Ruby code output No No No No Yes No No
Perl code output No No Yes No Yes No No
C# code output No No Yes No No No No
Basic code output No No No No No No No
Feature wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms

Features supported

Feature wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
XRC input Yes Yes Yes Yes Yes No No
XRC output Yes Yes Yes Yes Yes Yes No
XRC code loading Yes Yes No Yes ? No No
Validators Partial Yes No Yes No Yes Yes
Conditional UI No Yes No No No No No
Event table and handler generation Yes Yes Partial Yes Partial Yes Yes
Bitmaps support Yes Yes Yes Partial Yes Yes Yes
English descriptions No Yes No Yes Yes No No
Easy access to window pointers Yes Yes No Yes ? Yes Yes
Visually creating custom controls Partial Yes Partial Partial Partial No No
Template controls No No No No Yes No No
Sizer design Yes Yes Yes Yes Yes Yes Yes
Non-sizer design Yes No No No Yes Yes Yes
Feature wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
  • ^  Currently, only one dialog resource per XRC file is imported.

Features explained

^ Validators

The aim of the validator concept is to make dialogs very much easier to write. A validator is an object that can be plugged into a control (such as a wxTextCtrl), and mediates between C++ data and the control, transferring the data in either direction and validating it. It also is able to intercept events generated by the control, providing filtering behaviour without the need to derive a new control class.

How to use validators in a RAD that supports this concept: Just add a variable, select the variable and a validator, and the data transfer between variable and control is done for you.

^ Conditional UI

It's the ability to adapt the user interface to the UI guidelines of different platform.

Just mark elements as for one platform (or several), and preview the look for any given platform.

Example of how it looks on DialogBlocks

^ Event table and handler generation

The RAD generates the event tables and empty handlers (including UI update handlers) so you can immediately concentrate on writing code to make the dialog come to life.

It includes a choice of event types for each window, with function name editing.

DialogBlocks Event Handler

Here DialogBlocks haves the list of event handlers.

The most noticeable feature here is that if you do a double-click on a event, you're transported to the function associated in the code. It's very handy.

Event Tables in DialogBlocks

VisualWx Event Handler

Here VisualWx filters the events:

  • Base wxWidgets Events
  • Component Events
  • Windows Events
  • VisualWx Events
  • Custom Events

Event Tables in VisualWx

^ Bitmap support

Bitmaps support means that you can import images into your project from a variety of formats and associate them with your static bitmap and bitmap button controls.

You can specify whether the bitmaps will converted into XPM format (the standard format for small bitmaps in wxWidgets) and whether the XPM image will be inserted as inline C++ code, or loaded from a file.

^ English descriptions

English descriptions show a brief description of each element, to help you get used to sizers and also to make it easier to see at a glance the important aspects of your dialog element.

An example of DialogBlocks English descriptions

^ Easy access to window pointers

The easy access to window pointers concept means:

Give each window a variable name, and the RAD will add the name to the class declaration, and initialise it to the appropriate window in the implementation.

In XRC mode, the RAD can generate the code to find the window and assign it to the pointer variable.

^ Template controls

Template controls are sets of most common widgets together, like an Ok/Cancel pair buttons inside a sizer, being user-definable.