X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c861501a451503b31c075ccb59d16b0ae01e99..bcf7614cf3a2329e484fd8f437b3a8b521f2b94b:/include/wx/pen.h diff --git a/include/wx/pen.h b/include/wx/pen.h index f039ae06d4..341530ef16 100644 --- a/include/wx/pen.h +++ b/include/wx/pen.h @@ -12,7 +12,134 @@ #ifndef _WX_PEN_H_BASE_ #define _WX_PEN_H_BASE_ -#include "wx/defs.h" +#include "wx/gdiobj.h" +#include "wx/gdicmn.h" + +#if WXWIN_COMPATIBILITY_2_8 +#include "wx/brush.h" // needed for some deprecated declarations +#endif + +enum wxPenStyle +{ +#if WXWIN_COMPATIBILITY_2_8 + /* start of deprecated values */ + /* wxSOLID, wxTRANSPARENT, wxSTIPPLE are already defined in wxBrushStyle */ + wxDOT = 101, + wxLONG_DASH = 102, + wxSHORT_DASH = 103, + wxDOT_DASH = 104, + wxUSER_DASH = 105, + /* end of deprecated values */ + + wxPENSTYLE_SOLID = wxSOLID, + wxPENSTYLE_DOT = wxDOT, + wxPENSTYLE_LONG_DASH = wxLONG_DASH, + wxPENSTYLE_SHORT_DASH = wxSHORT_DASH, + wxPENSTYLE_DOT_DASH = wxDOT_DASH, + wxPENSTYLE_USER_DASH = wxUSER_DASH, + + wxPENSTYLE_TRANSPARENT = wxTRANSPARENT, + + wxPENSTYLE_STIPPLE_MASK_OPAQUE = wxSTIPPLE_MASK_OPAQUE, + wxPENSTYLE_STIPPLE_MASK = wxSTIPPLE_MASK, + wxPENSTYLE_STIPPLE = wxSTIPPLE, + + wxPENSTYLE_BDIAGONAL_HATCH = wxBDIAGONAL_HATCH, + wxPENSTYLE_CROSSDIAG_HATCH = wxCROSSDIAG_HATCH, + wxPENSTYLE_FDIAGONAL_HATCH = wxFDIAGONAL_HATCH, + wxPENSTYLE_CROSS_HATCH = wxCROSS_HATCH, + wxPENSTYLE_HORIZONTAL_HATCH = wxHORIZONTAL_HATCH, + wxPENSTYLE_VERTICAL_HATCH = wxVERTICAL_HATCH, + + wxPENSTYLE_FIRST_HATCH = wxFIRST_HATCH, + wxPENSTYLE_LAST_HATCH = wxLAST_HATCH, + + wxPENSTYLE_MAX +#else + wxPENSTYLE_SOLID, + wxPENSTYLE_DOT, + wxPENSTYLE_LONG_DASH, + wxPENSTYLE_SHORT_DASH, + wxPENSTYLE_DOT_DASH, + wxPENSTYLE_USER_DASH, + + wxPENSTYLE_TRANSPARENT, + + /* Pen Stippling. */ + wxPENSTYLE_STIPPLE_MASK_OPAQUE, + /* mask is used for blitting monochrome using text fore and back ground colors */ + + wxPENSTYLE_STIPPLE_MASK, + /* mask is used for masking areas in the stipple bitmap (TO DO) */ + + wxPENSTYLE_STIPPLE, + /* drawn with a Pen, and without any Brush -- and it can be stippled. */ + + /* In wxWidgets < 2.6 use WX_HATCH macro */ + /* to verify these wx*_HATCH are in style */ + /* of wxBrush. In wxWidgets >= 2.6 use */ + /* wxBrush::IsHatch() instead. */ + wxPENSTYLE_BDIAGONAL_HATCH, + wxPENSTYLE_CROSSDIAG_HATCH, + wxPENSTYLE_FDIAGONAL_HATCH, + wxPENSTYLE_CROSS_HATCH, + wxPENSTYLE_HORIZONTAL_HATCH, + wxPENSTYLE_VERTICAL_HATCH, + + wxPENSTYLE_FIRST_HATCH = wxPENSTYLE_BDIAGONAL_HATCH, + wxPENSTYLE_LAST_HATCH = wxPENSTYLE_VERTICAL_HATCH, + + wxPENSTYLE_MAX +#endif +}; + +enum wxPenJoin +{ + wxJOIN_INVALID = -1, + + wxJOIN_BEVEL = 120, + wxJOIN_MITER, + wxJOIN_ROUND, +}; + +enum wxPenCap +{ + wxCAP_INVALID = -1, + + wxCAP_ROUND = 130, + wxCAP_PROJECTING, + wxCAP_BUTT +}; + + +class WXDLLEXPORT wxPenBase : public wxGDIObject +{ +public: + virtual ~wxPenBase() { } + + virtual void SetColour(const wxColour& col) = 0; + virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) = 0; + + virtual void SetWidth(int width) = 0; + virtual void SetStyle(wxPenStyle style) = 0; + virtual void SetStipple(const wxBitmap& stipple) = 0; + virtual void SetDashes(int nb_dashes, const wxDash *dash) = 0; + virtual void SetJoin(wxPenJoin join) = 0; + virtual void SetCap(wxPenCap cap) = 0; + + virtual wxColour& GetColour() const = 0; + virtual wxBitmap *GetStipple() const = 0; + virtual wxPenStyle GetStyle() const = 0; + virtual wxPenJoin GetJoin() const = 0; + virtual wxPenCap GetCap() const = 0; + virtual int GetWidth() const = 0; + virtual int GetDashes(wxDash **ptr) const = 0; + +#if WXWIN_COMPATIBILITY_2_8 + void SetStyle(wxBrushStyle style) + { SetStyle((wxPenStyle)style); } +#endif +}; #if defined(__WXPALMOS__) #include "wx/palmos/pen.h" @@ -36,5 +163,17 @@ #include "wx/os2/pen.h" #endif +class WXDLLIMPEXP_CORE wxPenList: public wxGDIObjListBase +{ +public: + wxPen *FindOrCreatePen(const wxColour& colour, int width, wxPenStyle style); +#if WXWIN_COMPATIBILITY_2_6 + wxDEPRECATED( void AddPen(wxPen*) ); + wxDEPRECATED( void RemovePen(wxPen*) ); +#endif +}; + +extern WXDLLEXPORT_DATA(wxPenList*) wxThePenList; + #endif // _WX_PEN_H_BASE_