# Tutorial

GacUI tutorials and the plan

* GacUI_HelloWorlds
    * **Cpp**: Using C++ from stratch.
    * **WorkflowScript**: Using Workflow script from stratch.
    * **CppXml**: Using C++ and GacUI Xml Resource, with generated C++ code for loading UI from the precompiled binary GacUI Xml Resource.
    * **Xml**: Loading the precompiled binary GacUI Xml Resource dynamically at runtime.
    * **MVVM**: A MVVM pattern demo using Xml Resource.
    * **PureCppXml**: Using C++ and GacUI Xml Resource, but all UI in the resource is completely compiled to C++. (developing)
* GacUI_Layout
    * **Alignment**: Simple layout.
    * **Stack**: Stack layout with configurable axis directions.
    * **Flow**: Flow layout with configurable axis directions.
    * **Table**: Table layout.
    * **TableSplitter**: Table layout with splitters, which can be dragged to change cell sizes.
    * **RichTextEmbedding**: Embed controls in a rich text document.
* GacUI_Controls
    * **ContainersAndButtons**: Using container controls and button controls.
    * **TextEditor**: Implementing a text editor that handle plain text and XML.
    * **ColorPicker**: Using ItemTemplate on ComboBox and BindableTextList to build a color picker.
    * **AddressBook**: Using tree view and list view control with data binding to build an address book editor.
    * **DataGrid**: Using data grid control with direct assign, data binding and item template. (developing)
    * **RichTextEditor**: Implementing a rich text editor. (developing)
    * **Misc**: Using other controls. (developing)
* GacUI_ControlTemplate
    * **BlackSkin**: Create a set of control templates which look like Visual Studio's dark theme.
    * **Windows7Skin**:
    * **Windows8Skin**:
* GacUI_Xml
    * **Instance_Window**: Create a window.
    * **Instance_MultipleWindows**: Create multiple windows.
    * **Instance_Control**: Create a control.
    * **Instance_Inheriting**:
    * **Binding_Uri**: Using -uri binding.
    * **Binding_Eval**: Using -eval binding.
    * **Binding_Bind**: Using -bind binding.
    * **Binding_Format**: Using -format binding.
    * **Binding_ViewModel**: Binding to view model.
    * **Event_Cpp**:Handling event in C++.
    * **Event_Script**:Handling event in Workflow script.
    * **Event_ViewModel**:Handling event in view model.
    * **Member_Parameter**:Adding view model to window.
    * **Member_Property**:Adding property to window.
    * **Member_State**:Adding state to window.
    * **Member_Component**:
    * **Style_Path**:
    * **Style_Template**:
    * **VisualState**:
    * **StateMachine**:
    * **Animation**:
* GacUI_Scenarios
    * **WorkflowDebugger**:
