Giter VIP home page Giter VIP logo

hirngespinst's Introduction

hirngespinst

A project to play around with emscripten.

Goal is a web-gui-framework written in C++ which makes it easy to create complex application.

  • declarative makes it easier to read your code (if you're familiar with xml/html) currently a strange domain-specific-language is used

  • composable simply combine base elements to form complex interfaces

  • data binding

  • dependency injection to make it easy to depend on models and services in your components

Requirements

Example

#include <hg/elements/button.h>
#include <hg/elements/input.h>

using nsmespace hg;

class MyComponent : public element
{
public:
	std::shared_ptr<element> root;

	std::shared_ptr<text> buttonText;
	bindable<std::string> inputValue;

	MyComponent()
	{
		builder b;
		auto layout = node<hg::div>()(
			node<input>(bind(&input::value) >> inputValue),
			node<button>()(
				node<text>(set(&text::set_value) = "test")
				),
			node<button>(on(&button::click) = [this](int i) { buttonText->value = "button clicked."; })(
				node<text>(id = buttonText, set(&text::value) = "zweiter test")
				),
			node<text>(set(&text::value) = inputValue)
			);

		root = b.build(layout);
	}

	emscripten::val getHtml() override	{
		return root->getHtml();
	}
};

hirngespinst's People

Contributors

chrisbfx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.