Khaos

Khaos is a universal configuration registration system. It allows you to create configurations for addons or addon-groups and cluster them together. You can import/export your own custom configurations and have them work with anyone else who is using Khaos. Below are some examples of using Khaos.

API

 * registerFolder - Registers a custom folder
 * updateFolder - Updates a custom folder
 * validateFolder - Validates a custom folder
 * unregisterFolder - Unregisters a custom folder


 * registerOptionSet - Registers an option set
 * updateOptionSet - Updates an option set
 * validateOptionSet - Validates an option set prior to registration
 * unregisterOptionSet - Unregisters an option set


 * registerConfigurationLoadNotice - Register to be notified when the user selects a different configuration
 * unregisterConfigurationLoadNotice - Removes the load updater with specified id


 * registerGlobal - Registers a global variable to be saved/loaded when the user selects a new configuration
 * unregisterGlobal - Removes a global from the configuration update list
 * updateGlobal - Updates the global variable stored inside the configuration


 * getSetKey - Allows you to directly access a key-value pair inside the configuration
 * setSetKey - Allows you to directly modify a key-value pair inside the configuration
 * setSetKeyParameter - Allows you to directly set a key-value pair's parameter
 * getSetEnabled - Allows you to detect if an option set is on or off
 * setSetEnabled - Allows you to turn an option set on or off


 * updateSetKeys - Allows you to update groups of set keys and refresh the gui together
 * refresh - Force a re-draw of the gui

Data Types

 * KhaosConfigurationFolder - folders for sets
 * KhaosSet - sets of options
 * KhaosOption - options
 * KhaosConfigurationLoadNotice - notify when config is loaded
 * KhaosSlashCommand - slash commands for configurations

Login screen
Choose a configuration from the drop-down menu that appears when you login.

The game will load that configuration so that you can preview it. If you press "Use", it will use that configuration. If you select "Edit" it will display the main screen. Checking the box will make it auto-pick that configuration when you login to this server with that character.

Folders
The yellow text marks a folder. White text with checkmarks denotes an option set and if it is enabled or not.

Option sets
Each line is a single option. The whole scrollable pane is considered an option set.

v2.4

 * 1) state.type == K_COLORPICKER on callback when clicked via human input (similar to the other input types)
 * 2) Slightly modified KhaosConfig_SetCheck_OnClick to allow it to be hooked by Ace2Khaos
 * 3) Taiwan translation by DDx
 * 4) Tweak to allow frame to remain open despite a blizzard bug with right offset and centered UIPanels
 * 5) Updated toc to 20100
 * 6) DropDownList1 now hides when the KhaosFrame does and is wont go off screen

v2.3

 * 1) Doubled the time before feedback fades (to 6s)
 * 2) Option text and header mouse-overs now correctly shows feedback
 * 3) Option registration disabled settings are now optional
 * 4) Option dependencies can now be defined as functions
 * 5) pcall errors from Khaos are now printed to chat (instead of using message which seems to cause more errors)
 * 6) For pulldown options setup.multiSelect now correctly works with setup.noSelect

v2.2

 * 1) Changed collumn widths to make more of the addon names visible
 * 2) Difficulties changed to a single "Advanced Options" checkbox, default unchecked
 * 3) Added blank configuration section text
 * 4) Configuration section now scrolls slower with the mouse wheel
 * 5) Added addon dependency trees to the addon list
 * 6) Addon help text now shows unloaded required dependancies in red.
 * 7) Right clicking an addon now selects the addon as well as shows the dropdown menu
 * 8) Removed configuration categories/tabs/folders
 * 9) "Set Default" popup is now only used at the beginning before a configuration has been selected. To select the default afterwards simply check the box next to it in the selection menu or right click and select "Set to default"
 * 10) Fixed help "?" icon hover text
 * 11) Changed all tooltips to use the help text format at the bottom of the frame
 * 12) OnShow now re-centers the window if it hasn't been manually dragged.

v2.11

 * 1) Fixed bug in the config dropdown menu

v2.1

 * 1) Fixed bug in setSetKeyParameter not returnign after an error
 * 2) TOC to 20003

v2.0

 * 1) No longer requires Earth
 * 2) Now uses embedded DynamicPopup library for simple static popups
 * 3) Now uses embeddable FireTree XML Template Library
 * 4) Included derived Radio Button and Vertical Tab templates
 * 5) Now uses the blizzard dropdown menu template
 * 6) Changed debug globals to only KHAOS_DEBUG and KHAOS_DEBUG_VALUE
 * 7) Available Standalone version with all libs embedded