KControl Communicates with the under-the-hood stuff Has the workflow Workflow keeps the panes in order Control hangs onto the images when moving from pane to pane How? Controller listens for "Workflow finished" event When that comes in, the controller's image collection will be updated Must subscribe to the workflow image change events That will be in the workflow Should the GUI talks directly to the state through events? KCanvas should get all events and then pass down Not use the events to edit the interior state Naming convention change: KCanvasPane (previously known as "KCanvas") The real name for the under the hood canvas that holds the images Has the canvas, toolbox, print button, help button, thumbnail pane How the thing works 1) KCanvas gets clicked 2) Tells KController "I got a click ." 3) KController asks the Collage object "What image is ?" 4) Collage (Kilage?) returns "This one." 5) Kcontroller "Select image" Double buffering: Keep most of the images cached in the background so it doesn't need to be recalculated Remember: performance comes in revision 3 Kworkflow Listens for the "next pane" event and then gives back the next pane. Controller should be seperated out Still keep the controller as a single entry point Seperates out to "EventController," "CanvasController," "Keyboard Controller" etc Name the displays very specifically. What should the Admin do? Each class has a KSettings class to act as the embodiment of a config file.