2007-04-02: version 0.5 released, with some improvements, code ported to the "new" wx namespace, wxWidgets 2.8 support, and more... ------------------------------------------------------------------------------- 2006-03-02: version 0.4.1 released. Note that this file isn't very much up to date anymore... ------------------------------------------------------------------------------- 2005-10-10: version 0.4 released. ------------------------------------------------------------------------------- 2005-05-01: edit_sizers/edit_sizers.py: updated layout() to work with wx2.6 widgets/frame/frame.py: fixed a segfault when deleting a frame with a statusbar on wx2.6 widgets/notebook/notebook.py: updated notebook virtual sizer to fix broken layout on wx2.6 edit_windows.py: fixed property_panel layout which was broken on wx2.6 tree.py: - added wxBegin/EndBusyCursor() calls when showing a toplevel widget - called fit_parent at the end of show_widget for toplevel widgets without a specific size 2005-??-??: sorry, I didn't update this for a while, but there have been changes and improvements even during this period :-) To summarize: - added event handlers support (not for perl at the moment) - better sizers layout - many bugs fixed - updated copyright information - ... ------------------------------------------------------------------------------- 2004-11-08: version 0.3.5.1 released, due to a bug in version 0.3.5 (size property not updating correctly) ------------------------------------------------------------------------------- 2004-11-04: version 0.3.5 released 2004-11-02: kdefiledialog.py: support for native file and dir dialogs on KDE debian/: support for Debian package (by Georges Khaznadar) 2004-10-15: common.py, config.py, configUI.py, main.py, res/preferences.wxg: auto save support (i.e. now wxg files can be saved automatically periodically) 2004-09-17: edit_sizers/sizers_codegen.py, edit_sizers/perl_sizers_codegen.py, codegen/*.py: fixed issue with wxStaticBoxSizer code generation edit_sizers/edit_sizers.py, edit_windows.py: fixed segfault on wxGTK2 when removing a widget from the popup menu *.py: updated copyright information 2004-09-04: version 0.3.4.1 released, due to the introduction of a workaround for a bug in wxPython 2.5.2.8 (about wxGrid and its default size...) ------------------------------------------------------------------------------- 2004-09-01: version 0.3.4 released 2004-08-12: common.py: minor UI tweak edit_windows.py, config.py, configUI.py: added `show "handles" of sizers' option added `allow duplicate widget names' option 2004-07-18: widgets/menubar/codegen.py: changed python code generator to be smarter about menu items with a user defined name 2004-05-05: edit_windows.py, widget_properties.py: fixed a couple of wxMac issues widgets/frame/codegen.py: added xrc code generator for wxStatusBar widgets/choice/choice.py, widgets/combo_box/combo_box.py, widgets/list_box/list_box.py: removed default entry in Choices property widgets/combo_box/codegen.py, widgets/spin_ctrl/codegen.py: applied patch #944642 widgets/list_ctrl/list_ctrl.py: added a couple of extra styles widgets/button/*: added wxButton styles 2004-03-06: widgets/panel/panel.py: fixed (hopefully) bug #880674 2004-02-19: clipboard.py, main.py: added Drag&Drop of wxg files for opening them (thanks to Chris Liechti) 2004-02-17: main.py, docs/index.html, docs/html/*: new manual added 2004-02-07: config.py: config path is now under APPDATA ok windows 2004-01-25: widgets/bitmap_button/*, widgets/toolbar/*, widgets/static_bitmap/*: added "code:" tag 2003-12-28: xrc2wxg.py: added wxSplitterWindow support 2003-12-07: tree.py: partially fixed bug #798041 (renaming of cut widgets) 2003-12-06: widgets/panel/panel.py: added ability to paste a sizer inside a panel, notebook page and splitter pane 2003-11-24: codegen/py_codegen.py, widgets/*/codegen.py, edit_sizers/sizers_codegen.py: changes to the python code generator to support new wx namespace ------------------------------------------------------------------------------- 2003-08-30: version 0.3.1 released: sigh! we found an annoying bug on pl_codegen.py right after releasing 0.3 :-( ------------------------------------------------------------------------------- 2003-08-29: version 0.3 released 2003-07-26: codegen/pl_codegen.py, toolbar/perl_codegen.py, menubar/perl_codegen.py: brought Perl code generator up to date: - multiple files support - ``keep contents'' support - automatic ids generation (ID_FOO=?) support everything is still *experimental* and NEEDS EXTENSIVE TESTING 2003-07-18: widgets/toolbar/codegen.py, widgets/bitmap_button/codegen.py, widgets/static_bitmap/codegen.py: added (limited) support to xpm data (not on files). I.e. if the bitmap property is something like var:variable_name, variable_name is taken to be a variable that holds xpm data 2003-07-16: codegen/xrc_codegen.py, xml_parse.py, docs/turorial.html: added subclass support to XRC output 2003-07-15: application.py, tree.py, xml_parse.py, codegen/py_codegen.py, codegen/cpp_codegen.py: added "overwrite" property to Application, to allow re-generation of (C++ and python) code from scratch (as opposed to updating wxGlade blocks). docs/tutorial.html: updated notes 2003-07-11: codegen/py_codegen.py, codegen/cpp_codegen.py: enhanced generate_code_id, to recognize ID_SOMETHING=? and generate a "unique" id automatically codegen/cpp_codegen.py: fixed ids code generation when the output file already exists widgets/toolbar.py: fixed xrc code generation common.py: updated version number to 0.3pre1 2003-07-05: edit_windows.py, application.py: added validation code for `name' and `class' properties (fixed bug #764186) credits.txt: updated developer names codegen/py_codegen.py, codegen/cpp_codegen.py: fixed bug in quote_str 2003-06-26: tree.py, widgets/panel/*: added scrolled window support (this required a small change in Tree.Node.write in tree.py) 2003-06-23: perl generation support added 2003-06-21: nearly all around: fixed various Unicode-related bugs misc.py added functions, streq and wxstr, to fix some Unicode issues 2003-06-20: edit_windows.py, edit_sizers/edit_sizers.py, xml_parse.py: added cut&paste support for toplevel sizers 2003-06-02: common.py, main.py: added ToggleButtonBox to separate the "core" components from the "custom" ones (similar to Glade and QT-Designer) 2003-05-22: common.py, config.py: added local widgets path support ------------------------------------------------------------------------------- 2003-05-19: version 0.2.3 released docs/tutorial.html: some updates to the tutorial 2003-05-15: widgets/frame/*, widgets/dialog/*, edit_windows.py: added new properties 'icon', 'centered' (for dialog and frames) and 'disabled', 'focused' and 'hidden' (for all widgets) 2003-05-13: widgets/button/button.py, widgets/toggle_button/toggle_button.py, widgets/checkbox/checkbox.py, widgets/radio_button/radio_button.py: changed 'label' property to accept multiline strings xrc2wxg.py: moved initialization code to a 'main' function 2003-05-10: custom_widget/*, xrc2wxg.py: support of XRC code generation (and import) for custom widgets 2003-05-07: application.py, edit_windows.py, xml_parse.py, widgets/menubar/codegen.py, widgets/toolbar/codegen.py, widgets/custom_widget/codegen.py: added preview support ------------------------------------------------------------------------------- 2003-05-01: version 0.2.2 released 2003-04-24: widgets/toolbar/*: first ToolBar support (only tools, not controls yet) config.py: added test to check for the WXGLADE_CONFIG_PATH env var, to fix issue #726563 2003-04-23: edit_sizers/edit_sizers.py, widgets/splitter_window/*, widgets/notebook/*, xml_parse.py et al: new "virtual sizers" interface 2003-04-17: main.py, widgets/frame/frame.py, widgets/dialog/dialog.py, misc.py, config.py, common.py: - added ability to cancel the addition of a widget - added new config option to remember the geometry of wxGlade windows 2003-04-14: widgets/menubar/*: added support for radio menu items 2003-03-30: codegen/*, widgets/*/codegen.py: change of API to cleanup code widgets/menubar: added toplevel menubar support 2003-03-20: edit_windows.py: fixed bug #706890 2003-03-15: widgets/frame/frame.py: fixed bug #704091 2003-03-14: config.py, main.py: added new preference buttons_per_row, to control the geometry of the main palette 2003-03-11: widgets/list_ctrl/*, widgets/tree_ctrl/*: first support for wxListCtrl and wxTreeCtrl 2003-03-10: widget_properties.py, widgets/... (various modules), fixed some UI bugs (horizontal scrollbars - bug #701088, size of columns in some GridProperty) widgets/notebook/notebook.py: fixed serious bug on win32 (added the function _ugly_hack_for_win32_notebook_bug) 2003-03-08: codegen/cpp_codegen.py, codegen/py_codegen.py: fixed a couple of bugs in the regex to match class decl (still not 100% accurate, but better...) 2003-03-06: misc.py: added sizer_fixed_Insert to fix bug in wxPython 2.4 2003-03-05: widget_properties.py: modified the display function of each property, to get rid of useless wxPanels 2003-02-14: main.py, application.py: better error messages in case of IOError or OSError exceptions 2003-02-02: version 0.2.1 released ------------------------------------------------------------------------------ 2003-01-27: codegen/py_codegen.py, codegen/cpp_codegen.py: fixed bugs in multi-files mode code generation 2003-01-24: widget_properties.py: fixed segfault caused by a change (bug?) in wxPython 2.4.0.2 2003-01-01: main.py, common.py, config.py, codegen/*: added support for automatic backup application.py, codegen/*: added gettext support for the generated code (python and C++) ------------------------------------------------------------------------------- 2002-12-28: version 0.2 released edit_sizers/edit_sizers.py: better (hopefully) implementation of SizerBase.layout 2002-12-23: main.py, application.py: slightly better error messages 2002-12-14: docs/tutorial.html: added notes 2002-12-12: edit_sizers/edit_sizers.py, widgets/frame/frame.py: changed the EditFrame builder function to automatically set a sizer for the new frame 2002-12-11: edit_sizers/edit_sizers.py: - added methods insert_row and insert_col to GridSizerBase - EVT_MIDDLE_DOWN event handler to SizerSlot to paste from the clipboard "the X way" 2002-12-07: color_dialog.py, widget_properties.py: changed ColorDialogProperty to use a new custom dialog, using wxPyColorChooser by Michael Gilfix (thanks!) 2002-12-06: font_dialog.py, widget_properties.py: changed FontDialogProperty to use a new custom dialog (made in wxGlade!) edit_sizers/edit_sizers.py: changed set_growable_rows and set_growable_cols of EditFlexGridSizer to allow the effective removal of growable rows/cols edit_sizers/edit_sizers.py, edit_windows.py: restored 2.3.2.1 compatibility, broken by calls to wxCallAfter instead of misc.wxCallAfter 2002-11-28: edit_sizers/edit_sizers.py, tree.py: fixed bug on change_item_pos and change_node_pos 2002-11-27: codegen/py_codegen.py: if the output file for code generation already exists, honor the indentation. This is desirable for instance for conditional code, e.g. if you have to change behaviour if your app is invoked in GUI or non-GUI mode. about.py: updated developers credits 2002-11-24: widgets/*/codegen.py, xml_parse.py, edit_windows.py: changed code generation for "contol" widgets: now if you change the "Class" property, no extra code is generated, but it is assumed that you have a declaration of such a custom class somewhere. This makes much more sense than the previous behaviour (which I considered broken) 2002-11-17: codegen/py_codegen.py: added import_modules argument to add_widget_handler to allow widgets that need extra modules imported 2002-11-12: change (hopefully the last!) of license, from the Python2.2 one to MIT (for the reasons, see http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&frame=right&th=f37858bb262e4cff&seekm=918bc22f.0211051301.2010d077%40posting.google.com and following) 2002-11-11: codegen/cpp_codegen.py: modified attribute scope from private to protected in the generated code, to allow attribute access from a subclass 2002-11-05: misc.py: fixed bug in check_wx_version config.py, main.py: added support for wxFileHistory on wxPython >= 2.3.3 2002-11-01: misc.py: added focused_widget, accel_table, _remove, _cut, _copy, _paste to support keyboard shortcuts for some widgets' popup menu items in a cross-platform way 2002-10-28: widgets/custom_widget/*: added custom_widget module, to build apps which host widgets unknown to wxGlade 2002-10-25: codegen/py_codegen.py: changed wxGlade tags to fix bug caused by nested classes 2002-10-24: application.py, xml_parse.py, tree.py: added new encoding property to Application objects, which controls the encoding for the xml generation 2002-10-23: widgets/panel/panel.py, widgets/dialog/dialog.py: added new class EditTopLevelPanel to create panels without the need to create a container frame/dialog (the new class is available from the Dialog button in the palette) 2002-10-22: config.py: added config.py to configure some aspects of wxGlade (through View->Preferences... menu) 2002-10-20: edit_windows.py, edit_sizers/edit_sizers.py, main.py, misc.py: - added icons for menu items - support for keyboard shortcuts for popup menus (not on GTK yet) 2002-10-19: widget_properties.py, widgets/static_text/static_text.py, widgets/text_ctrl/text_ctrl.py: added multiline option to TextProperty to edit long values widgets/panel/*: added style property 2002-10-12: edit_sizers/edit_sizers.py: added method SizerBase.change_item_pos to change the position of an item in the sizer tree.py: added method Tree.change_node_pos to change the position of a node (and all its sub-nodes) on the tree edit_windows.py: added 'pos' property to ManagedBase instances to change the position of a widget inside its sizer 2002-10-10: widgets/button/*, widgets/bitmap_button/*: added 'default' property to implement wxButton.SetDefault 2002-10-08: edit_sizers/edit_sizers.py: - added function change_sizer (and related SizerBase.change event handler) to change the type of a sizer without deleting its contents - renamed SizerBase.Layout to SizerBase.layout for consistency - added optional recursive argument to SizerBase.Layout to call the method recursively on the sizer's sizer (if any) 2002-10-06: codegen/cpp_codegen.py, codegen/py_codegen.py, edit_sizers/edit_sizers.py: fixed bug related to notebook sizers edit_sizers/edit_sizers.py: fixed layout update on GridSizerBase, fixed add_col bug widgets/*: various layout improvements on some dialogs used to add widgets main.py: better layout of the tutorial window 2002-09-08: codegen/xrc_codegen.py: fixed bug (background colour) main.py, application.py: better path handling of file dialogs on GTK edit_sizers/edit_sizers.py: added add_row and add_col methods to GridSizerBase 2002-09-06: about.py: new about box with wxGlade logo ------------------------------------------------------------------------------- 2002-09-02: version 0.1.3 released switch from GPL license to the Python 2.2 (PSF) one 2002-08-27: codegen/cpp_codegen.py: fixed bug in id code generation widgets/frame/frame.py, widgets/dialog/dialog.py: fixed bug in get_style 2002-08-26: widgets/*/codegen.py, codegen/py_codegen.py, codegen/cpp_codegen.py: changed code generation to initialize widgets in the right order, so as to preserve the tab traversal order 2002-08-15: edit_windows.py, codegen/py_codegen.py, codegen/cpp_codegen.py: added "tooltip" property main.py: modified file dialogs to display a filter for wxGlade XML files (.wxg extension) wxglade.py, main.py: added ability to open a wxGlade file at program startup 2002-08-12: codegen/cpp_codegen.py, widgets/*/codegen.py: added experimental C++ code generator 2002-08-11: edit_windows.py, codegen/py_codegen.py: support of dialog units 2002-08-10: widgets/*/codegen.py: better python code generator functions widgets/button/codegen.py, widgets/frame/codegen.py: translation from "&" to "_" as accelerator marker in XRC output main.py: added "Generate Code..." menu item to the File menu 2002-08-09: widgets/*: fixed bug in the python code generation function when the object is an instance of a custom class 2002-08-04 / 2002-08-06: many bugfixes all around, codegen/xrc_codegen.py: first experimental code generator for wxWindows' XRC resources codegen/py_codegen.py: added a self.Layout() call at the end of __do_layout (as this is necessary for Dialogs on Windows) 2002-08-03: codegen/py_codegen.py, edit_sizers/sizers_codegen.py, xml_parse.py: changes to separate sizers from windows in the generated code, and to put sizers declarations in the __do_layout method application.py, widget_properties.py: fix for a just introduced wxPython 2.3.2.1 incompatibility widgets/MenuTree.py: added support for help strings on menu items 2002-08-02: widgets/* edit_sizers: turned into packages with two modules, to decouple code generation functions from the rest common.py: - moved Application to the new application.py - moved misc._encode and widget_properties._encode here misc.py: moved _encode to common.py widget_properties.py: moved _encode to common.py wxglade.py: added functions usage and command_line_code_generation to support code generation without starting the GUI main.py, widgets/frame/frame.py, widgets/frame/codegen.py: modified wxMenu.Append with checkable items for wxPython 2.3.3 compatibility 2002-08-01: main.py: added a View->Show Properties menu item widgets/frame.py: experimental fix for menubar-related segfaults on GTK ------------------------------------------------------------------------------- 2002-08-01: version 0.1.2 released 2002-08-01: clipboard.py: removed dirt at the end of xml_str when retrieved from the clipboard (this may happen on Windows) Removed renaming code xml_parse.py: added code to rename copied widgets in ClipboardXmlWidgetBuilder tree.py: fixed bug when a toplevel window is shown and it doesn't have a sizer widgets/dialog.py: changed create_widget to use a default style and not the current one, to avoid for example frames without a caption edit_sizers.py: fixed a memory leak widgets/splitter_window.py: fixed bug in the code generation widget_properties.py: fixed bug in HiddenProperty widgets/radio_box.py, widgets/static_bitmap.py, widgets/bitmap_button.py: fixed bugs README file added 2002-07-30: xml_parse.py: removed fake obj replacement in XmlWidgetObject.add_property since it is not necessary anymore edit_sizers.py, widgets/static_line.py, widgets/notebook.py, widgets/splitter_window.py, widgets/slider.py: removed obsolete use of Fake* objects during xml loading widgets/splitter_window.py: fixed bug in set_size regarding the position of the sash clipboard.py: changes to use system clipboard with wxTheClipboard 2002-07-29: tree.py, main.py: prevention of auto expansion of tree nodes during xml loading widget_properties.py: fixed bug in self._enabler for many Properties edit_sizers.py: - fixed bug on EditStaticBoxSizer - changed self._rmenu to be an instance of wxGladePopupMenu - renamed Refresh to refresh for consistency with the implicit coding conventions edit_windows.py: changed self._rmenu to be an instance of wxGladePopupMenu misc.py: added wxGladePopupMenu tree.py: added popup menu to show hidden toplevel widgets widgets/panel.py, widgets/notebook.py, widgets/splitter_window.py: removed obsolete on_parent_size methods widgets/panel.py: fixed bug that caused a bad layout of the panel when resized 2002-07-28: about.py: updated developers credits 2002-07-26 / 2002-07-28: transition to the new implementation, i.e. (partial) separation of the GUI from the core logic 2002-07-22: TODO.txt: updated docs/tech_notes.txt: added (incomplete) 2002-07-20: edit_sizers.py: - added a create_properties method, with the same purpose of EditBase.create_properties - fixed a couple of bugs (double Destroy call) on SizerSlot widgets/splitter_window.py: completed transition from the old Property behaviour to the new one xml_parse.py: created ClipboardXmlWidgetBuilder, to parse the contents of the clipboard clipboard.py: changes to use the new ClipboardXmlWidgetBuilder 2002-07-19: main.py, widget_properties.py, edit_windows.py, edit_sizers.py: fixed a lot of memory leaks 2002-07-18: widget_properties.py: changed all the Properties: they are not instances of wxPanel anymore, but they have a panel attribute, which is initialized only when needed (i.e. when the owner of the Property has focus) edit_windows.py, edit_sizers.py: changes to reflect the new behaviour of Properties: now the notebook inside which Properties are displayed is built only when needed 2002-07-17: codegen/py_codegen.py: - support for multiple output files - initial support for tags in the generated source files to know what to overwrite and what to leave untouched 2002-07-16: codegen/py_codegen.py: - initial support for multiple files - if __name__ == '__main__' block on generated code - remove duplicate declarations of custom classes when there is more than one instance main.py: fixed some memory leaks common.py: initial support for generation of multiple files xml_parse.py: initial support for generation of multiple files TODO.txt: added plan to support an XRC code generator 2002-07-14: version 0.1alpha2 wxglade.py: added comments, added an if __name__ == '__main__' block codegen/py_codegen.py: - fixed bug in the generated code when a __do_layout method is empty - translated the last Italian comment to English widgets/notebook.py: - fixed bug in the generated code when the notebook is an instance of a custom class - fixed bug in xml_builder which prevented the 'class' property from having the right value widgets/splitter_window.py: - fixed bug in the generated code when the window is an instance of a custom class - fixed bug in xml_builder which prevented the 'class' property from having the right value widgets/static_line.py: fixed bug in xml_builder which prevented the 'class' property from having the right value docs/tutorial.html: - fixed some errors - added information about custom classes ------------------------------------------------------------------------------- 2002-07-12: version 0.1alpha (first public release)