def fl_add_formbrowser(frmbrwstype, xpos, ypos, width, height, label):
    """fl_add_formbrowser(frmbrwstype, xpos, ypos, width, height, label)
    -> ptr_flform

    Adds a formbrowser flobject. It is a container class that is capable of
    holding multiple forms, the height of which in aggregate may exceed the
    screen height. The formbrowser also works obviously for a single form that
    has a height that is larger than the screen height.

    Parameters
    ----------
        frmbrwstype : int
            type of formbrowser to be added. Values (from xfdata.py)
            FL_NORMAL_FORMBROWSER (normal formbrowser type)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of formbrowser

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            formbrowser flobject added

    Examples
    --------
        >>> pfrmbrobj = fl_add_formbrowser(xfdata.FL_NORMAL_FORMBROWSER,
                110, 60, 550, 750, "My Formbrowser)

    Notes
    -----
        Status: NA-UTest + Doc + NoDemo = Maybe

    """
    _fl_add_formbrowser = library.cfuncproto(
        library.load_so_libforms(), "fl_add_formbrowser",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_formbrowser(int type, FL_Coord x,
           FL_Coord y, FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(frmbrwstype, \
            xfdata.FORMBRWSTYPE_list)
    i_frmbrwstype = library.convert_to_intc(frmbrwstype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(frmbrwstype, xpos, ypos, width, height, label, \
            i_frmbrwstype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_formbrowser(i_frmbrwstype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_pixmap(pixmaptype, xpos, ypos, width, height, label):
    """fl_add_pixmap(pixmaptype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a pixmap flobject (plain text multi-color image format). The
    label is by default placed below the pixmap. The pixmap is empty
    on creation.

    Parameters
    ----------
        pixmaptype : int
            type of pixmap to be added. Values (from xfdata.py)
            FL_NORMAL_PIXMAP (normal pixmap flobject type)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position of bitmap (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of pixmap

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            flobject created

    Examples
    --------
        >>> fl_add_pixmap(xfdata.FL_NORMAL_PIXMAP, 320, 200, 100, 100,
                "MyPixmap")

    Notes
    -----
        Status: UnitTest + Doc + Demo = OK

    """
    _fl_add_pixmap = library.cfuncproto(
        library.load_so_libforms(), "fl_add_pixmap",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_pixmap(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(pixmaptype, \
            xfdata.PIXMAPTYPE_list)
    i_pixmaptype = library.convert_to_intc(pixmaptype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(pixmaptype, xpos, ypos, width, height, \
            label, i_pixmaptype, i_xpos, i_ypos, i_width, i_height, \
            s_label)
    retval = _fl_add_pixmap(i_pixmaptype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_counter(countertype, xpos, ypos, width, height, label):
    """fl_add_counter(countertype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a counter flobject.

    Parameters
    ----------
        countertype : int
            type of counter to be added. Values (from xfdata.py)
            FL_NORMAL_COUNTER (A counter with two buttons on each side),
            FL_SIMPLE_COUNTER (A counter with one button on each side).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of counter

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            counter flobject added

    Examples
    --------
        >>> pcntrobj = fl_add_counter(FL_NORMAL_COUNTER, 142, 230, 142,
                100, "My Counter")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_counter = library.cfuncproto(
        library.load_so_libforms(), "fl_add_counter",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_counter(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(countertype, \
            xfdata.COUNTERTYPE_list)
    i_countertype = library.convert_to_intc(countertype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(countertype, xpos, ypos, width, height, label, \
            i_countertype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_counter(i_countertype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_glcanvas(canvastype, xpos, ypos, width, height, label):
    """fl_add_glcanvas(canvastype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a glcanvas flobject to the form.

    Parameters
    ----------
        canvastype : int
            type of glcanvas to be added. Values (from xfdata.py)
            - FL_NORMAL_CANVAS (normal canvas type),
            - FL_SCROLLED_CANVAS (not enabled)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of glcanvas

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            glcanvas flobject added

    Examples
    --------
        >>> pglcnvobj =  fl_add_glcanvas(xfdata.FL_NORMAL_CANVAS, 14, 21,
                654, 457, "My Gl Canvas")

    Notes
    -----
        Status: NA-UTest + Doc + NoDemo = Maybe

    """
    _fl_add_glcanvas = library.cfuncproto(
        library.load_so_libformsgl(), "fl_add_glcanvas",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_glcanvas(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(canvastype, \
            xfdata.CANVASTYPE_list)
    i_canvastype = library.convert_to_intc(canvastype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(canvastype, xpos, ypos, width, height, label, \
            i_canvastype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_glcanvas(i_canvastype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_clock(clocktype, xpos, ypos, width, height, label):
    """fl_add_clock(clocktype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a clock flobject.

    Parameters
    ----------
        clocktype : int
            type of clock to be added. Values (from xfdata.py)
            - FL_ANALOG_CLOCK (An analog clock complete with the second hand),
            - FL_DIGITAL_CLOCK (A digital clock)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of clock

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            clock flobject added

    Examples
    --------
        >>> pclkobj = fl_add_clock(xfdata.FL_ANALOG_CLOCK, 150, 210,
                220, 200, "My great clock")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_clock = library.cfuncproto(
        library.load_so_libforms(), "fl_add_clock",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_clock(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * s)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(clocktype, \
            xfdata.CLOCKTYPE_list)
    i_clocktype = library.convert_to_intc(clocktype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(clocktype, xpos, ypos, width, height, label, \
            i_clocktype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_clock(i_clocktype, i_xpos, i_ypos, i_width, i_height, \
            s_label)
    return retval
def fl_add_text(texttype, xpos, ypos, width, height, label):
    """fl_add_text(texttype, xpos, ypos, width, height, label) -> ptr_flobject

    Adds a text flobject. It simply consists of a label maybe placed in a box.

    Parameters
    ----------
        texttype : int
            type of text to be added. Values (from xfdata.py) FL_NORMAL_TEXT
            (Normal text type)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of text

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            text flobject added

    Examples
    --------
        >>> ptxtobj = fl_add_text(xfdata.FL_NORMAL_TEXT, 140, 120, 400, 500,
                "My text flobject")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_text = library.cfuncproto(
        library.load_so_libforms(), "fl_add_text",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_text(int type, FL_Coord x, FL_Coord y,
            FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(texttype, xfdata.TEXTTYPE_list)
    i_texttype = library.convert_to_intc(texttype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(texttype, xpos, ypos, width, height, label, \
            i_texttype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_text(i_texttype, i_xpos, i_ypos, i_width, i_height, \
            s_label)
    return retval
def fl_create_bitmap_cursor(source, maskstr, width, height, hotx, hoty):
    """fl_create_bitmap_cursor(source, maskstr, width, height, hotx, hoty)
    -> cursornum

    Creates a bitmap cursor, using cursors other than those defined by
    the standard cursor font.

    Parameters
    ----------
        source : str of ubytes
            bitmap to be used as cursor.
        maskstr : str of ubytes
            bitmap defining the shape of the cursor. The pixels set to 1
            define which source pixels are displayed. If it is empty ("") all
            bits in source are displayed.
        width : int
            width of cursor
        height : int
            height of cursor
        hotx : int
            horizontal hotspot of the cursor (relative to the source origin)
        hoty : int
            vertical hotspot of the cursor (relative to the source origin)

    Returns
    -------
        cursornum : int
            cursor id

    Examples
    --------
        >>> *todo*

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_create_bitmap_cursor = library.cfuncproto(
        library.load_so_libforms(), "fl_create_bitmap_cursor",
        cty.c_int, [xfdata.STRING, xfdata.STRING, cty.c_int, cty.c_int,
        cty.c_int, cty.c_int],
        """int fl_create_bitmap_cursor(const char * source,
           const char * mask, int w, int h, int hotx, int hoty)""")
    library.check_if_flinitialized()
    s_source = library.convert_to_bytestrc(source)
    if not maskstr:    # if it is empty
        s_maskstr = cty.cast(maskstr, cty.c_void_p)
    else:
        s_maskstr = library.convert_to_bytestrc(maskstr)
    i_width = library.convert_to_intc(width)
    i_height = library.convert_to_FL_Coord(height)
    i_hotx = library.convert_to_intc(hotx)
    i_hoty = library.convert_to_intc(hoty)
    library.keep_elem_refs(source, maskstr, width, height, hotx, hoty, \
            s_source, s_maskstr, i_width, i_height, i_hotx, i_hoty)
    retval = _fl_create_bitmap_cursor(s_source, s_maskstr, i_width, \
            i_height, i_hotx, i_hoty)
    return retval
def fl_add_pixmapbutton(buttontype, xpos, ypos, width, height, label):
    """fl_add_pixmapbutton(buttontype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a pixmapbutton flobject.

    Parameters
    ----------
        buttontype : int
            type of button to be added. Values (from xfdata.py)
            - FL_NORMAL_BUTTON (Returns value when released),
            - FL_PUSH_BUTTON or FL_TOGGLE_BUTTON (Stays pushed until user
              pushes it again),
            - FL_RADIO_BUTTON (Push button that switches off other radio
              buttons),
            - FL_HIDDEN_BUTTON (Invisible normal button),
            - FL_TOUCH_BUTTON (Returns value as long as the user pushes it),
            - FL_INOUT_BUTTON (Returns value both when pushed and when
              released),
            - FL_RETURN_BUTTON (Like a normal button but reacts on the
              <Return> key),
            - FL_HIDDEN_RET_BUTTON (Invisible return button),
            - FL_MENU_BUTTON (Returns value when pushed, useful e.g. for
              opening a popup when pushed).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of button

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            created button flobject

    Examples
    --------
        >>> btnobj = fl_add_roundbutton(xfdata.FL_TOGGLE_BUTTON, 145,
                199, 120, 30, "MyButton")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_pixmapbutton = library.cfuncproto(
        library.load_so_libforms(), "fl_add_pixmapbutton",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord, \
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_pixmapbutton(int type, FL_Coord x,
           FL_Coord y, FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(buttontype, \
            xfdata.BUTTONTYPE_list)
    i_buttontype = library.convert_to_intc(buttontype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(buttontype, xpos, ypos, width, height, label, \
            i_buttontype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_pixmapbutton(i_buttontype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_timer(timertype, xpos, ypos, width, height, label):
    """fl_add_timer(timertype, xpos, ypos, width, height, label) -> ptr_flobject

    Adds a timer flobject. It can be used to make a timer that runs down
    toward 0.0 or runs up toward a pre-set value after which it starts blinking
    and returns itself to the application program. This can be used in many
    different ways, e.g. to give a user a particular amount of time for a
    task, etc. Also a hidden timer object can be created, so the application
    program can take action at the moment the timer expires; e.g. you can use
    this to show a message that remains visible until the user presses the OK
    button or until a particular amount of time has passed. The precision of
    the timer is not very good. Do not count on anything better than, say,
    0.05 seconds.

    Parameters
    ----------
        timertype : int
            type of timer to be added. Values (from xfdata.py)
            - FL_NORMAL_TIMER (Visible, showing a label in a box which blinks
              when the timer expires),
            - FL_VALUE_TIMER (Visible, showing the time left or the elapsed
              time. Blinks if the timer expires),
            - FL_HIDDEN_TIMER (Not visible).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of timer

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            timer flobject added

    Examples
    --------
        >>> ptimerobj = fl_add_timer(xfdata.FL_NORMAL_TIMER, 120, 120,
                210, 210, "My Timer")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_timer = library.cfuncproto(
        library.load_so_libforms(), "fl_add_timer",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_timer(int type, FL_Coord x, FL_Coord y,
        FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(timertype, \
            xfdata.TIMERTYPE_list)
    i_timertype = library.convert_to_intc(timertype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(timertype, xpos, ypos, width, height, label, \
            i_timertype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_timer(i_timertype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_scrollbar(scrolltype, xpos, ypos, width, height, label):
    """fl_add_scrollbar(scrolltype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a scrollbar flobject to a form.

    Parameters
    ----------
        scrolltype : int
            type of scrollbar to be added. Values (from xfdata.py)
            - FL_VERT_SCROLLBAR (A vertical scrollbar)
            - FL_HOR_SCROLLBAR (A horizontal scrollbar)
            - FL_VERT_THIN_SCROLLBAR (A different looking vertical scrollbar)
            - FL_HOR_THIN_SCROLLBAR (A different looking horizontal scrollbar)
            - FL_VERT_NICE_SCROLLBAR (vertical scrollbar using FL_NICE_SLIDER)
            - FL_HOR_NICE_SCROLLBAR (horizontal scrollbar using FL_NICE_SLIDER)
            - FL_VERT_PLAIN_SCROLLBAR or FL_VERT_BASIC_SCROLLBAR (Similar to
              FL_THIN_SCROLLBAR)
            - FL_HOR_PLAIN_SCROLLBAR or FL_HOR_BASIC_SCROLLBAR (Similar to
              FL_HOR_THIN_SCROLLBAR)
            - FL_NORMAL_SCROLLBAR (*todo*)
            - FL_THIN_SCROLLBAR (*todo*)
            - FL_NICE_SCROLLBAR (*todo*)
            - FL_PLAIN_SCROLLBAR (*todo*)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            label text of scrollbar

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            scrollbar flobject added

    Examples
    --------
        >>> pscrbobj = fl_add_scrollbar(scrolltype, 182, 140, 50, 150,
                "MyScrollbar")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_scrollbar = library.cfuncproto(
        library.load_so_libforms(), "fl_add_scrollbar",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_scrollbar(int type, FL_Coord x, FL_Coord y,
            FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(scrolltype, \
            xfdata.SCROLLTYPE_list)
    i_scrolltype = library.convert_to_intc(scrolltype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(scrolltype, xpos, ypos, width, height, label, \
            i_scrolltype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_scrollbar(i_scrolltype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_tabfolder(foldertype, xpos, ypos, width, height, label):
    """fl_add_tabfolder(foldertype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a tabfolder flobject. It is a special container that is capable of
    holding multiple groups of objects (folders) to maximize the utilization
    of the screen space. Each folder has its own tab the user can click on to
    call up a specific folder from which option can be selected.

    Parameters
    ----------
        foldertype : int
            type of tabfolder to be added. Values (from xfdata.py)
            - FL_TOP_TABFOLDER or FL_NORMAL_TABFOLDER (it has tab on top),
            - FL_BOTTOM_TABFOLDER (it has tab on bottom),
            - FL_LEFT_TABFOLDER (it has tab on left),
            - FL_RIGHT_TABFOLDER (it has tab on right)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of tabfolder

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            tabfolder flobject added

    Examples
    --------
        >>> ptbfobj = fl_add_tabfolder(xfdata.FL_TOP_TABFOLDER, 120, 120,
                250, 400, "myTabFolder")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_tabfolder = library.cfuncproto(
        library.load_so_libforms(), "fl_add_tabfolder",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_tabfolder(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(foldertype, \
            xfdata.TABFOLDERTYPE_list)
    i_foldertype = library.convert_to_intc(foldertype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(foldertype, xpos, ypos, width, height, label, \
            i_foldertype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_tabfolder(i_foldertype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_nmenu(nmenutype, xpos, ypos, width, height, label):
    """fl_add_nmenu(nmenutype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a new generation menu (nmenu) object. It heavily depends on popups.

    Parameters
    ----------
        nmenutype : type of nmenu to be. Values (from xfdata.py)
            - FL_NORMAL_NMENU (Probably the most often used type, shown as text
              on a borderless background, popup gets opened when clicked on),
            - FL_NORMAL_TOUCH_NMENU (Also shown as text on a borderless
              background, but popup gets opened when the mouse is moved on
              top of it without any further user action required),
            - FL_BUTTON_NMENU (When not active shown as text on borderless
              background, when clicked on popup is shown and the flobject
              itself being displayed as a button),
            - FL_BUTTON_TOUCH_NMENU (When not active shown as text on
              borderless background, when mouse is moved onto it the popup is
              shown and the flobject itself is displayed as a button)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of nmenu flobject

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            nmenu flobject added

    Examples
    --------
        >>> nmnobj = fl_add_nmenu(xfdata.FL_NORMAL_NMENU, 50, 100,
                300, 90, "MyNmenu")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_nmenu = library.cfuncproto(
        library.load_so_libforms(), "fl_add_nmenu",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_nmenu(int p1, FL_Coord p2, FL_Coord p3,
           FL_Coord p4, FL_Coord p5, const char * p6)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(nmenutype, \
            xfdata.NMENUTYPE_list)
    i_nmenutype = library.convert_to_intc(nmenutype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(nmenutype, xpos, ypos, width, height, label, \
            i_nmenutype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_nmenu(i_nmenutype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_free(freetype, xpos, ypos, width, height, label, pyfn_HandlePtr):
    """fl_add_free(freetype, xpos, ypos, width, height, label, pyfn_HandlePtr)
    -> ptr_flobject

    Adds a free object.

    Parameters
    ----------
        freetype : int
            type of free to be added. Value (from xfdata.py)
            - FL_NORMAL_FREE (The flobject will receive the events FL_DRAW,
              FL_ENTER, FL_LEAVE, FL_MOTION, FL_PUSH, FL_RELEASE and FL_MOUSE),
            - FL_INACTIVE_FREE or FL_SLEEPING_FREE (The flobject only receives
              FL_DRAW events. This should be used for flobjects without
              interaction, e.g. a picture),
            - FL_INPUT_FREE (Same as FL_NORMAL_FREE but the flobject also
              receives FL_FOCUS, FL_UNFOCUS and FL_KEYBOARD events. The
              ptr_flobject.contents.wantkey is by default set to FL_KEY_NORMAL,
              i.e., the free flobject will receive all normal keys (0-255)
              except <Tab> and <Return> key. If you are interested in <Tab> or
              <Return> key, you need to change ptr_flobject.contents.wantkey
              to FL_KEY_TAB or FL_KEY_ALL),
            - FL_CONTINUOUS_FREE (Same as FL_NORMAL_FREE but the flobject also
              receives FL_STEP events. This should be used for flobjects that
              change themselves continuously),
            - FL_ALL_FREE (The flobject receives all types of events).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of free
        pyfn_HandlePtr : python function, returned value
            name referring to function(ptr_flobject, [int]event, [int]xpos,
            [int]ypos, [int]key, [pointer to void]ptr_xevent) -> [int]num
            Function does the redrawing and handles the interaction with the
            free flobject. First param is the flobject to which the event
            applies; event indicates what has to happen to the object; xpos
            and ypos indicate the position of the mouse (only meaningful with
            mouse related events) relative to the form origin; key is the
            KeySym of the key typed in by the user (only for xfdata.FL_KEYPRESS
            events). ptr_xevent is pointer to X Event that causes the
            invocation of this handler. event and ptr_xevent.contents.type can
            both be used to obtain the event types. The routine should return
            whether the status of the object has changed, i.e., whether
            flbasic.fl_do_forms() or flbasic.fl_check_forms() should return
            this flobject.

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            free flobject added

    Examples
    --------
        >>> *todo*

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    #FL_HANDLEPTR = cty.CFUNCTYPE(cty.c_int, cty.POINTER(FL_OBJECT), \
    #   cty.c_int, FL_Coord, FL_Coord, cty.c_int, cty.c_void_p)
    _fl_add_free = library.cfuncproto(
        library.load_so_libforms(), "fl_add_free",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING,
        xfdata.FL_HANDLEPTR],
        """FL_OBJECT * fl_add_free(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label, FL_HANDLEPTR handle)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(freetype, xfdata.FREETYPE_list)
    i_freetype = library.convert_to_intc(freetype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.verify_function_type(pyfn_HandlePtr)
    cfn_HandlePtr = xfdata.FL_HANDLEPTR(pyfn_HandlePtr)
    library.keep_cfunc_refs(cfn_HandlePtr, pyfn_HandlePtr)
    library.keep_elem_refs(freetype, xpos, ypos, width, height, label, \
            i_freetype, i_xpos, i_ypos, i_width,i_height, s_label)
    retval = _fl_add_free(i_freetype, i_xpos, i_ypos, i_width, i_height, \
            s_label, cfn_HandlePtr)
    return retval
def fl_add_input(inputtype, xpos, ypos, width, height, label):
    """fl_add_input(inputtype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds an input flobject.

    Parameters
    ----------
        inputtype : int
            type of input to be added. Values (from xfdata.py)
            - FL_NORMAL_INPUT (Any type of text can be typed into this field)
            - FL_FLOAT_INPUT (Only a float value can be typed in, e.g. -23.2e2)
            - FL_INT_INPUT (Only an integer value can be typed in, e.g. -86)
            - FL_DATE_INPUT (Only a date, MM/DD/YY or DD/MM/YY, can be typed
              in, limited by default to 10 characters)
            - FL_MULTILINE_INPUT (An input field allowing for multiple lines)
            - FL_HIDDEN_INPUT (A normal input field but invisible)
            - FL_SECRET_INPUT (A normal input field that does not show the
              text, limited per default to a maximum length of 16 characters)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of input

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            flobject created

    Examples
    --------
        >>> *todo*

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_input = library.cfuncproto(
        library.load_so_libforms(),
        "fl_add_input",
        cty.POINTER(xfdata.FL_OBJECT),
        [cty.c_int, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_input(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""",
    )
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(inputtype, xfdata.INPUTTYPE_list)
    i_inputtype = library.convert_to_intc(inputtype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(
        inputtype, xpos, ypos, width, height, label, i_inputtype, i_xpos, i_ypos, i_width, i_height, s_label
    )
    retval = _fl_add_input(i_inputtype, i_xpos, i_ypos, i_width, i_height, s_label)
    return retval
def fl_add_box(boxtype, xpos, ypos, width, height, label):
    """fl_add_box(boxtype, xpos, ypos, width, height, label) -> ptr_flobject

    Adds a ractangular box area flobject. It is simply used to give the
    dialogue form a nicer appearance. It can be used to visually group other
    objects together. The bottom of each form is a box.

    Parameters
    ----------
        boxtype : int
            type of the box to be added. Values (from xfdata.py)
            - FL_NO_BOX (No box at all, it is transparent, just a label),
            - FL_UP_BOX (A box that comes out of the screen),
            - FL_DOWN_BOX (A box that goes down into the screen),
            - FL_BORDER_BOX (A flat box with a border),
            - FL_SHADOW_BOX (A flat box with a shadow),
            - FL_FRAME_BOX (A flat box with an engraved frame),
            - FL_ROUNDED_BOX (A rounded box),
            - FL_EMBOSSED_BOX (A flat box with an embossed frame),
            - FL_FLAT_BOX (A flat box without a border, normally invisible
              unless given a different color than the surroundings),
            - FL_RFLAT_BOX (A rounded box without a border, normally invisible
              unless given a different color than the surroundings),
            - FL_RSHADOW_BOX (A rounded box with a shadow),
            - FL_OVAL_BOX (A box shaped like an ellipse),
            - FL_ROUNDED3D_UPBOX (A rounded box coming out of the screen),
            - FL_ROUNDED3D_DOWNBOX (A rounded box going into the screen),
            - FL_OVAL3D_UPBOX (An oval box coming out of the screen),
            - FL_OVAL3D_DOWNBOX (An oval box going into the screen),
            - FL_OVAL3D_FRAMEBOX (An oval box with an engraved frame),
            - FL_OVAL3D_EMBOSSEDBOX (An oval box with an embossed frame)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of box

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            box flobject added

    Examples
    --------
        >>> pboxobj = fl_add_box(xfdata.FL_UP_BOX, 120, 150, 200, 250,
                "MyBox")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_box = library.cfuncproto(
        library.load_so_libforms(), "fl_add_box",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_box(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(boxtype, xfdata.BOXTYPE_list)
    i_boxtype = library.convert_to_intc(boxtype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(boxtype, xpos, ypos, width, height, label, \
            i_boxtype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_box(i_boxtype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_labelframe(frametype, xpos, ypos, width, height, label):
    """fl_add_labelframe(frametype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a labelframe flobject. It is almost the same as a frame except that
    the label is placed on the frame instead of inside or outside of the
    bounding box as in a regular frame.

    Parameters
    ----------
        frametype : int
            type of labelframe to be added. Values (from xfdata.py)
            - FL_NO_FRAME (Nothing is drawn),
            - FL_UP_FRAME (A frame appears coming out of the screen),
            - FL_DOWN_FRAME (A frame that goes down into the screen),
            - FL_BORDER_FRAME (A frame with a simple outline),
            - FL_SHADOW_FRAME (A frame with a shadow),
            - FL_ENGRAVED_FRAME (A frame appears to be engraved),
            - FL_ROUNDED_FRAME (A rounded frame),
            - FL_EMBOSSED_FRAME (A frame appears embossed),
            - FL_OVAL_FRAME (An elliptic box).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of labelframe

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            labelframe flobject added

    Examples
    --------
        >>> lfrmobj = fl_add_labelframe(xfdata.FL_SHADOW_FRAME, 100,
                100, 400, 300, "MyFrame")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_labelframe = library.cfuncproto(
        library.load_so_libforms(), "fl_add_labelframe",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_labelframe(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(frametype, \
            xfdata.FRAMETYPE_list)
    i_frametype = library.convert_to_intc(frametype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(frametype, xpos, ypos, width, height, label, \
            i_frametype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_labelframe(i_frametype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_select(selecttype, xpos, ypos, width, height, label):
    """fl_add_select(selecttype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a select (new generation choice) flobject to the form. It is a rather
    simple flobject that allows the user to pick alternatives from a linear
    list that pops up when he clicks on the flobject. It remembers the last
    selected item, which is also shown on top of the select flobject. It
    internally uses a popup.

    Parameters
    ----------
        selecttype : int
            type of select to be added. Values (from xfdata.py)
            - FL_NORMAL_SELECT (Per default this type is drawn as a rounded,
              flat box, but you can change that by setting a different boxtype
              for the flobject, with the text of the currently selected item
              in its center),
            - FL_MENU_SELECT (This select flobject looks like a button with a
              little extra box at its right side, just like a FL_NMENU_BUTTON
              and the text of the currently selected item is drawn on the
              button-like object),
            - FL_DROPLIST_SELECT (This type looks like a button with the text
              of the currently selected item on top of it and a second square
              button directly beside it with a downward pointing arrow on it)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of select

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            select flobject added

    Examples
    --------
        >>> selobj = fl_add_select(xfdata.FL_NORMAL_SELECT,
                120, 140, 250, 250, "MySelect")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_select = library.cfuncproto(
        library.load_so_libforms(), "fl_add_select",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_select(int p1, FL_Coord p2, FL_Coord p3,
           FL_Coord p4, FL_Coord p5, const char * p6)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(selecttype, \
            xfdata.SELECTTYPE_list)
    i_selecttype = library.convert_to_intc(selecttype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(selecttype, xpos, ypos, width, height, label, \
            i_selecttype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_select(i_selecttype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_positioner(posittype, xpos, ypos, width, height, label):
    """fl_add_positioner(posittype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a positioner flobject. By default the label is placed below the box.

    Parameters
    ----------
        posittype : int
            type of positioner to be added. Values (from xfdata.py)
            - FL_NORMAL_POSITIONER (Cross-hair inside a box),
            - FL_OVERLAY_POSITIONER (Cross-hair inside a transparent box, i.e.
              drawn in in XOR mode),
            - FL_INVISIBLE_POSITIONER (Completely invisible positioner to be
              used just for the side effect of obtaining a position, typically
              a flobject is below it that otherwise would receive user events)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of positioner.

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            positioner flobject added

    Examples
    --------
        >>> pstobj = fl_add_positioner(xfdata.FL_NORMAL_POSITIONER,
                140, 120, 180, 180, "MyPositioner")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_positioner = library.cfuncproto(
        library.load_so_libforms(), "fl_add_positioner",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_positioner(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(posittype, \
            xfdata.POSITIONERTYPE_list)
    i_posittype = library.convert_to_intc(posittype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(posittype, xpos, ypos, width, height, label, \
            i_posittype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_positioner(i_posittype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_chart(charttype, xpos, ypos, width, height, label):
    """fl_add_chart(charttype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a chart flobject.

    Parameters
    ----------
        charttype : int
            type of chart to be created. Values (from xfdata.py)
            - FL_BAR_CHART (A vertical bar-chart),
            - FL_HORBAR_CHART (A horizontal bar-chart),
            - FL_LINE_CHART (A line-chart),
            - FL_FILL_CHART (A line-chart but the area below curve is filled),
            - FL_SPIKE_CHART (A chart with a vertical spike for each value),
            - FL_PIE_CHART (A pie-chart),
            - FL_SPECIALPIE_CHART (A pie-chart with displaced first item)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of chart

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            chart flobject added

    Examples
    --------
        >>> pchrtobj = fl_add_chart(xfdata.FL_SPIKE_CHART, 147, 168,
                250, 492, "My Chart")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_chart = library.cfuncproto(
        library.load_so_libforms(), "fl_add_chart",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_chart(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(charttype, \
            xfdata.CHARTTYPE_list)
    i_charttype = library.convert_to_intc(charttype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(charttype, xpos, ypos, width, height, label, \
            i_charttype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_chart(i_charttype, i_xpos, i_ypos, i_width, i_height, \
            s_label)
    return retval
def fl_add_thumbwheel(wheeltype, xpos, ypos, width, height, label):
    """fl_add_thumbwheel(wheeltype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a thumbwheel flobject. It is a valuator that can be useful for
    letting the user indicate a value between some fixed bounds. Both
    horizontal and vertical thumbwheels exist. They have a minimum, a maximum
    and a current value (all floating point values). The user can change the
    current value by rolling the wheel.

    Parameters
    ----------
        wheeltype : int
            type of thumbwheel to be added. Values (from xfdata.py)
            - FL_VERT_THUMBWHEEL (A vertical thumbwheel),
            - FL_HOR_THUMBWHEEL (A horizontal thumbwheel)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
          label : str
            text label of thumbwheel

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            thumbwheel flobject added

    Examples
    --------
        >>> ptmwobj = fl_add_thumbwheel(xfdata.FL_HOR_THUMBWHEEL,
                140, 134, 250, 30, "MyThumbwheel")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_thumbwheel = library.cfuncproto(
        library.load_so_libforms(), "fl_add_thumbwheel",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_thumbwheel(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(wheeltype, \
            xfdata.THUMBWHEELTYPE_list)
    i_wheeltype = library.convert_to_intc(wheeltype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(wheeltype, xpos, ypos, width, height, label, \
            i_wheeltype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_thumbwheel(i_wheeltype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_slider(slidertype, xpos, ypos, width, height, label):
    """fl_add_slider(slidertype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a slider to a form. No value is displayed.

    Parameters
    ----------
        slidertype : int
            type of slider to be added. Values (from xfdata.py)
            - FL_VERT_SLIDER (normal slider),
            - FL_HOR_SLIDER (horizontal slider),
            - FL_VERT_FILL_SLIDER (filled slider),
            - FL_HOR_FILL_SLIDER (horizontal filled slider),
            - FL_VERT_NICE_SLIDER (*todo*),
            - FL_HOR_NICE_SLIDER (horizontal *todo*),
            - FL_VERT_BROWSER_SLIDER (*todo*),
            - FL_HOR_BROWSER_SLIDER (horizontal *todo*),
            - FL_VERT_BROWSER_SLIDER2 (for vertical scrollbar only),
            - FL_HOR_BROWSER_SLIDER2 (for horizontal scrollbar only),
            - FL_VERT_THIN_SLIDER (for vertical thin scrollbar only),
            - FL_HOR_THIN_SLIDER (for horizontal thin scrollbar only),
            - FL_VERT_NICE_SLIDER2 (for vertical nice scrollbar only),
            - FL_HOR_NICE_SLIDER2 (for horizontal nice scrollbar only),
            - FL_VERT_BASIC_SLIDER (for vertical plain scrollbar only),
            - FL_HOR_BASIC_SLIDER (for horizontal plain scrollbar only).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : int
            label of the slider (placed below it by default)

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            slider flobject added

    Examples
    --------
        >>> sldobj = fl_add_slider(xfdata.FL_VERT_SLIDER, 200, 120,
                30, 100, "MySlider")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_slider = library.cfuncproto(
        library.load_so_libforms(), "fl_add_slider",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_slider(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(slidertype, \
            xfdata.SLIDERTYPE_list)
    i_slidertype = library.convert_to_intc(slidertype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(slidertype, xpos, ypos, width, height, label, \
            i_slidertype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_slider(i_slidertype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_spinner(spinnertype, xpos, ypos, width, height, label):
    """fl_add_spinner(spinnertype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a spinner flobject. It is a combination of a (numerical) input field
    with two (touch) buttons that allow to increment or decrement the value in
    the (editable) input field. I.e. the user can change the spinners value by
    either editing the value of the input field or by using the up/down
    buttons shown beside the input field.

    Parameters
    ----------
        spinnertype : int
            type of spinner to be added. Values (from xfdata.py)
            - FL_INT_SPINNER (spinner with integer values),
            - FL_FLOAT_SPINNER (spinner with float values)
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of spinner

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            spinner flobject added

    Examples
    --------
        >>> pspnobj = fl_add_spinner(xfdata.FL_INT_SPINNER, 175, 75, 140,
                150, "My spinner")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_spinner = library.cfuncproto(
        library.load_so_libforms(), "fl_add_spinner",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_spinner(int type, FL_Coord x, FL_Coord y,
        FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(spinnertype, \
            xfdata.SPINNERTYPE_list)
    i_spinnertype = library.convert_to_intc(spinnertype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(spinnertype, xpos, ypos, width, height, label, \
            i_spinnertype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_spinner(i_spinnertype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval
def fl_add_frame(frametype, xpos, ypos, width, height, label):
    """fl_add_frame(frametype, xpos, ypos, width, height, label)
    -> ptr_flobject

    Adds a frame flobject. It is simply used to give the dialogue form a nicer
    appearance. It can be used to visually group other objects together.
    Frames are almost the same as a box, except that the interior of the
    bounding box is not filled. Use of frames can speed up drawing in certain
    situations, e.g. to place a group of radio buttons within an
    xfdata.FL_ENGRAVED_FRAME. If we were to use an xfdata.FL_FRAME_BOX to
    group the buttons, visually they would look the same; however, the latter
    is faster as we do not have to fill the interior of the bounding box and
    can also reduce flicker. Frames are useful in decorating free objects and
    canvases.

    Parameters
    ----------
        frametype : int
            type of frame to be added. Values (from xfdata.py)
            - FL_NO_FRAME (Nothing is drawn),
            - FL_UP_FRAME (A frame appears coming out of the screen),
            - FL_DOWN_FRAME (A frame that goes down into the screen),
            - FL_BORDER_FRAME (A frame with a simple outline),
            - FL_SHADOW_FRAME (A frame with a shadow),
            - FL_ENGRAVED_FRAME (A frame appears to be engraved),
            - FL_ROUNDED_FRAME (A rounded frame),
            - FL_EMBOSSED_FRAME (A frame appears embossed),
            - FL_OVAL_FRAME (An elliptic box).
        xpos : int
            horizontal position (upper-left corner)
        ypos : int
            vertical position (upper-left corner)
        width : int
            width in coord units
        height : int
            height in coord units
        label : str
            text label of frame

    Returns
    -------
        ptr_flobject : pointer to xfdata.FL_OBJECT
            frame flobject added

    Examples
    --------
        >>> frmobj = fl_add_frame(xfdsata.FL_BORDER_FRAME, 100, 100,
                400, 300, "MyFrame")

    Notes
    -----
        Status: NA-UTest + Doc + Demo = OK

    """
    _fl_add_frame = library.cfuncproto(
        library.load_so_libforms(), "fl_add_frame",
        cty.POINTER(xfdata.FL_OBJECT), [cty.c_int, xfdata.FL_Coord,
        xfdata.FL_Coord, xfdata.FL_Coord, xfdata.FL_Coord, xfdata.STRING],
        """FL_OBJECT * fl_add_frame(int type, FL_Coord x, FL_Coord y,
           FL_Coord w, FL_Coord h, const char * label)""")
    library.check_if_flinitialized()
    library.checkfatal_allowed_value_in_list(frametype, \
            xfdata.FRAMETYPE_list)
    i_frametype = library.convert_to_intc(frametype)
    i_xpos = library.convert_to_FL_Coord(xpos)
    i_ypos = library.convert_to_FL_Coord(ypos)
    i_width = library.convert_to_FL_Coord(width)
    i_height = library.convert_to_FL_Coord(height)
    s_label = library.convert_to_bytestrc(label)
    library.keep_elem_refs(frametype, xpos, ypos, width, height, label, \
            i_frametype, i_xpos, i_ypos, i_width, i_height, s_label)
    retval = _fl_add_frame(i_frametype, i_xpos, i_ypos, i_width, \
            i_height, s_label)
    return retval