From KitwarePublic
Jump to: navigation, search

This page summarizes the features KWWidgets UI-Designer should provide, based on the undertook comparison study of existing UI designers and separated into prioritized categories.

The ESSENTIAL features

These are the features needed to furnish a main framework and basic functionality upon it.

  • A main window with:
  • possibility to work in MDI or multiple-detached-top-level-windows
  • a menu bar
  • a tool-bar
  • a status-bar

  • 'Child/sibling' windows to
  • define one or several forms where widgets will be added/manipulated
  • list all available widgets
  • specify/alter widgets' properties, copies of widgets should preserve all properties as the original widget
  • specify event/call-back pairing
  • display the widgets' tree
  • specify/alter actions

  • Possibility to cut, copy, paste, delete, (unlimited) undo, (unlimited) redo, select multiple widgets --via menu entries or keyboard short-cuts.
  • Full WYSIWYG design and preview mode.
  • Possibility to interact/display several forms at the same time.
  • Possibility to export/import XML interface descriptions for one or several forms at a time.
  • Doxygen compliant code documentation. Use of tool-tips for all/most visual elements. --The tool-tips' text should be as self-explanatory as possible--. Enhanced use of the status-bar.
  • Use a default naming convention for variables as implemented by Qt Designer, Visual Studio and NetBeans. --notably the priority of reusing-blanks over creating-new-spots--
  • Not recognized tags in the XML file should be silently discarded not showing any error messages to the user.
  • Possibility to incorporate and delete 'external' resources, like bitmaps, text files and others.

The WANTED features

These are the features that will enhance functionality on the main framework.

  • Rock-solid documentation englobing: off-line users guide, tutorials+examples, KWWidgets off-line documentation and KWWidgets UI-Designer off-line documentation.
  • Possibility to add widgets into a form by left-clicking in the 'Widgets' window --actual name may differ-- and left-clicking in the "canvas area".
  • Possibility to sort all available widget by name or by categories.
  • Possibility to layer (overlapping) widgets.
  • Possibility to easily select and move around with 'non-visible' widgets, like panels, layers, etc. --Note: in Visual Studio 2005 it is almost impossible to move around layers which contain widgets in them. Instead of moving the layer you move the contained widget(s)--
  • Possibility to do event/call-back pairing via a 'Event' window --actual name may differ-- like the Qt Designer's 'Signal/Slot Editor' window.
  • Possibility to display/hide a "reference" grid. Possibility to snap widgets to this grid or place them anywhere.
  • Possibility to display pop-up context menus on most of the windows. For instance use the *same* pop-up context menu entries in the "canvas area" and in the "widgets' tree" window, like featured in NetBeans 5.0.
  • Possibility to interact with widgets in different edit modes, like the four ones proposed by Qt Designer 4.0.
  • Possibility to define tab-order either via an edit mode or by hand. The edit mode should behave as the one in Visual Studio 2005, i.e. altering the order of one widget should not automatically alter the order of the others.
  • Possibility to use, with preview, pre-defined form templates.
  • Possibility to add used-defined templates.
  • Possibility to add menus and menu entries like in Qt Designer and Visual Studio.
  • Possibility to tool-bars and tool-bar items like featured in Visual Studio and NetBeans
  • Possibility to create KWWidgets code based on any XML interface description. THIS IS A BIG POINT TO DISCUSS: do we want the application to generate the code and for which programming languages, OR do we want another *external* program to parse the XML file and generate the code. IMHO the second option is the best approach
  • Possibility to preview forms using different theming schemes, using the vtkKWTheme class possibilities.

The BACK-OFF features

There are the features we should avoid at all times.

  • 'À la Microsoft' documentation.
  • Elements not having tool-tip information, or whose information is not self-explanatory.
  • Limited to working on a single separate form at a time
  • Limited to exporting one single interface description per XML file
  • Avoid altering tab-order for one widget which alters the tab-order of the rest of the widgets.
  • Text length limitations.
  • Impossible to delete resources.
  • No display of the widgets' tree.
  • Impossible/difficult to move certain widgets around, like panels or layout containers.


These are considered as “goodies” and will improve productivity and interaction with the user.

  • Possibility to add widgets into forms by left-clicking in the 'Widgets' window --actual name may differ-- and dragging the selection into the form, while a preview of the widget follows the mouse pointer.
  • Possibility to internationalize strings.
  • Possibility to display horizontal/vertical lines which indicate alignment relative to other widgets.
  • Possibility to manage which widgets are displayed. Possibility to manage sorting categories for widgets.
  • Possibility to manage user-defined templates. (Add, delete, make a backup, etc...)
  • Possibility to access all the widgets of pre-defined forms, like the widgets inside file searching dialog-boxes, for instance. Note: Glade lets you alter all elements inside pre-defined dialog-boxes, on the contrary neither Visual Studio 2005 nor NetBeans 5.0 feature that possibility.
  • For copies of widgets create/define the same event call-backs as the original widget.
  • Possibility to add menu items and tool-bar items, like tool-bar/menu buttons, radio-buttons, etc..., via a drop-down combo-box like in Visual Studio and NetBeans.
  • Possibility to manage menu entries via a dialog-box like in Glade.
  • After reading the description of the vktKWIcon class the next feature is no longer needed.
(Possibility to propose a set of standard icons. One remarks that tool-bar items and certain buttons almost always share the *same* icons: "open folder", "save file", "O.K.", "Question sign", etc..., thus including such a set of icons should/could speed up productivity. --All the dummy applications, besides the one created using Glade, lack such icons as it would have taken a considerable time to design my own icons--)
  • Possibility to 'dock' and 'tab' child/sibling windows, like in Visual Studio 2005 and NetBeans 5.0.

KWWidgets: [Welcome | Site Map]