aboutsummaryrefslogtreecommitdiff
path: root/c/main.cpp
AgeCommit message (Collapse)Author
2022-08-10Improve structure.John Ankarström
2022-08-09Add eb.el.John Ankarström
Emacs is not a great IDE out-of-the-box, but it is very flexible -- and in many ways a lot more transparent than most normal IDEs.
2022-08-09Add WithNextWindow function.John Ankarström
I'm not sure if this clarifies or complicates the control flow. My hope is the former.
2022-08-07Add showtodo script.John Ankarström
2022-08-07Add Strcpy.John Ankarström
2022-08-07Simplify WaitFor.John Ankarström
2022-08-07Use mark.John Ankarström
2022-08-06Add const.John Ankarström
2022-08-06Update cached system metrics on DPI change.John Ankarström
2022-08-06Minor changes.John Ankarström
2022-08-06Use typedefs when interacting with Win32 API.John Ankarström
It's not like they're ever going to change the definition of WORD (knock on wood) -- but I guess it's proper to use them as if their definitions might change.
2022-08-05Rename Dragger functions.John Ankarström
2022-08-04Use C++ casts, nullptr.John Ankarström
2022-08-04Clean up.John Ankarström
2022-08-04Add comments.John Ankarström
2022-08-03Minor changes.John Ankarström
2022-08-03Use Pascal case for all functions.John Ankarström
2022-08-03Split common.h to util.h, wcharptr.h and win.h.John Ankarström
2022-08-03Minor improvements.John Ankarström
2022-08-03Clean up Dragger.John Ankarström
2022-08-03Load uxtheme dynamically.John Ankarström
In case it is not supported. If I am not mistaken, SWI-Prolog supports Windows 2000, so there is no reason why Episode Browser shouldn't.
2022-08-02Improve wstring_owner, rename to wchar_ptr.John Ankarström
The user-defined conversion function makes the interface a lot simpler AND safer.
2022-08-02Replace maybe_make.John Ankarström
It seems unnecessary to throw exceptions when simply checking whether a library exists.
2022-08-02Remember data list view height across sessions.John Ankarström
2022-08-02Implement draggable split.John Ankarström
Next step is to allow a double click to reset the split to be automatically resized.
2022-07-31Make WsoFromSz and WsoCopy static member functions of wstring_owner.John Ankarström
2022-07-31Limit use of Hungarian notation.John Ankarström
I don't hate Hungarian notation. It has some very nice qualities. But it also adds a lot of typing. That said, not using it feels a bit... unsafe. I might go back on this decision. We'll see.
2022-07-31Simplify exception handling.John Ankarström
2022-07-30Simplify EpisodeListView::UpdateItem, remove m_lviFocus.John Ankarström
2022-07-30Show dynamic status bar tips.John Ankarström
The difference in speed seems to be extremely minimal: a few microseconds.
2022-07-30Add wstring_owner, replacing std::wstring.John Ankarström
std::basic_string is nice, but it is not very ergonomic if everything you really need is to automatically free C strings at end of scope. I suppose I could have used std::unique_ptr for this, but I suspect the ergonomics would be worse.
2022-07-30Formatting.John Ankarström
This style is more compact and quicker to read once you know what the first two member in LVITEM are (mask and iItem).
2022-07-29Add ListView::FindNextItem.John Ankarström
This makes it much more ergonomic and less error-prone to look up list view items.
2022-07-29Use swprintf_s instead of string streams.John Ankarström
I find it much simpler. It is very safe, as wszf only accepts fixed-size arrays. There is, of course, the chance that swprintf_s fails and writes nothing into the array. This can be handled by the caller, if desired.
2022-07-28Refactor thread/timer.John Ankarström
2022-07-27Fix typo.John Ankarström
2022-07-27Fix status bar help message.John Ankarström
The string arrays are static.
2022-07-27Change WM_MENUSELECT handling.John Ankarström
This has two benefits: 1. The for loop is avoided. 2. It is shorter. The drawback is that it is a bit opaque. The order of the array elements still matter, but now it is coupled to what is declared in resource.h, a completely separate file. This makes it harder to change resource.h.
2022-07-26Rewrite WM_MENUSELECT handling.John Ankarström
2022-07-26Use 's' instead of 'str' for as prefix for managed strings.John Ankarström
2022-07-26Remove ANSI compatibility.John Ankarström
Even though it is a fun challange in many ways, I think that, realistically, it is probably not worth the complexity. The Prolog backend isn't ANSI-compatible either.
2022-07-26Improve Win32Error, library handling code.John Ankarström
2022-07-25Move menu command processing to separate functions.John Ankarström
2022-07-25Reorganize resource IDs, message handling.John Ankarström
The resource IDs have been changed such that * the first (least significant) half byte represents the "group", * the second half byte represents the "subgroup", and * the third and fourth half bytes uniquely identify the resource within the group. Combined with the use of a few helper macros, this makes the message handling code a lot simpler.
2022-07-25Show menu item info in status bar.John Ankarström
2022-07-24Update layout on theme change.John Ankarström
2022-07-24Fix PL_get_tchars.John Ankarström
See c6cd2f1.
2022-07-24Add const.John Ankarström
2022-07-24Rename g_hFocus to g_hWndFocus.John Ankarström
2022-07-24Improve window layout.John Ankarström
This reverts much of 97f0a27. 1. It turns out not to be a good idea to resize the list view columns based on the list view window's own rectangle, as it will change depending on whether a scrollbar is visible. The problem is that resizing the columns may add a horizontal scrollbar -- which in turn may add a vertical scrollbar. 2. The WS_EX_CLIENTEDGE style does not look very good in "modern" (non-classic) themes. In 97f0a27, I tried solving this by extending the dimensions of the child windows such that their edges were hidden. However, this type of overlapping causes problems with the status bar. My new solution is to instead *reduce* the child windows' dimensions. This achieves a visual impression similar to the thicker (more well-designed) edges of the "classically themed" list view control. To make it look even better, the main window background is changed from COLOR_WINDOWFRAME (white) to COLOR_WINDOW (light gray).