view codeDoc/staticCtors.txt @ 131:9cff74f68b84

Major revisions to popup handling. Buttons can close menus now, plus some smaller impovements. Removed Widget module. Moved Widget.AWidget to AChildWidget.AChildWidget and Widget.AParentWidget to AParentWidget.AParentWidget. Removed ASingleParentWidget to improve code sharing. AChildWidget doesn't implement IParentWidget like AWidget did. New IPopupParentWidget extending IParentWidget for the WM and some widgets to handle popups. Cut old popup management code. New underMouse() function replacing highlight(); called on all widgets. Separate menu-popup and button widgets aren't needed for menus now. Functions returning content widgets have been moved to their own module. Cleaned up jobs.txt. Switched to 80 line length for Ddoc.
author Diggory Hardy <diggory.hardy@gmail.com>
date Wed, 21 Jan 2009 13:01:40 +0000
parents 56c0ddd90193
children
line wrap: on
line source

Copyright © 2007-2008 Diggory Hardy
License: GNU General Public License version 2 or later (see COPYING)


Map of what happens in static CTORs (excluding creating loggers). From August 2008.

mde
->  imde
    ->  input.Input
        ->  input.Config
            

* means shouldn't affect anything else done by static ctors

imde {
    input = new Input();
    mainSchedule = new Scheduler;*
}

font.FontTexture.OptionsFont {*
    fontOpts = new OptionsFont;
    Options.addOptionsClass (fontOpts, "font");
}

gui.WidgetManager {*
    gui = new WidgetManager ("gui");
}

input.Config.Config {*
    loadedFiles = new TreeBag!(char[]);
}

input.Input.Input {*
    es_b_fcts = [ ES_B.OUT : &es_b_out ];
    es_a_fcts = [ ES_A.OUT : &es_a_out, ES_A.REVERSE : &es_a_reverse ];
    es_m_fcts = [ ES_M.OUT : &es_m_out ];
}

lookup.Options.OptionsMisc {*
    miscOpts = new OptionsMisc;
    Options.addOptionsClass (miscOpts, "misc");
}

setup.Init {?
    Logger root = Log.root;
    debug root.level(Logger.Trace);
    else  root.level(Logger.Info);
    root.add(new AppendConsole);
}

setup.init2 {*
    init.addFunc (&initInput, "initInput");
    init.addFunc (&guiLoad, "guiLoad");
}

setup.sdl {*
    init.addFunc (&initSdlAndGl, "initSdlAndGl");
}

setup.sdl.OptionsVideo {*
    vidOpts = new OptionsVideo;
    Options.addOptionsClass (vidOpts, "video");
}