Commit Graph

262 Commits

Author SHA1 Message Date
Pietro Gagliardi 25afc9b13f And finished writing events.c. Now to write the tests. 2019-05-17 22:40:29 -04:00
Pietro Gagliardi 56156f549b Bah C99 2019-05-16 23:34:33 -04:00
Pietro Gagliardi 96c346c2dd Added uiprivAlloc() and friends and implemented uiNewEvent(). 2019-05-16 23:02:03 -04:00
Pietro Gagliardi bd84da7179 More implementation of uiEvent. Now we'll need to deal with memory allocation. 2019-05-16 12:27:04 -04:00
Pietro Gagliardi caa926feeb Started implementing and deduplicating the error handling in events.c. 2019-05-15 23:11:21 -04:00
Pietro Gagliardi 55a7e3e56e Started implementing events. 2019-05-15 22:40:06 -04:00
Pietro Gagliardi 101df7a469 Added uiEvent-specific programmer errors. Next up: actually implementing uiEvent. 2019-05-14 11:03:03 -04:00
Pietro Gagliardi 7c128e7bcd Added internal errors and refined the error handling somewhat. 2019-05-13 21:30:18 -04:00
Pietro Gagliardi 45f69cf058 Renamed programmererror.c to errors.c so we can add internal errors (which used to be called implementation bugs). 2019-05-13 10:46:42 -04:00
Pietro Gagliardi 7022e6f268 More programmer error refinement. 2019-05-13 06:37:19 -04:00
Pietro Gagliardi b3049b0a1e Started reintegrating what used to be called user bugs; they're now called programmer errors. We'll create a much more systematic approach to them. Implemented on macOS. 2019-05-12 22:17:24 -04:00
Pietro Gagliardi f97383f66c Rearranged things so that uiInit() itself is in common/init.c and the OS-specific initialization code is its own standalone internal function. This'll make testing a bit easier, especially after the next few commits, and will allow me to test pre-initialization and cross-thread stuff a bit more easily. 2019-05-09 12:07:28 -04:00
Pietro Gagliardi b8b3b3df39 Fixed the rest of the build errors and warnings. Woo! Now for the manifests. 2019-04-21 17:28:47 -04:00
Pietro Gagliardi f7867f3427 ALMOST fixed the build on Windows with MSVC. (For the change to test/testing.h: Even in VS2019 inline isn't available in C, ugh. That function doesn't need to be inline anyway, so eh.) 2019-04-21 15:08:09 -04:00
Pietro Gagliardi c6aa8c3324 Pruned windows/init.cpp to a minimal initialization that we can test things with, which includes adding a function to load err->Message with a formatted string.
Also added a better error for if InitCommonControlsEx() returns 0 without setting the last error; this usually means that v5 is loaded.
Fixes #451.
Updates #337.
2019-04-21 14:49:16 -04:00
Pietro Gagliardi 469484415d Implemented uiInit() on Unix. 2019-04-21 12:24:19 -04:00
Pietro Gagliardi 484989e925 Implemented uiInit() on macOS. The tests work so far! 2019-04-20 21:38:26 -04:00
Pietro Gagliardi 74b1e2780d Implemented the cross-platform bits of uiInit(). 2019-04-19 12:32:13 -04:00
Pietro Gagliardi 992d8694a9 Let's start the remodel. Move almost everything out of the way. 2019-04-08 20:36:21 -04:00
Pietro Gagliardi f6ef61cdee And settled common/CMakeLists.txt (it also had nothing that needed to be moved). 2019-03-27 01:05:57 -04:00
Pietro Gagliardi 1b9250e41e Removed include_directories hackery, as suggested by various people in freenode #mesonbuild. 2019-03-25 20:07:22 -04:00
Pietro Gagliardi 1deacb55aa And massaged things into a buildable state. Woo. NOW things are starting to get annoying, but at least it's not so much *voodoo* anymore? 2019-03-23 16:18:13 -04:00
Pietro Gagliardi 253ce9a3cc Decided to just use add_project_(link_)arguments() for now, and set up the macOS build for testing. 2019-03-23 15:42:42 -04:00
Pietro Gagliardi 419c584523
Merge pull request #379 from mischnic/attrstr-delete
Fix uiAttributedStringDelete
2018-08-09 05:16:52 -04:00
Pietro Gagliardi f3882d6124 Cleaned up color access across platforms. 2018-06-24 14:22:05 -04:00
Pietro Gagliardi acb40964f3 Deduplicated editable logic across platforms. 2018-06-24 11:41:19 -04:00
Pietro Gagliardi 4dbf1994a6 Deduplicated the default text column parameters across platforms. 2018-06-24 00:45:54 -04:00
Pietro Gagliardi 74ec21f4c7 Turned the direct method calls on uiTableModel into functions to make the call sites look a bit cleaner. More stuff will go into common/tablemodel.c... 2018-06-23 23:35:42 -04:00
Pietro Gagliardi 9a79eed2ac Final cleanup, first part: renamed uiTableData to uiTableValue. 2018-06-23 20:19:30 -04:00
Pietro Gagliardi 2b428d50f6 And fixed build errors. Now I just need to rewrite the tester and try this out... 2018-06-03 23:06:44 -04:00
Pietro Gagliardi 54ca41afb6 Moved common/table.c out of the way for now; it's not relevant with the proposed colum changes and definite data changes. 2018-06-03 17:57:17 -04:00
Pietro Gagliardi 43b1a46669 Wrote the common table data functions. 2018-06-03 17:28:54 -04:00
Niklas Mischkulnig 773856fa90 Fix uiAttributedStringDelete 2018-05-31 17:49:44 +02:00
Pietro Gagliardi 7b570a4026 Merge branch 'master' into table 2018-05-05 09:15:08 -04:00
Pietro Gagliardi 55f2eba45b Add wchar_t overloads to utf.h for C++ on Windows with non-MSVC compilers; I did not realize that was also a thing I needed to worry about!
Update #287
2018-04-30 07:46:38 -04:00
Pietro Gagliardi ae2eea7975 Merge branch 'master' into table
Long-overdue sync.
2018-04-18 10:00:13 -04:00
Pietro Gagliardi 52dc39a553 Decided to keep attrstr.h for now; removed extern "C" hack from attrstr.hpp on Windows and moved it into attrstr.h. Let's merge back. 2018-04-18 00:54:24 -04:00
Pietro Gagliardi 4df47a6ee8 Decided what to do about uipriv.h including ui.h (uipriv_OS.h* wrecks that plan, so make a note of us not doing it). Now to just decide what to do about attrstr.h and then we can merge back. 2018-04-17 21:04:04 -04:00
Pietro Gagliardi 750f4214b7 Cleaned up private symbols (and in one case, explicit initialization) of symbols in all *.c files in common/. Now to decide what to do about whether uipriv.h should include ui.h and if attrstr.h should even stay, and then I can merge this back. 2018-04-16 02:31:24 -04:00
Pietro Gagliardi b3df05eb8e More TODOs. (This was originally added in a prior commit but I forgot to mention it; I wanted it to be LONGTERM but forgot about that the first time.) 2018-04-15 23:16:04 -04:00
Pietro Gagliardi c3992cc647 uipriv-ized utf.c. 2018-04-15 23:08:57 -04:00
Pietro Gagliardi 8e2004cf67 struct graphemes -> uiprivGraphemes. Also deleted OLD_uipriv.h now that that one is settled. 2018-04-15 22:43:14 -04:00
Pietro Gagliardi 01d6422664 Added uipriv prefixes to the matrix functions. 2018-04-15 22:39:34 -04:00
Pietro Gagliardi 24a4b0997c fromScancode() -> uiprivFromScancode(). 2018-04-15 22:31:17 -04:00
Pietro Gagliardi 0dddf4a490 clickCounter -> uiprivClickCounter. 2018-04-15 22:26:51 -04:00
Pietro Gagliardi f5be05f143 shouldQuit() -> uiprivShouldQuit(). 2018-04-15 21:54:46 -04:00
Pietro Gagliardi 59835a9bae Removed the declaration of newControl(): it was completely unused, as it was superceded by uiAllocControl() long ago. 2018-04-15 21:49:58 -04:00
Pietro Gagliardi f93973d3cb Migrated implbug() and userbug() to uipriv forms. 2018-04-15 21:46:08 -04:00
Pietro Gagliardi 72e8b9a198 Started FINALLY renaming uiAlloc(), uiNew(), uiRealloc(), and uiFree() into uipriv* forms. This handles the common folder. 2018-04-15 15:53:27 -04:00
Pietro Gagliardi 4a57b15d09 Renamed the common options variable to uiprivOptions. 2018-04-15 15:49:45 -04:00
Pietro Gagliardi e0f800d5eb Started cleaning up the common/ folder. Backed up the current uipriv.h. 2018-04-15 15:39:28 -04:00
Pietro Gagliardi 93f0eea140 Likewise codified uiprivStricmp(). Honestly this will probably do for the Windows code for now... 2018-03-17 23:22:17 -04:00
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