Twindy ChangeLog
----------------

//------------------------------------------------------------------------------
Done (1.00)
-----------
- Make sure we don't get zombie processes.
- Add text localisation support.
- Move over to using JUCE' own file dialogs instead of Phil, remove Phil
  entirely.
- App button text colour is now handled by the menuText colour setting.
- Slight modifications to the UbuntuDapper tracktionscheme.
- Re-do AboutPage - add ability to select and copy the web addresses (I don't
  think this is actually possible with JUCE on Linux), move everything into
  Labels etc.  Add JUCE version.
- Moved to JUCE v1.42.
	- This fixed the inability to type in caps in TextEditors.
- Rename Exit button, ask for confirmation.
- Extend the lower panel to the right.
- Ask if the user wants to kill the lower app if they click on a lower app
  closebutton.
- Make sure saving tracktionschemes adds the "." before "tracktionscheme".
- Give the colours meaningful names (should probably have some way of informing
  the user what .tracktionscheme colour they're editing).
- Identify the 2 columns of app buttons (upper, lower).
- Add buttons to move an app to the upper panel (& vice-versa).
- Moved to Anjuta v2 project format.

//------------------------------------------------------------------------------
Done (0.45 beta)
---------------
- Added debug mode (enabled from the configure script: --enable-debug), with
  TWINDY_DBG_MESSAGE().
- Make sure it quits if another WM is already running.
- On Tracktionscheme Editor, move new etc. buttons above the colour widgets.
- Fix Executable TextEditor on Buttons page - it currently displays the
  executable for the previous entry if the current entry doesn't have any text
  there.
- Add --version and --help command line options.
- Remove loadColours() from TwindyRootWindow, replace with the TracktionScheme
  methods.
- Stop it crashing when you try and delete an entry from the Startup Programs
  preferences page.
- Get the up and down buttons to work on the Startup Programs preferences page.
- Add a 'docs' tab to the preferences page, to display the files in
  /usr/local/docs/Twindy (i.e. a big TextEditor, with a ComboBox to select
  between files).  How useful is this?  Removed now.
- Make it so that if a button or menu entry has no text for it's executable,
  a 'run executable' dialog will pop up, allowing the user to type in the
  command to execute.
- Remove xsetroot (doesn't seem to work anyway, and it doesn't make much sense
  now that different workspaces can have different background colours).
- Add clock options to the Misc preferences page.
- Added UbuntuDapper colour scheme, to fit in with Ubuntu's HumanLooks theme.

Done (0.41 beta)
---------------
- Fixed various memory leaks related to XmlDocument.

Done (0.4 beta)
---------------
- Migrate to a system which can handle multiple workspaces (as tabs at the top
  of the screen).
	- Will need to keep multiple vectors(?) of windows - one for each workspace.
	- New windows opened will have to be added to the correct workspace -
	  normally this won't be a problem, but need to be careful when the
	  preferences are on screen.
- Add a preferences tab at the top of the screen.
	- Ability to set what apps the buttons start/menus and their entries, and
	  the names of the buttons.
	- Ability to set which programs are loaded on startup.
	- Colour selector to create TracktionSchemes, ability to save schemes.
		- Rename colours to make more sense re: Twindy.
	- Ability to set the font Twindy uses (now that I've discovered
	  Font::setDefaultSansSerifName(), doh...).
	- Put a small about panel somewhere on this tab (Twindy version, JUCE
	  version, credits/acknowledgements).
	- We will keep twindyrc compatible with previous versions, so the
	  'TracktionScheme' entry will define the scheme used for the preferences
	  tab.  If a twindyrc is found which does not have any workspace entries,
	  the TracktionScheme entry will be used as the scheme for the main (1st)
	  workspace.
	- Ability to set the number of workspaces and name them, assign each one
	  its own TracktionScheme.
- Fix Phil's icons.
- Need to be able to change colours (etc.) while Twindy's running.
- Fix Button menu entries not updating correctly.
- Make sure any windows left over when removing a workspace are moved onto the
  next available workspace.
- Optimise redrawing when changing workspace tabs (currently slow because it
  opens a file (2 files usually) to determine the correct colours).
- Make the upper panel tab names respond to updates the same way the lower panel
  does (i.e. terminals usually display the current path...).
- Fix button menu remove button.
- Update the default twindyrc written when Twindy's first run.
- Make sure button-menu changes show up on the buttons.
- Create some more tracktionschemes (Default, Milky, Sandy, Sea-ish, DarkBlue,
  Grey).
- Include an example .xsession file in the zip.
- Move to latest version of JUCE (v1.25).

//------------------------------------------------------------------------------
Done (0.31 beta)
----------------
- Fixed the JUCE Brush class to compile without errors on gcc(g++)v4.

Done (0.3 beta)
---------------
- Include Milky colour scheme.
- Include Phil Component (even if it's not actually used yet).
- Move to latest JUCE version (v1.22).
- Fix lower panel outline to be properly curved.
- Remove irrelevent font settings (Bitstream Vera Sans set as the default font
  now).
- Buttons which have menus now have their text drawn in bold.
- Remove configure request error message.
- Tidy up any fixed sizes, so it displays correctly whatever resolution you're
  running.
	- Make the Twindy text at the left stretch to take up the same space no
	  matter what resolution you're running.
	- Ditto for the buttons' height.

//------------------------------------------------------------------------------
v0.2-beta:
----------
- Sort out upper window tabs getting the wrong title if a window is closed (not
  quite there yet?).
- Move to latest version of JUCE (v1.14).
- Make it so that you don't have to start Twindy from an xterm.  This means:
	- Stop JUCE crashing when there isn't an X window already existing.
- Sort out the TabbedComponent (just used the old one, renamed as
  TwindyTabbedComponent to avoid collisions with the new one).
- Make sure the 'Twindy' text at the right is centred.
- Check whether the height of the lower panel is fixed, and alter it to be
  proportional if it isn't.
- Add the option of running programs at startup (particularly for
  gnome-settings-daemon).
- Get the title of windows to display in their tab(?)/the lower panel's title.
	- i.e. terminals usually say something like "niall@thingy:~" etc.
- Extend the 'tab' of the lower panel according to the length of the window's
  title.
- Allow for basic user-customisable menus to start programs in the upper and
  lower panels.
	- All lower left buttons will be able to have popup menus, according to the
	  twindyrc file.  The left column of buttons will always open a window for
	  the upper panel, with the right column always opening a window for the
	  lower panel.
- Clicking the clock switches between a time and a date display, a`la OSX.
	- ? Seems OSX doesn't do this anymore.  That's a bit rubbish...
- Kill zombie processes!
- Find out how to get the pid of programs started at startup, so we can kill
  them when we exit.
- Tidy up the code, remove all those cout debugging statements.
	- Add in a bunch of AlertWindows.
		- Better idea: Make a singleton class which displays any error messages
		  in the bottom right corner.
- Stop Anjuta etc. crashing with something to do with X_ConfigureWindow?.
	-Invalid window.
- Stop gedit crashing with an invalid window for X_GetProperty when you close it
  from it's menu.
- Make sure all windows are returned focus after a PopupMenu has opened.

//------------------------------------------------------------------------------
v0.1-alpha:
-----------
- First release.
- Close open windows when Twindy quits.
- New windows get automatically mapped correctly.
- When windows close on their own, their tab is removed, and the next window in
  line is mapped.
- Save set used for upper windows, in case we quit unexpectedly while windows
  are hidden (unmapped).
- Make sure windows always have focus when the mouse cursor is over them.
	- Sloppy focus sounds good - windows get focus when the cursor moves over
	  them, and keep it until focus is given to another window.
- Make clock a separate Component.
- Put in a close button somewhere for the upper panel tabs/windows (and lower
  panel).
- Close all open windows when Twindy quits.
- Call xsetroot -solid <propertyPanelBackground> so that transparent windows
  have the right background (this doesn't seem to work actually, I wonder how
  other window managers handle it...).
- Let the user specify what programs the browser and terminal buttons start.
	- Create simple ~/.twindy folder, containing twindyrc and
	  Default.tracktionscheme.
- Do something about the mouse cursor.
- Use EnterWindow and LeaveWindow events to set focus.
- Move JUCE into the project (put everything in src, update configure script).
	- Make OpenGL and Xinerama default to no.
- Make sure XSetInputFocus doesn't risk crashes (fixed?).
//------------------------------------------------------------------------------
