Add support for custom columns
commiteb9f5a001461b7950d8a7542720f6b7e2f2ae4da
authorKirill <kirillathome@gmail.com>
Tue, 10 Mar 2009 03:07:57 +0000 (9 23:07 -0400)
committerKirill <kirillathome@gmail.com>
Tue, 10 Mar 2009 03:07:57 +0000 (9 23:07 -0400)
treedab8dd38775513444495711d354074bc049ab563
parent22bfec37645b909cad28929c65ffdb0ea0aab81f
Add support for custom columns

Warning: custom columns are available in up to Windows XP only.

The implementation is pretty much empty, but provides a structure to add
various custom columns without worrying about the Shell Extensibility glue.

Basically, it implements IColumnProvider which will make a Git Status
column available in any folder that is a repo. To utilize an existing
column, e.g. Author or Keywords, one would change CHEETAH_FMTID and
CHEETAH_STATUS_PID to her liking. The advantage: the same info is available
in the Details pane of the Folder Tasks. The disadvantage: for some file
the info may be overwritten by other column providers (although this has
not been seen yet).

Please, don't put heavy processing into initialize_columns or
get_column_info because they're called way more often than really needed.
For example, initialize_columns was called *multiple* times on the same
folder from different instances of the extension (i.e. no in-memory
caching).

Two defines are missing from mingw's headers and are added directly to
the columns.c where they're used.
columns.c [new file with mode: 0644]
columns.h [new file with mode: 0644]
ext.c
ext.h
factory.c
menuengine.h