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