aboutsummaryrefslogtreecommitdiff
path: root/c/listview.cpp
AgeCommit message (Collapse)Author
2022-07-17Make ListView hWnd public.John Ankarström
A getter offers encapsulation, but it is also less transparent in a sense. Thinking of ListView as a struct, it is natural to expose hWnd as a public member variable.
2022-07-17Update type names and variable prefixes.John Ankarström
2022-07-17Name function arguments in headers.John Ankarström
This is obviously a lot less obtuse.
2022-07-17Add const to pointers, update spacing.John Ankarström
It seems that "right-spaced" pointers are more widely used among C++ programmers.
2022-07-17Add const to places.John Ankarström
Note that I did NOT add const to non-pointer/non-reference arguments in function declarations (without a following definition), as they do not mean anything there.
2022-07-16Formatting.John Ankarström
2022-07-16Add m_hWndParent to ListView.John Ankarström
This avoids g_hWnd.
2022-07-15Split defs.h into separate header files.John Ankarström
This is feasible now that the makedeps script exists to automatically manage build dependencies (see 6034fe2, d00f8b3).
2022-07-15Change declaration style.John Ankarström
2022-07-14Code style.John Ankarström
2022-07-14Pass WM_DESTROY to ListView::WndProc.John Ankarström
On WM_DESTROY, the "this" property was removed before it could be retrieved and dereferenced, making it impossible for WM_DESTROY messages to be passed to the WndProc method.
2022-07-14Minor formal changes.John Ankarström
Height(DLVSIKEY) was incorrect. The argument to Height is supposed to be a boolean value, in this case false. It happened to work because DLVSIKEY is 0 (because Key is the 0th column in the data list view).
2022-07-14Initialize global variables in the right place.John Ankarström
The rules for what messages are sent at window creation -- and in which order -- are neither intuitive or clear. WM_CREATE can NOT be relied upon to initialize global state required by handlers of other messages (such as WM_GETMINMAXINFO, which seems to be sent before WM_CREATE). Thus, the better solution is to initialize everything using a CBT hook before the window procedure is even run. Because CBTProc creates (child): windows of its own, though, one must be careful to only run the initialization once, which is done by checking g_hWnd.
2022-07-11Improve ElvSort.John Ankarström
2022-07-11Refactor, adjust minimum window size.John Ankarström
2022-07-10Convert to C++.John Ankarström
I already hit upon some object-oriented programming patterns in *listview.c, so I felt that it would be natural to use this as an opportunity to learn C++.