Commit Graph

330 Commits

Author SHA1 Message Date
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
Pietro Gagliardi 2107595ce7 "Exported" uiSizing fields. 2015-05-07 14:33:46 -04:00
Pietro Gagliardi 7270b54e81 Same, but for OS X. 2015-05-07 13:48:41 -04:00
Pietro Gagliardi 089186a88c Implemented read-only uiEntries on OS X. 2015-05-07 00:31:31 -04:00
Pietro Gagliardi 01ff7965da Implemented uiEntryOnChanged() on Mac OS X. 2015-05-06 20:58:55 -04:00
Pietro Gagliardi c55ec89d19 Implemented uiTabInsertPageBefore() on OS X. 2015-05-06 14:46:50 -04:00
Pietro Gagliardi 2c7bccb3a8 Fixed bin destruction on Mac OS X. 2015-05-06 01:38:32 -04:00