Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*****************************************************************************************************************
FILENAME: DiskDisp.hpp
COPYRIGHT� 2001 Microsoft Corporation and Executive Software International, Inc.
*/
#ifndef _DISKDISP_H
#define _DISKDISP_H
#include "windows.h"
#include "tchar.h"
#define BLACK 0
#define RED 1
#define GREEN 2
#define YELLOW 3
#define BLUE 4
#define PURPLE 5
#define LIGHTBLUE 6
#define WHITE 7
#define LIGHTGRAY 8
#define GRAPHIC_WELL_HEIGHT 20
#define SPACER_HEIGHT 10
#define INDENTED_BORDER 1
#define RAISED_BORDER 2
#define SystemFileColor 0
#define PageFileColor 1
#define FragmentColor 2
#define UsedSpaceColor 3
#define FreeSpaceColor 4
#define DirectoryColor 5
#define MftZoneFreeSpaceColor 6
#define NUM_COLORS 7
/*****************************************************************************************************************
m_hCurrentPen - The pen selected into the DC last time DrawLine was called (used so we don't keep reselecting the same pen into the same DC). m_hCurrentBrush - The brush last selected. m_PenArray - An array of pens of different colors that we use to draw the lines. m_BrushArray - An array of brushes we also use to draw the lines. m_ColorArray - An array of colors for our lines. m_Clusters - The number of clusters on this drive. m_NumLines - How many lines we have in m_LineArray. m_LineArray - The array of bytes that store the color code for each line to display.
INPUT + OUTPUT: hInstance - Passed in value for m_hInst. InClusters - Passed in value for m_Clusters. xInMax - Passed in value for m_xMax. yInMax - Passed in value for m_yMax. DiskSize - Passed in value for m_DiskMegs. cInDrive - Passed in value for cDrive.
RETURN: None. */ class DiskDisplay { private: RECT m_Rect; // rectangle that bounds the entire graphics area
int m_NumGraphicsRows; // number of graphics wells (calculated)
int m_SpacerHeight; // space between graphics wells
int m_GraphicWellHeight; // calculated height of graphic wells
int m_GraphicWellWidth; // width of wells (usually the rectangle width)
int m_NumLines; // number of lines (stripes) in the display (includes all graphic wells)
char * m_LineArray; // array of lines - stores the colors
HPEN * m_PenArray; // array of pens
HBRUSH * m_BrushArray; // array of brushes
int * m_ColorArray; // array of colors of the lines
HPEN m_hCurrentPen; // set to the current pen
HBRUSH m_hCurrentBrush; // set to the current brush
TCHAR m_Label[MAX_PATH * 2]; BOOL m_bReadyToDraw; BOOL m_bStripeMftZone;
public: DiskDisplay::DiskDisplay(); ~DiskDisplay(); DiskDisplay& DiskDisplay::operator=(DiskDisplay&); void SetOutputArea(RECT rect, BOOL isSingleRow=TRUE, UINT spacerHeight = SPACER_HEIGHT); void ChangeLineColor(int, int); void SetNewLineColor(int, int); void StripeMftZoneFreeSpace(BOOL); void DrawLinesInHDC(HDC); inline void DiskDisplay::DrawLine(HDC, char, int, int, int); int GetLineCount() {return m_NumLines;} void SetLineArray(char*, int); void SetReadyToDraw(BOOL); void SetDiskSize(int inClusters, int inDiskMegs); void UpdateOutputDimensions(); void DeleteAllData(); BOOL NoGraphicsMemory() {return (m_LineArray == NULL || m_PenArray == NULL || m_ColorArray == NULL || m_BrushArray == NULL);} void SetLabel(PTCHAR InLabel);
};
#endif // #define _DISKDISP_H
|