Commit Graph

260 Commits

Author SHA1 Message Date
Pietro Gagliardi d358e87583 Moved the old metrics attrstr code out of the way. 2018-03-17 21:00:11 -04:00
Pietro Gagliardi a5bbc83359 Fixed build errors. Now to test. 2018-03-17 15:49:00 -04:00
Pietro Gagliardi 6ba2d3606d Removed uiprivStrdup() (we'll just uiprivAlloc()+strcpy() instead) and fleshed out the drawtext example's text a bit more. 2018-03-10 22:51:39 -05:00
Pietro Gagliardi 4bb6a56c99 More warning fixes. Made private uiAttributeString functions const-correct to expose more potential issues later. Const-correctness and uiAttributeRetain() are going to be an issue... 2018-03-10 19:21:39 -05:00
Pietro Gagliardi 115a60c950 uiAttribute copies family names, so its internal copy doesn't need to be const. Fix this. 2018-03-10 19:13:20 -05:00
Pietro Gagliardi 9194ba29fe And fixed build errors. Now I'm sure there are warnings that are real bugs, so let's handle those next. 2018-03-10 19:02:10 -05:00
Pietro Gagliardi 82d3de7c31 More compiler error fixes. Oops, I forgot to finish attrstr.m! 2018-03-08 23:27:04 -05:00
Pietro Gagliardi e9a62461c2 Started fixing compile errors. I forgot I renamed uiDrawFontDescriptor to uiFontDescriptor! 2018-03-08 23:04:45 -05:00
Pietro Gagliardi 9661d14262 And fixed up loose ends preventing a build. Let's build! 2018-03-08 22:44:35 -05:00
Pietro Gagliardi 9c8f6849c3 Synced const-correctness in ui_attrstr.h to attrstr.c, propagated that to the necessary private functions, and added some references to testing.h. 2018-03-04 11:15:18 -05:00
Pietro Gagliardi 77c07075e3 Updated grapheme function names in attrsr.h and updated allocator function names in attrstr.c. 2018-03-04 10:46:00 -05:00
Pietro Gagliardi f025783632 Migrated attrstr.c back like we just did to attrlist.c. RIP "graphemes()" 2018-03-03 22:02:18 -05:00
Pietro Gagliardi 766f3a0cb2 Moved the unit tests out of the way for now. We'll fill them in later. 2018-03-03 21:35:29 -05:00
Pietro Gagliardi 3337f06e2e Oops. 2018-03-03 21:32:18 -05:00
Pietro Gagliardi dcf6726239 More TODOs. 2018-03-03 21:29:45 -05:00
Pietro Gagliardi 2822dbcebc Decided to keep the existing attrlist.c, but updated it to the new attribute API and uipriv naming convention. Also resolved some TODOs along the way and decided that when in attribute lists, uiAttributes will be refcounted. 2018-03-03 21:27:01 -05:00
Pietro Gagliardi 4179ff86c2 Added more test cases. Also more TODOs in testing_testing.c. 2018-03-03 17:01:40 -05:00
Pietro Gagliardi 6c29932efe Added testingTDefer(). Now we can actually write the rest of these tests. 2018-03-03 16:24:10 -05:00
Pietro Gagliardi 70db51d23b Added testingTFail() and simplified the implementation of the logging macros. 2018-03-03 14:22:34 -05:00
Pietro Gagliardi b5570040b0 Added skipping and fatal to testing.h. 2018-03-03 14:08:17 -05:00
Pietro Gagliardi d0db6f9594 Added early termination mechanics to the testing framework. 2018-03-01 20:25:36 -05:00
Pietro Gagliardi 8d92003426 Broke apart the testing implementation code into their own files. 2018-02-28 22:07:06 -05:00
Pietro Gagliardi 010e878286 Wrote more of the testing framework, wrote the first test, and fixed compiler errors in opentype.c. 2018-02-28 19:43:29 -05:00
Pietro Gagliardi cf15dba2ef Oops, missed a spot when cleaning up the previous commit. Fixed. 2018-02-28 01:22:16 -05:00
Pietro Gagliardi 5ab1266b5d Finished the boilerplate for the uiOpenTypeFeatures test. 2018-02-28 01:21:10 -05:00
Pietro Gagliardi 70815d8d7b Started writing a test suite for uiOpenTypeFeatures. So far it's just the test boilerplate. 2018-02-27 23:44:50 -05:00
Pietro Gagliardi 3f62cb5cee Oops; forgot to update attrstr.h in the last commit. Also changed a TODO to a LONGTERM in opentype.c. 2018-02-25 20:40:23 -05:00
Pietro Gagliardi dcaf69bc51 Added a single cross-platform implementation of uiOpenTypeFeatures. 2018-02-25 20:38:06 -05:00
Pietro Gagliardi 8b35d16144 More notes. Also fixed a typo (thanks Nicole from Jul). 2018-02-20 21:05:08 -05:00
Pietro Gagliardi 93bf0d403e Wrote the new uiAttribute code in attribute.c. 2018-02-19 18:37:50 -05:00
Pietro Gagliardi eeb7717d88 Moved old attributed-string stuff out of the way for now. 2018-02-19 01:52:38 -05:00
Pietro Gagliardi ca5a5f1f72 More TODOs. I have to really think about this API and build a point-by-point test... 2017-11-04 20:47:09 -04:00
Pietro Gagliardi 180b6429ef More documentation, const correctness, and TODO wrangling. 2017-06-19 22:00:46 -04:00
Pietro Gagliardi 5d7128781b And const-corrected uiAttributedStringForEachAttribute(). 2017-06-19 21:45:18 -04:00
Pietro Gagliardi 8e8cc12105 Added uiForEach for canonicalizing foreach function returns and used it everywhere. 2017-06-06 12:47:07 -04:00
Pietro Gagliardi 8c850a26b2 More TODOs. 2017-06-03 17:53:10 -04:00
Pietro Gagliardi 01df4631f6 And finished integrating the new attributed string stuff on OS X. 2017-05-30 15:24:31 -04:00
Pietro Gagliardi e356f1c48a Started reworking darwin/attrstr.m to be a lot more sane. 2017-05-30 13:06:58 -04:00
Pietro Gagliardi 02020e676a Managed attribute spec memory properly. 2017-05-28 00:41:40 -04:00
Pietro Gagliardi 90962e18c4 And got rid of the remaining old stuff entirely. 2017-05-19 16:14:39 -04:00
Pietro Gagliardi 3e28887a24 Fixed the build. 2017-05-17 19:21:27 -04:00
Pietro Gagliardi 4f31a1331c And omitted the common OpenType stuff from the build. 2017-05-17 16:18:28 -04:00
Pietro Gagliardi 58fff53f61 More TODOs... 2017-02-24 21:18:15 -05:00
Pietro Gagliardi 28b30367e2 Still more TODO resolution. 2017-02-24 18:19:34 -05:00
Pietro Gagliardi cca4db5ce9 More TODO resolution and pointless TODO elimination. 2017-02-24 18:15:20 -05:00
Pietro Gagliardi 0df8346bff Also removed uiAttributeLangauge for compatibility reasons too. Let's settle all the TODOs now. 2017-02-24 12:12:03 -05:00
Pietro Gagliardi be56ec3626 Removed the vertical forms attribute. This is a compatiblity nightmare. 2017-02-24 01:23:47 -05:00
Pietro Gagliardi d7a44a5168 Added uiAttribute handling code to the GTK+ backend. Not finished yet; not used yet. 2017-02-20 17:11:52 -05:00
Pietro Gagliardi 6ae6e91238 Integrated opentype.c into the build. Finally. 2017-02-20 14:59:43 -05:00
Pietro Gagliardi e27e51c4b8 Seemed to fix crashing issues for now. Character insertion is borked :| 2017-02-16 14:25:19 -05:00
Pietro Gagliardi 3e941d008e Integrated aat.m into the build. 2017-02-15 23:10:23 -05:00
Pietro Gagliardi 85fd3b72af More support for uiAttributeLanguage. 2017-02-15 09:44:57 -05:00
Pietro Gagliardi 81b520249b More attribute work. Getting a clearer idea. 2017-02-15 01:34:26 -05:00
Pietro Gagliardi bda35b40bd Filled in Core Text language details. 2017-02-14 23:56:20 -05:00
Pietro Gagliardi da22adac7f More feature list completeness work. 2017-02-14 22:37:01 -05:00
Pietro Gagliardi 16b0ca518e Synced opentype.c to AAT and more TODOs. 2017-02-14 21:18:56 -05:00
Pietro Gagliardi 2ffcd192c0 Wrote the common code (for DirectWrite and Pango) to deal with OpenType features. Now to merge with Core Text's internal AAT-to-OpenType mapping. 2017-02-14 19:00:35 -05:00
Pietro Gagliardi 4195bc3b4b Finalized and implemented underlines on OS X. 2017-02-14 14:57:56 -05:00
Pietro Gagliardi 35a06e8540 Changed uiAttributeVerticalForms into a boolean. This is how the other features might need to be implemented :/ 2017-02-13 22:42:18 -05:00
Pietro Gagliardi ff986858f1 Added vertical glyph forms. Next up is the rest of the various font features. 2017-02-13 10:24:12 -05:00
Pietro Gagliardi 1c238bf85b And implemented uiAttributeBackground on OS X. Not sure what else to add besides the feature variants... 2017-02-13 02:10:39 -05:00
Pietro Gagliardi 9eba197fd1 Adjusted the example for backgrounds. Nope brushes isn't gonna work; absolute positioning of gradients is a problem. 2017-02-13 01:44:18 -05:00
Pietro Gagliardi 40c388e01d Whoops, just realized I typo'd. 2017-02-13 01:28:46 -05:00
Pietro Gagliardi b2cd5ef851 Wrote code to draw the background of text. 2017-02-13 01:22:59 -05:00
Pietro Gagliardi 44f24fc900 Added the foreground color attribute. Considering making the background color a background BRUSH attribute instead... 2017-02-12 20:27:47 -05:00
Pietro Gagliardi 261dd4851a Changed the representation of an attribute type/value pair to allow more type safety and expressability. 2017-02-12 14:11:25 -05:00
Pietro Gagliardi 32a0284edc Started work on actual attributed text. This includes the beginnings of an attributed text example. Now to implement. 2017-02-11 23:19:30 -05:00
Pietro Gagliardi 5a1c733841 Something is wrong with the Windows code... 2017-02-10 20:37:05 -05:00
Pietro Gagliardi 6acb10a4fc Fixed hanging errors in uiDrawCaret(). 2017-02-10 19:29:07 -05:00
Pietro Gagliardi b5b0fae052 And implemented uiDrawCaret() on GTK+. 2017-02-10 16:53:08 -05:00
Pietro Gagliardi 642363ccae Added the uiDrawCaret() function for drawing text carets. Now to write the backend-specific code and test it out. 2017-02-10 16:29:36 -05:00
Pietro Gagliardi 8ac9e386b5 More TODOs. 2017-02-10 11:07:44 -05:00
Pietro Gagliardi 6fa009a7dd Fixed uiAttributedString not putting the right position for the last character. Simple case of using the wrong variables. 2017-02-10 11:06:37 -05:00
Pietro Gagliardi b18cc88dce Boilerplate needed for implementing range-to-rect. 2017-02-05 20:42:52 -05:00
Pietro Gagliardi c0781a13ae Fixed compile errors. Jesus.
Runtime errors next.
2017-01-20 03:24:06 -05:00
Pietro Gagliardi 7f270942a7 And fixed errors. Woo, it works!!!!! 2017-01-17 13:54:23 -05:00
Pietro Gagliardi 7bda3baee3 Fixed build errors. DOES IT WORK?!?!?!?!?!?!?!?! 2017-01-17 13:05:40 -05:00
Pietro Gagliardi e32341b24b More work. 2017-01-07 20:09:44 -05:00
Pietro Gagliardi 31274bcbd2 Started implementing the new attributed string system on OS X. 2017-01-02 23:53:31 -05:00
Pietro Gagliardi 30ca879c14 More API stuff. 2017-01-02 20:11:15 -05:00
Pietro Gagliardi e409943a50 One more support method before I can actually implement uiDrawTextLayout. Still need to figure out how I'm going to deal with fonts... 2016-12-23 14:01:09 -05:00
Pietro Gagliardi dfffc4c851 Started the API definition of the new uiDrawTextLayout. 2016-12-23 12:24:20 -05:00
Pietro Gagliardi 4f6ed98e40 And integrated the new attribute list implementation fully. 2016-12-23 00:31:11 -05:00
Pietro Gagliardi 5c1dfbd86f Got rid of the old attribute code and integrated exp_attrdll.c into attrstr.c. I'll rename the file to attrlist.c later. 2016-12-22 14:33:30 -05:00
Pietro Gagliardi ab8aa9266e Finished filling in exp_attrdll.c. I think this will stay. 2016-12-22 14:22:01 -05:00
Pietro Gagliardi 0078615662 More attribute list work. 2016-12-22 13:05:36 -05:00
Pietro Gagliardi ecc7b70a6b And FINALLY implemented that function :D 2016-12-20 16:16:52 -05:00
Pietro Gagliardi 28ca02673b Even more trying to reason about the algorithm. 2016-12-20 14:47:11 -05:00
Pietro Gagliardi 4f1ba0df84 Plotted out at a high level how insertion with attribute borrowing should work. 2016-12-20 14:24:26 -05:00
Pietro Gagliardi 643e2937c4 More stuff I guess? 2016-12-19 17:15:48 -05:00
Pietro Gagliardi 78f5ca5eb5 Implemented attrlistInsertCharactersUnattributed(). 2016-12-19 13:46:20 -05:00
Pietro Gagliardi fee06b9553 Wrote the prototypes for the other functions I will need. 2016-12-19 11:07:52 -05:00
Pietro Gagliardi 7ebfe73bce Some minor cleanup. 2016-12-19 11:02:33 -05:00
Pietro Gagliardi 96e15116ba Added some expository information about attribute lists. 2016-12-18 14:11:12 -05:00
Pietro Gagliardi 5c96266c7c And finished implementing attrlistInsertAt(). Woo! 2016-12-18 14:06:37 -05:00
Pietro Gagliardi 75525196b1 Even more expansion of the experimental attribute list. 2016-12-18 11:49:54 -05:00
Pietro Gagliardi 4c99899a1d More work. Much clearer now... not yet complete though. 2016-12-17 23:07:48 -05:00
Pietro Gagliardi 2f449887d8 More TODOs. 2016-12-17 12:23:09 -05:00
Pietro Gagliardi 722dd03193 Cleaned up exp_attrdll.c a bit. 2016-12-17 12:19:33 -05:00
Pietro Gagliardi 98082068f6 Started an experimental doubly linked list implementation of attribute lists. 2016-12-16 23:31:04 -05:00
Pietro Gagliardi 6726ab70a9 Changed attrstr.c to match ui_attrstr.h. 2016-12-15 13:39:19 -05:00
Pietro Gagliardi 3f48bddce0 Started the header file for attributed strings, drawing text layouts, and the new text system in general. 2016-12-12 06:45:49 -05:00
Pietro Gagliardi e9fdbf33f3 And plugged in the deletion stuff into the rest of attrstr.c. We're on a roll here! 2016-12-06 10:35:08 -05:00
Pietro Gagliardi 0503110ddd Fixed the delete attributes code. 2016-12-06 10:23:53 -05:00
Pietro Gagliardi cb8d75d431 Started implementing the attribute handling code itself. 2016-12-05 18:32:51 -05:00
Pietro Gagliardi b45e5f4de2 Extended attrstr.c. Much more complete API now. 2016-12-04 16:02:56 -05:00
Pietro Gagliardi 526173bf76 Started writing the implementation of uiAttributedString. Updated windows/graphemes.cpp for this new implementation. Also fixed up a bunch of subtle errors and other issues with windows/graphemes.cpp. 2016-12-03 18:34:06 -05:00
Pietro Gagliardi 0d5ff432b3 Rewrote utf16.cpp to use my utf lib. Maybe I should be doing attributed strings safter all, but I might as well optimize too I guess?? 2016-12-03 11:31:11 -05:00
Pietro Gagliardi c0f91058c4 Started the move to my utf library. Imported the library. 2016-12-03 11:20:22 -05:00
Pietro Gagliardi 18b103c988 Fully reintegrated the table code. 2016-11-27 17:44:52 -05:00
Pietro Gagliardi 52d88d3f36 Re-added the table code. Need to patch together everything else, but. 2016-11-27 17:36:11 -05:00
Pietro Gagliardi e3dec183aa Started the process of splitting the table code into a separate branch. 2016-11-27 17:34:40 -05:00
Pietro Gagliardi d7caa150b8 Added checkbox table cells. Now just to add progressbar cells and we'll be good. 2016-06-26 15:36:46 -04:00
Pietro Gagliardi f02fbd2ecf Some more API cleanup. Don't separate table cell parts from columns. 2016-06-23 09:56:24 -04:00
Pietro Gagliardi 1c70edaef1 Fixed initial OS X uiTable. It works! 2016-06-22 00:58:10 -04:00
Pietro Gagliardi b21ec6cf6b Laid the foundation for uiTable: common code and a test. Now to start actually implementing it. 2016-06-21 22:22:13 -04:00
Pietro Gagliardi cb3f10f243 Quick fix in the meantime. 2016-06-13 21:38:48 -04:00
Pietro Gagliardi 75a8ee9bf9 Removed intmax_t from everything else EXCEPT the Windows code. Now it's time for THAT... 2016-06-13 21:37:50 -04:00
Pietro Gagliardi 4b149ddfef Implemented uiGrid on GTK+. 2016-06-09 18:57:58 -04:00
Pietro Gagliardi 1ad18ddc8e We are FINALLY adding uiForm. About time :V 2016-06-07 09:56:53 -04:00
Pietro Gagliardi 44b4d24881 Started a new cmake file. Seems to work so far... 2016-06-03 14:56:21 -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 0fff9c6fd6 More CMake work. Thanks to Mr-Hide in irc.freenode.net/#cmake. 2016-06-01 12:48:26 -04:00
Pietro Gagliardi ec730962aa More work with cmake. 2016-05-31 11:10:35 -04:00
Pietro Gagliardi 363916855c Split uiCombobox on OS X. 2016-05-23 18:50:02 -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 1d8ea79e45 Removed uiControlVerifyDestroy(); we could have just had it in uiFreeControl(). 2016-05-22 01:07:25 -04:00
Pietro Gagliardi bf411e787e Implemented uiColorButton on OS X. 2016-05-15 20:51:33 -04:00
Pietro Gagliardi aafb27cb2c Finished the complain() migration. 2016-05-13 23:29:41 -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 1fede348ef More complain() migration; common/* handled. 2016-05-13 19:46:59 -04:00
Pietro Gagliardi a4f9d08281 Began replacing complain() with the more appropriate implbug() and userbug(). 2016-05-13 18:27:08 -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 9d2b637aa2 FINALLY got rid of ptrArray. Woo! 2016-05-05 21:51:14 -04:00
Pietro Gagliardi 37e83d133b Started the migration. Got rid of a bunch of cruft, including the old delayed resize logic (except for timers; will have to get that back out). 2016-04-26 19:57:13 -04:00
Pietro Gagliardi 289ca0ed78 More conversion work, including getting rid of a few now-unnecessary function declarations. 2016-04-25 20:09:20 -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 d0d0efce1a Fixed build errors. Now to test! 2016-04-25 13:38:17 -04:00
Pietro Gagliardi 31dee85b5e More work with changing things for OS X. Still not fully sure about things... 2016-04-24 21:51:08 -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 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 8a532d66cc Adjusted common/control.c for the new type-based control system. Now to fix up the individual OSs. 2016-04-24 15:15:36 -04:00
Pietro Gagliardi f60178798f Removed common type code. 2016-04-24 15:08:48 -04:00