HFitUI: The library for generating a graphical interface on the web

[ bsd3, library, program, web ] [ Propose Tags ]

The library for generating a graphical interface on the web for the Haskell programming language.


[Skip to Readme]

Modules

  • WebUI
    • Demo
      • WebUI.Demo.LibDemo
    • WebUI.HFitUI
    • Layouts
      • WebUI.Layouts.LayoutBase
    • Scripts
      • WebUI.Scripts.HScript
      • JavaScript
        • WebUI.Scripts.JavaScript.HJSBuilder
        • WebUI.Scripts.JavaScript.HJSElementDOM
        • WebUI.Scripts.JavaScript.HJSExps
        • WebUI.Scripts.JavaScript.HJSFunction
        • WebUI.Scripts.JavaScript.HJSKeywords
        • WebUI.Scripts.JavaScript.HJSMath
        • WebUI.Scripts.JavaScript.HJSTypes
        • WebUI.Scripts.JavaScript.HJSUtils
        • WebUI.Scripts.JavaScript.HJSVars
        • WebUI.Scripts.JavaScript.HJavaScript
      • WebUI.Scripts.UIAction
    • Themes
      • WebUI.Themes.SolarizedUITheme
      • WebUI.Themes.UITheme
      • WebUI.Themes.UIThemeTypes
      • WebUI.Themes.UIThemeUtils
    • Widgets
      • Components
        • WebUI.Widgets.Components.UIBase
      • Extensions
        • WebUI.Widgets.Extensions.BootStrapExtension
        • WebUI.Widgets.Extensions.JQueryExtension
        • WebUI.Widgets.Extensions.MapOSMExtension
        • WebUI.Widgets.Extensions.ToolTipExtension
      • Kits
        • WebUI.Widgets.Kits.UIKits
      • WebUI.Widgets.UIWidget

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.1.0
Dependencies base (>=4.7 && <5), blaze-html (>=0.8.1), blaze-markup (>=0.7.1), HFitUI, MissingH (>=1.4.0), mtl (>=2.2.1), process (>=1.4.2), random (>=1.1), shakespeare (>=2.0.11), template-haskell (>=2.11.0), text (>=1.2.2), uuid (>=1.3.12) [details]
License BSD-3-Clause
Copyright 2017 QSpider
Author Pavel
Maintainer iqsf@ya.ru
Category Web
Home page https://github.com/iqsf/HFitUI.git
Source repo head: git clone https://github.com/iqsf/HFitUI
Uploaded by QSpider2017 at 2017-06-05T10:45:16Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables HFitUI-exe
Downloads 1869 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2017-06-05 [all 2 reports]

Readme for HFitUI-0.1.1.0

[back to package description]

HFitUI

Introduction

Library for generating a graphical interface on the web for the Haskell programming language.

Short description

The HFitUI uses the blaze library as the result of generating a graphical interface on the web. Using the HFitUI, you construct an interface from the panels, buttons, more complex widget components.The HFitUI has its own Javascript generator from Haskell code based on a set of JavaScript simulation functions. Below is an example demo code:

testOne :: UI H.Html
testOne = 
    widgetLayoutUI $ do 
        -- Базовые виджеты
        shell                   <- shellExtUI "TestGL (Dyn)" []
        (root, idRoot, _)       <- expandWUI $ wuiPanel <#> boundsBRDNum (44, 0, 0, 0)
                                                        <#> overflowHiddenX
                                                        <#> overflowAutoY

        scriptsOutside          <- wuiScriptSrc [] 

        jsScript                <- wuiScriptTextJS $ runScript defaultHBConfig {hbc_entryLine = "\n"
                                                                               } $ do 
                                        var_b <- newVarInt "b" 10 
                                        var_c <- newVarInt "c" 5
                                        var_cm <- newVar "cm" $ mathACos var_c
                                        (//) "Test variable"
                                        var_testPer <- newVar "testPer" HJsEmpty
                                        var_st <- newVarStr "st" "TestSt"
                                        flag_1 <- newVarBool "flag_1" True
                                        var_res <- newVar "res" HJsNull

                                        var_res <- eql var_res $ (var_b + var_c) * var_st / var_b
                                        var_res <- eql var_res var_b 

                                        hjs $(juliusFile "templates/test/TestScript.julius") 

                                        hjs $[julius|    
                                            function veryTest (){
                                                console.log("VeryTest");
                                            }
                                        |]

                                        (***) $ "The first multi-line comment" +-+ 
                                                "before the myFunc function"
                                        vatFn_myFunc <- functJS "myFunc" [] $ do 
                                            return endH
                                        call vatFn_myFunc []
                                        var_res_myFunc <- eqlMT (varJS "res_myFunc") $ call vatFn_myFunc []

                                        var_testFunc <- eqlMT (varJS "testFunc") $ functJS "" [] $ do 
                                            var_bbb <- newVarInt "bbb" 23 
                                            returnJS thisJS
                                        call var_testFunc []
                                        var_res_testFunc <- eqlMT (varJS "res_testFunc") $ call var_testFunc [5, var_b, valStr "qwe", valInt 19, valBool True]
                                        var_res_new_testFunc <- eqlMT (varJS "res_new_testFunc") $ newJS $ call var_testFunc [5, var_b, valStr "qwe", valInt 19, valBool True]

                                        jsFinish 

        shell `addWUIs` [ root
                        , scriptsOutside
                        , jsScript
                        ]

This code generates the following HTML:

<!DOCTYPE HTML>
<html><head><title>TestGL (Dyn)</title></head><body id="f98b3765-f949-44ed-b653-7234e250f08e" ui_widget="shell" style=""><div id="42826f90-aa08-4008-b3a7-3c27e62b5d2d" ui_widget="panel" style="top:44px;right:0px;bottom:0px;left:0px;overflow-x: hidden;overflow-y: auto;" class=""></div><script type="text/javascript" id="87a1f750-123a-4148-bcb5-a53f40e23a52" ui_widget="script_text" style="" class="">
/*Generate by HScript from the HFitUI library*/
var b = 10;
var c = 5;
var cm = Math.acos(c);
//Test variable
var testPer;
var st = "TestSt";
var flag_1 = true;
var res = null;
res = (((b + c) * st) / b);
res = b;
function test(){
    console.log("Test");
}
function veryTest (){
    console.log("VeryTest");
}
/*The first multi-line comment
before the myFunc function*/
function myFunc (){
}
myFunc();
res_myFunc = myFunc();
;
testFunc = function (){
  var bbb = 23;
  return this;
}
;
testFunc();
res_testFunc = testFunc(5, b, "qwe", 19, true);
;
res_new_testFunc = new testFunc(5, b, "qwe", 19, true);

;
</script></body></html>

The library HFitUI represents a simple yet powerful tool for creating graphical interface on the Web.