aboutsummaryrefslogtreecommitdiffstats
path: root/src/mac.m
AgeCommit message (Collapse)AuthorFilesLines
2022-05-21Add puglGetScaleFactor()David Robillard1-2/+10
2022-05-21Add puglSetPosition() and puglSetSize()David Robillard1-11/+71
These are redundant with puglSetFrame in a sense, but allow setting the size of a view without the position, or vice-versa. This API also maps more nicely to Wayland, where applications can not position themselves (but can resize).
2022-05-21Use consistent integer types for view positions and sizesDavid Robillard1-10/+13
Actual window sizes and positions fit easily in a 16-bit integer. So, we use that in "representation contexts" like events. This makes structures smaller, and allows the values to be converted to float, double, or integer without casting (since any int16_t or uint16_t value can fit in them without loss). Setter APIs use native integers for convenience, to avoid casting hassles when doing arithmetic. Ranges are checked at runtime.
2022-05-21Add a uniform API for setting size hintsDavid Robillard1-74/+66
This collapses many functions into one, which makes the API more easily extensible and reduces code size.
2022-05-21Rename PUGL_UNSUPPORTED_TYPE to be more genericDavid Robillard1-1/+1
2022-05-21MacOS: Specify maximum size constraint on draw viewDavid Robillard1-15/+37
I am not sure why the minimum was only specified before, but it seems like an oversight.
2021-12-17Adopt REUSE machine-readable licensing standardDavid Robillard1-16/+3
See https://reuse.software/ for details.
2021-12-17Make button numbers consistent across platformsDavid Robillard1-2/+2
There's no universal consensus on how buttons are numbered. Left, right, middle as 0, 1, 2 seems to be the most common convention on modern vaguely similar libraries, so I've gone with that. The switch to zero-based indices will obviously break all current client code. Particularly since now is the time to finish any breaking changes before a stable release, I think that is better than only changing the middle and right numbers, which would likely go unnoticed.
2021-12-16Rename puglSetTransientFor to puglSetTransientParentDavid Robillard1-1/+1
2021-08-25Fix whitespaceDavid Robillard1-1/+2
2021-08-25MacOS: Fix build on MacOS 10.9 and earlierfalkTX1-0/+1
NSEventSubtype was introduced in 10.10.
2021-06-07MacOS: Fix conversion warningfalkTX1-1/+1
2021-05-25Rename event structs in a more readable styleDavid Robillard1-14/+14
Aside from reading more naturally, this avoids clashes with types that are not events, like PuglEventFlags. This is also more consistent with the C++ bindings, where "EventExpose" would be quite strange, for example. Apologies for the noise. Aliases to the old names will be preserved in the deprecated API like other things for a short while.
2021-05-03MacOS: Make puglGetNativeWorld() return the NSApplicationDavid Robillard1-2/+2
2021-05-03Fix crash when freeing a view that has not been configuredDavid Robillard1-3/+11
2021-05-03Fix questionable event castsDavid Robillard1-24/+55
I don't think there is any UB actually happening here, but some of these were casting to a pointer of a larger type, which is problematic. Unfortunately, it makes for quite a bit of tedious verbosity, but I don't see a decent way around that in C99.
2021-04-21MacOS: Fix memory leaks in puglUpdate()Bjarke Bech1-24/+26
2021-01-02Simplify clang-format configuration and format all codeDavid Robillard1-857/+869
2020-12-01Make puglShow() realize automatically on Windows and MacOSDavid Robillard1-0/+7
2020-11-26Remove file documentationDavid Robillard1-5/+0
These will not be used in the Sphinx documentation, and most were self-explanatory and only there to make the Doxygen index look nice anyway. Where there was actually useful information, it has been preserved as regular comments.
2020-11-25Rename puglShowWindow and puglHideWindow to puglShow an puglHideDavid Robillard1-2/+2
These names were confusing because a view is not necessarily a window. Since there's no room for ambiguity here, simply drop the superfluous word.
2020-10-30Move implementation source files to a conventional src directoryDavid Robillard1-0/+1450
I think this attempt to be optionally header-only was misguided, particularly installing source code to the system include path. Typically anyone vendoring code just includes the repository and builds from there anyway. This commit moves all the implementation code to a typical src directory (Don't Be Weird). I still think there is some value in simple "inline" deployment, but that would be better achieved another way, like producing a single-file amalgamation that builds anywhere, ala sqlite.