Awesome
GacJS
Read the LICENSE first.
Running GacUI in Browsers!
Source code is abondoned. This repo will be used to port GacUI to WebAssembly. All content will be deleted later.
Notice
Some content is under development. I will keep all code compatible across browsers by only testing the code using the latest version of IE, Firefox and Chrome. After Windows 10 releases, Edge will be included.
In the future, GacGen.exe can translate GacUI XML resource files to javascript codes, mapping all classes to javascript. You can just create an instance of your control class and plug it in the DOM tree at wherever you want, and the UI will appear in the web page.
This project's priority is not very high. The first step is to re-implement GacUI's layout system using javascript, and then use it to develop the GacUI document generator with C++ and XML comments.
Running test pages
Running test pages is very simple, just follow the steps:
- Clone this repo to your disk.
- Create a web site on the cloned folder using IIS.
- Launch http://127.0.0.1:< port >/Entrance.html according to your configuration.
Content
- Package.js : A package infrastructure. All JavaScript components in this project will be build as packages. You don't need to worry about the order -- except that Package.js should be the first one -- when including coupled JavaScript files in your HTML document.
- Test.js : A very simple unit test framework, that only me will use it.
- Class.js : An object oriented type definition library for translating Workflow script to Javascript, including
- Inheritance and virtual inheritance.
- Virtual, Override and New functions.
- Private, Protected and Public functions. Which means that, inside the class all code can see private and protected members, but outside the class only public members are visible.
- Properties and Events.
- POD
- Enum
- Unit test for Class.js in Class.html.
- Html/ : HTML related packages.
- Events.js : A general custom event framework.
- RunAfterWindowLoaded.js : Execute a function. If window is not loaded then delay the execution.
- ResizeEvent.js : ConnectionToBodyChanged and Resize custom event that works on every elements.
- Navigation.js : A pure front-end navigation system driven by hash in the url. Test page: Navigation.html.
- Razor.js : Razor template engine driven by JavaScript. Test page: Razor.html.
- IO/ : IO related packages.
- Delay.js : A delay execution framework. Test page: Navigation.html.
- Wildcard.js : Convert wildcards to regular expressions. Test page: Navigation.html.
- Resource.js : A delay static resource loader. Test page: Navigation.html.
- GacUI/ : GacUI in Browsers!.
- Types.js : Basic types that used in GacJS.
- Elements/ : GacUI Predefined Graphic Elements. Test page: Element.html.
- GacUI/Layout/ : GacUI Predefined Layout Components. Test page: Layout.html.
- Templates.js
- Controls.js