Commit Graph

636 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 2aef3031e3 More TODOs. 2016-05-07 10:47:59 -04:00
Pietro Gagliardi f8b113dd18 Fixed the controlgallery somehow. 2016-05-07 10:43:12 -04:00
Pietro Gagliardi 11ef2c9076 Got rid of the messy -layout logic and just did that stuff in -updateConstraints instead; much simpler that way. Thanks to rudy in irc.freenode.net/#macdev. 2016-05-07 10:31:56 -04:00
Pietro Gagliardi e6592f6f04 More TODOs. 2016-05-07 10:07:37 -04:00
Pietro Gagliardi b03aa35da8 Adjusted uiGroup, uiTab, and uiWindow likewise. More TODOs. 2016-05-07 01:34:33 -04:00
Pietro Gagliardi 305b4b98cb Fixed up darwin/box.m and let it work properly. Now to just define the appropriate methods for the other controls... 2016-05-07 01:25:32 -04:00
Pietro Gagliardi abe502a046 Rewrote uiBox with everything in it. Let's test it so far. 2016-05-07 01:11:58 -04:00
Pietro Gagliardi ecd1ef2231 Started work on rewriting uiBox. 2016-05-06 23:27:46 -04:00
Pietro Gagliardi c04abae6e4 First part: get rid of noStretchyView. We won't need it anymore. 2016-05-06 23:03:31 -04:00
Pietro Gagliardi a3629e752d Added default implementations of the new methods where necessary. Before we go around implementing them, it's time for a massive rewrite of uiBox. 2016-05-06 21:50:14 -04:00
Pietro Gagliardi f9e3b7a2d5 Okay we've got a handle on how this is supposed to work now I think; I just need to figure out how to abstract out this should-expand behavior... 2016-05-06 20:55:33 -04:00
Pietro Gagliardi e462c7a660 Okay I think we're on to something now... 2016-05-06 20:34:02 -04:00
Pietro Gagliardi 117b8c92d2 Tried to change uiBox to use updateConstraints instead of a relayout() function. Maybe this will end my woes... 2016-05-06 19:21:41 -04:00
Pietro Gagliardi ac84b66724 Separated the presence of a no-stretchy view from the presence of a stretchy control. This will make experimenting easier. 2016-05-02 15:47:48 -04:00
Pietro Gagliardi 09a7fb7123 Decided not to do the drag/drop for our font button; I don't know what even provides a NSFont source, but the font panel does not. 2016-05-02 13:30:24 -04:00
Pietro Gagliardi b6a396dd4a Deactivated the current font button on window close and implemented cleanup, both on OS X. 2016-05-02 10:32:39 -04:00
Pietro Gagliardi c5f6a09200 More auto layout commentary. 2016-05-01 16:26:04 -04:00
Pietro Gagliardi 896a779e1e More auto layout fixes and hacks and TODOs. 2016-05-01 16:25:05 -04:00
Pietro Gagliardi 8efa8c19db Minor warning changes. 2016-05-01 16:15:54 -04:00
Pietro Gagliardi de4540dfca Some comment explanation. 2016-05-01 12:02:36 -04:00
Pietro Gagliardi 896c2590c5 FIxed the various uiGroup glitches. Woo! 2016-05-01 12:00:10 -04:00
Pietro Gagliardi 022f0a2591 More TODOs. 2016-05-01 11:43:34 -04:00
Pietro Gagliardi aecbf078d3 Fixed some of the uiBox glitches. 2016-05-01 11:25:35 -04:00
Pietro Gagliardi b653a8ac2c Fixed runtime errors. It MOSTLY works! 2016-04-30 18:40:09 -04:00
Pietro Gagliardi 1038b8d892 Compile fixes. Oh boy... 2016-04-30 18:07:36 -04:00
Pietro Gagliardi c87a932a6d Rewrote darwin/box.m's layout code to create constraints directly. Let's try this out. 2016-04-30 17:45:44 -04:00
Pietro Gagliardi 835c711a24 Started reworking the auto layout system. uiBox is next. 2016-04-30 17:14:14 -04:00
Pietro Gagliardi d7d7d4fd76 Fixed the SyncEnableState() machinery not quite working properly. 2016-04-25 18:07:29 -04:00
Pietro Gagliardi 7b0780be2a Made SyncEnableState() a uiDarwinControl method instead of a uiControl method since it's not needed on GTK+. 2016-04-25 17:52:16 -04:00
Pietro Gagliardi 98e7afc5de Freed most of the mapTables. 2016-04-25 13:47:24 -04:00
Pietro Gagliardi d0d0efce1a Fixed build errors. Now to test! 2016-04-25 13:38:17 -04:00
Pietro Gagliardi 3ca4a28bb3 Settled the SetParent stuff. NOW we can test. 2016-04-25 12:59:45 -04:00
Pietro Gagliardi 23c2998040 Migrated darwin/control.m. Forgot the SetParent/SetSuperview rule! One more commit before we can build... 2016-04-25 12:55:51 -04:00
Pietro Gagliardi 189d661b7f Migrated darwin/tab.m and fixed up the other files. Now for darwin/control.m, then we can test... 2016-04-25 12:52:54 -04:00
Pietro Gagliardi b50eda0303 Migrated darwin/group.m. That just leaves darwin/tab.m and a few fixups to a number of other controls. 2016-04-25 12:42:43 -04:00
Pietro Gagliardi f0ca2dcee5 Migrated darwin/box.m. 2016-04-25 12:35:01 -04:00
Pietro Gagliardi 6e584f26d3 Migrated darwin/window.m. 2016-04-25 12:28:36 -04:00
Pietro Gagliardi c36d5079db Migrated the controls that don't have children to the new object method model on OS X. 2016-04-25 11:54:09 -04:00
Pietro Gagliardi 639a010a56 Tested everything by migrating darwin/combobox.m; fixed errors along the way. Also more TODOs. 2016-04-25 10:23:16 -04:00
Pietro Gagliardi dda30cdb3c Started the new uiControl infrastructure. 2016-04-24 19:22:21 -04:00
Pietro Gagliardi cf51ec823f Got rid of toplevelOwning(); I didn't like that one. 2016-04-24 18:23:00 -04:00
Pietro Gagliardi bc0a1d43c9 Applied the new type system to the Windows backend and fixed some more C++ stupidity related to it. 2016-04-24 17:38:48 -04:00
Pietro Gagliardi b6c54aac43 Fixed build errors. Let's test! 2016-04-24 16:14:19 -04:00
Pietro Gagliardi ded1ee6997 Removed typed stuff from darwin/menu.m. Now let's try building it. 2016-04-24 16:07:45 -04:00
Pietro Gagliardi 5efad5e850 Migrated the uiNewControl() definitions on OS X. This just leaves uiMenu. 2016-04-24 16:03:13 -04:00
Pietro Gagliardi b2c9577cb9 Set up all the control signatures and the framework for signature-based control types on OS X. 2016-04-24 15:46:29 -04:00
Pietro Gagliardi f60178798f Removed common type code. 2016-04-24 15:08:48 -04:00
Pietro Gagliardi 7b0f930185 Removed all the type function declarations from all the controls. More TODOs. 2016-04-24 15:04:36 -04:00
Pietro Gagliardi cfa1b6bf0a Added uiFontButtonFont() and uiFontButtonOnChanged(); implemented on OS X. 2016-04-20 13:40:54 -04:00
Pietro Gagliardi 721269b3eb Implemented colored text on OS X and Windows. 2016-04-19 18:45:16 -04:00
Pietro Gagliardi e786d664cb Implemented text layout SetColor on OS X. 2016-04-19 16:06:50 -04:00
Pietro Gagliardi 5b74b2752e Decided to use character offsets instead of byte offsets for text layout attributes. This removes the shaky code from the OS X and Windows backends to compute a list of character offsets for byte offsets. The equivalent code for GTK+ to convert chars to bytes will be much more solid; it will be written next. 2016-04-19 14:39:33 -04:00
Pietro Gagliardi c2d165af94 Implemented the uiDrawTextFont direct from system font-making functions on other platforms. 2016-04-19 11:23:05 -04:00
Pietro Gagliardi ccfa3d41a3 More work on the initial font and showing styles. I have a feeling my current approach is a mistake. 2016-04-18 13:32:48 -04:00
Pietro Gagliardi 84fc5dafaa More TODOs. 2016-04-18 10:22:36 -04:00
Pietro Gagliardi 23ec771c86 Removed uiFontDescriptor.SmallCaps; on Windows this has to be applied to layouts. 2016-04-15 14:23:16 -04:00
Pietro Gagliardi 0bc140cd46 Dropped uiDrawTextGravity. That has to do with vertical text, which we can both abstract into a higher level API and can't do yet because DirectWrite simply does not support vertical text on Windows 7 for reasons that escape logical thought. 2016-04-15 00:24:27 -04:00
Pietro Gagliardi 1b61bfd67c More TODOs. 2016-04-14 14:33:20 -04:00
Pietro Gagliardi f1c9b2b15b Made the uiFontButton more robust by making it not show irrelevant controls and not affect other controls. Also sets up things for uiColorButton. 2016-04-14 14:01:33 -04:00
Pietro Gagliardi 307ec746ef Started implementing uiFontButton on OS X. 2016-04-14 13:27:15 -04:00
Pietro Gagliardi 7f2194c383 Typo fixes in the previous commit. 2016-01-24 21:50:10 -05:00
Pietro Gagliardi ab0230b428 Added a function for scrolling uiAreas. Implemented on OS X; stubbed elsewhere. 2016-01-24 21:41:34 -05:00
Pietro Gagliardi 5fd3a6fbab Long-awaited TODO: removed the "in terminate:" message. 2016-01-16 19:34:34 -05:00
Pietro Gagliardi b0621a6b1f Implemented the new multiline text stuff on GTK+. 2016-01-16 15:59:34 -05:00
Pietro Gagliardi 9c6c16be53 Simplified text drawing on OS X by using CTFramesetter exclusively. 2016-01-16 13:34:22 -05:00
Pietro Gagliardi 37f9bfd1b9 More OS X layout work. 2016-01-15 22:48:38 -05:00
Pietro Gagliardi 4fffe9008c Started implementing the new multiline uiDrawTextLayout logic in the OS X port; fixed some bugs in the test program. 2016-01-15 20:18:53 -05:00
Pietro Gagliardi 2b0de07243 More TODOs. 2016-01-14 02:14:31 -05:00
Pietro Gagliardi fa0b3ea8dd Fixed OS X text drawing not being vertically aligned properly. 2016-01-13 15:17:49 -05:00
Pietro Gagliardi 85af3d2a5b More TODOs. 2016-01-13 04:08:01 -05:00
Pietro Gagliardi d6063394ee Implemented the metrics stuff on OS X and improved the test a bit. 2016-01-12 22:07:24 -05:00
Pietro Gagliardi 73867119ef Updated the test and fixed compiler errors in darwin/drawtext.m. It seems to work now! Width handling is still not working right, but width handling needs major rewrites because width on Core Text has major sensibility issues... 2016-01-12 01:58:45 -05:00
Pietro Gagliardi 426b133e58 Implemented the new font API on OS X. Now to rewrite the test. 2016-01-12 01:46:28 -05:00
Pietro Gagliardi ae60141497 Decided to split the OS X text drawing stuff into its own file to make it easier to manage. In fact, darwin/draw.m used to be the longest file (by line count) in libui's source code proper (not the longest in the repo)! (Now it's windows/draw.c instead, and that *doesn't* contain text code!) 2016-01-12 01:14:41 -05:00
Pietro Gagliardi 5f1b900dc5 More TODOs. More even bigger TODOs. 2016-01-10 15:35:43 -05:00
Pietro Gagliardi 29794af67a Filled in text size conversion functions on OS X. 2016-01-09 18:14:06 -05:00
Pietro Gagliardi ca75579135 More exposition. 2016-01-09 18:05:44 -05:00
Pietro Gagliardi 3cc2a06147 Added font matching to the OS X backend. 2016-01-09 17:41:05 -05:00
Pietro Gagliardi dec34670bb Fixed keyboard events not working on OS X. 2016-01-09 15:05:19 -05:00
Pietro Gagliardi a826fd7516 Wrote the text drawing code on Windows. Now to build and test. 2016-01-09 01:07:48 -05:00
Pietro Gagliardi 5365453c19 Tried to figure out the traits stuff for myself. I can't quite do that when it has no effect :v 2016-01-08 17:13:31 -05:00
Pietro Gagliardi 11a3fcfad0 Fixed the drawing shenanigans. 2016-01-08 13:51:39 -05:00
Pietro Gagliardi 94883ed620 Kinda sorta fixed the text rendering stuff. 2016-01-08 12:49:52 -05:00
Pietro Gagliardi 4c12934992 Fixed the compiler errors in the previous commit. Things aren't quite right yet. 2016-01-08 10:14:09 -05:00
Pietro Gagliardi e7a68893e2 Filled in the rest of the beginning of the Core Text implementation. 2016-01-08 02:08:26 -05:00
Pietro Gagliardi 9fc92cf96b Started doing the Core Text text code. I am completely lost on text styles. 2016-01-07 21:51:37 -05:00
Pietro Gagliardi 4f2dbe2662 Really fixed the NSMapTable nonsense now. Added a TODO to go through the rest of the code for the same. 2016-01-07 16:01:11 -05:00
Pietro Gagliardi 9cfc133481 "Fixed" the weird crashes and fixed the makefile failures. 2016-01-07 15:43:35 -05:00
Pietro Gagliardi 499a93e32e Completely rewrote the OS X map system to use NSMapTable correctly and hide the details behind more wrapper functions to prevent further mass rewrites; this fixes most of the crashing issues on OS X. The one with package ui still stands... 2016-01-07 14:41:20 -05:00
Pietro Gagliardi f9b940f698 More TODOs. 2016-01-06 20:39:47 -05:00
Pietro Gagliardi 6a15e23897 Set up saner handling of sonames at build time. 2016-01-05 11:51:36 -05:00
Pietro Gagliardi 24f7c2d803 Merge branch 'master' of github.com:andlabs/libui 2016-01-04 15:49:20 -05:00
Pietro Gagliardi 9e8e09f262 Added an explicit check for ARC. 2016-01-02 09:22:24 -05:00
Florent Clairambault e24c8f6440 Merge remote-tracking branch 'upstream/master' 2016-01-02 13:27:08 +01:00
Florent Clairambault bdded52f5e Mac Os X install rule: Tiny fix. 2016-01-01 23:20:49 +01:00
Florent Clairambault c204e47b72 Various fixes around makefiles
* $PREFIX is uppercase (I have no idea why I put it lowercase before).
* "install" rules is OS specific and moved to new OS specific files. So that they can be included last.
* "examples" rule defines the list of examples to execute.
* Travis launches the "test" rule.
2016-01-01 23:19:14 +01:00
Pietro Gagliardi 1b3d303cbe More TODOs. 2015-12-27 22:55:41 -05:00
Pietro Gagliardi a1beccd63d Pinpointed the issues with mouseExited:. A TODO for now; this is gonna be murder to figure out :) 2015-12-27 22:19:59 -05:00
Pietro Gagliardi 66ad8066ea Improved the exited debugging. 2015-12-27 17:13:57 -05:00
Pietro Gagliardi 93a9847b59 Added debugging code for mouseExited:. In El Capitan it's not working in scrolled views... 2015-12-27 16:15:18 -05:00
Pietro Gagliardi 0ec70f9111 Removed libgmalloc. That was a mistake; it slows down callbacks tremendously on DEFAULT SETTINGS. 2015-12-27 15:54:53 -05:00
Pietro Gagliardi c31d06c254 Quick change for now: added libgmalloc to the OS X build so I can debug potential memory allocation issues. I think something is wrong in the mouseExited logic... 2015-12-27 15:19:14 -05:00
Pietro Gagliardi 3b916fa749 Stubbed out the text drawing functions on OS X. 2015-12-27 11:32:47 -05:00
Pietro Gagliardi a9419e0cc4 Oops, I completely overlooked the Core Text Font Manager Reference, which would have told me that CTFontManagerCopyAvailableFontFamilyNames() was what I was looking for. Yay; the font families stuff now works on OS X as well! 2015-12-23 00:58:06 -05:00
Pietro Gagliardi bcc17a4e6d Attempted to write the font enumeration code for OS X. It does not work yet (memory management is borked and duplicate removal does not work, period). 2015-12-22 21:48:26 -05:00
Pietro Gagliardi 33d4217450 Fixed rpath shenanigans on OS X. 2015-12-19 16:46:04 -05:00
Pietro Gagliardi c095d80098 Implemented mouse tracking on OS X. 2015-12-19 16:35:18 -05:00
Pietro Gagliardi 35f2cc55da Fixed compiler errors. Now to implement mouse tracking. 2015-12-19 16:15:50 -05:00
Pietro Gagliardi a0c3c80393 Finished migrating OS X uiArea to the new scroll system. Now to compile and test. Crossed events come next. 2015-12-19 15:33:54 -05:00
Pietro Gagliardi 8cf437211d Dropped ALL the custom scrolling crap from darwin/area.m. We're going back to NSScrollView baby! 2015-12-19 15:13:44 -05:00
Pietro Gagliardi 327abd04b0 Re-established the OS X build. 2015-12-11 18:58:27 -05:00
Pietro Gagliardi 70886e4ade Moved the old build files away. Yes that's right folks, we're redoing the build system *again*! Isn't that *fun*? 2015-12-10 18:49:50 -05:00
Pietro Gagliardi 529620eb47 Updated a TODO. 2015-12-09 09:07:00 -05:00
Pietro Gagliardi c5a5038382 Fixed the uiMultilineEntry on OS X so that it now actually displays something. More TODOs. 2015-12-09 09:05:28 -05:00
Pietro Gagliardi 11fe5deb73 More NSTextView work. 2015-12-08 21:09:23 -05:00
Pietro Gagliardi ea6e903069 TRIED TO add uiMultilineEntry on OS X. It does not quite work yet. 2015-12-08 13:06:26 -05:00
Pietro Gagliardi f77955aefb Added uiQueueMain() (basically g_idle_add()) and implemented it on all platforms except Haiku. A test to come. After this we can start rewriting the Go package ui at long last. 2015-12-04 23:42:03 -05:00
Pietro Gagliardi 8084041139 Removed uiAreaHandler.RedrawOnResize(); Direct2D requires us to always redraw on resize (see previous commit). Added windows/amd64 to the example makefiles and updated them to use libui.xxx instead of new.xxx. 2015-12-04 21:04:51 -05:00
Pietro Gagliardi 8adb1a25a2 More TODOs. 2015-11-28 12:16:05 -05:00
Pietro Gagliardi bf6fabef21 Implemented the dialog stuff on OS X. 2015-11-28 12:09:14 -05:00
Pietro Gagliardi ff9dcc6d58 Wrote the Haiku allocator and fixed some leftovers in other allocators. 2015-11-17 12:51:51 -05:00
Pietro Gagliardi c40e80d5a5 Added C++ to the build and started writing the actual Haiku code. I think this isg oing to have to require a GCC 4 hybrid... 2015-11-17 11:49:23 -05:00
Pietro Gagliardi f19d3cd0c7 More makefile work. 2015-10-16 22:49:54 -04:00
Pietro Gagliardi 790edf0df8 Assembled a new make system. Not quite working the way I'd like yet, but definitely a start. 2015-10-16 20:55:09 -04:00
Pietro Gagliardi ab97e26efc Moved all the common stuff in a new folder common/. This is part of the makefile simplification. 2015-10-16 18:31:14 -04:00
Pietro Gagliardi b4cbf79cbb Implemented dashing on OS X. 2015-10-16 11:05:08 -04:00
Pietro Gagliardi 191c026d29 And implemented on OS X. 2015-10-14 08:50:56 -04:00
Pietro Gagliardi 2cbbc6c69d Removed the DPI fields from uiAreaDrawParams. We no longer worry about DPI. 2015-10-13 19:44:16 -04:00
Pietro Gagliardi c3fdd3050d Implemented clipping on OS X. 2015-10-13 13:53:24 -04:00
Pietro Gagliardi c6cdabe20d Preparation for proper, extensible state tracking and clipping on Windows. 2015-10-12 21:11:42 -04:00
Pietro Gagliardi de3ccecd5b Implemented skewing. Will do the test now. 2015-10-12 07:58:07 -04:00
Pietro Gagliardi 46e3fee40d Added a center point to scaling transforms. Fixed rotations on GTK+. 2015-10-12 01:43:12 -04:00
Pietro Gagliardi 5792ac76fc Work on more tests. Scaling will need a center point for this test to work correctly... 2015-10-12 01:18:08 -04:00
Pietro Gagliardi 41a33a1aa1 Fixed the failing test. 2015-10-12 00:27:34 -04:00
Pietro Gagliardi f4b0e7e35e Added negative arcs to the OS X backend. Now we have a crash in one of the tests; still debugging. 2015-10-11 23:48:40 -04:00
Pietro Gagliardi b09cdb5137 Made 90° point toward y=+∞. 2015-10-11 20:24:06 -04:00
Pietro Gagliardi 40acbd8fa0 Did the matrix stuff on OS X. Now we can implement more tests. 2015-10-11 13:53:47 -04:00
Pietro Gagliardi 3a932d281b Fixed arcs on the OS X backend too. Woo! 2015-10-10 11:04:15 -04:00
Pietro Gagliardi 73d77ef38b Capped sweeps at 2π radians. 2015-10-09 22:00:41 -04:00
Pietro Gagliardi 2c7ed07747 Changed the arc functions to take a start angle and a sweep amount instead of a start angle and an end angle. This makes it easier to reason about sweeps > 2π radians. 2015-10-09 21:51:43 -04:00
Pietro Gagliardi 844015f71a Fixed typos in the test program that in turn fixed the gradients; also fixed a few Objective-C-isms in the OS X backend. 2015-10-09 18:49:41 -04:00
Pietro Gagliardi 7075bea0f5 Added uiAreaQueueRedrawAll() and implemented on all platforms. NOW we can focus exclusively on the test suite. 2015-10-09 15:27:57 -04:00
Pietro Gagliardi 5da68c64b3 Implemented uiComboboxSetSelected() on OS X and Windows; fixed editable combobox minimum widths on OS X. 2015-10-09 14:39:26 -04:00
Pietro Gagliardi 56d0d35f83 More TODOs. 2015-10-09 12:34:26 -04:00
Pietro Gagliardi 4deb0f364c Migrated the OS X uiArea back into main. 2015-10-09 12:33:45 -04:00
Pietro Gagliardi 8fb5d1212f Implemented the new uiCombobox behavior on OS X. 2015-10-08 16:32:12 -04:00
Pietro Gagliardi 54332b90fb Finally merged out the redo folder. 2015-09-02 13:48:06 -04:00
Pietro Gagliardi 269e99aec3 Removed the old OS X code. 2015-08-27 11:56:07 -04:00
Pietro Gagliardi 3d79ccf24c Migrated container.m. This will behave similarly to the GTK+ backend; bin.m will come next. 2015-07-29 12:17:12 -04:00
Pietro Gagliardi 2e4af8a123 More OS X uiControl work... kinda. At least all the controls that were in previously are now back in; that just leaes the new ones now. 2015-07-24 15:42:10 -04:00
Pietro Gagliardi 62b5365577 More OS X uiControl work. 2015-07-22 23:20:01 -04:00
Pietro Gagliardi d5744df476 More OS X uiControl work, finally. 2015-07-22 23:03:26 -04:00
Pietro Gagliardi 4234b47f62 More OS X uiControl work. 2015-07-11 22:56:43 -04:00
Pietro Gagliardi 89f8bd8643 Migrated OS X uiButton. We're off to a meh start... 2015-07-11 20:28:04 -04:00
Pietro Gagliardi 9f1ef9eaa1 Migrated the OS X uiWindow code back, modernizing it in the process. Also fixed a latent bug in the GTK+ uiWindow code. 2015-07-03 23:12:31 -04:00
Pietro Gagliardi ed9e70c058 Started redoing the OS X port. 2015-07-02 16:09:57 -04:00
Pietro Gagliardi a517beccae Added uiContainerUpdate() calls to each SetMargined(). 2015-05-11 12:42:13 -04:00
Pietro Gagliardi 2c9e63d8d2 Same as previous commits, but for uiContainer. We don't need to do these because everything that calls uiControlSetParent() (which should only ever be a uiContainer) should also be updating themselves afterward (or are about to be destroyed). 2015-05-11 12:20:41 -04:00
Pietro Gagliardi df376a5e0b Started to optimize container updating. Removed container updates from each new control set parent. 2015-05-11 12:16:28 -04:00
Pietro Gagliardi c0c6b4fed6 Made all variables that refer to a tab page be called 'page'. 2015-05-10 21:22:22 -04:00
Pietro Gagliardi e1e9dddfdd Fixed some more warnings on the OS X backend. This also introduces realNSApp() and makes applicationClass global, which is important for fixing a few other TODOs (the setAppleMenu: one, for instance). 2015-05-10 14:27:25 -04:00
Pietro Gagliardi ce96272f03 Fixed a bunch of warnings on the OS X backend. 2015-05-10 14:21:35 -04:00
Pietro Gagliardi 262ffb0bde Migrated to uiBin on OS X and adjusted TODO.md. 2015-05-10 14:17:16 -04:00
Pietro Gagliardi c062d2d0b5 Got rid of darwin/main.m and moved darwin/init.m in its place. The GTK+ backend won't need any of the should quit work; only the Quit item needs work and that shouldn't take too long. The Windows backend needs WM_QUERYENDSESSION support. 2015-05-09 10:24:07 -04:00
Pietro Gagliardi 2b83300e0b Implemented the quitting logic on OS X. Now I can get rid of darwin/main.m and move darwin/init.m in its place. 2015-05-09 10:18:19 -04:00
Pietro Gagliardi 8032c24f74 Implemented the should quit logic on Mac OS X. The actual new quitting logic isn't in yet; that will wait for tests. 2015-05-09 10:05:24 -04:00
Pietro Gagliardi 3d714e03c1 Laid down the scaffolding for application termination on Mac OS X. 2015-05-09 00:37:24 -04:00
Pietro Gagliardi 86a4b0a7ba More expository comments and TODOs. 2015-05-08 20:34:57 -04:00
Pietro Gagliardi f47c8172e1 Implemented uninitMenus() on Mac OS X. 2015-05-08 20:31:19 -04:00
Pietro Gagliardi 2ec8fb8589 Fixed a typo. 2015-05-08 20:24:53 -04:00
Pietro Gagliardi ada7608c14 Added menu tracking to the OS X backend. This is needed for uninitMenus(). 2015-05-08 19:33:51 -04:00
Pietro Gagliardi cf89124be5 Fixed allocation tracking on OS X. 2015-05-08 18:54:42 -04:00
Pietro Gagliardi cc1491d1a7 More TODOs. 2015-05-08 18:02:02 -04:00
Pietro Gagliardi c079e43784 Somewhat implemented uninitAlloc() on OS X. 2015-05-08 17:51:05 -04:00
Pietro Gagliardi 33f41d6c37 Implemented the allocation type stuff on OS X. 2015-05-08 17:29:36 -04:00
Pietro Gagliardi 27d6994bdc Implemented stub uiUninit()s. 2015-05-07 22:32:17 -04:00
Pietro Gagliardi 6c9a122a7d Changed the default uiWindowOnClosing() behavior. Decided to keep the int return. 2015-05-07 20:01:17 -04:00
Pietro Gagliardi 34f55321e0 Added a [libui] and a newline to the message printed by complain(). 2015-05-07 19:34:45 -04:00
Pietro Gagliardi 817e13ae61 Set up visibility on OS X. This seems to work... 2015-05-07 18:38:47 -04:00
Pietro Gagliardi 727b6871bc Made uiFree(NULL) illegal to spot bugs. 2015-05-07 17:45:55 -04:00
Pietro Gagliardi 49595bb18d Set up proper -m flag manipulation for cross-compiling builds. 2015-05-07 16:02:34 -04:00
Pietro Gagliardi a6478d68d1 Set up a shortcut for 32-bit builds on OS X. 2015-05-07 15:47:10 -04:00
Pietro Gagliardi bf67a8b285 Fixed up darwin/init.m a bit. 2015-05-07 15:42:11 -04:00