Commit Graph

519 Commits

Author SHA1 Message Date
Pietro Gagliardi 2cd97c8e60 Reworked hugging priorities a bit. We're getting closer... 2016-06-12 18:23:43 -04:00
Pietro Gagliardi f89feba680 Included spanning views in hugging priority management. 2016-06-12 16:27:29 -04:00
Pietro Gagliardi 629c242a83 Forgot to make the dummy views ignore autoresizing masks. 2016-06-12 15:35:54 -04:00
Pietro Gagliardi 0ce4fd6efd FIgured out that we need to ignore spanning cells; added support for that. Not yet perfect; still need to do a bit more... 2016-06-12 15:30:36 -04:00
Pietro Gagliardi 7908972d34 Continuing the current approach. This might work out better... 2016-06-12 15:08:07 -04:00
Pietro Gagliardi 77f4c2f309 Split out more of the uiGrid logic. Rewrote the edge constraints to use a topological map of views. Added dummy views for empty cells. 2016-06-12 13:47:33 -04:00
Pietro Gagliardi 6496de0fb2 More TODOs. 2016-06-12 12:35:13 -04:00
Pietro Gagliardi 8f0bac54a3 Took an alternate route through the constraints in the grid. This should be a bit easier... 2016-06-12 12:31:44 -04:00
Pietro Gagliardi fc2218b51c Added some rather fickle debugging. 2016-06-11 23:52:35 -04:00
Pietro Gagliardi 9650770554 Fixed a typo. Doesn't fix runtime bugs yet. 2016-06-11 23:42:58 -04:00
Pietro Gagliardi faa989aefd Fixed compile errors. Runtime errors, on the other hand... 2016-06-11 23:28:51 -04:00
Pietro Gagliardi d528fae1f4 Added uiGrid on OS X. Now to fix build errors. 2016-06-11 23:09:53 -04:00
Pietro Gagliardi 69cad5e608 Fixed uiForm on OS X. 2016-06-08 16:26:23 -04:00
Pietro Gagliardi d232342779 I give up. MCVE time. 2016-06-08 08:55:57 -04:00
Pietro Gagliardi 45d394fc81 Okay new plan. 2016-06-08 07:54:43 -04:00
Pietro Gagliardi 9295af59ab More TODOs. 2016-06-07 23:25:01 -04:00
Pietro Gagliardi 2f3c0449ba Tried to debug all this ambiguity. Argh. 2016-06-07 23:24:29 -04:00
Pietro Gagliardi 0fe5214c09 Revert "Undid all of that. There's an easier way..."
...that only works for nibs. :(

This reverts commit 0fa706b8d4.
2016-06-07 18:57:02 -04:00
Pietro Gagliardi 0fa706b8d4 Undid all of that. There's an easier way... 2016-06-07 18:49:59 -04:00
Pietro Gagliardi 39f76bdb25 Part 2: leading and trailing edges. 2016-06-07 15:04:14 -04:00
Pietro Gagliardi 95fcceef2f Re-establishing uiForm constraints: vertical constraints. 2016-06-07 14:59:12 -04:00
Pietro Gagliardi 7f05b796aa Started rewriting the OS X uiForm auto layout. 2016-06-07 14:38:03 -04:00
Pietro Gagliardi ff3c9f0c67 Made uiSearchEntry appropriately rounded on OS X. 2016-06-07 14:35:43 -04:00
Pietro Gagliardi c6e8537269 Started the implementation of uiForm on OS X. Mostly works, but there are Auto Layout glitches (of course there are Auto Layout glitches) 2016-06-07 11:29:49 -04:00
Pietro Gagliardi 3e1258cc62 Implemented the new radio button stuff on OS X. 2016-06-06 20:12:17 -04:00
Pietro Gagliardi 4e7d2812bd Implemented uiPasswordEntry() and uiSearchEntry() on OS X. 2016-06-05 20:39:18 -04:00
Pietro Gagliardi b65fb6509b More notes. 2016-06-04 00:16:37 -04:00
Pietro Gagliardi abcf1edf43 Re-added OS X file. Now to just prune everything again. 2016-06-03 21:48:10 -04:00
Pietro Gagliardi 1903115bbd Pushed all the build files elsewhere. I'm rewriting the CMakeLists files from scratch. 2016-06-03 00:29:31 -04:00
Pietro Gagliardi e4a66b786e Fixed static builds, added GTK+ builds, and cleaned out things in general for cmake. 2016-06-01 20:21:10 -04:00
Pietro Gagliardi 0fff9c6fd6 More CMake work. Thanks to Mr-Hide in irc.freenode.net/#cmake. 2016-06-01 12:48:26 -04:00
Pietro Gagliardi 0b5fbb81c9 Merge pull request #86 from joaoventura/master
Declare 10.9 version in Darwin
2016-05-31 08:19:26 -04:00
Pietro Gagliardi aa28904408 Removed the -DMACOSX_DEPLOYMENT_TARGET; this is an env var, not a macro. Thanks to Psy in irc.freenode.net/#macdev. 2016-05-30 22:26:08 -04:00
João Ventura f779978a42 Declare 10.9 version in Darwin
Fixes compilation issues in Mavericks
2016-05-30 13:06:25 +01:00
Pietro Gagliardi 0738eca6e4 More work. 2016-05-29 19:01:48 -04:00
Pietro Gagliardi efc1e55e58 More OS X spinbox stuff. 2016-05-29 18:40:53 -04:00
Pietro Gagliardi be8a957689 Fixed static linking on Windows. 2016-05-29 18:35:06 -04:00
Pietro Gagliardi d88233a0fb Documentation updates. 2016-05-29 04:53:49 -04:00
Pietro Gagliardi f2e8dab465 Merge pull request #69 from pcwalton/static
Add support for static linking.
2016-05-29 04:50:48 -04:00
Pietro Gagliardi 84d3df031f Either solved, dropped, or relegated to LONGTERM many of drawtext.m's TODOs. 2016-05-28 23:37:07 -04:00
Pietro Gagliardi 58d59f4370 Cleaned up events and proper string manipulation on uiMultilineEntry on OS X. Woo! 2016-05-28 23:08:56 -04:00
Pietro Gagliardi 0c85469e52 More TODO and intrinsic size work. 2016-05-28 22:49:27 -04:00
Pietro Gagliardi c99ad0f0c5 10.8 build fix. 2016-05-28 21:50:24 -04:00
Pietro Gagliardi ae0dcada45 More TODO resolution work. 2016-05-28 21:41:07 -04:00
Pietro Gagliardi b130ddc04b Added a test of having multiple uiRadioButtons in the same parent container and started a test of intrinsic sizes of all non-container controls. 2016-05-28 21:29:00 -04:00
Pietro Gagliardi 6e94671782 More TODO resolution and LONGTERM relegation. 2016-05-28 21:17:54 -04:00
Pietro Gagliardi a0084df23a Completely redid creating uiMultilineEntry on OS X. Much better now :D 2016-05-28 19:29:25 -04:00
Pietro Gagliardi 42d837806d More stale and duplicate TODO removal. 2016-05-28 18:16:13 -04:00
Pietro Gagliardi eb11452dd3 More TODO resolution. Some TODOs were moved to the issue tracker. 2016-05-28 18:01:25 -04:00
Patrick Walton 5f1e8fa601 Add support for static linking.
Use `make STATIC=1` to build a static library.

Some language ecosystems, like those of Rust, have a convention of
static linking in order to make binaries easier to distribute. In those
environments, this feature helps libui fit in more easily.

In order to prevent internal symbols from linking, we first create an
intermediate object file with `ld -r` and strip private symbols from it
before using `ar` to create the library.
2016-05-28 14:46:02 -07:00
Pietro Gagliardi ec4efe027b Some TODO resolution. 2016-05-28 17:36:31 -04:00
Pietro Gagliardi 1f9f317e7a More TODOs. 2016-05-28 17:04:28 -04:00
Pietro Gagliardi 52c3c52b56 Removed a TODO I can no longer fully confirm (only the focus rect of the NSComboBox seems to be clipped, which I'm sure is not my bug). 2016-05-28 16:09:07 -04:00
Pietro Gagliardi a6c48e087b 10.8 fixups. 2016-05-28 15:57:01 -04:00
Pietro Gagliardi 0d6dac5c5a Migrated from GTK+ 3.4 to 3.10 and from OS X 10.7 to 10.8. 2016-05-28 13:06:16 -04:00
Pietro Gagliardi ba97455ab3 Stale TODO removal. 2016-05-28 12:40:30 -04:00
Pietro Gagliardi 3d9d782db3 Implemented enabling/disabling on uiArea on OS X. 2016-05-28 12:32:47 -04:00
Pietro Gagliardi 119825f0de More scroll view refinements. 2016-05-28 00:35:56 -04:00
Pietro Gagliardi c74ac88598 Changed uiArea to use the new scroll view stuff on OS X. 2016-05-28 00:21:30 -04:00
Pietro Gagliardi 923a678e87 Integrated the new scrollview stuff with uiMultilineEntry. Nice and stable now :D 2016-05-27 23:56:44 -04:00
Pietro Gagliardi 34d54f29b4 Started cleaning up all the NSScrollView stuff into its own file so it can be reused. 2016-05-27 23:42:05 -04:00
Pietro Gagliardi d39cd76a8a Quick fixup. 2016-05-27 12:25:26 -04:00
Pietro Gagliardi e2266ab577 More NSScrollView auto layout fixes. 2016-05-27 12:18:35 -04:00
Pietro Gagliardi b65175a19c Refactored NSScrollView auto layout stuff. I should probably just split it into a separate file when I do implementt he shared scrollview source code. 2016-05-27 01:13:45 -04:00
Pietro Gagliardi 221d57cac5 More unnecessary TODO removal. Thanks to swillits in irc.freenode.net/#macdev. 2016-05-26 23:43:51 -04:00
Pietro Gagliardi f8311aa14d More TODO resolution. 2016-05-26 22:00:08 -04:00
Pietro Gagliardi 834cc12299 Named the margins and padding. Made them functions that can take parameters in the future to allow more complex spacing options in the future. 2016-05-26 21:25:32 -04:00
Pietro Gagliardi baf46c5434 Removed an unnecessary TODO; mapTables cannot be freed unless empty anyway. 2016-05-26 21:09:42 -04:00
Pietro Gagliardi 88e0a9c165 Fixed the botched formula for attribute substring length on OS X. 2016-05-26 20:48:49 -04:00
Pietro Gagliardi c856ff1976 Merge branch 'master' of github.com:andlabs/libui 2016-05-25 23:14:05 -04:00
Pietro Gagliardi daabfe3653 Merge pull request #61 from kainjow/osx-memory
Fix additional OS X memory management issues
2016-05-25 23:12:44 -04:00
Pietro Gagliardi d7b537e9ed Came to a consensus about combobox fonts on OS X. 2016-05-25 21:37:45 -04:00
Kevin Wojniak bef8c4663f Fix additional OS X memory management issues
Some of these were found via clang's analyzer
2016-05-24 20:17:08 -07:00
Pietro Gagliardi ff1971d8d6 More longterming. 2016-05-24 23:13:44 -04:00
Pietro Gagliardi 31d6939c48 README updates. 2016-05-24 22:46:53 -04:00
Pietro Gagliardi 558e56c124 Implemented uiMainStep() on OS X. 2016-05-24 22:44:40 -04:00
Kevin Wojniak 7fdcbb5365 Fix test crash on exit on OS X 2016-05-24 12:24:54 -07:00
Pietro Gagliardi ce338bcaaf Quick fix. 2016-05-24 01:41:54 -04:00
Pietro Gagliardi b9bc71a9ba Clarified some stuff in darwin/editablecombo.m. 2016-05-24 01:19:57 -04:00
Pietro Gagliardi 18f225fddb Merge branch 'master' of github.com:andlabs/libui 2016-05-24 01:04:25 -04:00
Kevin Wojniak 49e17cbfd7 Fix "attempt to destroy map with items inside" when menuManager is deallocated
Fixes #58. The map needs to have its contents properly freed which requires releasing the properly retaining the NSMenuItem object.
2016-05-23 21:41:52 -07:00
Kevin Wojniak abb3c39c78 Spaces to tabs 2016-05-23 21:11:12 -07:00
Kevin Wojniak 2ebb9052cc Fix crash when closing program on OS X
This fixes #14. Autorelease pools need to be used to make sure objects get properly released. Unfortunately this produces a new error when menuManager gets deallocated, which I am looking at fixing:

map.m:25:mapDestroy() POSSIBLE IMPLEMENTATION BUG; CONTACT ANDLABS:
attempt to destroy map with items inside
2016-05-23 21:09:46 -07:00
Pietro Gagliardi 363916855c Split uiCombobox on OS X. 2016-05-23 18:50:02 -04:00
Pietro Gagliardi 156c3584f7 Documentation update. 2016-05-23 01:12:52 -04:00
Pietro Gagliardi 5d63fe4cec Fixed surrogate pair drawing on OS X. 2016-05-23 01:11:43 -04:00
Pietro Gagliardi a99a81f584 Answered matrix scaling stuff. https://www.willamette.edu/~gorr/classes/GeneralGraphics/Transforms/transforms2d.htm#Combining 2016-05-22 22:52:29 -04:00
Pietro Gagliardi 61185072f7 More TODO -> LONGTERM migration. Also made it so uiSpinbox and uiSlider merely swap min and max if min is larger. 2016-05-22 20:11:52 -04:00
Pietro Gagliardi ab0a9102b4 Added a user bug for calling SetParent() on a uiWindow. 2016-05-22 20:02:47 -04:00
Pietro Gagliardi f0011d6227 Started resolving TODOs in the GTK+ backend, marking some LONGTERM. In particular, uiDateTimePicker no longer will be localized, as there doesn't seem to be a way to get that info out. 2016-05-22 19:17:42 -04:00
Pietro Gagliardi 44cdc82fc7 Adjusted the intrinsic size of NSColorWell. 2016-05-22 14:55:12 -04:00
Pietro Gagliardi 6c6843dac6 Fixed non-wrapping uiMultlineEntries. 2016-05-22 14:37:02 -04:00
Pietro Gagliardi 07cd03452d Implemented non-wrapping multiline entries in GTK+ and started implementing them in OS X. 2016-05-22 14:20:54 -04:00
Pietro Gagliardi 3705ef05d1 Fixed up uiWindow ownership mechanics in the Darwin backend. 2016-05-22 12:15:50 -04:00
Pietro Gagliardi 5a4b6aa6f0 Switched from using M_PI to a named constant uiPi. 2016-05-22 12:00:44 -04:00
Pietro Gagliardi f5aa8cd32d Consistency: calibrated color space -> sRGB color space. 2016-05-21 11:34:30 -04:00
Pietro Gagliardi 7b04d974ac More OS X 10.7 fixes and TODOs. 2016-05-21 11:28:11 -04:00
Pietro Gagliardi 2c0e333ca0 Converted uiRadioButtons on OS X to use a NSView of NSButtons instead of NSMatrix; the latter was deprecated on 10.8 and has lots of little quirks that made it annoying to use. 2016-05-21 02:00:08 -04:00
Pietro Gagliardi 46a280cf46 More TODOs. 2016-05-20 15:07:10 -04:00
Pietro Gagliardi 6575f44818 Removed some dummy debug code. Fixes #24. Fixes #33. 2016-05-20 15:06:02 -04:00
Pietro Gagliardi 695bca9033 Tested the worksWhenModal stuff for NSColorPanel; it works. 2016-05-16 09:40:02 -04:00
Pietro Gagliardi a038923060 Added a color well to the histogram example. 2016-05-15 21:02:35 -04:00
Pietro Gagliardi bf411e787e Implemented uiColorButton on OS X. 2016-05-15 20:51:33 -04:00
Pietro Gagliardi 2226c54430 Made the font dialog respect our new modality rules on OS X. 2016-05-15 19:56:01 -04:00
Pietro Gagliardi 6a81921c1a More TODOs. 2016-05-15 19:26:58 -04:00
Pietro Gagliardi f855453aab More TODOs. 2016-05-15 19:06:20 -04:00
Pietro Gagliardi 0552e7c4a1 Revert "Made other windows get events when a dialog is running on OS X. Of course I only now realize this creates a recursiion problem..."
This isn't going to work. The only real solution is to disable every window like we're already doing here, make sure it happens on GTK+, and re-add the dialog helper stuff on Windows.

This reverts commit 20994639c0.
2016-05-15 19:04:35 -04:00
Pietro Gagliardi 20994639c0 Made other windows get events when a dialog is running on OS X. Of course I only now realize this creates a recursiion problem... 2016-05-15 16:26:43 -04:00
Pietro Gagliardi 2f2db46109 Reverted the uiTab changes to allow NULL. Still debating whether to allow NULL or not. 2016-05-15 13:56:53 -04:00
Pietro Gagliardi 717486b7a2 Fixed some OS X 10.7 build errors. 2016-05-14 23:44:07 -04:00
Pietro Gagliardi 2c692eda36 More TODOs. 2016-05-14 22:10:43 -04:00
Pietro Gagliardi fd9f6cea6a Allowed uiGroups and uiTabs to have no and NULL controls with defined behavior on OS X. Actually added the test code this time. 2016-05-14 22:09:02 -04:00
Pietro Gagliardi 0e785d886b Started tests for truly empty uiGroups and uiTabs; started banning NULL in uiBox. 2016-05-14 21:53:24 -04:00
Pietro Gagliardi 79a522efb3 More TODO resolution. Thanks to someone (mikeash?) in irc.freenode.org/#macdev. 2016-05-14 21:29:44 -04:00
Pietro Gagliardi 232839020f More TODOs. 2016-05-14 11:39:51 -04:00
Pietro Gagliardi 0205f2e5ca Got rid of complain() on GTK+. 2016-05-13 21:00:12 -04:00
Pietro Gagliardi 59eebb1e48 Cleaned up the debugging functions slightly. Now to convert the other backends. 2016-05-13 20:20:15 -04:00
Pietro Gagliardi d52c92d2f8 Cleaned out complain()s in the OS X backend. Affects everything *except* drawtext.m, which will need its own migration. 2016-05-13 20:14:46 -04:00
Pietro Gagliardi 329fff82f6 Some more fixups and cleanups, especially in the matrix code. 2016-05-13 18:10:43 -04:00
Pietro Gagliardi 94587b660f Some TODO resolution and stale TODO removal. 2016-05-13 17:54:10 -04:00
Pietro Gagliardi 8d5442b83f Fixed the last remaining edge cases. We're done! Auto Layout works~ ♫ 2016-05-13 13:28:20 -04:00
Pietro Gagliardi 8f55b7e331 Applied the previous edge case fix to the single-child layout stuff. Just one more edge case left! 2016-05-13 13:08:00 -04:00
Pietro Gagliardi 26f9d86800 Fixed Page 3's weird issues. We're so close to having this *just working*! 2016-05-13 12:54:05 -04:00
Pietro Gagliardi 73c92dfbb5 Some uiMultilineEntry fixes. 2016-05-12 21:28:30 -04:00
Pietro Gagliardi 533a9b150e More fixes, this time to uiMultilineEntry. Almost there! 2016-05-12 21:24:12 -04:00
Pietro Gagliardi b1680aa8e2 More notes. 2016-05-12 20:20:39 -04:00
Pietro Gagliardi e3f822a003 Jiggled uiTab and uiGroup back to functioning properly when initially laid out. 2016-05-12 20:18:22 -04:00
Pietro Gagliardi 19006c46c6 Even more refinements. 2016-05-12 17:23:35 -04:00
Pietro Gagliardi 257c182f2b More work. I can't figure out where these phantom constraints come from. 2016-05-12 17:09:24 -04:00
Pietro Gagliardi f5549a19bf Even more work to bring us closer to the correct answer. uiGroups look right again. We've still got some problems... 2016-05-12 12:34:35 -04:00
Pietro Gagliardi 28c9efa972 Some more work, edging us ever-closer to the correct solution... 2016-05-12 12:26:43 -04:00
Pietro Gagliardi 60c988100a Some more uiBox work. We've ALMOST got it; just a few more tweaks to get groupboxes and tabs right and to fix page 3... 2016-05-12 11:57:32 -04:00
Pietro Gagliardi b564d578ba More fixes. Still not all there... 2016-05-12 02:03:23 -04:00
Pietro Gagliardi 21f9b9666b Fixed more problems. 2016-05-12 01:49:00 -04:00
Pietro Gagliardi 63dac7c13a Fixed build errors and some runtime errors. Things don't look right yet... 2016-05-12 01:31:47 -04:00
Pietro Gagliardi f66b5a8873 Migrated uiBox. Now to test. 2016-05-12 01:23:55 -04:00
Pietro Gagliardi 89425f0fa7 Finished the new uiTab. That just leaves the new uiBox. 2016-05-12 00:43:52 -04:00
Pietro Gagliardi 1f96ee9b54 Started establishing a tabPage for uiTab on OS X. The constraints code was added now, I guess. 2016-05-11 19:11:26 -04:00
Pietro Gagliardi 7d874ee911 Migrated uiGroup. Before we do uiTab, I want to refactor it a bit like we have with uiBox... 2016-05-11 18:28:42 -04:00
Pietro Gagliardi 178c0301c2 Started implementing the new logic; darwin/window.m implemented. darwin/group.m and darwin/tab.m will be similar, so they use common code here (but this is NOT child.m all over again; this is ONLY for layout!). 2016-05-11 18:06:29 -04:00
Pietro Gagliardi 73eed9289c Instituted a new system: the parent control is responsible for extra space at the edges of controls, not the controls themselves. Let's hope this works better. 2016-05-11 17:00:01 -04:00
Pietro Gagliardi 8fb8b0eeba Nuked ALL the existing Auto Layout stuff. Let's do this again, and this time, do it *right*. 2016-05-11 16:46:42 -04:00
Pietro Gagliardi d110a836ba Fixed a labelling error. 2016-05-08 14:03:59 -04:00
Pietro Gagliardi 32ef7c3fd3 Revert "Started implementing the previous commit's changes in a more permanent way: set REAL hugging priorities and implemented them on uiBox."
This reverts commit 07930279c0.
2016-05-08 11:29:09 -04:00
Pietro Gagliardi f413456b60 Revert "Did the rest of it as stubs. Now to fix issues..."
This reverts commit 854e87b90a.
2016-05-08 11:28:51 -04:00
Pietro Gagliardi b20b790254 Revert "Removed the default box hugging priorities. We'll set them in group, tab, and window."
This reverts commit a485319c8b.
2016-05-08 11:28:28 -04:00
Pietro Gagliardi a485319c8b Removed the default box hugging priorities. We'll set them in group, tab, and window. 2016-05-08 11:00:01 -04:00
Pietro Gagliardi 854e87b90a Did the rest of it as stubs. Now to fix issues... 2016-05-08 10:53:52 -04:00
Pietro Gagliardi 07930279c0 Started implementing the previous commit's changes in a more permanent way: set REAL hugging priorities and implemented them on uiBox. 2016-05-08 10:42:20 -04:00
Pietro Gagliardi 8867742ec0 Found a possible solution! Needs fine-tuning. 2016-05-08 02:54:08 -04:00