
User Interface:
 * easy selection of events from the base classes (-> rev. 1.1)
 * implement undo/re-do; use this for GUI scripting (testing) (-> rev. 1.1)
 * better avoid overlapping / invisible design window; same for dialogs with "Pin"
 * code properties: use stc and resize dynamically (-> rev. 1.0)
 * Frame, Notebook, Calendar: re-create on style change, depending on changed flags and platform
   e.g. on MacOS and GTK the main Frame styles can't be modified (see patch_recreate.txt)
 * remove config.preferences.show_progress and always show ProgressDialog?
 * add DirPicker for output path selection
Not by me, but maybe someone contributes:
 * toolbar and maybe menu editor: add Drop target for images (-> rev. 1.0)
 * add a template manager for (custom) widgets or complete parts of a design?
done:
 * better icons for GridSizers and grid sizer slots (3x3); merged cells for GridBagSizer
 * grid properties: implement validation in 'on_cell_changing'
 * allow dropping of bitmaps onto slots
 * allow the addition of any event as text
 * allow re-ordering toplevel windows by drag and drop
 * better accessibility for palete, grid properties and other property editors
 * pasting of menu and tool bars to/from application and frame
 * when Layout-Expand inside a grid sizer is checked -> add dialog to report and make growable
 * flex grid sizers: add menu items for growable row/col
 * Notebook: add context menu entries 'add page' / 'remove page'
 * Splitter: ask user whether to add panels
 * flush properties before saving
 * implement "re-do / Ctrl-Y" and "repeat / Ctrl-R" to apply last property modification(s) to currently selected widget
 * new dialog for Toolbar (similar to the new menu dialog)
 * ask user whether he really wants a standalone menu/toolbar
 * remember preview window position; place it away from Design window
 * use Freeze/Thaw on updates
 * grid property editors: support clipboard
probably not:
 * multiple selections in Tree window -> allow editing properties for multiple widgets at the same time
 * change the user interface towards ribbons, property grid and a single frame instead of separate windows?
 * alternatively, use WrapSizer for the Palette window (-> rev. 0.9)


Code generation:
 * better integrate automatic and user generated code (-> rev. 1.1)
Contribution required:
 * C++ dynamic event binding:  https://docs.wxwidgets.org/3.0/overview_events.html#overview_events_bind
done:
 * generate code sizer.Fit(frame) for toplevel frames without size property and frame->panel->sizer
 * make C++ event handlers virtual void again
 * improve readability of the generated code
 * option to switch off code generation random facts like: "# generated by wxGlade 0.6.8"
 * option to remove all the BEGIN/END wxGlade comments in the generated code (only with overwrite True)
 * refactor code generation (direct generation instead of XML parser)
 * support ID-less menus also in C++ (i.e. without explicitely defining an ID)
 * Code property: split into global, local/private and post-init
 * Python: allow lambda functions as event handlers
probably not:
 * refactor xrc_codegen.py to write XRC directly, not via separate hierarchy of XrcObjects
   (only if someone else will do it)
 * add a preview tab for the generated code? (no, what would be the use case?)
 * Code (property): read user code from file?


File Format:
 * add file format revision?
done:
 * get rid of obsolete options -> convert when opening file


Internal:
 * use the History instead of the logging facilities
 * add more test cases for editing
done:
 * simplified error handling for code generation
 * separate items and tree
 * use a structure of EditBase instances as main data structure; use tree only for the representation
 * use consistent names
    editor, parent, child: EditBase instances; with parent and children[...] attributes
                           (some methods still have 'widget' in their name)
    widget: actual wx Widgets
    item: TreeCtrl items
 * use .children for all, including a sizer; drop virtual_sizer, just keep children in .children
 * attributes for all elements (upper or lower case?): IS_ROOT, IS_SIZER, IS_VIRTUAL, IS_GRIDBAG, IS_SLOT,
   IS_TOPLEVEL, IS_TOPLEVEL_WINDOW, CAN_PREVIEW?, WX_CLASS?
 * refactor edit_sizers and ManagedBase
 * refactor Property handling


Use either gettext or wx.GetTranslation for _


Widgets:
 * StaticBoxSizer: add font property; use StaticBox for Design window and set font if the user changes it
   when font is active, generate code using StaticBox
 * ToolBar: optional (attribute) names
 * ToolBar: support adding controls; TOOL_STYLE_BUTTON, TOOL_STYLE_SEPARATOR, TOOL_STYLE_CONTROL
 * StaticBitmap: support wxGenericStaticBitmap once it supports SetScaleMode
 * wxBitmapComboBox
done:
 * Dialog: support SetAffirmativeId, SetEscapeId
 * add wxRESERVE_SPACE_EVEN_IF_HIDDEN for managed widgets
 * MenuBar: don't create widget on Mac OS
 * Panel: use ScrolledWindow only when "Scrolled" is checked


Additional Widgets:
 * lib.buttons (feature request #45 Add support for generic buttons) (-> rev. 1.1)
 * stc.StyledTextCtrl
 * MediaCtrl?
 * ColourPickerCtrl, FontPickerCtrl?
 * FilePickerCtrl, DirPickerCtrl?
 * Simplebook, Choicebook (example for Simplebook is supplied already)
 * ListBook, CheckListBox?
 * FoldPanelBar, AGWInfoBar?
 * LedBarGraph?
done:
 * StdDialogButtonSizer
 * GridBagSizer
 * WrapSizer
 * SpinCtrlDouble
 * SearchCtrl
probably not:
 * Ribbons
 * matplotlib (example is supplied already)
 * Py (shell) (example is supplied already)
 * html2 (example is supplied already)


Bitmaps:
 * better user interface (popup dialog?)
done:
 * better property editor; DropTarget
 * application options for relative paths, resource files, installer etc.
   (There's now an example in the documentation.)


Widget properties etc.:
 * all: support SetMinSize / SetMaxSize
 * RadioBox: tooltips per button
done:
 * StaticText: Wrap
 * Splitter: SashGravity
 * ListCtrl properties: rows, cols
 * Grid rows property
 * Grid col resizing in design window
 * better dialog code


Documentation:
 * add structure examples (e.g. Panel as own class, Instance Class)
done:
 * update for 1.0 (one window, no sizers between Frame and Panel)
 * add Dialog documentation
 * Note "Repeat and Re-do"


Development process:
done:
 * move to GitHub


don't fix:
 * static text: change Widget->Align left, Layout->Expand -> with border
   -> re-create required on style change
