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 )