Commit Graph

807 Commits

Author SHA1 Message Date
Pietro Gagliardi bff9d0e311 More work on table edit controls, including: subclassing the edit control to actually handle escape and enter, setting focus on the eidt control, selecting all text in the edit control, and splitting the sizing stuff into a separate function. We'll have to split the rect-gathering code into a separate file before we can add live resize to the edit control... which will probably be useful because then I could just write a function to enumerate focus rects later. 2018-06-20 10:39:27 -04:00
Pietro Gagliardi 25a443f4f2 Handled the finished-editing cases I can right now. It is... mostly good???????????? IListView is very tantalizing now... 2018-06-19 23:07:24 -04:00
Pietro Gagliardi ff4b424ab0 Added WS_CLIPCHILDREN to uiTable to prevent drawing over children. 2018-06-19 07:51:34 -04:00
Pietro Gagliardi 4c107997d2 Round two: fully custom edit sizing code. We're getting somewhere now. Now we'll need to actually manage this thing =P 2018-06-18 23:51:58 -04:00
Pietro Gagliardi 1edb406045 Let's start over with this edit control sizing stuff. 2018-06-18 09:39:14 -04:00
Pietro Gagliardi d81b365396 More edit control stuff. We've almost got it, but it's too wide and the text is still aligned wrong. 2018-06-17 21:22:57 -04:00
Pietro Gagliardi 51f98d1f7b Started implementing the edit control for our table view. 2018-06-17 17:56:45 -04:00
Pietro Gagliardi 799c613a6f Added code for detecting that text is to be edited. Now for actually implementing editing text. 2018-06-17 15:06:45 -04:00
Pietro Gagliardi 6d0b276d6d Started handling table events. This covers checkboxes and buttons. 2018-06-17 11:48:39 -04:00
Pietro Gagliardi 2fb3676a8f More TODOs. 2018-06-17 10:50:24 -04:00
Pietro Gagliardi db2f3352c4 Added dummy code to evaluate LVM_SUBITEMHITTEST. The code will remain, but will be #if'd out. 2018-06-17 09:29:51 -04:00
Pietro Gagliardi 7bc121b1ec And drew buttons. Woo! Now for the harder part: editing. 2018-06-17 09:01:24 -04:00
Pietro Gagliardi 9fba903c4a Started button columns. LVN_GETDISPINFO handled. Also filled in the rest of the new column functions. 2018-06-16 22:12:54 -04:00
Pietro Gagliardi a00ca05136 Added themed progressbars. 2018-06-16 20:10:39 -04:00
Pietro Gagliardi 301376706f And made indeterminate progressbars work. Now to theme them. 2018-06-16 19:40:06 -04:00
Pietro Gagliardi c7555dcfd3 Started a more flexible indeterminate-state implementation. Now to build and test it. 2018-06-16 19:05:36 -04:00
Pietro Gagliardi c978f6fece Started indeterminate progress bars. This is gonna be interesting. 2018-06-16 18:06:44 -04:00
Pietro Gagliardi 8769bea3a0 Added code for unthemed definite progressbars. 2018-06-16 13:57:46 -04:00
Pietro Gagliardi f96c0f410e Started the implementation of progressbar columns. This handles LVN_GETDISPINFO. 2018-06-16 13:06:20 -04:00
Pietro Gagliardi d63af885ba Oops, that's why tooltips weren't working right: I had inverted a test in tabledispinfo.cpp. Fixed. 2018-06-16 12:52:16 -04:00
Pietro Gagliardi bcab521311 And consolidated the LVN_DISPINFO handlers. Everything's a lot cleaner now too, woo! 2018-06-16 12:33:16 -04:00
Pietro Gagliardi b9289c93a6 And drew checkboxes. We can FINALLY move on to other data types! ...almost. First we have to consolidate LVN_GETDISPINFO handlers. 2018-06-16 11:59:17 -04:00
Pietro Gagliardi 4bfd950caa Centered the table image. 2018-06-16 10:22:41 -04:00
Pietro Gagliardi f92c83992e Fixed image matching. 2018-06-16 08:52:55 -04:00
Pietro Gagliardi f1341a0485 Fixed image drawing. Still need to figure out why it's using the wrong size... 2018-06-16 04:26:36 -04:00
Pietro Gagliardi f852359acb Fixed build errors. The image list selection part works, at least!! Let's figure out why nothing else does. 2018-06-15 23:00:39 -04:00
Pietro Gagliardi 43bb983f5b Wrote new (incomplete) image drawing code. Now to build and test. 2018-06-15 22:50:39 -04:00
Pietro Gagliardi d6cebf4ca0 Added scaling to uiImage on Windows. We'll need this for what we're about to do. 2018-06-15 22:28:37 -04:00
Pietro Gagliardi 32ee36eb22 Fixed some of the technical glitches. 2018-06-15 19:29:01 -04:00
Pietro Gagliardi e6da33121e And integrated tabledraw.cpp. It works, barring some technical gltiches. It also makes me realize the alpha blending issue was my fault... 2018-06-15 10:04:32 -04:00
Pietro Gagliardi fda8f2fbae Started a separate file just for drawing tables; integrated text. 2018-06-14 21:31:45 -04:00
Pietro Gagliardi 75063ec266 Fixed text positioning in non-image columns. This separation probably isn't working... 2018-06-14 20:26:51 -04:00
Pietro Gagliardi c79f9b4ecd Added bitmap margins to the draw parameters. We'll need it later. 2018-06-13 21:46:28 -04:00
Pietro Gagliardi caa0688687 Started drawing uiTable text. We're drawing fully manually from here on out. Also fixed LVIF_INDENT settings and a few other things. 2018-06-13 21:07:58 -04:00
Pietro Gagliardi 15bc55dd5e Started work on backgrounds. This isn't ideal quite yet, but. 2018-06-13 10:09:13 -04:00
Pietro Gagliardi c01b010fd7 Fixed memory corruption issues. See code for details. 2018-06-13 08:30:00 -04:00
Pietro Gagliardi c4251894b5 Flipped the memory corruption back on so we can debug it. 2018-06-12 20:15:59 -04:00
Pietro Gagliardi f216af94e7 Made our new custom draw code only run on item prepaint. 2018-06-12 08:20:15 -04:00
Pietro Gagliardi f28c97d4d6 Switched checkboxes from postpaint to prepaint and turned off drawing everything while we slowly transition everything over. 2018-06-12 08:17:31 -04:00
Pietro Gagliardi e52373c59a Reintegrated wintablemetrics, properly this time (for the most part). It works. Now we can start switching to custom-drawing everything. 2018-06-12 07:58:27 -04:00
Pietro Gagliardi 59d8e81b85 There, found the reason that code doesn't work (LVIF_ICON was as tall as LVIF_BOUNDS) and fixed it (use the actual icon size for vertical centering) 2018-06-12 01:54:21 -04:00
Pietro Gagliardi 0f89418a95 Fixed a typo in tableimages.cpp. Okay, so the code I had before worked purely by accident, and this code doesn't. Wonderful... 2018-06-12 01:40:26 -04:00
Pietro Gagliardi c843f1e62d More TODOs. 2018-06-11 08:01:18 -04:00
Pietro Gagliardi 0c6e7add01 Experimented with custom-drawing the text, this time in a nicer place thatn the default. Okay, this isn't too bad, especially now that it seems everything is vertically centered... 2018-06-10 23:03:54 -04:00
Pietro Gagliardi dfb3bd39f1 Some more TODO work. I might as well try custom drawing text now. 2018-06-10 20:18:07 -04:00
Pietro Gagliardi cd2a6f7c29 Fixed the checkbox y-offset issue. There are other issues, but this is more hopeful already... 2018-06-10 19:54:44 -04:00
Pietro Gagliardi 2a2990f19c I have no clue anymore. Tempted to undo checkbox stuff entirely for now. 2018-06-10 19:07:34 -04:00
Pietro Gagliardi 94a3397894 Tried to resolve checkboxes appearing selected. It doesn't work fully yet, so the actual drawing that makes it work is disabled for now. But the handler for NM_CUSTOMDRAW now has a hook to become cleaner in the future. 2018-06-10 17:38:51 -04:00
Pietro Gagliardi 5a5f9ba9ac And added themed checkboxes. 2018-06-10 13:15:21 -04:00
Pietro Gagliardi 8dd9f08ba4 Actually one more quick test fix to cycle through all the images before continuing. Okay, NOW for themed checkboxes. 2018-06-10 10:45:50 -04:00
Pietro Gagliardi c22f643df7 More image and checkbox fixups. Next: themed checkboxes. 2018-06-10 10:43:29 -04:00
Pietro Gagliardi a3feb425a1 Started splitting image and checkbox stuff into its own file. Also started adopting HRESULT returns everywhere, because why not make the conversion to it later slightly easier by starting now. 2018-06-10 00:51:50 -04:00
Pietro Gagliardi 8d43b55ff8 Removed some now-unused stuff. 2018-06-09 23:55:43 -04:00
Pietro Gagliardi 405a6defd2 Started using normal images for checkboxes in Windows uiTables. It doesn't quite work yet. 2018-06-09 23:25:16 -04:00
Pietro Gagliardi 4c5f0961fe Started an implementation of checkboxes in table.cpp. List View simply does not seem to support state images in subitems, so we'll have to improvise. Hopefully this won't screw accessibility. 2018-06-09 23:02:37 -04:00
Pietro Gagliardi 0f59bf7399 More TODOs. 2018-06-09 20:42:13 -04:00
Pietro Gagliardi b43fb4b247 And added images to uiTable. Right now it's loading the 32x32 images into the table instead of the 16x16 ones, but hey, it works! 2018-06-09 20:35:05 -04:00
Pietro Gagliardi a858300f25 Filled in image.cpp. Also switched on WIC since we'll need it for uiArea, though uiTable will still need classic GDI. Now let's integrate this into uiTable. 2018-06-09 19:24:36 -04:00
Pietro Gagliardi 3aee505f4e Weirdness workarounds. 2018-06-09 14:32:04 -04:00
Pietro Gagliardi ff64685655 More work. List View is starting to show its dumbness again. 2018-06-09 13:57:43 -04:00
Pietro Gagliardi 1c9f9627c0 Started image support for Windows tables. 2018-06-09 12:15:50 -04:00
Pietro Gagliardi c6c4dbd580 Started handling colors in the Windows table code. 2018-06-09 10:40:42 -04:00
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