Commit Graph

298 Commits

Author SHA1 Message Date
Pietro Gagliardi 2cf1168830 Started writing the code for handling mouse moves and checkbox hovers. 2014-12-21 18:45:37 -05:00
Pietro Gagliardi 9e66dc006e Added mouse tracking code. Not used yet. 2014-12-21 10:38:52 -05:00
Pietro Gagliardi 0c21608853 Made toCheckboxRect() take the xoff parameter too. 2014-12-21 02:09:09 -05:00
Pietro Gagliardi 89fb2e8c6c toItemContentRect() -> toCellContentRect() (consistency) 2014-12-20 21:10:44 -05:00
Pietro Gagliardi 3cb96de162 Wrote up toItemContentRect() and used that in drawCell(). More TODOs. 2014-12-20 21:09:01 -05:00
Pietro Gagliardi 7713c91387 Started writing the checkbox drawing code. Just a red box again for now. 2014-12-20 20:12:54 -05:00
Pietro Gagliardi 34d3771f77 Added code for distinguishing column types to drawCell(). 2014-12-19 20:48:02 -05:00
Pietro Gagliardi ee9b958171 Removed unnecessary HTHEME parameter in getFrameControlCheckboxSize(). 2014-12-19 00:49:27 -05:00
Pietro Gagliardi 866793995d Still more TODOs. 2014-12-18 19:49:42 -05:00
Pietro Gagliardi f2dc77e9a1 More TODOs. 2014-12-18 19:48:48 -05:00
Pietro Gagliardi 422b2f183a Added images and checkboxes to rowHeight(). Split out the text part into textHeight(); we'll be needing it later (when implementing vertical centering). 2014-12-18 19:46:56 -05:00
Pietro Gagliardi 22d82f6bd0 More TODOs. 2014-12-18 19:28:12 -05:00
Pietro Gagliardi 28b20d1039 Moved around checkboxes.h pendig plans for that code. 2014-12-18 19:27:03 -05:00
Pietro Gagliardi d7cf4fa7c5 New checkbox plan: because DrawThemeBackground() /might/ do AlphaBlend(), we'll just draw checkboxes on the fly. 2014-12-18 19:26:13 -05:00
Pietro Gagliardi 07c599ad1b More critical TODOs. 2014-12-18 13:05:20 -05:00
Pietro Gagliardi f22812ff0e Brought back the code to build checkbox images. 2014-12-17 21:56:37 -05:00
Pietro Gagliardi b6340bd349 Fixed Page Down behavior. More TODOs. 2014-12-17 14:58:39 -05:00
Pietro Gagliardi 041c99df07 Fixed deselection redraw. 2014-12-16 20:19:06 -05:00
Pietro Gagliardi 060b062045 More TODOs. 2014-12-16 18:48:14 -05:00
Pietro Gagliardi e31fd24a99 Actually return no selection in clientCoordToRowColumn() correctly. Part 2 of previous commit. 2014-12-16 18:46:19 -05:00
Pietro Gagliardi b9c46d4cdf Don't try to scroll if we're deselecting. First part of mouse deselect fix. 2014-12-16 18:40:58 -05:00
Pietro Gagliardi 54a359d260 Changed abort() in deftablePanic() to DebugBreak() for convenience (especially in wine where abort() is NOT caught by winedbg --gdb and for whatever reason I can't set a breakpoint with the same). 2014-12-16 15:07:55 -05:00
Pietro Gagliardi a0a6c2b112 Fixed some punctuation errors. 2014-12-16 11:50:53 -05:00
Pietro Gagliardi 03fce2feab Added debugging checks for doselect() to spot illegal selections. Rewrote some expressions for consistency. 2014-12-16 11:47:52 -05:00
Pietro Gagliardi 152f446ce8 Revert "Attempted to fix broken coordinate calculations for out-of-cell clicks..."
That didn't do it; will need to use a debugger.

This reverts commit 25e5100360.
2014-12-16 11:38:04 -05:00
Pietro Gagliardi 25e5100360 Attempted to fix broken coordinate calculations for out-of-cell clicks... 2014-12-16 11:34:26 -05:00
Pietro Gagliardi 3f42acb475 Implemented keyboard selection. Now I need to fix /mouse/ selections that select nothing, because apparently /that/ was broken... 2014-12-16 11:28:08 -05:00
Pietro Gagliardi 5db1b0f1c4 Added some links. 2014-12-16 03:10:52 -05:00
Pietro Gagliardi 175f94fe3f Punctuation fix. 2014-12-16 02:58:31 -05:00
Pietro Gagliardi d082d0ebab Finished keyboard selection notes. Will implement later. 2014-12-16 02:57:31 -05:00
Pietro Gagliardi 5389e3c2d6 More keyboard selection notes. 2014-12-15 23:48:09 -05:00
Pietro Gagliardi e08988a887 More keyboard selection notes. 2014-12-15 20:03:46 -05:00
Pietro Gagliardi ec725e3f1b Wrote up some notes on how to do keyboard selection. 2014-12-15 15:06:07 -05:00
Pietro Gagliardi f458700579 Fixed selection scrolling. 2014-12-14 18:06:08 -05:00
Pietro Gagliardi e246a9bd5f More TODOs. 2014-12-14 17:29:32 -05:00
Pietro Gagliardi 8fba540a1c Mostly fixed up the horizontal scrolling implementation in doselect(). 2014-12-14 17:24:30 -05:00
Pietro Gagliardi c58920dadd Implemented horizontal scroll on the left in doselect(). Horizontal scroll on the right is mostly written, but nonworking. 2014-12-14 17:10:08 -05:00
Pietro Gagliardi 33f7ac1142 Unified all column width accesses to a columnWidth() function. 2014-12-14 16:23:32 -05:00
Pietro Gagliardi f56ae488f0 Implemented vertical scrolling on selection changes. 2014-12-14 11:09:59 -05:00
Pietro Gagliardi cb7404cf8b Optimized the redrawing of selected rows in doselect(). 2014-12-14 10:22:15 -05:00
Pietro Gagliardi ad12b8b1af Implemented rowColumnToClientRect() (was rowColumnToClientCoord() but decided that the full RECT would be more useful); not sure if I'm going to actually use it now though since full-on redrawing the old and new rows would probably be more correct in doselect()... 2014-12-14 02:52:31 -05:00
Pietro Gagliardi fa89a497ed More TODOs. 2014-12-13 16:23:48 -05:00
Pietro Gagliardi cecfa82994 Implemented mouse click selection. 2014-12-13 13:56:31 -05:00
Pietro Gagliardi 516173916e Implemented clientCoordToRowColumn(). 2014-12-13 12:17:18 -05:00
Pietro Gagliardi e966a9b725 Resolved some TODOs. 2014-12-13 11:53:03 -05:00
Pietro Gagliardi df4fbb12ed Fixed up some TODOs 2014-12-13 11:51:12 -05:00
Pietro Gagliardi 7b9b41d6cc Started to lay down the groundwork for handling selection. 2014-12-13 11:49:36 -05:00
Pietro Gagliardi 980868ef0d Cleared some TODOs. 2014-12-12 22:48:19 -05:00
Pietro Gagliardi 5080e84398 Added wheel scrolling. 2014-12-12 22:17:20 -05:00
Pietro Gagliardi d5b4d06cb4 More reminders/TODOs. 2014-12-12 16:45:14 -05:00
Pietro Gagliardi d1bd082b2e ok fixed that bug 2014-12-12 16:43:17 -05:00
Pietro Gagliardi 7f7ea0044e Added vscroll to the drawing code. Now to figure out why it stops early... 2014-12-12 16:37:48 -05:00
Pietro Gagliardi 2da55f35a6 Added vertical scroll. The drawing code will now need updating... 2014-12-12 15:20:34 -05:00
Pietro Gagliardi 2013a3a753 Isolated the scrolling code to avoid code duplication in something so sensitive. 2014-12-12 14:53:58 -05:00
Pietro Gagliardi a565469260 Got rid of a bogus assignment to t->hpagesize. 2014-12-12 14:16:55 -05:00
Pietro Gagliardi 35519ab61c More TODOs. 2014-12-12 10:57:37 -05:00
Pietro Gagliardi ddb4533aff Defined tableFree(NULL). 2014-12-12 10:55:57 -05:00
Pietro Gagliardi 9e11c36f63 Started tying all the threads together in the drawing loop for real. 2014-12-12 10:47:23 -05:00
Pietro Gagliardi 6173857ee7 Fixed twitchy text. 2014-12-11 20:41:35 -05:00
Pietro Gagliardi 6690876c07 More TODOs. 2014-12-11 20:37:38 -05:00
Pietro Gagliardi 38b7126449 Fixed up the whole horizontal scroll glitching mess. Now to tackle the twitchy text... 2014-12-11 20:35:46 -05:00
Pietro Gagliardi b73b5b2ed0 Removed a call to repositionHeader() in the resize handler; we already do this in hscrollto(), which is called by updateTableWidth(). 2014-12-11 20:27:29 -05:00
Pietro Gagliardi 6286a3319f More TODOs... 2014-12-11 20:10:11 -05:00
Pietro Gagliardi ccb68b6fc8 Started the work for reimplementing rows. 2014-12-11 18:58:37 -05:00
Pietro Gagliardi 8ea320220a Mostly finisshed up horizontal scrolling by hooking it up to everything else. The sample text draw doesn't seem to be working correctly, but I'm not sure /when/ it breaks right now... 2014-12-11 16:43:56 -05:00
Pietro Gagliardi 9edf273ba7 Removed error check in ScrollWindowEx() call for now pending a wine bug (https://bugs.winehq.org/show_bug.cgi?id=37706). 2014-12-11 16:29:43 -05:00
Pietro Gagliardi 3788cb730c Added a cast to a tableRealloc() call. 2014-12-10 20:43:28 -05:00
Pietro Gagliardi a7cbacb522 More TODOs. 2014-12-10 18:32:28 -05:00
Pietro Gagliardi 62a1db4756 Wrote up the hscroll code. Not sure why it doesn't work yet. Not yet applied to headers or drawing. 2014-12-10 15:37:52 -05:00
Pietro Gagliardi 4e21ee8b11 Added headerHeight to the new Table. 2014-12-10 14:07:14 -05:00
Pietro Gagliardi 395521b832 Moved Table width calculation out of recomputeHScroll() and into updateTableWidth(); also stored width in the Table itself. 2014-12-10 10:07:08 -05:00
Pietro Gagliardi a8fed6c28d Changed from recomputeHScroll() to updateTableWidth() as we will store the table width separately and just use one call to SetScrollInfo() for everything to avoid weirdness. 2014-12-10 10:01:16 -05:00
Pietro Gagliardi cb199cca77 Started readding hscroll code; just recomputeHScroll() for now. 2014-12-09 20:47:03 -05:00
Pietro Gagliardi dd37255fa1 Reimplemented tableAddColumn for real. 2014-12-09 20:32:49 -05:00
Pietro Gagliardi d6ff23dacb More TODOs. 2014-12-09 19:31:05 -05:00
Pietro Gagliardi bad29faf1a Added a list of scrollbar series articles for convenience. 2014-12-09 15:57:09 -05:00
Pietro Gagliardi 0e6c48a45c More TODOs. 2014-12-08 21:43:07 -05:00
Pietro Gagliardi f0c4589403 Began the implementation of the new Windows Table's drawCell(). 2014-12-08 21:42:00 -05:00
Pietro Gagliardi 59054c8932 Readded rowHeight(). Also tested font helper functions. 2014-12-08 16:23:55 -05:00
Pietro Gagliardi 588d932f6c Fixed up WM_PRINTCLIENT stuff. 2014-12-08 15:54:55 -05:00
Pietro Gagliardi 3bc6fed2c1 Some TODO resolution. 2014-12-08 15:11:42 -05:00
Pietro Gagliardi 9b3555f257 Readded api.h, for WM_GETFONT/WM_SETFONT. We'll need this to re-add rowHeight(). 2014-12-08 15:04:43 -05:00
Pietro Gagliardi 01efbd750f Added tracking of header column sizes. 2014-12-08 12:57:54 -05:00
Pietro Gagliardi 7cfda3ad61 Filled in the draw() function for testing header resizes (when that is implemented). 2014-12-08 10:40:51 -05:00
Pietro Gagliardi 2f95837155 Added drawing scaffolds to the new Windows Table. 2014-12-08 10:01:41 -05:00
Pietro Gagliardi 47a83a311d Added new Windows Table header columns (and this time we'll split out the dummy data). 2014-12-08 08:50:42 -05:00
Pietro Gagliardi 26f7fc6a6b More TODOs. 2014-12-07 20:48:32 -05:00
Pietro Gagliardi e86f0c7dc4 More TODOs. 2014-12-07 20:48:09 -05:00
Pietro Gagliardi 6efc67d7e2 More header control stuff: resize handling/header control repositioning. 2014-12-07 20:16:58 -05:00
Pietro Gagliardi 399b4639fe More header support code, including header notification scaffolding. 2014-12-07 18:43:05 -05:00
Pietro Gagliardi 04787b169a Altered some comments. 2014-12-07 18:32:13 -05:00
Pietro Gagliardi e373900cf0 Started re-adding the header stuff for real this time. 2014-12-07 18:27:35 -05:00
Pietro Gagliardi e224950cf4 Some allocator cleanup in the new Table. 2014-12-07 16:22:51 -05:00
Pietro Gagliardi 75c9f73870 Altered some TODOs because <HeapAlloc> what's a last error 2014-12-07 14:05:38 -05:00
Pietro Gagliardi fcd213088f More TODOs. 2014-12-07 13:46:35 -05:00
Pietro Gagliardi d5c7d133ad Make tablePanic static; it should not be exported. 2014-12-07 13:24:12 -05:00
Pietro Gagliardi fe78114ec1 Let's get error handling right first time now. 2014-12-07 13:23:39 -05:00
Pietro Gagliardi 545743090e "Started" re-adding the header code. 2014-12-06 22:01:04 -05:00
Pietro Gagliardi 3232b47b43 Readded main code (but stripped to its essentials for now, as everything will be slowly readded, but in a different order) and fixed compilation errors (and some warnings). 2014-12-05 22:23:39 -05:00
Pietro Gagliardi 51e6028951 Made the various event handler arrays const. 2014-12-05 21:58:16 -05:00
Pietro Gagliardi 61f7316d56 Moved the rewrite of the new Windows Table to its /own/ folder. 2014-12-05 10:27:45 -05:00
Pietro Gagliardi f7daa5580f Added the new Windows Table event handling framework. 2014-12-05 10:18:37 -05:00
Pietro Gagliardi 19358785f6 More new Windows Table stuff. 2014-12-04 21:12:24 -05:00
Pietro Gagliardi ad6249422b Don't use GetMessagePos(); it returns the same LPARAM format... (and the POINT in MSG is in screen coordinates, which means we need to call the potentially-erroring ScreenToClient(), and /even then/ we would need to hack up the message pump to get that point out, which is not guaranteed if someone takes our Table code and uses it in their own Windows program, or if I even export this Table for such use!). 2014-12-04 10:17:38 -05:00
Pietro Gagliardi 74f9630bcc Started restructuring the Windows Table code; this creates stubs for coordinate system management. 2014-12-04 07:55:01 -05:00
Pietro Gagliardi 5c22fceb9b More TODOs. 2014-12-03 19:55:00 -05:00
Pietro Gagliardi 5b904dfa94 More Windows Table work. 2014-12-03 19:38:08 -05:00
Pietro Gagliardi c550a1a958 Small precautionary change in Windows Table: use WM_USER + 20 instead of WM_USER just in case we ever get dialog manager messages (which are the first few WM_USER messages because technically they belong to WC_DIALOG). 2014-12-01 23:53:56 -05:00
Pietro Gagliardi 6b2c295fdc Isolated vertical scroll messages with the other vertical scroll code. 2014-12-01 15:34:26 -05:00
Pietro Gagliardi 16a88c548b Changed the handler functions array to be const, as that's the intent. 2014-12-01 15:18:12 -05:00
Pietro Gagliardi 84d66b6b50 Started splitting message handlers for the new Windows Table into their respective files. 2014-11-30 21:27:32 -05:00
Pietro Gagliardi c41b9b16ff Moved the api.h include to the bottom of the include list so that when I move the public-facing API code (namely the WM_SETFONT handler) there we can use functions defined later. 2014-11-30 21:11:12 -05:00
Pietro Gagliardi c67be58377 More Windows Table separation. 2014-11-30 17:05:42 -05:00
Pietro Gagliardi d23cdd7682 Started splitting the new Windows Table code into more manageable chunks. 2014-11-29 18:29:50 -05:00
Pietro Gagliardi 6cce68074a More TODOs. 2014-11-28 22:38:41 -05:00
Pietro Gagliardi dafb337b32 More TODOs. 2014-11-27 10:36:04 -05:00
Pietro Gagliardi af7830cc5c Removed all the checkbox stuff for now. I need to do it a better way. 2014-11-24 10:49:36 -05:00
Pietro Gagliardi 1083ceefde Added a "flag" (actually just specify at least one argument; doesn't matter what) to the Windows Table main() to specify using the lfMessageFont, for vertical centering testing purposes. 2014-11-23 20:28:52 -05:00
Pietro Gagliardi 9d10a7f90c More TODOs. 2014-11-23 12:43:11 -05:00
Pietro Gagliardi 906b365aa5 More TODOs. 2014-11-22 20:32:30 -05:00
Pietro Gagliardi e63cd21f96 Added checkbox heights to rowHeight() in the new Windows Table. 2014-11-21 16:25:44 -05:00
Pietro Gagliardi b5bc1077b8 More TODOs. 2014-11-20 18:28:01 -05:00
Pietro Gagliardi 83d36265f1 More TODOs. 2014-11-20 18:27:03 -05:00
Pietro Gagliardi 3d87f8c5ce Implemented mouse hot-tracking for checkboxes. Clicking and dragging is still an issue, but :S 2014-11-20 18:25:14 -05:00
Pietro Gagliardi 2ddafc8230 Wrote up a lParamInCheckbox() that we will use for properly hit-testing checkboxes in the new Windows Table. 2014-11-20 18:21:52 -05:00
Pietro Gagliardi 396d73a634 More mouse tracking. This is getting complicated the way I'm doing it... 2014-11-19 22:46:25 -05:00
Pietro Gagliardi 031c67e38d Split the code to turn x/y LPARAM into a row/column number to its own function. The mouse tracking code will need it. 2014-11-19 22:33:18 -05:00
Pietro Gagliardi d75795f968 More checkbox mouse code. This implements tracking. 2014-11-19 10:38:20 -05:00
Pietro Gagliardi 20b6a3cf2a More TODOs. 2014-11-19 10:17:29 -05:00
Pietro Gagliardi 896239371e Began the work for actually doing checkbox events in the new Windows Table. Currently it mostly responds correctly to mouse presses and releases; it just needs to be hit-tested properly. 2014-11-18 20:30:52 -05:00
Pietro Gagliardi cb2642765a Started the work to handle checkboxes. For now, we draw just a red rectangle; when we do events this will change color dynamically. When I hook up the control to its parent, I will move from these rectangles to the actual checkbox images. In the meantime, fix some pointer bugs in imagelist_windows.c as well. 2014-11-18 13:53:53 -05:00
Pietro Gagliardi 8175bd411a Fixed keyboard navigation in the new Windows Table. 2014-11-18 13:22:38 -05:00
Pietro Gagliardi 2103a14c16 Elaborated some comments. 2014-11-18 12:51:00 -05:00
Pietro Gagliardi a77969754f More critical TODOs. 2014-11-18 12:36:12 -05:00
Pietro Gagliardi 8a5d4f8b0e Mostly implemented vertical scrolling on selection change. The bottom row still needs fixing. 2014-11-18 12:29:14 -05:00
Pietro Gagliardi 0e13193310 Optimized new Windows Table selection redraw and did most of the work for scroliing on selection change. Also more TODOs. 2014-11-18 08:17:42 -05:00
Pietro Gagliardi 46056e54e4 Added a prev parameter to finishSelect() on the new Windows Table. This will allow proper scrolling to the selection. 2014-11-17 22:52:15 -05:00
Pietro Gagliardi d893ba6c03 Added redrawRow() to the Windows Table and changed WM_SETFOCUS/WM_KILLFOCUS handling to use it. It will be used for selections later. 2014-11-17 10:21:43 -05:00
Pietro Gagliardi 93046dc868 Split the code to compute the last visible item in the new Windows Table into its own function. This is needed for keyboard vertical scrolling. 2014-11-15 20:36:56 -05:00
Pietro Gagliardi f11b1141fb Stored the checkbox width/height in the new Windows Table. This will be needed for hit-testing checkboxes. 2014-11-14 22:41:25 -05:00
Pietro Gagliardi ee13093136 More TODOs. 2014-11-13 12:15:16 -05:00
Pietro Gagliardi bdcb4516b7 More TODOs. 2014-11-13 12:14:29 -05:00
Pietro Gagliardi 4697976fa7 More TODOs. 2014-11-12 22:54:48 -05:00
Pietro Gagliardi 922097985b Added keyboard navigation for columns in the new Windows Table. 2014-11-12 22:48:04 -05:00
Pietro Gagliardi 2b8f0635a0 More TODOs. 2014-11-12 22:37:56 -05:00
Pietro Gagliardi 8f0f1ad3b5 Added cell focusing to the new Windows Table. Checkbox columns need keyboard accessibility too. For now, focus is only applied with a mouse click. 2014-11-12 21:59:03 -05:00
Pietro Gagliardi 7409ce424e More TODOs and redraws. 2014-11-11 13:57:16 -05:00
Pietro Gagliardi 0ab175471b Started writing up the actual messages for the new Windows Table. First is tableAddColumn. Removed some hardcoding as a result. 2014-11-11 13:54:34 -05:00
Pietro Gagliardi 56ad702444 Added the code for the checkbox image lists to the Windows Table test. 2014-11-10 14:57:26 -05:00
Pietro Gagliardi 35d7b41726 Settled a TODO in the accessibility code. 2014-11-09 23:44:46 -05:00