www.pudn.com > StyleToolkit_demo_src.zip > Border.h
// Border.h: interface for the Border class.
//
// Author: Darren Sessions
//
//
// Description:
// Border Draws or Fills rounded rectangles for GDI+. It was implemented
// to overcome the asymmetric issues associated with GDI+ round rectangles
//
// History
// Version 1.0 - 2008 June 24
// - Initial public release
//
// License:
// This software is released under the Code Project Open License (CPOL),
// which may be found here: http://www.codeproject.com/info/eula.aspx
// You are free to use this software in any way you like, except that you
// may not sell this source code.
//
// This software is provided "as is" with no expressed or implied warranty.
// I accept no liability for any damage or loss of business that this
// software may cause.
//
///////////////////////////////////////////////////////////////////////////////
#pragma once
#include "StyleEnum.h"
class Border
{
public:
Border();
virtual ~Border();
// base methods
void GetPath(GraphicsPath *pPath, Rect r);
void Draw(Graphics* pGraphics, Rect r, Color ulclr, Color brclr, int width);
// round rectangle methods
void GetRoundRectPath(GraphicsPath *pPath, Rect r);
void FillRoundRect(Graphics* pGraphics, Rect r, Color color, int radius);
void FillRoundRect(Graphics* pGraphics, Brush* pBrush, Rect r, Color border, int radius);
void DrawRoundRect(Graphics* pGraphics, Rect r, Color color, int width);
// rectangle methods
void GetRectPath(GraphicsPath *pPath, Rect r);
void DrawRect(Graphics* pGraphics, Rect r, Color ulclr, Color brclr, int width);
// clip methods
void SetBorderClip(Graphics* pGraphics, Rect rc, CombineMode = CombineModeReplace);
public:
Color ulclr; // border color or upper left color
Color brclr; // bottom right color
int width; // width of border
int radius; // radius of border
int shape; // border style
};