All Projects → haxeui → Haxeui Core

haxeui / Haxeui Core

Licence: mit
The core library of the HaxeUI framework

Programming Languages

haxe
709 projects

Labels

Projects that are alternatives of or similar to Haxeui Core

Yaaw
Yet Another Aria2 Webui in pure HTML/CSS/Javascirpt
Stars: ✭ 2,288 (+974.18%)
Mutual labels:  gui
Dock
A docking layout system.
Stars: ✭ 204 (-4.23%)
Mutual labels:  gui
Zgui
zxvnme's graphical user interface
Stars: ✭ 204 (-4.23%)
Mutual labels:  gui
Go Wingui
本项目是golang在windows上用户图形界面gui解决方案,本项目可以不用对你的go写的网站程序做任何修改,就可以实现本地化,使用go+html+css+js写windows本地应用
Stars: ✭ 199 (-6.57%)
Mutual labels:  gui
Msi Keyboard Gui
The First fully featured GUI MSI Keyboard controller for Linux (And Windows)
Stars: ✭ 204 (-4.23%)
Mutual labels:  gui
Pywebview
Build GUI for your Python program with JavaScript, HTML, and CSS
Stars: ✭ 2,649 (+1143.66%)
Mutual labels:  gui
Typescene
Strongly typed front-end framework
Stars: ✭ 197 (-7.51%)
Mutual labels:  gui
Idangr
Use angr in the IDA Pro debugger generating a state from the current debug session
Stars: ✭ 214 (+0.47%)
Mutual labels:  gui
Cronexpbuilder
Quartz 的Cron任务调度表达式一般人很难理解,在Googole上查询也没有发现类似的代码,所以开发了一个对Quartz Cron 表达式的可视化双向解析和生成的一个java的GUI程序,供使用Quartz的程序员参考和使用.
Stars: ✭ 204 (-4.23%)
Mutual labels:  gui
Param
Param: Make your Python code clearer and more reliable by declaring Parameters
Stars: ✭ 205 (-3.76%)
Mutual labels:  gui
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (-6.57%)
Mutual labels:  gui
Wepush
专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信
Stars: ✭ 2,597 (+1119.25%)
Mutual labels:  gui
Nuklear
A single-header ANSI C gui library
Stars: ✭ 13,365 (+6174.65%)
Mutual labels:  gui
Ydl Ui
A UI for the command-line video downloader "youtube-dl"
Stars: ✭ 198 (-7.04%)
Mutual labels:  gui
Downloaderforreddit
The Downloader for Reddit is a GUI application with some advanced features to extract and download submitted content from reddit.
Stars: ✭ 208 (-2.35%)
Mutual labels:  gui
Transgui
🧲 A feature rich cross platform Transmission BitTorrent client. Faster and has more functionality than the built-in web GUI.
Stars: ✭ 2,488 (+1068.08%)
Mutual labels:  gui
Muip
Modern UI Pack for Unity engine.
Stars: ✭ 205 (-3.76%)
Mutual labels:  gui
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-0.47%)
Mutual labels:  gui
Cacao
Rust bindings for AppKit (macOS) and UIKit (iOS/tvOS). Experimental, but working!
Stars: ✭ 205 (-3.76%)
Mutual labels:  gui
Code Samples
Just some code samples for MahApps and other experiments...
Stars: ✭ 205 (-3.76%)
Mutual labels:  gui

haxeui-core

haxeui-core is a users universal entry point into the HaxeUI framework and allows for the same user interface code (either with markup or via haxe source code) to be used to build a user interface on various platforms using various HaxeUI backends. Below is a general overview of how haxeui-core and the various HaxeUI backends fit together. You can watch a presentation (given at WWX2016) about HaxeUI to get more of an understanding here.

Installation

Installation of the haxeui can be performed by using haxelib, you will need a the haxeui-core haxelib as well as a backend, for example:

haxelib install haxeui-core
haxelib install haxeui-openfl

Backends

In general, using a HaxeUI backend is as simple as just including haxeui-core and the backend library into your application, for example:

-lib haxeui-core
-lib haxeui-openfl

Currently, HaxeUI supports the following backends. Please refer to each backend for specific instructions on how to set-up and initialise the host framework (if required).

Backend Library Dependencies Platforms Native Components
haxeui-openfl OpenFL / Lime
haxeui-kha Kha
haxeui-html5 none
haxeui-pixijs PixiJS
haxeui-nme NME
haxeui-hxwidgets hxWidgets / wxWidgets

Usage

Assuming that haxeui-core and the backend library have been included in your application, initialising the toolkit and using it should be relatively straight forward:

Toolkit.init();

The init function can take an optional Dynamic argument that allows certain options to be passed to the host framework. Please refer to each specific backend on how to use these.

Once the toolkit has been initialised components can be added in one of two ways:

Adding components using Haxe code

Using HaxeUI components in haxe code is simple and easy:

import haxe.ui.components.Button;
import haxe.ui.containers.VBox;
import haxe.ui.core.Screen;

var main = new VBox();

var button1 = new Button();
button1.text = "Button 1";
main.addComponent(button1);

var button2 = new Button();
button2.text = "Button 2";
main.addComponent(button2);

Screen.instance.addComponent(main);

Note: Screen was used here as a universal way to add items to the application, this is not required however, if you are using a single framework and are not interested in the cross-framework capabilities of HaxeUI, then you can use something more specific to the target framework (eg: Lib.current.stage.addChild(main)).

Adding components from markup

It is also possible for HaxeUI to take a user interface definition from a markup language (like XML) and use that to build code similar to above:

var main = ComponentMacros.buildComponent("assets/ui/demo/main.xml");
Screen.instance.addComponent(main);

If your xml isn't available at compile time you can use Toolkit.componentFromString:

var main = Toolkit.componentFromString('<vbox><button text="Button" /></vbox>', "xml");
Screen.instance.addComponent(main);

Addtional resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].