h1. "eDriven.Gui":http://edrivengui.com/

h1. "Unity3d":http://unity3d.com/ GUI framework.

h2. Author: "Danko Kozar":http://dankokozar.com

<img src="http://dankokozar.com/images/edriven-gui-800.png"></img>

h2. Concept

* eDriven.Gui is a powerful GUI framework for Unity3d.
* You could use eDriven.Gui to build a wide range of apps, from games to business applications.
* Some parts of the framework are ported from Apache Flex.

<img src="http://dankokozar.com/images/edrivengui-editor.png"></img>

h2. Features

* Built on top of eDriven.Core
* Retained mode GUI
* Display list (composite pattern)
* Component lifecycle
* Invalidation-validation mechanism
* Implements OOP concepts
* Event-driven (DOM Level 3 events)
* Event bubbling
* Signals and slots
* Skinnable
* Layout engine
* Plugin architecture
* Internal tweening engine
* Dialogs and alerts
* Firebug-like inspector
* Cursor management
* Focus management
* Tab management
* Tooltips
* Components as C# classes
* DLL component distribution

h2. Usage

1. Download the repository to your Windows PC.

2. Open the solution file in Visual Studio (VS2012 or later).

   * The proper solution file to open is "eDriven.Playground.sln":https://github.com/dkozar/edriven-gui/blob/master/eDriven.Playground/Unity/eDriven.Playground.sln

3. Build the solution
   * Ctrl + Shift + B should build the solution.
   * If not, right-click the solution in Solution Explorer and "Rebuild Solution"
   * the post-build process should copy all the relevant .DLLs into the "Libs":https://github.com/dkozar/edriven-gui/tree/master/eDriven.Playground/Unity/Assets/eDriven/Libs folder

4. Open any Unity "Demo":https://github.com/dkozar/edriven-gui/tree/master/eDriven.Playground/Unity/Assets/eDriven/Demo/Gui/Code and run it.

h2. Build

There are currently 3 build configurations:

1. DEBUG
2. RELEASE
3. TRIAL

You can switch configurations using the combo box located at the top of Visual Studio.

Depending of the chosen configuration, some parts of framework code will be included or excluded in build (look for "#if DEBUG", "#if RELEASE" and "#if TRIAL" statements in code).

The .DLLs that are being built are always copied to the *same* location, owerwriting those built before ("Libs":https://github.com/dkozar/edriven-gui/tree/master/eDriven.Playground/Unity/Assets/eDriven/Libs)

You should manually add the "TRIAL" configuration (Visual Studio -> Configuration manager -> Active solution configuration -> New -> Name: "Trial".

Here's the explanation for each build configuration:

1. DEBUG: Used for development. Multiple "#if DEBUG" statements are being pushed into code, as well as "DebugMode" switch on multiple classes. The DebugMode switch could be set to true to enable logging of messages for the host class.

2. RELEASE: You would normally want .DLLs built with this configuration in production. This version excludes any debug statements and hack checks.

3. TRIAL: I used this configuration for making the *Free version* of the framework. The free version included multiple hack checks etc.

h2. Debugging

You could install "Visual Studio Tools for Unity":https://visualstudiogallery.msdn.microsoft.com/7ab11d2a-f413-4ed6-b3de-ff1d05157714 (ex "UnityVS":http://unityvs.com/) for being able to set breakpoints in your code.

h2. Resources

* "eDriven.Gui site":http://edrivengui.com/
* "eDriven Forum":http://forum.edrivengui.com/
* "eDriven Programming Manual":http://edriven.dankokozar.com/manual/eDriven_Manual_2-0.pdf
* "eDriven API":http://edriven.dankokozar.com/api/2-0/
* "Unity AssetStore":https://www.assetstore.unity3d.com/en/#!/content/3796 - Download and install the compiled package 
* "Videos":http://www.youtube.com/playlist?list=PL7EE340828F962941
* "Demo site":http://edrivenunity.com/ (requires Unity web player)
* "Unity Forum Q&A thread":http://forum.unity3d.com/threads/148424-eDriven-Q-amp-A
* "Author's homepage":http://dankokozar.com
* "I'm @DankoKozar on Twitter":https://twitter.com/DankoKozar.

h2. Special thanks to

* "Marc “Dreamora” Schaerer":https://twitter.com/gayasoft
* "Ivan J. Mandic":https://twitter.com/IvanJMandic
