Difference between revisions of "Comparison of wxSmith features"
Takeshimiya (talk | contribs) |
Gururamnath (talk | contribs) (wxDevC++ comparison added.) |
||
Line 46: | Line 46: | ||
| 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="background: #ececec; border: solid 1px gray;" | |- style="background: #ececec; border: solid 1px gray;" | ||
! [[wikipedia:Rapid application development|RAD]] | ! [[wikipedia:Rapid application development|RAD]] | ||
Line 64: | Line 70: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxBitmapButton | ! style="text-align: left; background: #ececec;" | wxBitmapButton | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 73: | Line 81: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxBoxSizer | ! style="text-align: left; background: #ececec;" | wxBoxSizer | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 80: | Line 89: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxButton | ! style="text-align: left; background: #ececec;" | wxButton | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 92: | Line 102: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxCheckBox | ! style="text-align: left; background: #ececec;" | wxCheckBox | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 105: | Line 117: | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxChoice | ! style="text-align: left; background: #ececec;" | wxChoice | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 120: | Line 134: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxComboBox | ! style="text-align: left; background: #ececec;" | wxComboBox | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 134: | Line 150: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxDatePickerCtrl | ! style="text-align: left; background: #ececec;" | wxDatePickerCtrl | ||
Line 139: | Line 156: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 148: | Line 166: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxFlexGridSizer | ! style="text-align: left; background: #ececec;" | wxFlexGridSizer | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 157: | Line 177: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxGauge | ! style="text-align: left; background: #ececec;" | wxGauge | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 169: | Line 190: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxGrid | ! style="text-align: left; background: #ececec;" | wxGrid | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 180: | Line 203: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 185: | Line 209: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxGridSizer | ! style="text-align: left; background: #ececec;" | wxGridSizer | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 192: | Line 217: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxHtmlListBox | ! style="text-align: left; background: #ececec;" | wxHtmlListBox | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 202: | Line 228: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 211: | Line 238: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxListBox | ! style="text-align: left; background: #ececec;" | wxListBox | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 220: | Line 249: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxListCtrl | ! style="text-align: left; background: #ececec;" | wxListCtrl | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 232: | Line 262: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxMenu | ! style="text-align: left; background: #ececec;" | wxMenu | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 241: | Line 273: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxNotebook | ! style="text-align: left; background: #ececec;" | wxNotebook | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 248: | Line 281: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxPanel | ! style="text-align: left; background: #ececec;" | wxPanel | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 257: | Line 291: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 267: | Line 302: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxRadioButton | ! style="text-align: left; background: #ececec;" | wxRadioButton | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 281: | Line 318: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxSashWindow | ! style="text-align: left; background: #ececec;" | wxSashWindow | ||
Line 288: | Line 326: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxScrollBar | ! style="text-align: left; background: #ececec;" | wxScrollBar | ||
Line 293: | Line 332: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxScrolledWindow | ! style="text-align: left; background: #ececec;" | wxScrolledWindow | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 304: | Line 345: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxSlider | ! style="text-align: left; background: #ececec;" | wxSlider | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 316: | Line 358: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxSpinButton | ! style="text-align: left; background: #ececec;" | wxSpinButton | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 325: | Line 369: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxSpinCtrl | ! style="text-align: left; background: #ececec;" | wxSpinCtrl | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 332: | Line 377: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxSplitterWindow | ! style="text-align: left; background: #ececec;" | wxSplitterWindow | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 339: | Line 385: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxStaticBitmap | ! style="text-align: left; background: #ececec;" | wxStaticBitmap | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 350: | Line 397: | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxStaticBoxSizer | ! style="text-align: left; background: #ececec;" | wxStaticBoxSizer | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 360: | Line 409: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxStaticLine | ! style="text-align: left; background: #ececec;" | wxStaticLine | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 367: | Line 417: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxStaticText | ! style="text-align: left; background: #ececec;" | wxStaticText | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 377: | Line 428: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 385: | Line 437: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxTextCtrl | ! style="text-align: left; background: #ececec;" | wxTextCtrl | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 395: | Line 449: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxToggleButton | ! style="text-align: left; background: #ececec;" | wxToggleButton | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 403: | Line 458: | ||
! style="text-align: left; background: #ececec;" | wxToolbar | ! style="text-align: left; background: #ececec;" | wxToolbar | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 409: | Line 465: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxTreebook | ! style="text-align: left; background: #ececec;" | wxTreebook | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 416: | Line 473: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxTreeCtrl | ! style="text-align: left; background: #ececec;" | wxTreeCtrl | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 423: | Line 481: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxVListBox | ! style="text-align: left; background: #ececec;" | wxVListBox | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 430: | Line 489: | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxVScrolledWindow | ! style="text-align: left; background: #ececec;" | wxVScrolledWindow | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 442: | Line 502: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxWizardPage | ! style="text-align: left; background: #ececec;" | wxWizardPage | ||
Line 449: | Line 510: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- style="background: #ececec;" | |- style="background: #ececec;" | ||
! Widget | ! Widget | ||
Line 456: | Line 518: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wx-DevC++ | ||
|- | |- | ||
|} | |} | ||
Line 468: | Line 531: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | awxLed | ! style="text-align: left; background: #ececec;" | awxLed | ||
Line 474: | Line 538: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
Line 482: | Line 547: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxFlatNotebook | ! style="text-align: left; background: #ececec;" | wxFlatNotebook | ||
Line 488: | Line 554: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
Line 496: | Line 563: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxPlotWindow | ! style="text-align: left; background: #ececec;" | wxPlotWindow | ||
Line 503: | Line 571: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | wxPropertyGrid | ! style="text-align: left; background: #ececec;" | wxPropertyGrid | ||
Line 509: | Line 578: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
Line 516: | Line 586: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
Line 523: | Line 594: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
Line 530: | Line 602: | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- style="background: #ececec;" | |- style="background: #ececec;" | ||
Line 538: | Line 611: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
|} | |} | ||
Line 550: | Line 624: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | C++ code output | ! style="text-align: left; background: #ececec;" | C++ code output | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 564: | Line 640: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Lua code output | ! style="text-align: left; background: #ececec;" | Lua code output | ||
Line 571: | Line 648: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Ruby code output | ! style="text-align: left; background: #ececec;" | Ruby code output | ||
Line 578: | Line 656: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Perl code output | ! style="text-align: left; background: #ececec;" | Perl code output | ||
Line 585: | Line 664: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | C# code output | ! style="text-align: left; background: #ececec;" | C# code output | ||
Line 590: | Line 670: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{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}} | ||
Line 606: | Line 688: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
|} | |} | ||
Line 618: | Line 701: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | XRC input | ! style="text-align: left; background: #ececec;" | XRC input | ||
Line 625: | Line 709: | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | XRC output | ! style="text-align: left; background: #ececec;" | XRC output | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 639: | Line 725: | ||
| {{no}} | | {{no}} | ||
| {{dunno}} | | {{dunno}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Validators{{refun|Validators}} | ! style="text-align: left; background: #ececec;" | Validators{{refun|Validators}} | ||
Line 646: | Line 733: | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Conditional UI{{refun|ConditionalUI}} | ! style="text-align: left; background: #ececec;" | Conditional UI{{refun|ConditionalUI}} | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
Line 660: | Line 749: | ||
| {{no}} | | {{no}} | ||
| {{partial}} | | {{partial}} | ||
+ | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Bitmaps support{{refun|Bitmaps}} | ! style="text-align: left; background: #ececec;" | Bitmaps support{{refun|Bitmaps}} | ||
Line 666: | Line 756: | ||
| {{yes}} | | {{yes}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
Line 674: | Line 765: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Easy access to window pointers{{refun|WindowPointers}} | ! style="text-align: left; background: #ececec;" | Easy access to window pointers{{refun|WindowPointers}} | ||
Line 681: | Line 773: | ||
| {{no}} | | {{no}} | ||
| {{dunno}} | | {{dunno}} | ||
+ | | {{yes}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Visually creating custom controls | ! style="text-align: left; background: #ececec;" | Visually creating custom controls | ||
Line 688: | Line 781: | ||
| {{no}} | | {{no}} | ||
| {{partial}} | | {{partial}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Template controls{{refun|TemplateControls}} | ! style="text-align: left; background: #ececec;" | Template controls{{refun|TemplateControls}} | ||
Line 695: | Line 789: | ||
| {{no}} | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
+ | | {{no}} | ||
|- | |- | ||
! style="text-align: left; background: #ececec;" | Sizer design | ! style="text-align: left; background: #ececec;" | Sizer design | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
Line 708: | Line 804: | ||
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
+ | | {{yes}} | ||
| {{yes}} | | {{yes}} | ||
|- style="background: #ececec;" | |- style="background: #ececec;" | ||
Line 716: | Line 813: | ||
! wxFormBuilder | ! wxFormBuilder | ||
! VisualWx | ! VisualWx | ||
+ | ! wxDevC++ | ||
|- | |- | ||
|} | |} |
Revision as of 00:07, 27 September 2006
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 | Free | Yes | GPL |
VisualWx | ? | Free | No | ? |
wxDevC++ | Guru Kathiresan , Tony Reina, Malcolm Nealon, Joel Low | Free | Yes | GPL |
RAD | Developer | Cost (USD) | Open source | Software licence |
Widgets supported
Widget | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
---|---|---|---|---|---|---|
wxBitmapButton | No | Yes | Yes | Yes | Yes | Yes |
wxBoxSizer | Yes | Yes | Yes | Yes | Yes | Yes |
wxButton | Yes | Yes | Yes | Yes | Yes | Yes |
wxCalendarCtrl | Yes | Yes | No | Yes | Yes | No |
wxCheckBox | Yes | Yes | Yes | Yes | Yes | Yes |
wxCheckListBox | Yes | Yes | No | No | Yes | Yes |
wxChoice | Yes | Yes | Yes | Yes | Yes | Yes |
wxChoicebook | Yes | Yes | No | Yes | Yes | No |
wxComboBox | Yes | Yes | Yes | Yes | Yes | Yes |
wxContextHelpButton | No | Yes | No | No | Yes | No |
wxDatePickerCtrl | Yes | Yes | No | Yes | Yes | Yes |
wxDynamicSashWindow | No | No | No | No | Yes | No |
wxFlexGridSizer | Yes | Yes | Yes | Yes | Yes | Yes |
wxGauge | Yes | Yes | Yes | Yes | Yes | Yes |
wxGenericDirCtrl | Yes | Yes | No | No | Yes | No |
wxGrid | No | Yes | Yes | Yes | Yes | Yes |
wxGridBagSizer | No | Yes | No | No | No | No |
wxGridSizer | Yes | Yes | Yes | Yes | Yes | Yes |
wxHtmlListBox | No | No | No | No | No | No |
wxHtmlWindow | Yes | Yes | No | Yes | Yes | Yes |
wxListbook | Yes | Yes | No | Yes | Yes | No |
wxListBox | Yes | Yes | Yes | Yes | Yes | Yes |
wxListCtrl | Yes | Yes | Yes | Yes | Yes | Yes |
wxListView | No | No | No | No | Yes | No |
wxMenu | No | Yes | Yes | Yes | Yes | Yes |
wxNotebook | Yes | Yes | Yes | Yes | Yes | Yes |
wxPanel | Yes | Yes | Yes | Yes | Yes | Yes |
wxPropertySheetDialog | No | Yes | No | No | No | No |
wxRadioBox | Yes | Yes | Yes | Yes | No | Yes |
wxRadioButton | Yes | Yes | Yes | Yes | Yes | Yes |
wxSashLayoutWindow | No | Yes | No | No | Yes | No |
wxSashWindow | No | Yes | No | No | Yes | No |
wxScrollBar | Yes | Yes | No | Yes | Yes | Yes |
wxScrolledWindow | Yes | Yes | Yes | Yes | Yes | Yes |
wxSlider | Yes | Yes | Yes | Yes | Yes | Yes |
wxSpacer | Yes | Yes | Yes | Yes | Yes | No |
wxSpinButton | Yes | Yes | Yes | Yes | Yes | Yes |
wxSpinCtrl | Yes | Yes | Yes | Yes | Yes | Yes |
wxSplitterWindow | Yes | Yes | Yes | Yes | Yes | Yes |
wxStaticBitmap | Yes | Yes | Yes | Yes | Yes | Yes |
wxStaticBox | Yes | Yes | No | No | Yes | Yes |
wxStaticBoxSizer | Yes | Yes | Yes | Yes | Yes | Yes |
wxStaticLine | Yes | Yes | Yes | Yes | Yes | Yes |
wxStaticText | Yes | Yes | Yes | Yes | Yes | Yes |
wxStatusBar | No | Yes | No | Yes | Yes | Yes |
wxStdDialogButtonSizer | Yes | Yes | No | Yes | No | No |
wxTextCtrl | Yes | Yes | Yes | Yes | Yes | Yes |
wxToggleButton | Yes | Yes | Yes | Yes | Yes | Yes |
wxToolbar | No | Yes | Yes | Yes | Yes | Yes |
wxTreebook | No | No | No | No | No | No |
wxTreeCtrl | Yes | Yes | Yes | Yes | Yes | Yes |
wxVListBox | No | No | No | No | No | No |
wxVScrolledWindow | No | No | No | No | No | No |
wxWindow (Foreign) | No | Yes | Yes | No | Yes | No |
wxWizardPage | No | Yes | No | No | Yes | No |
Widget | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wx-DevC++ |
Contrib widgets supported
Widget | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
---|---|---|---|---|---|---|
awxLed | No | No | No | Yes | No | No |
wxEditableListBox | No | No | No | No | Yes | No |
wxFlatNotebook | No | No | No | Yes | No | No |
wxLEDNumberCtrl | No | No | No | No | Yes | No |
wxPlotWindow | No | No | No | Yes | Yes | No |
wxPropertyGrid | No | No | No | Yes | No | No |
wxPropertyGridManager | No | No | No | Yes | No | No |
wxScintilla | No | No | No | Yes | No | No |
wxStyledTextCtrl | No | No | No | No | Yes | Yes |
Widget | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
Languages supported
Feature | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
---|---|---|---|---|---|---|
C++ code output | Yes | Yes | Yes | Yes | Yes | Yes |
Python code output | No | Yes | Yes | No | Yes | No |
Lua code output | No | No | No | No | Yes | No |
Ruby code output | No | No | No | No | Yes | No |
Perl code output | No | No | Yes | No | Yes | No |
C# code output | No | No | Yes | No | No | No |
Basic code output | No | No | No | No | No | No |
Feature | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
Features supported
Feature | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
---|---|---|---|---|---|---|
XRC input | Yes† | Yes | Yes | Yes | Yes | No |
XRC output | Yes | Yes | Yes | Yes | Yes | Yes |
XRC code loading | Yes | Yes | No | No | ? | No |
Validators† | No | Yes | No | No | No | Yes |
Conditional UI† | No | Yes | No | No | No | No |
Event table and handler generation† | Partial | Yes | Partial | No | Partial | Yes |
Bitmaps support† | No | Yes | Yes | No | Yes | Yes |
English descriptions† | No | Yes | No | No | Yes | No |
Easy access to window pointers† | Yes | Yes | No | No | ? | Yes |
Visually creating custom controls | Partial | Yes | Partial | No | Partial | No |
Template controls† | No | No | No | No | Yes | No |
Sizer design | Yes | Yes | Yes | Yes | Yes | Yes |
Non-sizer design | Partial | No | No | No | Yes | Yes |
Feature | wxSmith | DialogBlocks | wxDesigner | wxFormBuilder | VisualWx | wxDevC++ |
- ^ 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.
^ 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.
VisualWx Event Handler
Here VisualWx filters the events:
- Base wxWidgets Events
- Component Events
- Windows Events
- VisualWx Events
- Custom Events
^ 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.
^ 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.