+ wxRect rect;
+ GetFieldRect(i, rect);
+
+ if (rect.GetWidth() <= 0)
+ return; // happens when the status bar is shrinked in a very small area!
+
+ int style = m_panes[i].nStyle;
+ if (style != wxSB_FLAT)
+ {
+ // Draw border
+ // For wxSB_NORMAL:
+ // Have grey background, plus 3-d border -
+ // One black rectangle.
+ // Inside this, left and top sides - dark grey. Bottom and right -
+ // white.
+ // Reverse it for wxSB_RAISED
+
+ dc.SetPen((style == wxSB_RAISED) ? m_mediumShadowPen : m_hilightPen);
+
+#ifndef __WXPM__
+
+ // Right and bottom lines
+ dc.DrawLine(rect.x + rect.width, rect.y,
+ rect.x + rect.width, rect.y + rect.height);
+ dc.DrawLine(rect.x + rect.width, rect.y + rect.height,
+ rect.x, rect.y + rect.height);
+
+ dc.SetPen((style == wxSB_RAISED) ? m_hilightPen : m_mediumShadowPen);
+
+ // Left and top lines
+ dc.DrawLine(rect.x, rect.y + rect.height,
+ rect.x, rect.y);
+ dc.DrawLine(rect.x, rect.y,
+ rect.x + rect.width, rect.y);
+#else
+
+ dc.DrawLine(rect.x + rect.width, rect.height + 2,
+ rect.x, rect.height + 2);
+ dc.DrawLine(rect.x + rect.width, rect.y,
+ rect.x + rect.width, rect.y + rect.height);