Commit Graph

266 Commits

Author SHA1 Message Date
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
Pietro Gagliardi b8fdfa49fd More accessibility notes. 2014-11-09 22:11:12 -05:00
Pietro Gagliardi d254500cd3 Added assorted accessibility notes. 2014-11-09 21:43:24 -05:00
Pietro Gagliardi ded1de5c99 Moved the accessibility setup out of the way. I have no idea how to actually /do/ accessibility on a list view since the interface doesn't seem to support tabular data layouts... 2014-11-09 15:48:48 -05:00
Pietro Gagliardi c32e95890e Started the work to add accessibility to the new Windows Table. Also adjusted winapi_windows.h to accomodate this (defined CINTERFACE and included <oleacc.h>). 2014-11-09 13:04:04 -05:00
Pietro Gagliardi 855025b207 Laid the foundation for accessibility in the Windows Table. 2014-11-09 02:36:43 -05:00
Pietro Gagliardi f6879c1e26 More TODOs. 2014-11-09 02:11:39 -05:00
Pietro Gagliardi 0c31f15058 Properly moved the new Windows Table header during hscroll. 2014-11-08 22:46:31 -05:00
Pietro Gagliardi 9ab145256e Removed an unnecessary TODO. 2014-11-08 16:49:12 -05:00
Pietro Gagliardi 602500c64f More TODOs. 2014-11-07 18:19:27 -05:00
Pietro Gagliardi 85fd26a3e3 Handled horizontal scrolling in drawing. Now to fix the header... 2014-11-07 18:13:59 -05:00
Pietro Gagliardi 3cb5017b35 Implemented horizontal scrolling. Horizontally scrolled drawing not yet implemented. 2014-11-07 10:12:06 -05:00
Pietro Gagliardi bc5955bc35 More TODOs. 2014-11-07 09:54:56 -05:00
Pietro Gagliardi 0c1e4bedb1 Added some prerequisite bookkeeping needed for Windows Table horizontal scrolling. 2014-11-06 20:29:16 -05:00
Pietro Gagliardi 80679f3d35 Removed now-fixed TODOs. 2014-11-06 20:10:08 -05:00
Pietro Gagliardi 130e139806 Fixed the Windows Table reimplementation's redraw issues. Thanks again to Jonathan Potter (http://stackoverflow.com/a/26747199/3408572). 2014-11-06 19:47:38 -05:00
Pietro Gagliardi e7a5c4bfac More TODOs. 2014-11-05 20:29:22 -05:00
Pietro Gagliardi fdd3720821 Split drawItems() into drawItems() and drawItem() in the Windows Table reimplementation. This will make rewriting drawItem() easier. 2014-11-05 20:26:21 -05:00
Pietro Gagliardi d18fc4296d More image list refinements. 2014-10-21 14:39:46 -04:00
Pietro Gagliardi 41d143d509 Started adding image support. 2014-10-21 14:31:44 -04:00
Pietro Gagliardi ae122b892d More TODOs. 2014-10-21 12:48:32 -04:00
Pietro Gagliardi ef64417fb3 More TODOs. 2014-10-21 12:45:29 -04:00
Pietro Gagliardi 63df11929a Started the work for horizontal scrolling. 2014-10-21 12:13:26 -04:00
Pietro Gagliardi 2fb6254420 Added a second column, drew stuff in it, and assorted other changes. 2014-10-21 11:52:31 -04:00
Pietro Gagliardi 9d951dc732 Removed a bunch of flicker from header resizing. 2014-10-21 09:18:08 -04:00
Pietro Gagliardi 604a07f6e7 Implemented live column size changing. 2014-10-21 00:29:50 -04:00
Pietro Gagliardi c9783c5b15 Implemented text cell drawing. 2014-10-20 23:04:27 -04:00
Pietro Gagliardi 0dd4a07456 Fixed click to select for the header bar. 2014-10-20 22:35:37 -04:00
Pietro Gagliardi b4695182de Reimplemented header scrolling. 2014-10-20 22:31:33 -04:00
Pietro Gagliardi 0437ecd403 Undid all the scrolling muckery. Going to need to figure this out for real... 2014-10-20 22:04:24 -04:00
Pietro Gagliardi c4a2bdc2a6 More header bar stuff. 2014-10-20 20:04:23 -04:00
Pietro Gagliardi 424e05efa1 Tried to set up the viewport for the header area. Drawing still not done. 2014-10-20 19:52:39 -04:00
Pietro Gagliardi 3385761294 More TODOs. 2014-10-20 16:08:56 -04:00