I have plenty of experience with GUI design, but zero using C++ or the library OXC uses. If you can implement the GUI, then that would spare me from having to learn it (it would save me a lot of time) hehe. Sure, I can implement just the backend.
1/ Entry point
I would make it accessible from both the Global Research Overview, and from the base's Current Research screen. I'd imagine the most common use case would be where the player enters the base research and tries to decide which project to research next, but he forgot what research that base was focusing on, so he wants to check what were the last few items he researched in that base. Therefore, it would make sense if this window was accessible both from:
Global Research Overview - default filter = "Everything"
Base Research Overview - default filter = "Current Base"
2/ "History GUI"
Would "Research Diary" sound better? Or just "Diary"?
I think table should have 3 visible columns (Topic name, Source, Completion date).
Status bar (detail text) for cases where the topic or source don't fit the line. Alternatively, use word wrap and multiline rows (I know that's used in Manufacturing).
The Source column shows "{0}: {1}", where {0} is localized sourceType and {1} is localized sourceName:
sourceType=0:
Base: MyResearchBase1sourceType=1:
Free from: ResearchTopicWhereGetOneFreeWasThisTopicsourceType=2:
Free after: ResearchTopicThatUnlockedThisTopicOrWasLastRequiredTopicsourceType=3
Mission: Bandit CavessourceType=4
Event: Location: ArcticCompletion Date should be formatted as YYYY-MM-DD
Filter combobox should be populated with:
- "Everything"
- Time periods: "Today", "Last 7 days", "Last 30 days", "Last 365 days"
- "Current base"
- Other bases: "Base: MyBase1", "Base: MyResearchBase", "Base: MyPrisonerBase" (only show bases that completed something)
- Other sourceType's: "From mission", "From event" (only show if any such types exist)
Quick Filter would also be useful, yeah. Have it search all the table cells. e.g. searching for "2601-06", would return all the rows with this date.