Difference between revisions of "Comparison of wxSmith features"

From Code::Blocks
(Added wxForms Info)
(Added wxForms Info)
Line 792: Line 792:
 
! VisualWx
 
! VisualWx
 
! wxDevC++
 
! wxDevC++
 +
! wxForms
 
|-
 
|-
 
! style="text-align: left; background: #ececec;" | awxLed
 
! style="text-align: left; background: #ececec;" | awxLed
Line 798: Line 799:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 807: Line 809:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
|-
 
|-
Line 814: Line 817:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 823: Line 827:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
|-
 
|-
Line 830: Line 835:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 839: Line 845:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
|-
 
|-
Line 846: Line 853:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 854: Line 862:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 862: Line 871:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
 
| {{no}}
Line 872: Line 882:
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
|-
 
|-
 
! style="text-align: left; background: #ececec;" | wxTreeListCtrl
 
! style="text-align: left; background: #ececec;" | wxTreeListCtrl
Line 880: Line 891:
 
| {{no}}
 
| {{no}}
 
| {{yes}}
 
| {{yes}}
 +
| {{no}}
 
|- style="background: #ececec;"
 
|- style="background: #ececec;"
 
! Widget
 
! Widget
Line 888: Line 900:
 
! VisualWx
 
! VisualWx
 
! wxDevC++
 
! wxDevC++
 +
! wxForms
 
|-
 
|-
 
|}
 
|}

Revision as of 11:50, 12 August 2007

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 Free Yes GPL
VisualWx ? Free No ?
wxDevC++ Guru Kathiresan , Tony Reina, Malcolm Nealon, Joel Low Free Yes GPL
wxForms 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
wxBitmapButton No Yes Yes Yes Yes Yes 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 No No
wxColourDialog No No No No No Yes Yes
wxColourPicker ? ? ? Yes ? ? No
wxComboBox Yes Yes Yes Yes Yes Yes Yes
wxContextHelpButton No Yes No No Yes No No
wxDatePickerCtrl Yes Yes No Yes Yes Yes Yes
wxDialUpManager No No No No No Yes Yes
wxDirDialog No No No No No Yes Yes
wxDirPicker ? ? ? Yes ? ? No
wxDynamicSashWindow No No No No Yes No No
wxFlexGridSizer Yes Yes Yes Yes Yes Yes Yes
wxFileDialog No No No No No Yes Yes
wxFilePicker ? ? ? Yes ? ? No
wxFindReplaceDialog No No No No No Yes Yes
wxFontDialog No No No No No Yes Yes
wxFontPicker ? ? ? Yes ? ? No
wxGauge Yes Yes Yes Yes Yes Yes Yes
wxGenericDirCtrl Yes Yes No No Yes No No
wxGrid No Yes Yes Yes Yes Yes Yes
wxGridBagSizer No Yes No Yes No No No
wxGridSizer Yes Yes Yes Yes Yes Yes Yes
wxHtmlEasyPrinting No No No No No Yes Yes
wxHtmlListBox No No No No No No No
wxHtmlWindow Yes Yes No Yes Yes Yes Yes
wxHyperLinkCtrl No No No No No Yes Yes
wxListbook Yes Yes No Yes Yes No No
wxListBox Yes Yes Yes Yes Yes Yes Yes
wxListCtrl Yes Yes Yes Yes Yes Yes Yes
wxListView No No No No Yes No Yes
wxMediaCtrl No No No No No Yes Yes
wxMenu Yes Yes Yes Yes Yes Yes Yes
wxMessageDialog No No No No No Yes Yes
wxMultiChoiceDialog No No No No No Yes Yes
wxNotebook Yes Yes Yes Yes Yes Yes Yes
wxOwnerDrawnComboBox No No No No No Yes Yes
wxPanel Yes Yes Yes Yes Yes Yes Yes
wxPasswordEntryDialog No No No No No Yes Yes
wxPrintDialog No No No No No Yes Yes
wxProgressDialog No 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
wxSashLayoutWindow No Yes No No Yes No No
wxSashWindow No Yes No No Yes No No
wxScrollBar Yes Yes No Yes Yes Yes Yes
wxScrolledWindow Yes Yes Yes Yes Yes Yes Yes
wxSingleChoiceDialog No No No No No Yes 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
wxStdDialogButtonSizer Yes Yes No Yes No Yes No
wxTextCtrl Yes Yes Yes Yes Yes Yes Yes
wxTextEntryDialog No No No No No Yes Yes
wxToggleButton Yes Yes Yes Yes Yes Yes Yes
wxToolbar Yes Yes Yes Yes Yes Yes Yes
wxTreebook No No No No No No 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 No
wxWizardPage No Yes No No Yes No No
Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wx-DevC++ wxForms

Contrib widgets supported

Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms
awxLed No No No Yes No No No
wxEditableListBox No No No No Yes No No
wxFlatNotebook No No No Yes No No No
wxLEDNumberCtrl No No No No Yes No No
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 No No No No Yes Yes No
wxTreeListCtrl No No No No No Yes No
Widget wxSmith DialogBlocks wxDesigner wxFormBuilder VisualWx wxDevC++ wxForms

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 Yes ? No
Validators No Yes No No No Yes
Conditional UI No Yes No No No No
Event table and handler generation Partial Yes Partial Yes Partial Yes
Bitmaps support No Yes Yes Partial Yes Yes
English descriptions No Yes No Yes Yes No
Easy access to window pointers Yes Yes No Yes ? 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.

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.