optimize rendering code by calling GetClientSize(), GetTextExtent() and CalculateAbsWidth() only when strictly needed; update cache from an OnSize() event handler; fix RTL code: wxDC::DrawText() is RTL-aware itself and doesn't need special calculations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -65,24 +65,27 @@ public:
|
||||
virtual int GetBorderY() const { return m_borderY; }
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
virtual void DrawFieldText(wxDC& dc, int i);
|
||||
virtual void DrawField(wxDC& dc, int i);
|
||||
|
||||
void SetBorderX(int x);
|
||||
void SetBorderY(int y);
|
||||
protected: // event handlers
|
||||
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
void OnSize(wxSizeEvent& event);
|
||||
|
||||
void OnLeftDown(wxMouseEvent& event);
|
||||
void OnRightDown(wxMouseEvent& event);
|
||||
|
||||
virtual void InitColours();
|
||||
|
||||
// Responds to colour changes
|
||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||
|
||||
protected:
|
||||
|
||||
virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight);
|
||||
virtual void DrawField(wxDC& dc, int i, int textHeight);
|
||||
|
||||
void SetBorderX(int x);
|
||||
void SetBorderY(int y);
|
||||
|
||||
virtual void InitColours();
|
||||
|
||||
// true if the status bar shows the size grip: for this it must have
|
||||
// wxST_SIZEGRIP style and the window it is attached to must be resizeable
|
||||
// and not maximized
|
||||
@@ -97,8 +100,8 @@ protected:
|
||||
// the array of the currently displayed strings
|
||||
wxArrayString m_statusStrings;
|
||||
|
||||
// the last known width of the client rect (used to rebuild cache)
|
||||
int m_lastClientWidth;
|
||||
// the last known height of the client rect
|
||||
int m_lastClientHeight;
|
||||
|
||||
// the absolute widths of the status bar panes in pixels
|
||||
wxArrayInt m_widthsAbs;
|
||||
|
Reference in New Issue
Block a user