view codeDoc/jobs.txt @ 130:c5c38eaadb64

Changed how sizability is set for parents: can require all sub-widgets resizable or only one to set parent resizable. Ifaces.IParentWidget.SIZABILITY controlling parent sizability. TextWidget no longer vertically resizable (since multi-line editing is not supported).
author Diggory Hardy <diggory.hardy@gmail.com>
date Sat, 17 Jan 2009 16:11:26 +0000
parents ad91de8867a0
children 9cff74f68b84
line wrap: on
line source

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


In progress:
Still a resizing issue (needs SIZABILITY = SIZABILITY_ENUM.ANY_SUBWIDGETS to make options window resizable): enlarge options box, change tab, shrink and change back.


To do (importance 0-5: 0 pointless, 1 no obvious impact now, 2 todo sometime, 3 useful, 4 important, 5 urgent):
Also see todo.txt and FIXME/NOTE comment marks.
4   Close popup menu on button activation/click.
3   Synchronization of IContent with gui (e.g. multiple edit widgets): worth adding (temporary) callbacks?
3   Widget saving: how to deal with modifier functions, esp. when they discard parameters? Remove feature except for dimdata and handle gui editing separately?
3   Use of dtors - don't rely on them? Or what happens when init throws during creation - relying on undefined behaviour.
3   glBindTexture not working with non-0 index - perhaps use a higher level graphics library at some point.
3   Windows building/compatibility (currently partial) - tango/sys/win32/SpecialPath.d
2   Popup help boxes on hover/right click to display content description.
2   clickEvent: don't evaluate b directly but pass to a WidgetManager function to allow button configuration. Alternately, evaluate in WidgetManager's clickEvent and pass flags on to IChildWidget's clickEvent.
2   Reduce variable passing (e.g. for some Content widgets data and id aren't even relevant). Wait for gui editor.
2   Possibility: Could have a content method "update (T*)" to add a synchronized variable. Or could store both a content and a syncronized variable for each option within Options.
2   Add callback to miscOpts.L10n reverting the option to it's last value if no file is found and reloading translations.
2   Remove ability to scan, then load, mergetag sections. Not so necessary with section creator callback and allows "sliding window" type partial buffering. Also remove dataset and force use of section creator callback?
2   Options need a "level": simple options, for advanced users, for debugging only, etc.
2   Command-line options for paths to by-pass normal path finding functionality.
2   Consider replacing byte/short types with int type
2   File loading from compressed archives
2   gdc compatibility - now due to SDL?
2   Sensitivity adjustments. From es_a_out:
        /+ FIXME: revise.
        + I can't see any point using HALF_RANGE here, since it should really be used dependant on
        + the device attached, not the axis. Also what about adjusted range like X3's throttle?
        +
        + Sensitivity: is this the right place to adjust it? For things like throttle where the
        + ends of the interval must remain fixed, multiplying cannot be used to adjust and adjusting
        + the curve via a power function doesn't seem to be what we want. For things where the
        + end points needn't remain fixed, multiplying seems the right thing to do, but cannot be
        + done here since we don't know the end points can be changed.
        
        real y = x;
        uint conf = s.pop();
        enum : uint {
            HALF_RANGE	= 0x8000_0000u,
            SENSITIVITY	= 0x0080_0000u,
        }
        // Convert ranges into standard intervals (with or without reverse values)
        if (conf & HALF_RANGE) y = (y + 32767.0) * 1.5259254737998596e-05;	// range  0.0 - 1.0
        else y *= 3.0518509475997192e-05;					// range -1.0 - 1.0
        real a;
        if (conf & SENSITIVITY) a = s.pop();
        /+ When a global sensitivity is available (possibly only use if it's enabled)...
        else a = axis.sensitivity;
        y = sign(y) * pow(abs(y), a);		// sensitivity adjustment by a +/
        myThis.axis[cast(inputID) s.pop()] = y;
        +/
1   Mergetag binary support / other file formats.


Done (since last commit):