We should only ever have one instance of the main window, so there is no
reason for it to be a class. I have turned it into a set of functions
that do the same thing.
We only have one instance of the main tabs, so there is no reason for it
to be a class. I have changed this into a set of functions that do
everything the old class did.
The main tabs now have a generic TabPage class that contains the content
added to the tab. This TabPage will control visibility of the content
and make it easier to find a page with specific content (no looping
through gtk boxes!)
Libsaria events now support starting specific callback functions in a
background thread. This replaces starting a specific event in the
background.
I have a library tab that is added to the main window through use of the
ocarina.add_tab function.
I have new tests for walking the tree and running multiple threads with
locks.
The web radio plugin can load pandora and grooveshark. This happens
when a web radio tab is selected. After the web document is loaded,
playing music will be paused.
I have begun creating the Ocarina 4.1 gui. So far, I can create and
resize a window. After a resize, the new size is saved and used again
when Ocarina is next started. I am also investigating drag and drop for
use with plugin loading.
I revised the Ocarina 4.0 map class so it will hopefully have better
performance. I also began working on a new testing system so testing
specific changes should be easier than with Ocarina 4.0