Menu

Tree [2343f2] master /
 History

HTTPS access


File Date Author Commit
 CornerBin 2017-11-04 Jack Everett Jack Everett [7b8856] [CornerBin] Don't show the warning when running...
 Dev Content 2012-02-19 Blaine Myers Blaine Myers [8efb37] Introduction of code base.
 Installer 2017-11-04 Jack Everett Jack Everett [2343f2] [CornerBin] Change the installer to have the ve...
 WebSite 2012-05-28 Blaine Myers Blaine Myers [8dc67d] Adding website.
 dist 2017-11-04 Jack Everett Jack Everett [7b8856] [CornerBin] Don't show the warning when running...
 .gitignore 2017-11-04 Jack Everett Jack Everett [7b8856] [CornerBin] Don't show the warning when running...
 CornerBin.sln 2017-11-04 Jack Everett Jack Everett [7b8856] [CornerBin] Don't show the warning when running...
 ReadMe.txt 2012-05-28 Blaine Myers Blaine Myers [2f7961] Changed the build output environment variable t...

Read Me

================================================================================
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.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.