** General UI Guidelines for KiCad Development Capitalization: For any visible text used within KiCad, follow recommendations here: http://library.gnome.org/devel/hig-book/2.20/design-text-labels.html.en#layout-capitalization This applies to all Menus, Titles, Labels, Tooltips, Buttons, etc. The capitalization for the application names is KiCad, Eeschema, CvPcb, GerbView, and Pcbnew. All strings that have application names that are visible to the user should be capitalized this way. It's also a good idea use this capitalization in source code comments as well to prevent confusion of new contributors. Dialogs: Follow the recommendations here: http://library.gnome.org/devel/hig-book/2.20/windows-dialog.html.en paying particular attention to "initial focus", "sensible default values", "default buttons", ESC key termination. Please note that the escape key termination only works properly if there is a dialog button defined with an ID of wxID_CANCEL or SetEscapeID( MY_ESCAPE_BUTTON_ID ) is called during dialog initialization. The former is the preferred method for handling escape key dialog termination. There is a checkbox in wxformbuilder for the "default" control, and this is the one fired when the "enter" key is pressed. Use wxWidgets "sizers" in all dialogs, no matter how simple they are: http://zetcode.com/tutorials/wxwidgetstutorial/layoutmanagement and keep dialogs resizeable. Configure the sizers so that as the dialog window is expanded, the most sensible use of the increased dialog window occurs automatically by the sizers. For example, in the DRC dialog of Pcbnew, sizers should be used to expand the text control to use the full available free window area, so that the user's view of the items in the text control is maximized as he/she expands the dialog window, making it easier to read more DRC error messages. In other dialogs without one component more important than the others, the sizers might be configured to position the controls to sensible positions near the perimeter of the increasingly larger dialog box, not necessarily leaving them all bundled tightly together. The dialog box should look nice at any size large enough to show all the components. When using wxFormBuilder, please add the following settings to the "Dialog" node: subclass.name <- DIALOG_SHIM subclass.header <- dialog_shim.h This will provide for an override of the Show( bool ) wxWindow() function and provide retentitive size and position for the session. Use tooltips to explain the functionality of each non-obvious control. This is important because the help files and the wiki often lag behind the source code. Avoid defining initial dialog sizes if possible. Let the sizers do their job. After the dialog is fit to the sizers, set the minimum size to the current size to prevent the dialog controls from being obscured when resizing the dialog. If the labels or text of the dialog controls are, set or changed at run time. Rerun wxWindow::Fit() to allow the dialog to re-size and adjust for the new control widths. This can all be done after the dialog is created but before it is shown or use class methods to re-size the dialog as required. Reset the minimum size to the updated dialog size. Dialog windows shall not exceed 1024 x 768 when displayed in a 13 point font. Note that the font used by end users is not something that you control from within the dialog, but for testing purposes please do not exceed this dialog size should the user have selected a font size of 13 points.