You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wrapper code is complete; new features will be added as they arrive in libui.
Testing is incomplete. More examples are welcome.
This wrapper should be stable but keep in mind that libui is still in
alpha status.
History
February 22, 2018
Added DEBUG output to define_c_func/proc
Added uiControlVerifySetParent()
Added uiControlEnabledToUser()
Added uiUserBugCannotSetParentOnToplevel()
Added blurb about position routines to comments
Added test for -1 in event handler assignment
Removed missing uiDraw functions
December 9, 2016
Added new position functions
Added more uiDrawBrush functions
Removed old position functions
June 17, 2016
Added uiFormDelete()
Added uiProgressBarValue()
Added uiMainSteps()
Added uiNewVerticalSeparator()
Added window position functions
Added window borderless functions
Added window fullscreen functions
Added Window content size functions
June 13, 2016
Added more examples
Wrapped uiGrid control
Changed call_back() lines to use CDECL
Fixed memory allocation in uiDrawTextLayoutExtents
June 9, 2016
Wrapped more draw functions
Wrapped new uiForm control
June 8, 2016
Wrapped more draw functions
June 7, 2016
Wrapped more controls
Wrapped draw functions
Changed string functions to call uiFreeText()
Completed controlgallery.ex example
June 6, 2016
Initial commit
Wrapped most controls
Created controlgallery.ex example
Notes
Wrapper Style
A keen observer might notice the seemingly unorthodox C wrapper code used in ui.e. What I've done here, is use a map
to provide string lookups for function names instead of using constants. This is an experiment in providing a cleaner
C library wrapper. The calls to define_c_func/proc look a lot more like attributes
used in C# or VB.NET. I have not compared this method to using constants, so I'm not sure if or by how much this might
be slower.
Original Code
constant _uiNewWindow = define_c_func( libui, "uiNewWindow", {C_POINTER,C_INT,C_INT,C_INT}, C_POINTER )
public function uiNewWindow( sequence title, atom width, atom height, atom hasMenubar )
return c_func( _uiNewWindow, {allocate_string(title,1),width,height,hasMenubar} )
end function
Wrapper Code
define_c_func( libui, "uiNewWindow", {C_POINTER,C_INT,C_INT,C_INT}, C_POINTER )
public function uiNewWindow( sequence title, atom width, atom height, atom hasMenubar )
return c_func( "uiNewWindow", {allocate_string(title,1),width,height,hasMenubar} )
end function