27 November 2016
2 November 2016
uiAreaBeginUserWindowResize(). When used in a
uiAreaHandler.Mouse()event handler, these let you initiate a user-driven mouse move or mouse resize of the window at any point in a uiArea.
31 October 2016
24 October 2016
uiWindowSetContentSize()on Unix no longer needs to call up the GTK+ main loop. As a result, bugs related to strange behavior using that function (and the now-deleted
uiWindowCenter()) should go away. I'll need to go through the bugs to verify as much, though.
22 October 2016
uiWindowOnPositionChanged(). Centering may come back at some point in the future, albeit in a possibly restricted form. A function to initiate a user move when a part of a uiArea is clicked will be provided soon.
21 October 2016
uiDrawTextWeightUltraBoldis now spelled correctly. Thanks to @krakjoe.
18 June 2016
17 June 2016
uiMainSteps()no longer takes any arguments and no longer needs to invoke a function to do the work. You still need to call it, but once you do, it will return immediately and you can then get right to your main loop.
16 June 2016
uiWindowOnContentSizeChanged()methods for manipulating uiWindow content sizes. Note the use of "content size"; the size you work with does NOT include window decorations (titlebars, menus, etc.).
uiWindowSetFullscreen()to allow making fullscreen uiWindows, taking advantage of OS facilities for fullscreen and without changing the screen resolution (!).
uiWindowSetBorderless()for allowing borderless uiWindows.
uiMainSteps(). You call this instead of
uiMain()if you want to run the main loop yourself. You pass in a function that will be called; within that function, you call
uiMainStep()repeatedly until it returns 0, doing whatever you need to do in the meantime. (This was needed because just having
uiMainStep()by itself only worked on some systems.)
uiProgressBarValue()and allowed passing -1 to
uiProgressBarSetValue()to make an indeterminate progress bar. Thanks to @emersion.
15 June 2016
uiFormDelete(); thanks to @emersion.
uiWindowOnPositionChanged(), methods for manipulating uiWindow position.
14 June 2016
ChildVisibilityChanged()method and a corresponding
NotifyVisibilityChanged()function that is called by the default show/hide handlers. This is used to make visibility changes work on OS X; uiBox, uiForm, and uiGrid all respect these now.
13 June 2016
uintmax_tare no longer used for libui API functions; now we use
int. This should make things much easier for bindings.
intshould be at least 32 bits wide; this should be sufficient for all but the most extreme cases.
12 June 2016
uiGrid, a new container control that arranges controls in rows and columns, with stretchy ("expanding") rows, stretchy ("expanding") columns, cells that span rows and columns, and cells whose content is aligned in either direction rather than just filling. It's quite powerful, is it? =P
8 June 2016
uiForm, a new container control that arranges controls vertically, with properly aligned labels on each. Have fun!
6 June 2016
uiRadioButtonsOnSelected()to control selection of a radio button and catch an event when such a thing happens.
5 June 2016
uiNewPasswordEntry(), which creates a new
uiEntrysuitable for entering passwords.
uiNewSearchEntry(), which creates a new
uiEntrysuitable for searching. On some systems, the
OnChanged()event will be slightly delayed and/or combined, to produce a more natural feel when searching.
29 May 2016
make STATIC=1instead of just
libui.resAND provide a Common Controls 6 manifest for output static binaries to work properly.
28 May 2016
26 May 2016
uiDarwinPaddingAmount(). These return the amount of margins and padding, respectively, to give to a control, and are intended for container implementations. These are suitable for the constant of a NSLayoutConstraint. They both take a pointer parameter that is reserved for future use and should be
25 May 2016
24 May 2016
uiComboboxis now split into
uiComboboxfor non-editable comboboxes and
uiEditableComboboxfor editable comboboxes. Mind the function changes as well :)
uiMainStep(), which runs one iteration of the main loop. It takes a single boolean argument, indicating whether to wait for an event to occur or not. It returns true if an event was processed (or if no event is available if you don't want to wait) and false if the event loop was told to stop (for instance,
23 May 2016
22 May 2016
uiComboboxinto two separate controls,
uiEditableCombobox, each with slightly different events and "selected item" mechanics. Prepare your existing code.
uiControlVerifyDestroy(); that is now part of
uiPi, a constant for π. This is provided for C and C++ programmers, where there is no standard named constant for π; bindings authors shouldn't need to worry about this.
uiNewNonWrappingMultilineEntry(), which creates a uiMultilineEntry that scrolls horizontally instead of wrapping lines. (This is not documented as being changeable after the fact on Windows, hence it's a creation-time choice.)
WM_PRINTCLIENTproperly, which should hopefully increase the quality of screenshots.
uiUserBugCannotSetParentOnToplevel(), which should be used by implementations of toplevel controls in their
SetParent()implementations. This will also be the beginning of consolidating common user bug messages into a single place, though this will be one of the only few exported user bug functions.
uiMutlilineEntryAppend()on GTK+ no longer fire
21 May 2016