85 lines
1.6 KiB
C++
85 lines
1.6 KiB
C++
#ifndef _GDIPPEN_HPP
|
|
#define _GDIPPEN_HPP
|
|
|
|
class TestPenInterface : public TestConfigureInterface,
|
|
public TestDialogInterface
|
|
{
|
|
public:
|
|
// acquire brush object
|
|
virtual Pen* GetPen() { return pen; };
|
|
|
|
// output pen setup to File
|
|
virtual VOID AddToFile(OutputFile* outfile, INT id = 0) = 0;
|
|
|
|
~TestPenInterface()
|
|
{
|
|
delete pen;
|
|
}
|
|
|
|
protected:
|
|
// pointer to underlying GDI+ brush object
|
|
Pen *pen;
|
|
};
|
|
|
|
class TestPen : public TestPenInterface
|
|
{
|
|
public:
|
|
TestPen()
|
|
{
|
|
pen = NULL;
|
|
brush = NULL;
|
|
tempBrush = NULL;
|
|
}
|
|
|
|
// Configuration Interface
|
|
virtual BOOL ChangeSettings(HWND hwnd);
|
|
virtual VOID Initialize();
|
|
|
|
// Dialog Management Interface
|
|
virtual VOID InitDialog(HWND hwnd);
|
|
virtual BOOL SaveValues(HWND hwnd);
|
|
virtual BOOL ProcessDialog(HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam);
|
|
|
|
// output pen setup to File
|
|
virtual VOID AddToFile(OutputFile* outfile, INT id = 0);
|
|
|
|
virtual TestPen* Clone()
|
|
{
|
|
TestPen *newPen = new TestPen();
|
|
*newPen = *this; // bitwise copy
|
|
|
|
if (pen)
|
|
newPen->pen = pen->Clone();
|
|
|
|
if (brush)
|
|
newPen->brush = brush->Clone();
|
|
|
|
if (tempBrush)
|
|
newPen->tempBrush = tempBrush->Clone();
|
|
|
|
return newPen;
|
|
};
|
|
|
|
protected:
|
|
// helper routine to toggle enable/disable of brush
|
|
VOID EnableBrushFields(HWND hwnd, BOOL enable = TRUE);
|
|
|
|
private:
|
|
// tempBrush should be NULL unless we are changing settings
|
|
TestBrush *brush, *tempBrush;
|
|
INT brushSelect, tempBrushSelect;
|
|
BOOL useBrush;
|
|
|
|
ARGB argb;
|
|
REAL width;
|
|
INT startCap, endCap, dashCap;
|
|
INT lineJoin;
|
|
REAL miterLimit;
|
|
INT dashStyle;
|
|
};
|
|
|
|
#endif
|