// Todo list -Clean up the Nex_ custom mess a bit -Notify Spike that the "effectless statement" warning has a off-by-one bug *-Rename Item_Composition and make it not embedded by default *-Add support for a MOUSECLIP flag which will make the menu not pass any mouse events to the items under it *-Move the normal key function somewhere else perhaps?? *--Write a test menu ^^ --Unroll as menu recursive functions as possible f-Remove this bloody RUNFLAG_SPAWNED again *-Only spawn an item once(even if its tried to spawn it multiple times) -Think about the layout alignment and improve it *-Calculate the clip sizes and positions only once in PROCESS_RUNFLAG --Rewrite *all* controls and the event handler to have the origin change before the current event function -Add #enum and #enumflags to the parser -Add effect support to all bloody items, use fixed names - if non existent ignore - change Menu_GetItem to a non-erroring version for this -Add extended # commands like #add or #and, #complement, etc. -Rewrite isframe to allow automation to create a good amount of new items *-Clip the Item_DataLink_Value value strings (so it contains e.g. 1.45 instead of 1.450000) *-Make all datalinks route all ITEM_DATA events -Make FLOATING window clip its movement to the parent window's size so you cant hide it this way -Fix orderPos in LinkChildren *-Add a slist subsystem to base! -Do a big naming check to smooth things out -Move the _menu_process stuff somewhere else s-Only call the mouse event when the position has been changed - since all changes happens then -Perhaps make the RUNFLAGs be reset every frame for all items? -Spend some time writing docs for the API - preferably at http://wiki.quakesrc.org :/ -Write a parser readme file explaining every tiny, little bit of it /-Add effects items/classes /-Rewrite isframe /-Think about when to support ctcalls and when not //-Add full support for the template idea or remove it ?s-Make altstring and property conform with the new string param rules ?s-Make the Data items support runtime changes, too ?-Restructurize the controls f-Add some kind of overlay control f-Remove TokenType f-Remove support for cliparea '0 0 0'-'0 0 0' => whole plane s-Add a color and alpha stack to mgfx s-Add a current namespace global that builds the current namespace from the parent lists s-Add the abstract Item Item_Selectable s-Remove all ctcall, customizeable events *-Add ._runflags to system/item.qc - which will be used to determine visibility, etc. of items *-Add MENU_PROCESS_KEY to Menu_ProcessEvent *-Add MENU_PROCESS_RUNFLAG *-Add RUNFLAG_CLIPPED, so we can select items that arent visible (but arent hidden intentionally as well -> scrollwindows) *-Add a .userselect event (Toddd) *-Add a multiline label item class *-Add a real #include to the parser *-Add a scmenu_debug_process_filter cvar (only displays information on a specific process run) *-Add a select event instead of userselect *-Add a system controlled destruction of items similar to the NG Menu's system *-Add direction tokens to Menu_GetItem *-Add layout classes *-Add more output to the parser (perhaps also a debug mode) *-Finish the goddamn design *-Finish the structure debug output *-Finish this darn #include support!! *-Fix the _FLAG_MOUSEINAREA bug: if the flag is set and the item is hidden somehow, it wont be unset *-Fix the init function calling the spawn function for templates, too *-Fix this strange clipping bug (items plop out of the void instead of shifting slowly in) *-Implement an embedded window perhaps *-Make FLAG_DRAWONLY and FLAG_DRAWUPDATEONLY only affect the parent item *-Merge as many of the debug functions (especially clientarea and parentarea) *-Move as many constants as possible to constants.menu *-Remove Item_Init - its poison to deriving classes *-Rename .refresh to .update and change all constants, too *-Rename Spawn_ to _Spawn perhaps?? *-Rename link to target in the DataUser class *-Rewrite _menu_* to use the normal stack instead of an altstring stack *-Rewrite all controls *-Rewrite all gfx functions to reuse the params for conversions, etc. *-Update scmenu_debug_parser to also support tokens instead of pure floats