WSWUI TODO

- Top priority! To be able to do anything reasonable with AS+Rocket, fix reference counting issues
  on exported functions! (FIXED?)

- Custom event "update"/"onupdate", which needs a module for handling specifics on these.. Such
  as collecting all the elements that are registered to this event with inline-handler or
  addEventListener. Onupdate would be called every frame and to save CPU-time only for those elements
  that will respond to that event. Does this need custom event instancing or smth?

- Use asstring_t for AS bindings.

- Plan rest of the basic DOM API, document+window models etc..

- Document loading (proper), caching, navigation stack. (~DONE)

- Plan system api, includes executing commands, printing etc.. -> Implement.

- Research custom STL allocators, and/or integrating optimized STL such as EASTL.

- Implement "ajax" backend, I will take this one for myself, since I mess around with wswcurl quite often anyway (VIC)

- More notes on above (ajax).. "onload" events should be stored in to the Documents, because they'd have to be called when documents are pulled from cache. Also "ajaxified" content should be handled in these cache-scenarios (reload..?)
  (NO! onload events are explicitly for initialization of the script stage, use "onshow" for initialization of view-dependant stuff)

- OOP out as_bind_*.cpp.

- Proper infocus/outfocus/event handling with UI -> warsow. (~DONE, or at least somewhere there)

WIDGETS:

(See WIDGETS file for more info on what we need)

- Finalize keyselect (mouse1 focus “hack”, “bind” html-attribute, get currently bound key, etc..).

- Finalize anchor (goes with “Document loading” above). (~DONE)

- Optimize serverbrowser inserting (state-machine) (ch), design AS interface + filters/options -> Implement

- Research modelview decorator (Rocket) -> Plan -> Implement (Research for decorator programming in a general sense too). (Kurim?)

- Research special “options form” (Rockets Form), that has “cvar-stack” that can temporarily push/pop new cvar values that dont effect the actual cvar values, resetting and putting them to use. Also “connect” cvars with Form Controls, and proper AS-API for that too -> Plan -> Implement.

- Add scrollwheel support to datagrid elements. (ch says what?)

- Maplist that follows Alba's design.

- Crosshair selector.

- Fix libRocket's text input cursor bug. (insert other libRocket bugs here).

HTML/CSS/Design:

- Refactor base files -> base.rcss, controls.rcss (defs for basic controls; buttons, scrollbars, dropdowns etc..), widgets.rcss (or even separate these? nah)

- Relative sized, minimum 800px width is meh.. or implement alternative "mobile" UI for resolutions < 800x600.

- Designs and layouts for options (streamlining, less opts).

- Actual contents aren't positioned at all. Do something.

- Stylize widgets/controls..

- Tab controls for at least setup-page. Serverbrowser probably needs local/global/favourites.

- Research "smart" serverbrowser looks (depends heavily on AS api).

( - Leave "advanced" options and such for community to implement.. we dont have the resources nor #care to do that).
