Torta Implementation Details
(Coming Soon™)

This page will detail into the little details of how Torta (and Checklist/Checklist2 for comparison) works - from tables, strings and booleans to lists displayed on your screen.

Let's begin.

Before the first line of code was written, I gave myself time to sit down and think through the big picture of Torta. From, of course, the high-level bits that the user will interact with to the nuts and bolts that make it all work. This page is about all those nuts and bolts.

Anyway, with the primary goal of maintainability (and user-friendliness ) the following layout was decided upon.

Code:
The Torta object
                     Torta
                       |
            ------------------------
            |          |           |
           gui        cl3         nb2
            |      Checklist    Notebook
            UI   functionality   func.
        management
Code:
Torta File Structure

Torta\
Torta\Torta.toc

Torta\Core.lua          (Is not as important as before, only contains OnInitialize function now)
Torta\UIEffects.lua     (Contains Torta's effects API) (Namespace: Torta.gui)
Torta\UIManager.lua     (Deals with the effects API)   (Namespace: Torta.gui)
Torta\DataHandler.lua   (Handles profiles)
Torta\CL3.lua           (Contains Checklist functions) (Namespace: Torta.cl3)
Torta\NB2.lua           (Contains Notebook functions)  (Namespace: Torta.nb2)

Torta\Windows\
Torta\Windows\Windows.xml             (Loads stuff)
Torta\Windows\TortaParentFrame.xml    (Contains the main window itself)
Torta\Windows\StartPage.xml           (Contains the entire Torta start page)
Torta\Windows\MainPage.xml            (Contains the frame that will contain both CL3 and NB2)
Torta\Windows\Explorer.xml            (Contains the list/notebook selection listbox)
Torta\Windows\ManageDialog.xml        (Self-explanatory)
Torta\Windows\Templates.xml           (Contains frame templates)
Torta\Windows\Taskbar.xml             (Contains the taskbar at the bottom of the Torta window)
The idea here is to categorize code as much as possible so code is grouped with other code that is related to it in some way, unlike previous versions of Checklist where there was a messy Core.lua and two large XML files.