📄 renderer.h
字号:
virtual void DrawStatusField(wxDC& dc, const wxRect& rect, const wxString& label, int flags = 0, int style = 0) = 0;#endif // wxUSE_STATUSBAR // draw complete frame/dialog titlebar virtual void DrawFrameTitleBar(wxDC& dc, const wxRect& rect, const wxString& title, const wxIcon& icon, int flags, int specialButton = 0, int specialButtonFlags = 0) = 0; // draw frame borders virtual void DrawFrameBorder(wxDC& dc, const wxRect& rect, int flags) = 0; // draw frame titlebar background virtual void DrawFrameBackground(wxDC& dc, const wxRect& rect, int flags) = 0; // draw frame title virtual void DrawFrameTitle(wxDC& dc, const wxRect& rect, const wxString& title, int flags) = 0; // draw frame icon virtual void DrawFrameIcon(wxDC& dc, const wxRect& rect, const wxIcon& icon, int flags) = 0; // draw frame buttons virtual void DrawFrameButton(wxDC& dc, wxCoord x, wxCoord y, int button, int flags = 0) = 0; // misc functions // --------------#if wxUSE_COMBOBOX // return the bitmaps to use for combobox button virtual void GetComboBitmaps(wxBitmap *bmpNormal, wxBitmap *bmpFocus, wxBitmap *bmpPressed, wxBitmap *bmpDisabled) = 0;#endif // wxUSE_COMBOBOX // geometry functions // ------------------ // get the dimensions of the border: rect.x/y contain the width/height of // the left/top side, width/heigh - of the right/bottom one virtual wxRect GetBorderDimensions(wxBorder border) const = 0; // the scrollbars may be drawn either inside the window border or outside // it - this function is used to decide how to draw them virtual bool AreScrollbarsInsideBorder() const = 0; // adjust the size of the control of the given class: for most controls, // this just takes into account the border, but for some (buttons, for // example) it is more complicated - the result being, in any case, that // the control looks "nice" if it uses the adjusted rectangle virtual void AdjustSize(wxSize *size, const wxWindow *window) = 0;#if wxUSE_SCROLLBAR // get the size of a scrollbar arrow virtual wxSize GetScrollbarArrowSize() const = 0;#endif // wxUSE_SCROLLBAR // get the height of a listbox item from the base font height virtual wxCoord GetListboxItemHeight(wxCoord fontHeight) = 0; // get the size of a checkbox/radio button bitmap virtual wxSize GetCheckBitmapSize() const = 0; virtual wxSize GetRadioBitmapSize() const = 0; virtual wxCoord GetCheckItemMargin() const = 0;#if wxUSE_TOOLBAR // get the standard size of a toolbar button and also return the size of // a toolbar separator in the provided pointer virtual wxSize GetToolBarButtonSize(wxCoord *separator) const = 0; // get the margins between/around the toolbar buttons virtual wxSize GetToolBarMargin() const = 0;#endif // wxUSE_TOOLBAR#if wxUSE_TEXTCTRL // convert between text rectangle and client rectangle for text controls: // the former is typicall smaller to leave margins around text virtual wxRect GetTextTotalArea(const wxTextCtrl *text, const wxRect& rectText) const = 0; // extra space is for line indicators virtual wxRect GetTextClientArea(const wxTextCtrl *text, const wxRect& rectTotal, wxCoord *extraSpaceBeyond) const = 0;#endif // wxUSE_TEXTCTRL#if wxUSE_NOTEBOOK // get the overhang of a selected tab virtual wxSize GetTabIndent() const = 0; // get the padding around the text in a tab virtual wxSize GetTabPadding() const = 0;#endif // wxUSE_NOTEBOOK#if wxUSE_SLIDER // get the default size of the slider in lesser dimension (i.e. height of a // horizontal slider or width of a vertical one) virtual wxCoord GetSliderDim() const = 0; // get the length of the slider ticks displayed along side slider virtual wxCoord GetSliderTickLen() const = 0; // get the slider shaft rect from the total slider rect virtual wxRect GetSliderShaftRect(const wxRect& rect, int lenThumb, wxOrientation orient, long style = 0) const = 0; // get the size of the slider thumb for the given total slider rect virtual wxSize GetSliderThumbSize(const wxRect& rect, int lenThumb, wxOrientation orient) const = 0;#endif // wxUSE_SLIDER // get the size of one progress bar step (in horz and vertical directions) virtual wxSize GetProgressBarStep() const = 0;#if wxUSE_MENUS // get the size of rectangle to use in the menubar for the given text rect virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const = 0; // get the struct storing all layout info needed to draw all menu items // (this can't be calculated for each item separately as they should be // aligned) // // the returned pointer must be deleted by the caller virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win, const wxMenu& menu) const = 0;#endif // wxUSE_MENUS#if wxUSE_STATUSBAR // get the borders around the status bar fields (x and y fields of the // return value) virtual wxSize GetStatusBarBorders() const = 0; // get the border between the status bar fields virtual wxCoord GetStatusBarBorderBetweenFields() const = 0; // get the mergin between a field and its border virtual wxSize GetStatusBarFieldMargins() const = 0;#endif // wxUSE_STATUSBAR // get client area rectangle of top level window (i.e. subtract // decorations from given rectangle) virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const = 0; // get size of whole top level window, given size of its client area size virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const = 0; // get the minimal size of top level window virtual wxSize GetFrameMinSize(int flags) const = 0; // get titlebar icon size virtual wxSize GetFrameIconSize() const = 0; // returns one of wxHT_TOPLEVEL_XXX constants virtual int HitTestFrame(const wxRect& rect, const wxPoint& pt, int flags = 0) const = 0; // virtual dtor for any base class virtual ~wxRenderer();};// ----------------------------------------------------------------------------// wxDelegateRenderer: it is impossible to inherit from any of standard// renderers as their declarations are in private code, but you can use this// class to override only some of the Draw() functions - all the other ones// will be left to the original renderer// ----------------------------------------------------------------------------class WXDLLEXPORT wxDelegateRenderer : public wxRenderer{public: wxDelegateRenderer(wxRenderer *renderer) : m_renderer(renderer) { } virtual void DrawBackground(wxDC& dc, const wxColour& col, const wxRect& rect, int flags, wxWindow *window = NULL ) { m_renderer->DrawBackground(dc, col, rect, flags, window ); } virtual void DrawButtonSurface(wxDC& dc, const wxColour& col, const wxRect& rect, int flags) { m_renderer->DrawButtonSurface(dc, col, rect, flags); } virtual void DrawFocusRect(wxDC& dc, const wxRect& rect, int flags = 0) { m_renderer->DrawFocusRect(dc, rect, flags); } virtual void DrawLabel(wxDC& dc, const wxString& label, const wxRect& rect, int flags = 0, int align = wxALIGN_LEFT | wxALIGN_TOP, int indexAccel = -1, wxRect *rectBounds = NULL) { m_renderer->DrawLabel(dc, label, rect, flags, align, indexAccel, rectBounds); } virtual void DrawButtonLabel(wxDC& dc, const wxString& label, const wxBitmap& image, const wxRect& rect, int flags = 0, int align = wxALIGN_LEFT | wxALIGN_TOP, int indexAccel = -1, wxRect *rectBounds = NULL) { m_renderer->DrawButtonLabel(dc, label, image, rect, flags, align, indexAccel, rectBounds); } virtual void DrawBorder(wxDC& dc, wxBorder border, const wxRect& rect, int flags = 0, wxRect *rectIn = (wxRect *)NULL) { m_renderer->DrawBorder(dc, border, rect, flags, rectIn); } virtual void DrawTextBorder(wxDC& dc, wxBorder border, const wxRect& rect, int flags = 0, wxRect *rectIn = (wxRect *)NULL) { m_renderer->DrawTextBorder(dc, border, rect, flags, rectIn); } virtual void DrawButtonBorder(wxDC& dc, const wxRect& rect, int flags = 0, wxRect *rectIn = (wxRect *)NULL) { m_renderer->DrawButtonBorder(dc, rect, flags, rectIn); } virtual void DrawFrame(wxDC& dc, const wxString& label, const wxRect& rect, int flags = 0, int align = wxALIGN_LEFT, int indexAccel = -1) { m_renderer->DrawFrame(dc, label, rect, flags, align, indexAccel); } virtual void DrawHorizontalLine(wxDC& dc, wxCoord y, wxCoord x1, wxCoord x2) { m_renderer->DrawHorizontalLine(dc, y, x1, x2); } virtual void DrawVerticalLine(wxDC& dc, wxCoord x, wxCoord y1, wxCoord y2) { m_renderer->DrawVerticalLine(dc, x, y1, y2); } virtual void DrawArrow(wxDC& dc, wxDirection dir, const wxRect& rect, int flags = 0) { m_renderer->DrawArrow(dc, dir, rect, flags); } virtual void DrawScrollbarArrow(wxDC& dc, wxDirection dir, const wxRect& rect, int flags = 0) { m_renderer->DrawScrollbarArrow(dc, dir, rect, flags); } virtual void DrawScrollbarThumb(wxDC& dc, wxOrientation orient, const wxRect& rect, int flags = 0) { m_renderer->DrawScrollbarThumb(dc, orient, rect, flags); } virtual void DrawScrollbarShaft(wxDC& dc, wxOrientation orient, const wxRect& rect, int flags = 0) { m_renderer->DrawScrollbarShaft(dc, orient, rect, flags); } virtual void DrawScrollCorner(wxDC& dc, const wxRect& rect) { m_renderer->DrawScrollCorner(dc, rect); } virtual void DrawItem(wxDC& dc, const wxString& label, const wxRect& rect, int flags = 0) { m_renderer->DrawItem(dc, label, rect, flags); } virtual void DrawCheckItem(wxDC& dc, const wxString& label, const wxBitmap& bitmap, const wxRect& rect, int flags = 0) { m_renderer->DrawCheckItem(dc, label, bitmap, rect, flags); } virtual void DrawCheckButton(wxDC& dc, const wxString& label, const wxBitmap& bitmap, const wxRect& rect, int flags = 0, wxAlignment align = wxALIGN_LEFT, int indexAccel = -1) { m_renderer->DrawCheckButton(dc, label, bitmap, rect, flags, align, indexAccel); } virtual void DrawRadioButton(wxDC& dc, const wxString& label, const wxBitmap& bitmap, const wxRect& rect, int flags = 0, wxAlignment align = wxALIGN_LEFT, int indexAccel = -1) { m_renderer->DrawRadioButton(dc, label, bitmap, rect, flags, align, indexAccel); }#if wxUSE_TOOLBAR virtual void DrawToolBarButton(wxDC& dc,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -