Application design

The application is written in Python, using wxPython for the GUI part, and pickle for saving and loading the data. Using pickle eliminates the need to convert this before saving and converting it back after loading.

The data structure is a simple Python dictionary with the tab titles as keys and the text field contents as values. To facilitate the changing of tab titles I later changed that to a tuple of text and (new) title.

Basic GUI components are a tab bar and a multi-line text field like you would find in a notebook interface where each page is a simple panel containing a basic text editor. No GUI framework can do without an event loop for control and capturing special key combinations. There is no menu and no doalogs for saving and loading, but there is a help screen.

On moving to Python 3, wxPython had to be exchanged for PyQt, which meant a slightly different look. I tried to keep the feel the same. The notebook is now a tabwidget, and built in behaviour might be a bit different.

When wxPhoenix became available under Python3 I rebuilt the wxPython version, and for shits and giggles I also did it in pyGTK.