I think this is a great idea!
Here are my suggestions for this utility.
* As for holding the winkey down to keep the cheatsheet up, I agree it is a bad idea. Once the hotkey is
pressed the cheatsheet should stay on-screen until the ESC key is pressed. This is a standard method
used throughout the windows GUI.
* While reading this thread I too thought that .ini files would be a good way to keep the hotkey info.. But on
further reflection I agree with mouser & feel it would not be flexible enough. Besides, "Cheat Sheeter" (CS)
doesn't need to know what the hotkeys of an application are, nor what they stand for. It just needs to
display them.
* A tabbed interface at 1st sounds like the way to go, but what happens when we get 50 or 100 cheat sheets?
A tab for each of them is implausible at best. A drop-down list would be a better way to go. It can be
dynamically updated & yet take up minimal space on the desktop/window that CS brings up. It can also be
dynamically resorted so that CS can put what it thinks is the correct cheat sheet as the default entry & the
next most likely entry as the 1st item in the list & so on.
* Having the application oriented cheat sheet come up when the hotkey is pressed based on the active window
title is a fine idea. But I have seen programs that don't leave their name in the title. So some sort of heuristic
would be needed to try and figure out what the program is. If CS can't figure out what the program is, it could
use a default cheat sheet of general windoze hotkeys.
* Speaking of general windoze hotkeys. These could be accessed from a button on the CS window if needed.
* The capability of transparency for the display is a fabulous one. But it would also need to be a click through
interface or at least an interface that would allow the user to use the listed hotkeys in the program while the
CS window is being displayed. As I wrote the previous sentence it struck me that the ESC key concept isn't
going to work. But a button or 2nd hotkey could be used to dismiss the CS window. But the 2nd hotkey idea
could possibly conflict with a hotkey in the application. So a button that is clickable on the CS window would
be the best idea.
* I don't think that the ability to edit the cheat sheets should be available. This can be done separately if the
user has the knowledge and capability to do it. It just complicates our program, and there are a myriad of
HTML editors that have been developed for years and can obviously do a better job than we can given the
short time-frame I believe is being thought of here.
From my musings above, my summary of what the interface should look like are:
* A hotkey invoked window that displays an application's cheat sheet in a user definable transparency level.
* On the window would be 3 buttons and a drop down list. The buttons are 1) Show general windows hotkeys,
2) Hide "Cheat Sheeter" window, and 3) a configuration button. And the drop-down list of all available cheat
sheets that can be displayed by picking on an item in the list.
* The drop-down list would be sorted by a best to least matched hueristic matching on the title of the active
window. The default item would be what CS would think is the best fit to the application.
* The CS window could be user configurable to be an auto hiding bar similar to the task bar, or totally hidable
by just being a popup window.
* Configuration of the program would be done by a menu item accessed from right clicking on an icon in the
system tray or clicking on the button on the interface.
* The configuration dialog box would allow the user to change:
* the directory where the user is storing the HTML cheat sheets.
* the ability to hide to a task bar or a popup window.
* the ability to enable/disable a cheat sheet.
* the ability to define what the title for an application is for a particular cheat sheet.
* a button to allow saving of the configuration into the registry or a "cheatsheet.ini" file ( some of us don't like
programs that need to be installed or mess with the registry).
* a button that enables/disables the ability for CS to auto startup when windoze is booted up.
* a slider that would define the percentage of transparency the CS window will have when displayed.
* The format of the cheat sheets should be in HTML which would allow text formatting & graphics (including
animation if desired). The only downside to this would be that we would have to in essence build a browser
to do the job of displaying the cheat sheets.
Regards
Dragonrider