Freeware Section

In this section you will find the description and the codes of a number of software (or simple libraries) that I wrote for my work or just because I had spare time. These software are freeware, and they can be downloaded and used always respecting the wxWidgets License.

As the collection of widgets is becoming larger and larger, I decided to split the widgets' descriptions into different html pages. Old links found on the net referring to those controls will not work anymore. If you have bookmarked the old page, please update your links.


Note: For all of these software, it is necessary to install Python and wxPython.


FoldPanelBar

FoldPanelBar is a Python class that uses wxPython GUI front-end. It has been integrated into the standard wxPython library distribution since version 2.5.5.1, dated 8 April 2005.

This class simulate, in some way, the behavior of the “foldable” menus in Windows XP, that you can easy find at the left by opening Explorer.



Warning: Unless you are supporting a wxPython version older than 2.5.5.1, you should use the FoldPanelBar that ships with wxPython (in wx.lib.agw).

Last Update: 07-Nov-2005




HyperLinkCtrl

HyperLinkCtrl is a Python class that uses wxPython GUI front-end. It has been integrated into the standard wxPython library distribution since version 2.6.0.1, dated 30 May 2005.

This class is very useful when you wish to simulate an hyperlink inside a panel, a window or a frame.

Warning: Unless you are supporting a wxPython version older than 2.6.0.1, you should use the HyperLinkCtrl that ships with wxPython (in wx.lib.agw).

Last Update: 07-Nov-2005

BalloonTip

This class has been written in order to be integrated in the wxPython library. It is useful to recreate the Windows XP Balloon Tip help that we usually see in the taskbar.

Last Update: 09-Sep-2005



Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the BalloonTip that ships with wxPython (in wx.lib.agw).


ExtendedChoice

ExtendedChoice has been written in order to be integrated in the wxPython library. It extends the functionalities of wx.Choice and wx.ComboBox, already present in wxPython. It is easy to use and highly customizable.

Last Update: 18-Dec-2005





EnhancedStatusBar

This class is an extension of the wx.StatusBar in the wxPython distribution. It allows the user to insert virtually every wxPython control inside the status bar of a frame. It is highly customizable, with a lot of options.

Last Update: 19-Dic-2005






ToasterBox

ToasterBox is a cross-platform library to make the creation of MSN style "toaster" popups easier. The syntax is really easy especially if you are familiar with the syntax of wxPython.

Last Update: 31-Oct-2007






Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the ToasterBox that ships with wxPython (in wx.lib.agw).




SpeedMeter

SpeedMeter is a control written in wxPython that allows you to simulate angular controls like car speed/fuel/oil/RPM controls, temperature indicators, clocks and whatever similar comes to your mind.

Last Update: 25-Sep-2005


Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the SpeedMeter that ships with wxPython (in wx.lib.agw).


AdvancedSplash

AdvancedSplash is a control written in wxPython that reproduce somewhat the behavior of wx.SplashScreen, but with some more functionalities. It is possible to set the shape of the splash screen, accordingly to the input image, and adding text in runtime to simulate some loading progress.

Last Update: 09-Oct-2005

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the AdvancedSplash that ships with wxPython (in wx.lib.agw).


ShapedButton

ShapedButton is a control written in wxPython that tries to fill the lack of "custom" shaped controls in wxPython. With this class, you will be able to create rounded and elliptical buttons, with optional images and/or text labels.

Last Update: 18-Oct-2005


Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the ShapedButton that ships with wxPython (in wx.lib.agw).


PieCtrl/ProgressPie

PieCtrl/ProgressPie are simple classes that reproduce the behavior of a pie chart. they use only pure wxPython classes/methods, without external dependencies.

Last Update: 31-Oct-2005



Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the PieCtrl/ProgressPie that ships with wxPython (in wx.lib.agw).


NotebookCtrl

NotebookCtrl mimics the behavior of wx.Notebook, but with a lot of added functionalities, such as individual tab text fonts/text colours, individual tab colours, animation on tab images, enabling/disabling tabs, drag and drop of tabs, individual tab tooltips, tab context menus, different options to show/hide tabs, multiple tabs selection, tab panels reparenting, 2-colours gradients on tabs and a lot more options.

Last Update: 13-Mar-2007

Written in cooperation with Julianne Sharer.


FloatSpin

FloatSpin implements a floating point spin control for wxPython. In order to correctly handle the floating point numbers without having rounding errors or non-exact floating point number representations, it uses a very nice class that is capable, in theory, of handling infinite floating point precision.

Last Update: 08-Apr-2007

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the FloatSpin that ships with wxPython (in wx.lib.agw).


ThumbnailCtrl

ThumbnailCtrl is a widget, written in wxPython, that can be used to display a series of images in a "thumbnail" format; it mimics, for example, the Windows Explorer behavior when you select the "View Thumbnails" option.

Last Update: 13-Dec-2005

Written in cooperation with Peter Damoc.

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the ThumbnailCtrl that ships with wxPython (in wx.lib.agw).



PyAUI

PyAUI is an Advanced User Interface library that aims to implement "cutting-edge" interface usability and design features so developers can quickly and easily create beautiful and usable application interfaces.

PyAUI is a floating/docking library for wxPython. Its source code has been translated from the original C++ implementation wxAUI. It uses native floating frames, for every type of wxPython controls, including toolbars. All the drawing procedures can be customized.

Note: at present (08-Jan-2006) PyAUI should work on all the wxPython supported platforms.

Thanks to Chris Mellon who has done a great work to make PyAUI working on Mac.

Last Update: 08-Jan-2007

Warning: PyAUI Is currently deprecated. Please use the new AUI in wx.lib.agw.aui or at this link.



CustomTreeCtrl

CustomTreeCtrl mimics the behavior of a wxPython tree control, and implements almost all its styles and functionalities. However, this class represents an owner-drawn tree control and adds a lot of new methods and utilities with respect to the standard tree control.

This implementation is based on the generic wxWidgets C++ version of the control, heavily extended to include a huge number of new styles and customizations.

CustomTreeCtrl has been integrated into the standard wxPython library distribution since version 2.7.1.1, dated 18 Oct 2006

Warning: Unless you are supporting a wxPython version older than 2.7.1.1, you should use the CustomTreeCtrl that ships with wxPython (in wx.lib.agw).

Last Update: 10-Aug-2007



ButtonPanel

With FancyButtonPanel class you have a panel with gradient coloring on it and with the possibility to place some buttons on it.
Gradient coloring is kept behind the images - this was achieved due to the PNG format and the transparency of the bitmaps.

This implementation is based on the wxWidgets C++ code from Eran Ifrah in the wxWidgets forum.

ButtonPanel has been integrated into the standard wxPython library distribution since version 2.7.1.1, dated 18 Oct 2006


Warning: Unless you are supporting a wxPython version older than 2.7.1.1, you should use the ButtonPanel that ships with wxPython (in wx.lib.agw).

Last Update: 30-Oct-2006


FlatNotebook

The FlatNotebook is a full implementation of the wx.Notebook, and designed to be a drop-in replacement for wx.Notebook. The API functions are similar so one can expect the function to behave in the same way.

This implementation is based on the wxWidgets C++ code from Eran Ifrah in the wxWidgets forum.


FlatNotebook has been integrated into the standard wxPython library distribution since version 2.7.1.1, dated 18 Oct 2006


Warning: Unless you are supporting a wxPython version older than 2.7.1.1, you should use the FlatNotebook that ships with wxPython (in wx.lib.agw).

Last Update: 28-Jun-2007

PyProgress

PyProgress is similar to wx.ProgressDialog in indeterminated mode, but with a different gauge appearance and a different spinning behavior. The moving gauge can be drawn with a single solid colour or with a shading gradient foreground.
Last Update: 06-Nov-2006

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the PyProgress that ships with wxPython (in wx.lib.agw).

KnobCtrl

KnobCtrl lets the user select a numerical value by rotating it. Simple but effective. It can be easily used if you want to simulate the volume knob of a music player or similar functionalities.

Last Update: 06-Nov-2006

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the KnobCtrl that ships with wxPython (in wx.lib.agw).




FourWaySplitter

The FourWaySplitter is a layout manager which manages four children like four panes in a window. You can use a four-way splitter for example in a CAD program where you may want to maintain three orthographic views, and one oblique view of a model.

Last Update: 06-Nov-2006

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the FourWaySplitter that ships with wxPython (in wx.lib.agw).


RulerCtrl

RulerCtrl implements a ruler window that can be placed on top, bottom, left or right to any wxPython widget. It is somewhat similar to the rulers you can find in text editors software.

Last Update: 06-Nov-2006





Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the RulerCtrl that ships with wxPython (in wx.lib.agw).




LabelBook

LabelBook and FlatImageBook share their appearance with wx.Toolbook and wx.Listbook, while having more options for custom drawings, label positioning, mouse pointing and so on. They retain also some visual characteristics of the Outlook address book.

Last Update: 06-Nov-2006

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the LabelBook that ships with wxPython (in wx.lib.agw).



FlatMenu

FlatMenu, like the name implies, it is a generic menu implementation. I tried to provide a full functionality for menus, menubar and toolbar.

This implementation is based on the wxWidgets C++ code from Eran Ifrah in the wxWidgets forum.

Last Update: 15-Nov-2007

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the FlatMenu that ships with wxPython (in wx.lib.agw).



WindowTree

WindowTree can easily be used to look at the sizer and/or window hierarchy of any wxPython applications. Since normally we have some quite dynamic interfaces, it's handy to inspect them using the tree views that WindowTree provides.

Last Update: 03-Mar-2007





GUI2Exe

GUI2Exe is (my) first attemp to unify all the available "executable builders" for Python in a single and simple to use graphical user interface. At the moment only py2exe is supported (is the only one I know), but it shouldn' be hard to extend it.

It is available as source code (requires wxPython and py2exe) or as a Windows installer (no requirements)

Last Update: 08-Apr-2007

Warning: This GUI2Exe version is now obsolete! You should use the Python source code hosted at googlecode, and specifically here: http://code.google.com/p/gui2exe/



WidgetStack

The WidgetStack class provides a stack of widgets of which only the top widget is user-visible. It is very similar to Qt QWidgetStack or Java CardLayout. Another "book" control for wxPython has come...

Last Update: 08-Apr-2007



wxPython Demo

This is an alternative implementation of the wxPython demo, that uses wxAUI to manage the frame layout, FlatNotebook for fancier tabs appearance and a customized tree control to display the demos.

Last Update: 17-Apr-2007



HyperTreeList

HyperTreeList mimics the behavior of a wxPython tree-list control, and implements almost all its styles and functionalities. However, this class represents an owner-drawn tree-list control and adds a lot of new methods and utilities with respect to the standard tree-list control.

This implementation is based on the generic wxWidgets C++ version of the control, heavily extended to include a huge number of new styles and customizations.

Last Update: 15-Nov-2007

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the HyperTreeList that ships with wxPython (in wx.lib.agw).


SizerHack

SizerHack is a small application I wrote while investigating random generated interfaces. In my opinion, it could be useful to teach wxPython newbies how to deal with sizers and interfaces layouts in a more "visual" way.

Last Update: 12-Jun-2007





PyCollapsiblePane

PyCollapsiblePane is a generic implementation of the well known wxWidgets wxCollapsiblePane: the need of pure Python source code came from a request of increased flexibility for this control.

Note: This is not a rewrite-from-scratch implementation: is a translation from the existing C++ widget.

Last Update: 10-Aug-2007

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the PyCollapsiblePane that ships with wxPython (in wx.lib.agw).




CubeColourDialog

Ever wanted one of those fancy color picking dialogs that applications like Corel PhotoHouse have? If you did, here it is! The CubeColourDialog is an alternative implementation of wx.ColourDialog, and it offers different functionalities with respect to the default wxPython one. It can be used as a replacement of wx.ColourDialog with exactly the same syntax and methods.

Last Update: 28-Aug-2007

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the CubeColourDialog that ships with wxPython (in wx.lib.agw).




AquaButton

AquaButton is another custom-drawn button class which *approximatively* mimics the behaviour of Aqua buttons on the Mac. It sports many features of Aqua Buttons, such as bubble and shadow effects and pulse-on-focus behaviour.

Last Update: 09-Oct-2008


Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the AquaButton that ships with wxPython (in wx.lib.agw).


GenericMessageDialog

This class represents a dialog that shows a single or multi-line message, with a choice of OK, Yes, No and Cancel buttons. 

It is a possible replacement for the standard wx.MessageDialog, and offers many different and enhanced functionalities, not least the more eye-catching look :-D .


Last Update: 09-Oct-2008

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the GenericMessageDialog that ships with wxPython (in wx.lib.agw).



GradientButton

GradientButton is another custom-drawn button class which mimics Windows CE mobile gradient buttons, using a tri-vertex blended gradient plus some ClearType bold font (best effect with Tahoma Bold). 


Last Update: 09-Oct-2008

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the GradientButton that ships with wxPython (in wx.lib.agw).


MultiDirDialog

This class represents a possible replacement for wx.DirDialog, with the additional ability of selecting multiple folders at once. 

It may be useful when you wish to present to the user a directory browser which allows multiple folder selections.


Last Update: 09-Oct-2008

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the MultiDirDialog that ships with wxPython (in wx.lib.agw).



PeakMeterCtrl

PeakMeterCtrl mimics the behaviour of equalizers that are usually found in stereos and MP3 players, with the possibility of displaying horizontal/vertical bands of coloured leds.


Last Update: 09-Oct-2008

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the PeakMeterCtrl that ships with wxPython (in wx.lib.agw).


SuperToolTip

SuperToolTip is a class that mimics the behaviour of wx.TipWindow and generic tooltip windows, although it is a custom-drawn widget. 

It sports many features, such as triple-blended gradient for the background colour, bold and hyperlink lines, header and footer with their associated images, rounded corners and shadows, and much more.

Last Update: 09-Oct-2008

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the SuperToolTip that ships with wxPython (in wx.lib.agw).


AUI

AUI is an Advanced User Interface library that aims to implement "cutting-edge" interface usability and design features so developers can quickly and easily create beautiful and usable application interfaces.

The wxPython AUI version fixes a lot of bugs in wxAUI and provides many new features, such us Visual Studio 2005 docking style (HUD) and AuiNotebook tab arts.

Warning: Unless you are supporting a wxPython version older than 2.8.9.2, you should use the AUI that ships with wxPython (in wx.lib.agw.aui).

Last Update: 31-Mar-2009

UltimateListCtrl

UltimateListCtrl is a class that mimics the behaviour of wx.ListCtrl, with almost the same base functionalities plus some more enhancements. 

This class does not rely on the native control, as it is a full owner-drawn list control.

Last Update: 22-May-2009

RibbonBar

The RibbonBar library is a set of classes for writing a ribbon user interface.

At the most generic level, this is a combination of a tab control with a toolbar. At a more functional level, it is similar to the user interface present in recent versions of Microsoft Office.

Last Update: 16-Oct-2009

PersistentControls

Persistent objects are simply the objects which automatically save their state when they are destroyed and restore it when they are recreated, even during another program invocation.

Most often, persistent objects are, in fact, persistent windows as it is especially convenient to automatically restore the UI state when the program is restarted but an object of any class can be made persistent. Moreover, persistence is implemented in a non-intrusive way so that the original object class doesn't need to be modified at all in order to add support for saving and restoring its properties.


Last Update: 16-Nov-2009

XLSGrid

XLSGrid is a class based on wx.grid.Grid that can be used to faithfully reproduce the appearance of a Microsoft Excel spreadsheet (one worksheet per every instance of XLSGrid).

XLSGrid is a completely owner-drawn control, and it relies on the power of PyGridTableBase and  PyGridCellRenderer to draw the cell content. For this reasons it will work efficiently only for relatively small Excel files.




Last Update: 08-Aug-2011