I'll post the long todo list i made for MrTopom. If nobody is interested in these features, MrToppom could save his time for other things so some comments would be nice.
Greets, Alex
- New window command
This could be useful, if one wants to compare different profiling sessions, you can open for example the pocc.prf and you have the possability to choose the profiling date and time in the browser window.
- Search
Could possibly be implemented through the webbrowser functions. Have a look at the end of webbrowser.c, there are some small functions i added which use the builtin webbrowser features to do various tasks. One needs to find the right OLE ID (OLECMDID_*) in the PSDK and add a function and menus for it. Useful if one is interested in a specific function.
- Statusbar
The statusbar has no useful implementation yet. To enhance it one could process the WM_MENUSELECT message while hovering the menus to display additional information or some status messages while the prf logfile is parsed.
- MRU list
A short list in the file menu, to access the recently opened prf files in quick way.
- Owner drawn button
The owner drawn button has some problems getting the correct font on some systems and then uses the system default font which looks quite ugly (see pic). This only happens with the themed version, you if rightclick on the prfview.exe and go to compatibility and disable the visual designs, you can check how the button would look like on Win98 and Win2000. The code could also be cleaned up by removing my function table to the uxtheme.dll and use delayed loading of uxtheme.dll instead. If the button was fixed it could be released as a seperate example in the forum for other users because many of them want to have icons on their buttons to enhance their user interface.
- Stringtables
The code has the strings for errors and messages directly in the code, putting them in stringtable resources instead would be more maintainable and offer the possability to add more languages.
- Addin for Pelles C IDE
The tool could be directly accessable through a button in the IDE, as far as i know, one can parse the current project file (ppj) and could get, how the current binary is named and replace the extension with prf to see, if there exists a profiler log. If it does, open and show it, if not offer the possability to create a profile build. Look at my addins dbgrelprf and dbgrelprf ANSI/UNICODE to get a first impression.
- Unicode version
Not that important but could be useful with path handling. Currently PRF View is limited in handling paths with MAX_PATH chars (260). I suppose it is possible to support longer pathnames with more than 32000 chars through unicode but i have no idea where to start with this.
- Template library and support
The template library should be a generic bunch of javascript functions in stdlib.js which would be useful, if the users want to modify the standard layout and how the logs are displayed. The users could modify the colors of the bars and so on. Something like SetFirstBarColor(); SetSecondBarColor() and so on. The current layout is just a quick hack from me to test funtionality of the parser. I could write this for you if you like or we could do it together, this is only javascript and html programming.
- More flexible way with generating the prf.js
Currently the data from the Pelles C profiler logs is written to the templates directory as prf.js, this could lead to problems if one runs more instances of the program with different opened profiler logs because the prf.js would be overwritten each time opening another log.
- Disable browser context menu
When rightclicking in the browser window of PRF View there pops up the standard menu from internet explorer, just a cosmetic problem but it would be nice if this menu is disabled or maybe can be replaced with an own template selection menu.
- Help contents with template writing tutorial
The help is currently not very helpful. Needs to be written, i think this can wait until the PRF View project progresses with more features.
- Better error checking
One never knows, in the current project state i have experienced no crashes so it is maybe sufficient.