LibUI

 view release on metacpan or  search on metacpan

lib/LibUI.pm  view on Meta::CPAN

package LibUI v1.0.0 {
    use v5.40;
    use Affix;
    use Alien::libui;
    my $lib = Alien::libui->dynamic_libs;
    use Exporter qw[import];
    our %EXPORT_TAGS = (
        default => [qw[uiInit uiUninit uiFreeInitError uiMain uiMainSteps uiMainStep uiQuit uiQueueMain uiTimer uiOnShouldQuit]],
        control => [
            qw[
                uiControlDestroy  uiControlHandle          uiControlParent        uiControlSetParent
                uiControlToplevel uiControlVisible         uiControlShow          uiControlHide
                uiControlEnabled  uiControlEnable          uiControlDisable       uiAllocControl
                uiFreeControl     uiControlVerifySetParent uiControlEnabledToUser uiUserBugCannotSetParentOnToplevel]
        ],
        window => [
            qw[
                uiWindowTitle             uiWindowSetTitle             uiWindowPosition       uiWindowSetPosition
                uiWindowOnPositionChanged uiWindowContentSize          uiWindowSetContentSize uiWindowFullscreen
                uiWindowSetFullscreen     uiWindowOnContentSizeChanged uiWindowOnClosing      uiWindowOnFocusChanged
                uiWindowFocused           uiWindowBorderless           uiWindowSetBorderless  uiWindowSetChild
                uiWindowMargined          uiWindowSetMargined          uiWindowResizeable     uiWindowSetResizeable
                uiNewWindow
            ]
        ],
        button   => [qw[uiButtonText uiButtonSetText  uiButtonOnClicked uiNewButton ]],
        box      => [qw[uiBoxAppend  uiBoxNumChildren uiBoxDelete uiBoxPadded uiBoxSetPadded uiNewHorizontalBox uiNewVerticalBox ]],
        checkbox => [qw[uiCheckboxText uiCheckboxSetText uiCheckboxOnToggled uiCheckboxChecked uiCheckboxSetChecked uiNewCheckbox ]],
        entry    => [
            qw[
                uiEntryText        uiEntrySetText uiEntryOnChanged   uiEntryReadOnly
                uiEntrySetReadOnly uiNewEntry     uiNewPasswordEntry uiNewSearchEntry
            ]
        ],
        label   => [qw[ uiLabelText    uiLabelSetText    uiNewLabel ]],
        tab     => [qw[ uiTabAppend    uiTabInsertAt     uiTabDelete        uiTabNumPages uiTabMargined uiTabSetMargined uiNewTab ]],
        group   => [qw[ uiGroupTitle   uiGroupSetTitle   uiGroupSetChild    uiGroupMargined uiGroupSetMargined uiNewGroup ]],
        spinbox => [qw[ uiSpinboxValue uiSpinboxSetValue uiSpinboxOnChanged uiNewSpinbox ]],
        slider  => [
            qw[
                uiSliderValue     uiSliderSetValue   uiSliderHasToolTip uiSliderSetHasToolTip
                uiSliderOnChanged uiSliderOnReleased uiSliderSetRange   uiNewSlider
            ]
        ],
        progressbar => [qw[uiProgressBarValue uiProgressBarSetValue uiNewProgressBar ]],
        separator   => [qw[uiNewHorizontalSeparator uiNewVerticalSeparator ]],
        combobox    => [
            qw[
                uiComboboxAppend   uiComboboxInsertAt uiComboboxDelete      uiComboboxClear
                uiComboboxNumItems uiComboboxSelected uiComboboxSetSelected uiComboboxOnSelected
                uiNewCombobox
            ]
        ],
        editablecombobox => [
            qw[
                uiEditableComboboxAppend uiEditableComboboxText uiEditableComboboxSetText uiEditableComboboxOnChanged
                uiNewEditableCombobox
            ]
        ],
        menu => [
            qw[
                uiNewMenu                   uiMenuAppendItem      uiMenuAppendCheckItem uiMenuAppendQuitItem
                uiMenuAppendPreferencesItem uiMenuAppendAboutItem uiMenuAppendSeparator uiMenuItemEnable
                uiMenuItemDisable           uiMenuItemOnClicked   uiMenuItemChecked     uiMenuItemSetChecked
            ]
        ],
        multilineentry => [
            qw[
                uiNewMultilineEntry    uiNewNonWrappingMultilineEntry uiMultilineEntryText     uiMultilineEntrySetText
                uiMultilineEntryAppend uiMultilineEntryOnChanged      uiMultilineEntryReadOnly uiMultilineEntrySetReadOnly
            ]
        ],
        radiobuttons   => [qw[ uiNewRadioButtons uiRadioButtonsAppend uiRadioButtonsSelected uiRadioButtonsSetSelected uiRadioButtonsOnSelected ]],
        grid           => [qw[ uiNewGrid        uiGridAppend       uiGridInsertAt uiGridPadded uiGridSetPadded ]],
        colorbutton    => [qw[ uiNewColorButton uiColorButtonColor uiColorButtonSetColor uiColorButtonOnChanged ]],
        filedialog     => [qw[ uiOpenFile       uiOpenFolder       uiSaveFile ]],
        msgbox         => [qw[ uiMsgBox         uiMsgBoxError ]],
        fontbutton     => [qw[ uiNewFontButton  uiFontButtonFont uiFreeFontButtonFont uiLoadControlFont uiFontButtonOnChanged ]],
        datetimepicker => [
            qw[
                uiNewDatePicker      uiNewTimePicker uiNewDateTimePicker uiDateTimePickerOnChanged
                uiDateTimePickerTime uiDateTimePickerSetTime
            ]
        ],
        tab_extra  => [qw[uiTabSelected uiTabSetSelected     uiTabOnSelected ]],
        form       => [qw[ uiNewForm     uiFormAppend         uiFormNumChildren uiFormDelete uiFormPadded uiFormSetPadded ]],
        area_extra => [qw[ uiAreaSetSize uiAreaQueueRedrawAll uiAreaScrollTo    uiAreaBeginUserWindowMove uiAreaBeginUserWindowResize ]],
        drawpath   => [
            qw[
                uiDrawNewPath          uiDrawFreePath  uiDrawPathNewFigure uiDrawPathNewFigureWithArc
                uiDrawPathLineTo       uiDrawPathArcTo uiDrawPathBezierTo  uiDrawPathCloseFigure
                uiDrawPathAddRectangle uiDrawPathEnded uiDrawPathEnd
            ]
        ],
        drawstroke => [qw[ uiDrawStroke uiDrawFill ]],
        drawmatrix => [
            qw[
                uiDrawMatrixSetIdentity    uiDrawMatrixTranslate uiDrawMatrixScale      uiDrawMatrixRotate
                uiDrawMatrixSkew           uiDrawMatrixMultiply  uiDrawMatrixInvertible uiDrawMatrixInvert
                uiDrawMatrixTransformPoint uiDrawMatrixTransformSize
            ]
        ],
        drawcontext => [qw[ uiDrawTransform uiDrawClip uiDrawSave uiDrawRestore ]],
        image       => [qw[ uiNewImage uiFreeImage uiImageAppend ]],
        attr        => [
            qw[
                uiFreeAttribute      uiAttributeGetType           uiNewFamilyAttribute     uiAttributeFamily
                uiNewSizeAttribute   uiAttributeSize              uiNewWeightAttribute     uiAttributeWeight
                uiNewItalicAttribute uiAttributeItalic            uiNewStretchAttribute    uiAttributeStretch
                uiNewColorAttribute  uiAttributeColor             uiNewBackgroundAttribute uiNewUnderlineAttribute
                uiAttributeUnderline uiNewUnderlineColorAttribute uiAttributeUnderlineColor
            ]
        ],
        opentype => [

lib/LibUI.pm  view on Meta::CPAN

        ],
        attrstr => [
            qw[ uiNewAttributedString                 uiFreeAttributedString
                uiAttributedStringString              uiAttributedStringLen
                uiAttributedStringAppendUnattributed  uiAttributedStringInsertAtUnattributed
                uiAttributedStringDelete              uiAttributedStringSetAttribute
                uiAttributedStringForEachAttribute    uiAttributedStringNumGraphemes
                uiAttributedStringByteIndexToGrapheme uiAttributedStringGraphemeToByteIndex
            ]
        ],
        textlayout => [qw[uiDrawNewTextLayout uiDrawFreeTextLayout uiDrawText uiDrawTextLayoutExtents]],
        table      => [
            qw[ uiFreeTableValue               uiTableValueGetType
                uiNewTableValueString          uiTableValueString
                uiNewTableValueImage           uiTableValueImage
                uiNewTableValueInt             uiTableValueInt
                uiNewTableValueColor           uiTableValueColor
                uiNewTableModel                uiFreeTableModel
                uiTableModelRowInserted        uiTableModelRowChanged
                uiTableModelRowDeleted         uiTableAppendTextColumn
                uiTableAppendImageColumn       uiTableAppendImageTextColumn
                uiTableAppendCheckboxColumn    uiTableAppendCheckboxTextColumn
                uiTableAppendProgressBarColumn uiTableAppendButtonColumn
                uiTableHeaderVisible           uiTableHeaderSetVisible
                uiNewTable                     uiTableOnRowClicked
                uiTableOnRowDoubleClicked      uiTableHeaderSetSortIndicator
                uiTableHeaderSortIndicator     uiTableHeaderOnClicked
                uiTableColumnWidth             uiTableColumnSetWidth
                uiTableGetSelectionMode        uiTableSetSelectionMode
                uiTableOnSelectionChanged      uiTableGetSelection
                uiTableSetSelection            uiFreeTableSelection]
        ],
        misc      => [qw[uiFreeText uiNewArea uiNewScrollingArea]],
        constants => [
            qw[ UI_FILL_WINDING   UI_FILL_ALTERNATE
                UI_BRUSH_SOLID       UI_BRUSH_LINEAR_GRADIENT UI_BRUSH_RADIAL_GRADIENT
                UI_LINE_CAP_FLAT     UI_LINE_CAP_ROUND   UI_LINE_JOIN_MITER
                UI_LINE_JOIN_ROUND   UI_LINE_JOIN_BEVEL  UI_TEXT_ALIGN_LEFT
                UI_TEXT_ALIGN_CENTER UI_TEXT_ALIGN_RIGHT
                UI_WEIGHT_THIN       UI_WEIGHT_EXTRA_LIGHT UI_WEIGHT_LIGHT
                UI_WEIGHT_BOOK
                UI_WEIGHT_NORMAL
                UI_WEIGHT_MEDIUM
                UI_WEIGHT_SEMI_BOLD UI_WEIGHT_BOLD    UI_WEIGHT_EXTRA_BOLD UI_WEIGHT_HEAVY
                UI_ITALIC_NORMAL    UI_ITALIC_OBLIQUE UI_ITALIC_ITALIC
                UI_STRETCH_ULTRA_CONDENSED UI_STRETCH_EXTRA_CONDENSED UI_STRETCH_CONDENSED
                UI_STRETCH_SEMI_CONDENSED  UI_STRETCH_NORMAL          UI_STRETCH_SEMI_EXPANDED
                UI_STRETCH_EXPANDED        UI_STRETCH_EXTRA_EXPANDED  UI_STRETCH_ULTRA_EXPANDED
                UI_UNDERLINE_NONE      UI_UNDERLINE_SINGLE   UI_UNDERLINE_DOUBLE UI_UNDERLINE_SQUIGGLE
                UI_TABLE_COLUMN_STRING UI_TABLE_COLUMN_IMAGE UI_TABLE_COLUMN_INT UI_TABLE_COLUMN_COLOR
                UI_SELECTION_NONE      UI_SELECTION_SINGLE   UI_SELECTION_MULTIPLE
                UI_SORT_NONE           UI_SORT_ASCENDING     UI_SORT_DESCENDING
                UI_ALIGN_FILL          UI_ALIGN_START        UI_ALIGN_CENTER       UI_ALIGN_END
            ]
        ],
        helpers => [qw[solid_brush draw_stroke format_tm]]
    );
    {
        my %seen;
        push @{ $EXPORT_TAGS{control} }, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$_} }
            for qw[area_extra attr attrstr box button checkbox colorbutton combobox constants datetimepicker
            drawcontext drawmatrix drawpath drawstroke editablecombobox entry filedialog fontbutton form
            grid group helpers image label menu misc msgbox multilineentry opentype progressbar radiobuttons
            separator slider spinbox tab tab_extra table textlayout window];
    }
    {
        my %seen;
        push @{ $EXPORT_TAGS{all} }, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$_} } for keys %EXPORT_TAGS;
    }
    our @EXPORT_OK = @{ $EXPORT_TAGS{all} };

    #~ use Data::Dump;
    #~ ddx \@EXPORT_OK;
    #~ ddx \%EXPORT_TAGS;
    typedef 'LibUI::InitOptions' => Struct [ Size => Size_t ];
    affix $lib, 'uiInit',          [ Pointer [ Struct [ Size => Size_t ] ] ]                   => String;
    affix $lib, 'uiUninit',        []                                                          => Void;
    affix $lib, 'uiFreeInitError', [Char]                                                      => Void;
    affix $lib, 'uiMain',          []                                                          => Void;
    affix $lib, 'uiMainSteps',     []                                                          => Void;
    affix $lib, 'uiMainStep',      [Int]                                                       => Int;
    affix $lib, 'uiQuit',          []                                                          => Void;
    affix $lib, 'uiQueueMain',     [ Callback [ [ Pointer [SV] ] => Void ], Pointer [SV] ]     => Void;
    affix $lib, 'uiTimer',         [ Int, Callback [ [ Pointer [SV] ] => Int ], Pointer [SV] ] => Void;
    affix $lib, 'uiOnShouldQuit',  [ Callback [ [ Pointer [SV] ] => Int ], Pointer [SV] ]      => Void;
    affix $lib, 'uiFreeText',      [String]                                                    => Void;

    # Base class for GUI controls providing common methods.
    typedef 'LibUI::Control' => Pointer [
        Void

            #~ Struct [
            #~ signature      => UInt,
            #~ os_signature   => UInt,
            #~ type_signature => UInt,
            #~ destroy        => Pointer [Void],
            #~ handle         => Pointer [Void],
            #~ parent         => Pointer [Void],
            #~ set_parent     => Pointer [Void],
            #~ top_level      => Int,
            #~ visible        => Int,
            #~ show           => Pointer [Void],
            #~ hide           => Pointer [Void],
            #~ enabled        => Int,
            #~ enable         => Pointer [Void],
            #~ disable        => Pointer [Void]
            #~ ]
    ];
    affix $lib, 'uiControlDestroy',                   [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiControlHandle',                    [ Pointer [Void] ]                 => Pointer [Void];
    affix $lib, 'uiControlParent',                    [ Pointer [Void] ]                 => Pointer [Void];
    affix $lib, 'uiControlSetParent',                 [ Pointer [Void], Pointer [Void] ] => Void;
    affix $lib, 'uiControlToplevel',                  [ Pointer [Void] ]                 => Bool;
    affix $lib, 'uiControlVisible',                   [ Pointer [Void] ]                 => Bool;
    affix $lib, 'uiControlShow',                      [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiControlHide',                      [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiControlEnabled',                   [ Pointer [Void] ]                 => Bool;
    affix $lib, 'uiControlEnable',                    [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiControlDisable',                   [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiAllocControl',                     [ Size_t, UInt, UInt, String ]     => Pointer [Void];
    affix $lib, 'uiFreeControl',                      [ Pointer [Void] ]                 => Void;
    affix $lib, 'uiControlVerifySetParent',           [ Pointer [Void], Pointer [Void] ] => Void;



( run in 0.985 second using v1.01-cache-2.11-cpan-8dfa8b56332 )