{"id":13417943,"url":"https://github.com/vczh-libraries/GacUI","last_synced_at":"2025-03-15T02:32:04.911Z","repository":{"id":29730577,"uuid":"33273837","full_name":"vczh-libraries/GacUI","owner":"vczh-libraries","description":"GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.","archived":false,"fork":false,"pushed_at":"2024-10-28T20:38:00.000Z","size":164891,"stargazers_count":2343,"open_issues_count":12,"forks_count":297,"subscribers_count":172,"default_branch":"master","last_synced_at":"2024-10-29T15:34:21.460Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vczh-libraries.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-01T21:25:09.000Z","updated_at":"2024-10-28T20:38:04.000Z","dependencies_parsed_at":"2023-10-17T12:06:32.682Z","dependency_job_id":"0e93601b-944c-41d7-a696-fae66bf79459","html_url":"https://github.com/vczh-libraries/GacUI","commit_stats":{"total_commits":4444,"total_committers":9,"mean_commits":"493.77777777777777","dds":"0.46264626462646263","last_synced_commit":"25c12c83358db03e1f4d1822cb34e57e6de47f9c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vczh-libraries%2FGacUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vczh-libraries%2FGacUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vczh-libraries%2FGacUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vczh-libraries%2FGacUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vczh-libraries","download_url":"https://codeload.github.com/vczh-libraries/GacUI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243675065,"owners_count":20329202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T22:00:55.911Z","updated_at":"2025-03-15T02:32:04.903Z","avatar_url":"https://github.com/vczh-libraries.png","language":"C++","readme":"# GacUI\n\n**GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.**\n\n## License\n\n**Read the [LICENSE](https://github.com/vczh-libraries/GacUI/blob/master/LICENSE.md) first.**\n\nThis project is licensed under [the License repo](https://github.com/vczh-libraries/License).\n\nSource code in this repo is for reference only, please use the source code in [the Release repo](https://github.com/vczh-libraries/Release).\n\nYou are welcome to contribute to this repo by opening pull requests.\n\n## Document\n\nFor **Home Page**: click [here](http://vczh-libraries.github.io)\n\nFor **Gaclib**: click [here](http://vczh-libraries.github.io/doc/current/home.html)\n\nFor **GacUI**: click [here](http://vczh-libraries.github.io/doc/current/gacui/home.html)\n\n[gaclib.net](http://www.gaclib.net/) is a mirror to github pages above.\n\n## Content of This Project\n\n- The [Tutorial](http://vczh-libraries.github.io/doc/current/gacui/running.html) shows how to start using this marvelous GUI library.\n- The [Demos](http://vczh-libraries.github.io/demo.html) section shows you all demos using this GUI library.\n\n### Notice\n\nUsing this library requires you to use C++ source files directly in\n\n- The [Release folder](https://github.com/vczh-libraries/GacUI/tree/master/Release) for Vlpp, Workflow or GacUI.\n- The [GacGen.exe](https://github.com/vczh-libraries/GacUI/tree/master/Tools/GacGen) if you prefer to use XML to build your UI.\n\nAll other files are for library development only.\n\n### Content\n\nThis GUI library provides the following features:\n\n- Develop your GUI using pure C++, [Workflow](https://github.com/vczh-libraries/Workflow) script, XML or even JavaScript (under construction).\n- Cross-platform abilities.\n  - for **Windows**: [Release repo](https://github.com/vczh-libraries/Release)\n  - for **Linux**: [XGac repo](https://github.com/vczh-libraries/gGac) (beta release)\n  - for **macOS**: [iGac repo](https://github.com/vczh-libraries/iGac) (beta release)\n  - for running in **Browser** using WASM: (2.0)\n- Rich control library. Container controls supports MVC and virtual list mode.\n- Control template system. You can write your own.\n- GPU acceleration.\n- XML resource supports.\n  - You can use the provided [GacGen.exe](https://github.com/vczh-libraries/GacUI/tree/master/Tools/GacGen) to generate multiple XML files with binary resources (images) into a compressed binary format.\n  - This program will also generate C++ code behind for you. You can fill event handlers (but we suggest you use MVVM and Data Binding instead) in generated C++ files.\n  - If you update your UI, GacGen.exe will merge your modification in C++ code and modification in XML together to generate new C++ code behind. Your update will still exist.\n    - **NOTE**: You will see a very obvious mark `USERIMPL(/* ... */)` in the generated code. Here is where you want to add your code. All your modification outside of these places will be discarded on the next GacGen.exe run.\n- MVVM and Data Binding.\n  - You can define interfaces that required to build your own MVVM pattern in XML and [GacGen.exe](https://github.com/vczh-libraries/GacUI/tree/master/Tools/GacGen) will generate the C++ interface declaration for you.\n  - You can also use [Workflow](https://github.com/vczh-libraries/Workflow) expressions in Data Binding and statements in event handlers (instead of writing C++ code in code behind).\n\nhttps://gankra.github.io/blah/text-hates-you/  \nhttps://lord.io/text-editing-hates-you-too/\n","funding_links":[],"categories":["TODO scan for Android support in followings","GUI","C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvczh-libraries%2FGacUI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvczh-libraries%2FGacUI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvczh-libraries%2FGacUI/lists"}