Commit Graph

3256 Commits

Author SHA1 Message Date
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 e4b761d611 Defined more of the OpenType attributes. 2017-02-14 17:15:19 -05:00
Pietro Gagliardi 4195bc3b4b Finalized and implemented underlines on OS X. 2017-02-14 14:57:56 -05:00
Pietro Gagliardi eb7dfa5cc4 More attribute work, including trimming unsupported or nonsensical attributes. 2017-02-14 14:21:58 -05:00
Pietro Gagliardi 250cba7c67 Added more potential attributes. 2017-02-14 13:21:47 -05:00
Pietro Gagliardi aa7d1e28ea More TODOs. 2017-02-14 02:55:42 -05:00
Pietro Gagliardi 9c1293736b Prepared the non-feature attributes based on the OS X list. 2017-02-14 02:53:21 -05:00
nopara73 8aa8259250 SharpUI is .NET Core, too. 2017-02-14 16:35:19 +09:00
Pietro Gagliardi fbae38ce2e Started mapping out attributes for typographic features. I FORGOT THE OTHER ATTRIBUTES I NEED TO DO THOSE FIRST. 2017-02-14 02:26:26 -05:00
Pietro Gagliardi e3b1e033b2 More TODOs. 2017-02-13 23:20:38 -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 9a19c65323 Prepared the OS X backend for adding feature attributes. Each feature will be a separate attribute for better composability. 2017-02-13 10:34:25 -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 1c1b16a206 More attributes. Beyond this point I'd need to either redefine the way attributes are specified or make more header macros. 2017-02-12 13:41:52 -05:00
Pietro Gagliardi 5aaac84d55 Implemented uiAttributeFamily on OS X. ATTRIBUTES WORK!!! 2017-02-12 01:05:27 -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
nopara73 de638f3e76 Add .NET Core bindings 2017-02-12 12:55:43 +09:00
Pietro Gagliardi c4a97792ea And implemented the new stuff on Windows. 2017-02-11 21:54:06 -05:00
Pietro Gagliardi 210c4507ca Implemented uiDrawTextLayoutParams and alignment on GTK+. 2017-02-11 21:25:41 -05:00
Pietro Gagliardi 44f8409b8c And implemented the alignment stuff on OS X. 2017-02-11 21:10:16 -05:00
Pietro Gagliardi bd66e70452 And added the alignment flag to the example program. 2017-02-11 19:56:26 -05:00
Pietro Gagliardi 8a64a1dfb0 Made the OS X code and the example program use the new layout stuff. 2017-02-11 19:47:20 -05:00
Pietro Gagliardi 491ec3ae49 Actually let's do paragraph alignment first. Haven't tested hit-test with that just yet. 2017-02-11 17:10:59 -05:00
Pietro Gagliardi dca92d507e And readded uiFontButton on Windows. Woo! Now we have to deal with styles. 2017-02-11 17:08:05 -05:00
Pietro Gagliardi 1a8f7ad405 Reimplemented uiFontButton on GTK+. 2017-02-11 14:45:58 -05:00
Pietro Gagliardi a014eb27e6 More TODO completion in the drawtext example. 2017-02-11 14:22:23 -05:00
Pietro Gagliardi 67949d79aa And re-added the uiFontButton on OS X and added one to the hit-test example. 2017-02-11 01:13:07 -05:00
Pietro Gagliardi bebaf72de3 Started putting uiFontButton back in on OS X. Just a bunch of boilerplate for now, namely the function to take a CTFontDesciptorRef and convert it into a uiDrawFontDescriptor. 2017-02-11 00:53:52 -05:00
Pietro Gagliardi 49094bb340 Merged uiFontButton back in, with an updated API that works directly with uiDrawFontDescriptors. 2017-02-11 00:25:07 -05:00
Pietro Gagliardi 230d23765a Removed Uniscribe from the Windows build process and header file list. Also more TODOs. Next major goal: reinstating the font button. 2017-02-10 22:22:47 -05:00
Pietro Gagliardi c4b6149ec2 Gave up and rewrote Windows graphemes.cpp to use CharNextW() instead of Uniscribe, since I can't manage Uniscribe memory properly, it seems. The CharNextW() bug is relatively painless to work around anyway. Next commit will drop Uniscribe from the headers and build system. 2017-02-10 22:12:37 -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 5f05ebbffe Expanded the hittest example by handling keyboard input. I should probably rename it to The Caret and Graphemes. 2017-02-10 19:22:25 -05:00
Pietro Gagliardi 5354aa5262 And cleaned hittest.c up. 2017-02-10 19:08:31 -05:00
Pietro Gagliardi 5d18d477e3 Implemented uiDrawCaret() on OS X. 2017-02-10 18:19:32 -05:00
Pietro Gagliardi 746e4091cb Implemented uiDrawCaret() on Windows. 2017-02-10 17:38:17 -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 b52600d9cd Preparation for adding uiDrawCaret(). 2017-02-10 16:16:43 -05:00
Pietro Gagliardi 0e5be32299 And cleaned up the GTK+ code. 2017-02-10 15:49:36 -05:00
Pietro Gagliardi 5823c3a53e More cleanup. 2017-02-10 11:52:26 -05:00
Pietro Gagliardi bb50440e55 Started cleaning up the old API. 2017-02-10 11:14:24 -05:00
Pietro Gagliardi 4b46dab775 And that last fix also fixed the issue about byte 1 being wrong. 2017-02-10 11:09:36 -05:00