CornerBin Code
Brought to you by:
beemfx
File | Date | Author | Commit |
---|---|---|---|
CornerBin | 2017-11-04 |
![]() |
[7b8856] [CornerBin] Don't show the warning when running... |
Dev Content | 2012-02-19 |
![]() |
[8efb37] Introduction of code base. |
Installer | 2017-11-04 |
![]() |
[2343f2] [CornerBin] Change the installer to have the ve... |
WebSite | 2012-05-28 |
![]() |
[8dc67d] Adding website. |
dist | 2017-11-04 |
![]() |
[7b8856] [CornerBin] Don't show the warning when running... |
.gitignore | 2017-11-04 |
![]() |
[7b8856] [CornerBin] Don't show the warning when running... |
CornerBin.sln | 2017-11-04 |
![]() |
[7b8856] [CornerBin] Don't show the warning when running... |
ReadMe.txt | 2012-05-28 |
![]() |
[2f7961] Changed the build output environment variable t... |
================================================================================ CornerBin (C) 2011 Beem Software Open Source ================================================================================ Building -------- Because the CornerBin executable uses MFC you will need a Professional version of Visual Studio (MFC is not included with Visual Studio Express Editions). Also, the game uses the environment variable BEEMOUT to determine where the build output is set, so this should be set (go to advanced system settings ->environment variables). Something to the effect of set BEEMOUT=D:\CornerBinOut The Release build will copy the executable back to the dist directory. ================================================================================ MICROSOFT FOUNDATION CLASS LIBRARY : CornerBin Project Overview =============================================================================== I'm not really sure what to say about the source code. It was developed with Microsoft Visual Studio 2010. It is a C++ project built upon MFC. For that reason the code may be somewhat difficult to read for those note familiar with that particular platform. I'm also not sure how easy it will be to compile this with some other verison of Visual Studio. I've tried to layout the base code as logically as possible. The program generally works like this: There is a main window, for which most of the code was generated by VS. It compromises teh MainFrm and ChildView classes. This window is never actually seen by the user, and exists only to hande messages passed to the system tray icon. The icon changes when the status of the recycle bin changes. This current happens because the main window (which is never seen) uses a WM_TIMER message that runs every so often (the value is actually set in the registry to 1000 milli- seconds, with no current option to change it other than directly editing the registry). Whent he timer message appears the program detects if the status of the RB has changed, and if it has, it changes the icon. This may not be the best method for this as it means that WM_TIMER messages keep getting processed, but it doesn't seem to have much effect on resource usage when it is only 1 second. The CBTrayIcon class manages the system tray icon. The CCBSettings class keeps track of the user's settings, obtaining the settings from the Windows Registry, and saving the settings and so forth. The DlgSettings class is the code associated with the settings dialog box. The CornerBinApp class is where most things are handled. Anyone familiar with MFC should get a pretty good idea of what is going on by looking through the classes. Obviously since I used app-wizards to get started there is a lot of extra code that probably could get cleaned up (for example the ChildView class is basically useless), but I haven't bothered to because it really doesn't have any effect on performance, just possibly compile size. Overall I wanted the experience to be as easy as possible, but with a lot of customizability. I'm not really sure what else to say. I'm pretty happy with how the project turned out.