Commit Graph

795 Commits

Author SHA1 Message Date
Pietro Gagliardi 06a8044c2c Oops, forgot to keep the string queue full. It works! Now to switch to custom draw. 2018-06-08 22:11:46 -04:00
Pietro Gagliardi 69e91a9678 Fixed build errors and some logic errors. Let's hope it works! 2018-06-08 22:05:11 -04:00
Pietro Gagliardi 71a310909d Oops 2018-06-08 21:45:30 -04:00
Pietro Gagliardi 41d63bd0cf And finished rewriting table.cpp. That wasn't too bad for just text columns. Let's hope it works. 2018-06-08 21:44:55 -04:00
Pietro Gagliardi 516eb312fc Rearranged stuff in table.cpp on Windows and started rewriting it to handle owner-data in the new API. 2018-06-08 21:16:06 -04:00
Pietro Gagliardi 3aa16e844d Adjusted uiTableModel on Windows for owner-data list views. 2018-06-08 01:35:23 -04:00
Pietro Gagliardi ca2115ca57 Removed some old files from wintable that we won't use anymore. 2018-06-08 01:23:11 -04:00
Pietro Gagliardi 0adad7743a Drop mixing of C and C++ class allocations, including placement new. This is the easiest change I can make to the Windows table code for now... 2018-06-07 22:54:01 -04:00
Pietro Gagliardi 374eed7432 Removed the facilities for printing an int as text; this was causing the tester to crash in a weird way on OS X (through NSApplication _crashOnException: without telling me what that exception was) and I didn't intend on this part type to be used in this way anyway... 2018-05-29 20:27:31 -04:00
Pietro Gagliardi a7fe45b8a5 Removed carriage returns. 2018-05-29 20:26:48 -04:00
Pietro Gagliardi 32a83241cb
Merge pull request #361 from bcampbell/table-comctl
Add minimal uiTable implementation for Windows.

🎉
2018-05-29 20:00:22 -04:00
Ben Campbell b3b21196a1 minor windows table tweaks 2018-05-29 18:17:10 +12:00
Pietro Gagliardi cb5b6bf924 Merge branch 'master' into table 2018-05-28 13:39:11 -04:00
Pietro Gagliardi c3be9f221c Fixed a typo that led to CRLF bugs in uiMultilineEntry on Windows. Thanks to @mimecorg for spotting it.
Update #359
2018-05-28 13:38:36 -04:00
Ben Campbell ba13227bed further style consistency tweaks 2018-05-28 20:26:07 +12:00
Ben Campbell 4246ae5549 assorted consistancy cleanup 2018-05-22 22:53:25 +12:00
Ben Campbell 7402dec266 remove superfluous #include <vector> 2018-05-22 20:41:49 +12:00
Ben Campbell fc2ea17bb8 Add minimal uiTable implementation for windows
This uses the win32 common controls listview to implement uiTable.
There are limitations:
 - It supports only a single TextPart per column.
 - ImagePart, CheckboxPart and ProgessBarPart are not implemented.
 - There is no support for cell coloring.
 - Cell editing is not implemented.
Some of these will be very hard to support using the standard
common control listview, and probably require an entire custom
listview.
2018-05-22 20:41:49 +12:00
Pietro Gagliardi 9dad806693 Merge branch 'master' into table 2018-05-13 12:05:43 -04:00
Pietro Gagliardi ca1079f344 Cleaned up from the previous merge and added it to the README. 2018-05-13 12:05:09 -04:00
cody271 edd4127f8e uiDateTimePicker Fix style consistency 2018-05-12 21:35:07 -07:00
cody271 0b436a8c74 uiDateTimePicker Use proper Windows backend conventions 2018-05-12 21:35:07 -07:00
cody271 0ac4ffdc87 Implement uiDateTimePickerTime() for Windows 2018-05-12 21:35:07 -07:00
cody271 0baf2d2eb6 uiDateTimePicker Keep libui constructors at the end of the file 2018-05-12 21:35:07 -07:00
cody271 bc14042935 Add uiDateTimePickerTime() APIs 2018-05-12 21:35:07 -07:00
Pietro Gagliardi 86798f72b1 Merge branch 'master' into table 2018-05-13 00:15:37 -04:00
Pietro Gagliardi 2768fef3ce Cleaned up old static-library stuff from CMakeLists.txt. 2018-05-12 23:59:43 -04:00
Pietro Gagliardi 7b570a4026 Merge branch 'master' into table 2018-05-05 09:15:08 -04:00
Pietro Gagliardi 7ee7de1b92 And removed the rc file copying stuff from CMakeLists.txt. I wonder if this fixes the msbuild generators in cmake, so let's find out... 2018-05-02 23:04:43 -04:00
Pietro Gagliardi 4432e39a44 And the color dialog. All done! Now we just need to clean up and remove the kludge. 2018-05-02 21:13:35 -04:00
Pietro Gagliardi e3e88c7a6a And migrated the font dialog. 2018-05-02 20:57:50 -04:00
Pietro Gagliardi 3522ec02b3 Fixed out. 2018-05-02 20:24:30 -04:00
Pietro Gagliardi a4cb17820c Forgot a fix (thanks to two people on Telegram) 2018-05-02 20:21:51 -04:00
Pietro Gagliardi b975cfb83e Fixes and TODOs in rc2bin. Going to manually adjust out instead of regenerating it, though. 2018-05-02 20:20:06 -04:00
Pietro Gagliardi c6979fa738 Removed rcTabPageDIalog from the resources. Also removed CRs from the out file. Need to fix that generator... 2018-05-02 20:17:08 -04:00
Pietro Gagliardi e11196304f Since out32 and out64 are identical, deduplicate them. Now we can move its contents elsewhere. 2018-05-02 10:00:44 -04:00
Pietro Gagliardi 88882592ac Fixed compiler errors and generated the output. 2018-05-02 09:59:29 -04:00
Pietro Gagliardi 10de22f9ac Added a program to dump resources to C structs. 2018-05-02 09:56:06 -04:00
Pietro Gagliardi 17ec9562ea Cleanup of previous merge, including TODOs and massive infodumps. 2018-04-30 21:55:54 -04:00
Ben Campbell 2be8fd3eb3 Fixes to compile on windows with msys2
msys2 seems to be unsure of it's IDWriteTypography definition and
disables it by default. This overrides the disabling (The
IDWriteTypography definition looks OK to me, and seems to work
fine).

This commit also adds in a canary to detect compilers that have a non-16bit
wchar_t on windows (eg a gcc focused on porting unix code rather
than compiling windows code).
2018-05-01 12:59:26 +12:00
Pietro Gagliardi 5cc85c2609 More ifxes. 2018-04-19 20:33:20 -04:00
Andrea Parodi e61f7fb0cb Fix uiprivTimer::f: it should return an int 2018-04-19 21:03:49 +02:00
Pietro Gagliardi 83b04cda47 And added documentation nits and TODOs to the uiTimer() code. 2018-04-18 21:09:24 -04:00
Pietro Gagliardi cac4cd9e81 Cleaned up stylistic nits and common branch naming issues on the new uiTimer() code. Also switched the Windows code to use a simple struct instead of the class (and with a uipriv name). 2018-04-18 21:04:12 -04:00
Pietro Gagliardi 85a4c6d35d
Merge pull request #277 from cody271/timer
Adds a function uiTimer() that runs code on the main loop at certain intervals.

Original comment: Add Timer API
2018-04-18 20:52:59 -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
cody271 d99549ec18 uiTimer() Use TimerHandler pointers directly as Windows timer IDs 2018-04-16 17:28:13 -07:00
cody271 c9d11a85cc uiTimer() Refactor TimerHandler for Windows timer IDs 2018-04-16 17:28:13 -07:00
cody271 4e6adca08c uiTimer() Ensure Windows timer IDs are unique 2018-04-16 17:28:13 -07:00
cody271 b1210165a0 Implement uiTimer() for Windows 2018-04-16 17:28:13 -07:00
cody271 27b8ce1db3 Add uiTimer() API and example 2018-04-16 17:28:12 -07:00
Pietro Gagliardi fcc26ab9a9 Fixed a serious bug in windows/utf16.cpp that went unnoticed for this long: we wanted utf16UTF8Count(), not utf16RuneCount(), in toUTF8(); any non-ASCII text had the wrong number of bytes, and thus random heap corruption. The string "鎿嶄綔鎴愬姛瀹屾垚銆" (taken from the completely unrelated #337) and the Set Button Text button was enough to trigger this. 2018-04-15 23:10:11 -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 f93973d3cb Migrated implbug() and userbug() to uipriv forms. 2018-04-15 21:46:08 -04:00
Pietro Gagliardi c6bb463692 uiAlloc() et al -> uiprivAlloc() et al, Windows code. 2018-04-15 18:12:58 -04:00
Pietro Gagliardi 4a57b15d09 Renamed the common options variable to uiprivOptions. 2018-04-15 15:49:45 -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 8709838a8f Added a uiFreeFontButtonFont() function to free resources allocated by uiFontButtonFont(), implemented it on Windows, and integrated it into the drawtext example. I'm going to continue chipping away at the Windows code for a bit longer, so I'll add this to the other platforms later. 2018-03-17 23:07:40 -04:00
Pietro Gagliardi 78e0684435 Cleaned up memory management in windows attrstr.cpp; also got rid of the logHRESULT(HELP) I was using in case DirectWrite doesn't return NULL+S_OK on a nonexistent drawing effect (thankfully it does). 2018-03-17 21:26:34 -04:00
Pietro Gagliardi fa293717af Removed the NumLines and LineByteRange functions for now; I'll count them under extents. 2018-03-17 21:05:05 -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 45d11962b1 Turns out there was only one real runtime bug (a bad castee). It works! Now to clean up. 2018-03-17 16:10:11 -04:00
Pietro Gagliardi a5bbc83359 Fixed build errors. Now to test. 2018-03-17 15:49:00 -04:00
Pietro Gagliardi 2f02836181 Fixed attrstr.cpp. Wow, that unordered_map custom hash and equal_to actually compiles! 2018-03-17 15:29:06 -04:00
Pietro Gagliardi 51952b4599 And fixed the CMakeLists.txt. Now to build. 2018-03-17 14:50:10 -04:00
Pietro Gagliardi cdaf49ec30 And quick and dirty migration of fontdialog.cpp back. Okay, after fixing the CMakeLists.txt, let's see how bad this is. 2018-03-17 14:47:20 -04:00
Pietro Gagliardi e08460adc3 Cleanup from the previous commit. 2018-03-17 14:45:45 -04:00
Pietro Gagliardi 8352cd72b8 "Migrated" dwrite.cpp back. Not much to say here; it'll do for now. 2018-03-17 14:44:38 -04:00
Pietro Gagliardi 1d1b6c3162 Migrated fontbutton.cpp back. 2018-03-16 20:06:23 -04:00
Pietro Gagliardi 1b1d609c88 More migrations of attrstr.cpp and drawtext.cpp. My this is a mess :D 2018-03-14 21:08:19 -04:00
Pietro Gagliardi 5314295e4c Started migrating drawtext.cpp. This is a bigger mess than I was hoping for... 2018-03-13 22:56:30 -04:00
Pietro Gagliardi 5282951681 Oops, self -> this. 2018-03-13 22:06:33 -04:00
Pietro Gagliardi f25b8dce37 Finished migrating attrstr.cpp. 2018-03-13 22:01:15 -04:00
Pietro Gagliardi 12e97a1b29 Started migrating attrstr.cpp, using the same techniques as attrstr.m. 2018-03-13 18:43:32 -04:00
Pietro Gagliardi abc6fd2825 uiDrawFontDescriptor -> uiFontDescriptor. 2018-03-11 22:36:31 -04:00
Pietro Gagliardi 86264d32a0 And migrated the IDWriteFont -> uiFontDescriptor code. 2018-03-11 22:17:16 -04:00
Pietro Gagliardi 1f61fb30de Wrote a fontmatch.cpp. 2018-03-11 22:11:19 -04:00
Pietro Gagliardi 6c95ce849a Migrated graphemes.cpp and opentype.cpp back. 2018-03-11 21:17:39 -04:00
Pietro Gagliardi e020ba465a Moved the old Windows text code out of the way. 2018-03-11 21:04:38 -04:00
Pietro Gagliardi e768293b54 Merge branch 'master' into utflib-and-attrstr 2018-02-17 22:30:01 -05:00
Pietro Gagliardi 6c85f39584 Improved the comment in the previous commit. 2018-02-17 12:56:47 -05:00
Alexander Neumann ee87a9db23 Fix enter/escape crashes on Windows (#202)
* Do not let slip through IDOK and IDCANCEL as menu events, fixes #55

* Add comment about IDOK and IDCANCEL
2018-02-17 12:53:32 -05:00
Pietro Gagliardi 1f33ca14d8 Fixed Windows build issues and resolved a question in libui that I need to enshrine in documentation next. 2017-11-04 21:44:28 -04:00
Pietro Gagliardi b98888a628 More TODOs. 2017-08-20 05:30:36 -04:00
Pietro Gagliardi 5d7128781b And const-corrected uiAttributedStringForEachAttribute(). 2017-06-19 21:45:18 -04:00
Pietro Gagliardi 3e20e4670c Made a decision on const correctness in uiOpenTypeFeatures. 2017-06-19 14:50:03 -04:00
Pietro Gagliardi e6ee2b0dbd Some TODO elminiation (for once). One TODO got reshuffled. 2017-06-18 20:10:42 -04:00
Pietro Gagliardi cc8a412687 More TODOs. 2017-06-17 17:15:32 -04:00
Pietro Gagliardi fd7c436b8a More TODOs. 2017-06-14 22:07:41 -04:00
Pietro Gagliardi f0813ac6e4 More stuff. I should probably write that OpenType features test now. 2017-06-10 03:37:17 -04:00
Pietro Gagliardi d63a5b23b1 Handled uiOpenTypeFeatures NULL equality. This only added more TODOs elsewhere :| 2017-06-09 19:59:48 -04:00
Pietro Gagliardi 39a8d1a07e More TODOs. 2017-06-07 15:58:11 -04:00
Pietro Gagliardi b3e3b27f71 Some more TODO cleanup and name adjustment. 2017-06-06 14:14:33 -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 8cacd0ba03 Quick fixup. 2017-05-31 22:25:10 -04:00
Pietro Gagliardi 933a8f592a And cleaned up the Windows drawing effect code like we did yesterday. 2017-05-31 22:24:34 -04:00
Pietro Gagliardi 2118259769 Set up text effect stuff. 2017-05-31 20:33:40 -04:00
Pietro Gagliardi 98459d2878 Dropped the redundant features collection stuff on Windows like we did on OS X and GTK+ yesterday. That just leaves all the drawing effects, which we have to collect in a different way (like we did on OS X). 2017-05-31 18:45:11 -04:00
Pietro Gagliardi b47431cd7c More TODOs. 2017-05-30 22:57:38 -04:00
Pietro Gagliardi 81a82723d0 Fixed the Windows code to run after the recent changes. Now to decide whether to clean it up like we did the OS X code... 2017-05-30 16:57:25 -04:00
Pietro Gagliardi 91bfceaf71 And FINALLY cleaned up all the AAT nonsense. Much saner now. 2017-05-30 14:00:58 -04:00
Pietro Gagliardi 1733c28b52 Added consts to the OpenType implementations. 2017-05-30 09:52:38 -04:00
Pietro Gagliardi d979f7a93e Updated a stale comment. 2017-05-28 21:55:10 -04:00
Pietro Gagliardi 3e28887a24 Fixed the build. 2017-05-17 19:21:27 -04:00
Pietro Gagliardi 2f73df09e3 And adjusted the Windows attrstr.cpp to boot. Now to rewrite the example and test. 2017-05-17 16:15:54 -04:00
Pietro Gagliardi 4e6ccc05f1 Implemented the new opentype.cpp on Windows. 2017-05-17 15:57:39 -04:00
Pietro Gagliardi 676dfb87f2 Started the uiOpenTypeFeatures implementationss, filling in holes in the API. 2017-05-11 10:27:34 -04:00
Pietro Gagliardi df2a726c1b And fixed on Windows too. We're good. 2017-02-25 01:24:43 -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 0f2b2b1fe5 Fixed background drawing on Windows. 2017-02-22 21:46:15 -05:00
Pietro Gagliardi f2b158b529 And finished implementing attributes on Windows. 2017-02-22 19:13:36 -05:00
Pietro Gagliardi b42250e3a9 More text attributes on Windows, including the beginning of drawing effects for colors and underlines. 2017-02-22 15:19:11 -05:00
Pietro Gagliardi fb04feaebb Started Windows attribute handling. 2017-02-22 12:49:55 -05:00
Pietro Gagliardi ae8105c234 Added debugging to our custom IDWriteTextRenderer. 2017-02-22 11:23:26 -05:00
Pietro Gagliardi 9cc8b03516 Switched to a custom IDWriteTextRenderer, which will be necessary for some of our text attributes. More TODO. 2017-02-22 03:43:43 -05:00
Pietro Gagliardi efb7d5b21d More TODOs. 2017-02-21 16:06:29 -05:00
Pietro Gagliardi ea473a3411 Ugh of course I screwed up the malloc() test. Fixed a crash on GTK+ since I guess OS X malloc() autofills to 0? 2017-02-20 15:14:53 -05:00
Pietro Gagliardi c4a97792ea And implemented the new stuff on Windows. 2017-02-11 21:54:06 -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 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 746e4091cb Implemented uiDrawCaret() on Windows. 2017-02-10 17:38:17 -05:00
Pietro Gagliardi 5823c3a53e More cleanup. 2017-02-10 11:52:26 -05:00
Pietro Gagliardi 5458e10134 Implemented the new hit-test functions on Windows. 2017-02-08 20:10:34 -05:00
Pietro Gagliardi 012ce92b71 And implemented the caret changes on Windows. 2017-02-07 19:55:21 -05:00
Pietro Gagliardi 3e4f99e0dd Notes for Windows equivalent of previous commits. Not actually done yet. 2017-02-07 19:42:00 -05:00
Pietro Gagliardi e4ed1c337b And implemented the functions on Windows. Yeah I think I'll need cursor functions, perhaps. 2017-02-06 18:38:44 -05:00
Pietro Gagliardi bb52275686 Corrected ambiguous wording in a comment. 2017-01-29 21:51:27 -05:00
Pietro Gagliardi 7614d3e0ff More TODOs. 2017-01-27 15:39:24 -05:00
Pietro Gagliardi d8316790a0 More notes. 2017-01-21 10:21:39 -05:00
Pietro Gagliardi f0b9ff9aba Fixed multifragment lines on Windows, again with the help of the PadWrite sample. 2017-01-21 09:39:53 -05:00
Pietro Gagliardi c720e8147b Figured out what's going on. No clue how to fix it. 2017-01-20 20:57:20 -05:00
Pietro Gagliardi 87b7d5b4b7 Decided to remove uiDrawTextLayoutByteIndexToGraphemeRect(); the Range one later on handles it. Now we can do the hit testing functions! 2017-01-20 19:34:16 -05:00
Pietro Gagliardi fc7fcd9f05 And implemented metrics stuff on Windows. 2017-01-20 18:09:06 -05:00
Pietro Gagliardi 2d09f22932 Added a debugging guide for Windows. Will have to investigate this more, because I can't find any information online that suggests Direct2D should not respect clipping when drawing text :S Also more TODOs. 2017-01-20 12:46:00 -05:00
Pietro Gagliardi 88ea7c4665 Fixed runtime errors. Yay it works on all platforms now! Also more TODOs. Now the real work is getting the rest of the functionality in. 2017-01-20 04:34:15 -05:00
Pietro Gagliardi c0781a13ae Fixed compile errors. Jesus.
Runtime errors next.
2017-01-20 03:24:06 -05:00
Pietro Gagliardi cac390a821 Wrote much of the new text layout code on Windows. Now to test. 2017-01-19 21:13:03 -05:00
Pietro Gagliardi f7121774e1 Added some TODOs and started the work necessary for the Windows text system migration... which is gonna hurt. 2017-01-17 23:25:26 -05:00
Pietro Gagliardi 3218ba2a43 And migrated the Unix grapheme code for the new attributed string system. 2016-12-03 18:54:19 -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