Functionals specifications

Mouse

Mouse work
Mouse On block On input/output On connector
Left click Move Create link  
Right click Dedicated menu Dedicated menu Dedicated menu
Wrench Zoom (on cursor place)    

Dedicated menus

Mouse work
On block On input/output On connector On grid
Duplicate, delete, properties   Delete Add, scene properties (ex: coord), export(pdf/png)

Libraries

A generic input: single input (arrow: rectangle with arrow extremity), single output, label, block

label properties: text emplacement (top, bottom, left, right of label connector).

block properties: title, number of inputs, number of outputs

one dedicated function: load_lib(*args), with args is a list of abspath to lib json

Structure

{
    "item001"
    {
        "NAME": "...",
        "INPUTS": ["name01", "name02", ..., "name03"],  # if empty list, considered as no inputs
        "OUTPUTS": ["name01", "name02", ..., "name03"],
        "DESCRIPTION": "...",
        "TOOLTIP": "...limitation to 100 characters",
        "COLORS":
        {
            "HEAD_BG": 0x0000,  # if empty, no overload
            "INPUT": 0x0000,
            "OUTPUT": 0x0000,
        }
        "PROPERTIES":
        {
            "P01":
            {
                "NAME": "...",
                "TOOLTIP": "...limited to 100 characters",
                "TYPE": "int/float/text",
                "WIDGET": "field, spinbox, cbox",
                "DEFAULT": "value per default",
                "PARAMS": <if field, int type, nb characters max,
                           if spinbox, [min, max, step],
                           if cbox, values list>
            }
        }
    }
}

Browser

_images/lib_browser.png