| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/univ/stdrend.h
 
- // Purpose:     wxStdRenderer class declaration
 
- // Author:      Vadim Zeitlin
 
- // Created:     2006-09-18
 
- // Copyright:   (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_UNIV_STDREND_H_
 
- #define _WX_UNIV_STDREND_H_
 
- #include "wx/univ/renderer.h"
 
- #include "wx/pen.h"
 
- class WXDLLIMPEXP_FWD_CORE wxColourScheme;
 
- // ----------------------------------------------------------------------------
 
- // wxStdRenderer: implements as much of wxRenderer API as possible generically
 
- // ----------------------------------------------------------------------------
 
- class wxStdRenderer : public wxRenderer
 
- {
 
- public:
 
-     // the renderer will use the given scheme, whose lifetime must be at least
 
-     // as long as of this object itself, to choose the colours for drawing
 
-     wxStdRenderer(const wxColourScheme *scheme);
 
-     virtual void DrawBackground(wxDC& dc,
 
-                                 const wxColour& col,
 
-                                 const wxRect& rect,
 
-                                 int flags = 0,
 
-                                 wxWindow *window = NULL);
 
-     virtual void DrawButtonSurface(wxDC& dc,
 
-                                    const wxColour& col,
 
-                                    const wxRect& rect,
 
-                                    int flags);
 
-     virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0);
 
-     virtual void DrawLabel(wxDC& dc,
 
-                            const wxString& label,
 
-                            const wxRect& rect,
 
-                            int flags = 0,
 
-                            int alignment = wxALIGN_LEFT | wxALIGN_TOP,
 
-                            int indexAccel = -1,
 
-                            wxRect *rectBounds = NULL);
 
-     virtual void DrawButtonLabel(wxDC& dc,
 
-                                  const wxString& label,
 
-                                  const wxBitmap& image,
 
-                                  const wxRect& rect,
 
-                                  int flags = 0,
 
-                                  int alignment = wxALIGN_LEFT | wxALIGN_TOP,
 
-                                  int indexAccel = -1,
 
-                                  wxRect *rectBounds = NULL);
 
-     virtual void DrawBorder(wxDC& dc,
 
-                             wxBorder border,
 
-                             const wxRect& rect,
 
-                             int flags = 0,
 
-                             wxRect *rectIn = NULL);
 
-     virtual void DrawTextBorder(wxDC& dc,
 
-                                 wxBorder border,
 
-                                 const wxRect& rect,
 
-                                 int flags = 0,
 
-                                 wxRect *rectIn = NULL);
 
-     virtual void DrawHorizontalLine(wxDC& dc,
 
-                                     wxCoord y, wxCoord x1, wxCoord x2);
 
-     virtual void DrawVerticalLine(wxDC& dc,
 
-                                   wxCoord x, wxCoord y1, wxCoord y2);
 
-     virtual void DrawFrame(wxDC& dc,
 
-                            const wxString& label,
 
-                            const wxRect& rect,
 
-                            int flags = 0,
 
-                            int alignment = wxALIGN_LEFT,
 
-                            int indexAccel = -1);
 
-     virtual void DrawItem(wxDC& dc,
 
-                           const wxString& label,
 
-                           const wxRect& rect,
 
-                           int flags = 0);
 
-     virtual void DrawCheckItem(wxDC& dc,
 
-                                const wxString& label,
 
-                                const wxBitmap& bitmap,
 
-                                const wxRect& rect,
 
-                                int flags = 0);
 
-     virtual void DrawCheckButton(wxDC& dc,
 
-                                  const wxString& label,
 
-                                  const wxBitmap& bitmap,
 
-                                  const wxRect& rect,
 
-                                  int flags = 0,
 
-                                  wxAlignment align = wxALIGN_LEFT,
 
-                                  int indexAccel = -1);
 
-     virtual void DrawRadioButton(wxDC& dc,
 
-                                  const wxString& label,
 
-                                  const wxBitmap& bitmap,
 
-                                  const wxRect& rect,
 
-                                  int flags = 0,
 
-                                  wxAlignment align = wxALIGN_LEFT,
 
-                                  int indexAccel = -1);
 
-     virtual void DrawScrollbarArrow(wxDC& dc,
 
-                                     wxDirection dir,
 
-                                     const wxRect& rect,
 
-                                     int flags = 0);
 
-     virtual void DrawScrollCorner(wxDC& dc,
 
-                                   const wxRect& rect);
 
- #if wxUSE_TEXTCTRL
 
-     virtual void DrawTextLine(wxDC& dc,
 
-                               const wxString& text,
 
-                               const wxRect& rect,
 
-                               int selStart = -1,
 
-                               int selEnd = -1,
 
-                               int flags = 0);
 
-     virtual void DrawLineWrapMark(wxDC& dc, const wxRect& rect);
 
-     virtual wxRect GetTextTotalArea(const wxTextCtrl *text,
 
-                                     const wxRect& rect) const;
 
-     virtual wxRect GetTextClientArea(const wxTextCtrl *text,
 
-                                      const wxRect& rect,
 
-                                      wxCoord *extraSpaceBeyond) const;
 
- #endif // wxUSE_TEXTCTRL
 
-     virtual wxRect GetBorderDimensions(wxBorder border) const;
 
-     virtual bool AreScrollbarsInsideBorder() const;
 
-     virtual void AdjustSize(wxSize *size, const wxWindow *window);
 
-     virtual wxCoord GetListboxItemHeight(wxCoord fontHeight);
 
- #if wxUSE_STATUSBAR
 
-     virtual void DrawStatusField(wxDC& dc,
 
-                                  const wxRect& rect,
 
-                                  const wxString& label,
 
-                                  int flags = 0, int style = 0);
 
-     virtual wxSize GetStatusBarBorders() const;
 
-     virtual wxCoord GetStatusBarBorderBetweenFields() const;
 
-     virtual wxSize GetStatusBarFieldMargins() const;
 
- #endif // wxUSE_STATUSBAR
 
-     virtual wxCoord GetCheckItemMargin() const { return 0; }
 
-     virtual void DrawFrameTitleBar(wxDC& dc,
 
-                                    const wxRect& rect,
 
-                                    const wxString& title,
 
-                                    const wxIcon& icon,
 
-                                    int flags,
 
-                                    int specialButton = 0,
 
-                                    int specialButtonFlag = 0);
 
-     virtual void DrawFrameBorder(wxDC& dc,
 
-                                  const wxRect& rect,
 
-                                  int flags);
 
-     virtual void DrawFrameBackground(wxDC& dc,
 
-                                      const wxRect& rect,
 
-                                      int flags);
 
-     virtual void DrawFrameTitle(wxDC& dc,
 
-                                 const wxRect& rect,
 
-                                 const wxString& title,
 
-                                 int flags);
 
-     virtual void DrawFrameIcon(wxDC& dc,
 
-                                const wxRect& rect,
 
-                                const wxIcon& icon,
 
-                                int flags);
 
-     virtual void DrawFrameButton(wxDC& dc,
 
-                                  wxCoord x, wxCoord y,
 
-                                  int button,
 
-                                  int flags = 0);
 
-     virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const;
 
-     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const;
 
-     virtual wxSize GetFrameMinSize(int flags) const;
 
-     virtual wxSize GetFrameIconSize() const;
 
-     virtual int HitTestFrame(const wxRect& rect,
 
-                              const wxPoint& pt,
 
-                              int flags = 0) const;
 
- protected:
 
-     // various constants
 
-     enum ArrowDirection
 
-     {
 
-         Arrow_Left,
 
-         Arrow_Right,
 
-         Arrow_Up,
 
-         Arrow_Down,
 
-         Arrow_Max
 
-     };
 
-     enum ArrowStyle
 
-     {
 
-         Arrow_Normal,
 
-         Arrow_Disabled,
 
-         Arrow_Pressed,
 
-         Arrow_Inverted,
 
-         Arrow_InvertedDisabled,
 
-         Arrow_StateMax
 
-     };
 
-     enum FrameButtonType
 
-     {
 
-         FrameButton_Close,
 
-         FrameButton_Minimize,
 
-         FrameButton_Maximize,
 
-         FrameButton_Restore,
 
-         FrameButton_Help,
 
-         FrameButton_Max
 
-     };
 
-     enum IndicatorType
 
-     {
 
-         IndicatorType_Check,
 
-         IndicatorType_Radio,
 
-         IndicatorType_MaxCtrl,
 
-         IndicatorType_Menu = IndicatorType_MaxCtrl,
 
-         IndicatorType_Max
 
-     };
 
-     enum IndicatorState
 
-     {
 
-         IndicatorState_Normal,
 
-         IndicatorState_Pressed, // this one is for check/radioboxes
 
-         IndicatorState_Disabled,
 
-         IndicatorState_MaxCtrl,
 
-         // the rest of the states are valid for menu items only
 
-         IndicatorState_Selected = IndicatorState_Pressed,
 
-         IndicatorState_SelectedDisabled = IndicatorState_MaxCtrl,
 
-         IndicatorState_MaxMenu
 
-     };
 
-     enum IndicatorStatus
 
-     {
 
-         IndicatorStatus_Checked,
 
-         IndicatorStatus_Unchecked,
 
-         IndicatorStatus_Undetermined,
 
-         IndicatorStatus_Max
 
-     };
 
-     // translate the appropriate bits in flags to the above enum elements
 
-     static void GetIndicatorsFromFlags(int flags,
 
-                                        IndicatorState& state,
 
-                                        IndicatorStatus& status);
 
-     // translate wxDirection to ArrowDirection
 
-     static ArrowDirection GetArrowDirection(wxDirection dir);
 
-     // fill the rectangle with a brush of given colour (must be valid)
 
-     void DrawSolidRect(wxDC& dc, const wxColour& col, const wxRect& rect);
 
-     // all the functions in this section adjust the rect parameter to
 
-     // correspond to the interiour of the drawn area
 
-         // draw complete rectangle
 
-     void DrawRect(wxDC& dc, wxRect *rect, const wxPen& pen);
 
-         // draw the rectange using the first pen for the left and top sides
 
-         // and the second one for the bottom and right ones
 
-     void DrawShadedRect(wxDC& dc, wxRect *rect,
 
-                         const wxPen& pen1, const wxPen& pen2);
 
-         // border drawing routines, may be overridden in the derived class
 
-     virtual void DrawRaisedBorder(wxDC& dc, wxRect *rect);
 
-     virtual void DrawSunkenBorder(wxDC& dc, wxRect *rect);
 
-     virtual void DrawAntiSunkenBorder(wxDC& dc, wxRect *rect);
 
-     virtual void DrawBoxBorder(wxDC& dc, wxRect *rect);
 
-     virtual void DrawStaticBorder(wxDC& dc, wxRect *rect);
 
-     virtual void DrawExtraBorder(wxDC& dc, wxRect *rect);
 
-     // draw the frame with non-empty label inside the given rectText
 
-     virtual void DrawFrameWithLabel(wxDC& dc,
 
-                                     const wxString& label,
 
-                                     const wxRect& rectFrame,
 
-                                     const wxRect& rectText,
 
-                                     int flags,
 
-                                     int alignment,
 
-                                     int indexAccel);
 
-     // draw the (static box) frame without the part corresponding to rectLabel
 
-     void DrawFrameWithoutLabel(wxDC& dc,
 
-                                const wxRect& rectFrame,
 
-                                const wxRect& rectLabel);
 
-     // draw the bitmap for a check item (which is by default the same as check
 
-     // box one but may be different)
 
-     virtual void DrawCheckItemBitmap(wxDC& dc,
 
-                                      const wxBitmap& bitmap,
 
-                                      const wxRect& rect,
 
-                                      int flags);
 
-     // common routine for drawing check and radio buttons
 
-     void DrawCheckOrRadioButton(wxDC& dc,
 
-                                 const wxString& label,
 
-                                 const wxBitmap& bitmap,
 
-                                 const wxRect& rect,
 
-                                 int flags,
 
-                                 wxAlignment align,
 
-                                 int indexAccel);
 
-     // return the check/radio bitmap for the given flags
 
-     virtual wxBitmap GetRadioBitmap(int flags) = 0;
 
-     virtual wxBitmap GetCheckBitmap(int flags) = 0;
 
-     // return the frame icon bitmap
 
-     virtual wxBitmap GetFrameButtonBitmap(FrameButtonType type) = 0;
 
-     // get the width of either normal or resizable frame border depending on
 
-     // whether flags contains wxTOPLEVEL_RESIZEABLE bit
 
-     //
 
-     // notice that these methods only make sense with standard border drawing
 
-     // code which uses the borders of the same width on all sides, this is why
 
-     // they are only present here and not in wxRenderer itself
 
-     virtual int GetFrameBorderWidth(int flags) const;
 
- #if wxUSE_TEXTCTRL
 
-     // return the width of the border around the text area in the text control
 
-     virtual int GetTextBorderWidth(const wxTextCtrl *text) const;
 
- #endif // wxUSE_TEXTCTRL
 
-     // GDI objects we often use
 
-     wxPen m_penBlack,
 
-           m_penDarkGrey,
 
-           m_penLightGrey,
 
-           m_penHighlight;
 
-     wxFont m_titlebarFont;
 
-     // the colours we use, they never change currently so we don't have to ever
 
-     // update m_penXXX objects above
 
-     const wxColourScheme * const m_scheme;
 
-     wxDECLARE_NO_COPY_CLASS(wxStdRenderer);
 
- };
 
- #endif // _WX_UNIV_STDREND_H_
 
 
  |