#pragma hdrstop
#endif
-//#if !defined(__WIN32__) || !wxUSE_NATIVE_STATUSBAR
+#if wxUSE_STATUSBAR
#ifndef WX_PRECOMP
#include "wx/setup.h"
#include "wx/statusbr.h"
-// with wxUSE_NATIVE_STATUSBAR it is not included from wx/statusbr.h
-#include "wx/generic/statusbr.h"
+// if !wxUSE_NATIVE_STATUSBAR, this is already done in common/statbar.cpp
+#if defined(wxUSE_NATIVE_STATUSBAR) && wxUSE_NATIVE_STATUSBAR
+ #include "wx/generic/statusbr.h"
-IMPLEMENT_DYNAMIC_CLASS(wxStatusBarGeneric, wxWindow)
-
-#if !defined(__WIN32__) || !wxUSE_NATIVE_STATUSBAR
- IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxStatusBarGeneric)
-#endif // Win32 && wxUSE_NATIVE_STATUSBAR
+ IMPLEMENT_DYNAMIC_CLASS(wxStatusBarGeneric, wxWindow)
+#endif // wxUSE_NATIVE_STATUSBAR
BEGIN_EVENT_TABLE(wxStatusBarGeneric, wxWindow)
EVT_PAINT(wxStatusBarGeneric::OnPaint)
SetFont(wxNullFont);
# endif // MSW
- if ( m_statusWidths )
- delete[] m_statusWidths;
if ( m_statusStrings )
delete[] m_statusStrings;
}
m_nFields = 0;
m_borderX = wxTHICK_LINE_BORDER;
m_borderY = wxTHICK_LINE_BORDER;
- m_themeEnabled = TRUE;
bool success = wxWindow::Create(parent, id,
wxDefaultPosition, wxDefaultSize,
SetFont(m_defaultStatusBarFont);
+ // Set the height according to the font and the border size
+ wxClientDC dc(this);
+ dc.SetFont(GetFont());
+
+ wxCoord y;
+ dc.GetTextExtent(_T("X"), NULL, &y );
+
+ int height = (int)( (11*y)/10 + 2*GetBorderY());
+
+ SetSize(-1, -1, -1, height);
+
return success;
}
delete[] m_statusStrings;
m_statusStrings = new wxString[number];
-
-#if 0 // VZ: what is this for?
- int i;
- for (i = 0; i < number; i++)
- m_statusStrings[i] = "";
-#endif
}
SetStatusWidths(number, widths);
{
wxPaintDC dc(this);
+
int i;
if ( GetFont().Ok() )
dc.SetFont(GetFont());
dc.SetBackgroundMode(wxTRANSPARENT);
- dc.SetTextForeground(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT));
+
+#ifdef __WXPM__
+ wxColour vColor;
+
+ vColor.InitFromName("GREY");
+ ::WinFillRect(dc.m_hPS, &dc.m_vRclPaint, vColor.GetPixel());
+#endif
for ( i = 0; i < m_nFields; i ++ )
DrawField(dc, i);
-# ifdef __WXMSW__
- dc.SetFont(wxNullFont);
-# endif // MSW
+#ifdef __WXMSW__
+ dc.SetFont(wxNullFont);
+#endif // MSW
}
void wxStatusBarGeneric::DrawFieldText(wxDC& dc, int i)
dc.SetPen(m_hilightPen);
+#ifndef __WXPM__
+
// Right and bottom white lines
dc.DrawLine(rect.x + rect.width, rect.y,
rect.x + rect.width, rect.y + rect.height);
rect.x, rect.y);
dc.DrawLine(rect.x, rect.y,
rect.x + rect.width, rect.y);
+#else
+ // Right
+ dc.DrawLine(rect.x + rect.width, rect.y,
+ rect.x + rect.width, rect.y + rect.height + 2);
+ dc.SetPen(m_mediumShadowPen);
+ dc.DrawLine(rect.x + rect.width + 1, rect.y,
+ rect.x + rect.width + 1, rect.y + rect.height + 2);
+ dc.DrawLine(rect.x + rect.width + 2, rect.y,
+ rect.x + rect.width + 2, rect.y + rect.height + 2);
+ // Top
+ dc.DrawLine(rect.x + rect.width + 2, rect.y,
+ rect.x - 2, rect.y);
+ dc.DrawLine(rect.x + rect.width + 1, rect.y - 1,
+ rect.x - 2, rect.y - 1);
+ dc.SetPen(m_hilightPen);
+ dc.DrawLine(rect.x + rect.width, rect.y - 2,
+ rect.x - 2, rect.y - 2);
+
+#endif
DrawFieldText(dc, i);
}
_T("invalid status bar field index") );
int width, height;
+#ifdef __WXPM__
+ GetSize(&width, &height);
+#else
GetClientSize(&width, &height);
+#endif
int i;
int sum_of_nonvar = 0;
void wxStatusBarGeneric::InitColours()
{
// Shadow colours
-#ifndef __WIN16__
+#if defined(__WIN95__)
wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW));
m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID);
wxColour hilightColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT));
m_hilightPen = wxPen(hilightColour, 1, wxSOLID);
+#elif defined(__WXPM__)
+ m_mediumShadowPen = wxPen("LIGHT GREY", 1, wxSOLID);
+ m_hilightPen = wxPen("WHITE", 1, wxSOLID);
#else
m_mediumShadowPen = wxPen("GREY", 1, wxSOLID);
m_hilightPen = wxPen("WHITE", 1, wxSOLID);
}
}
-//#endif // Win32 && wxUSE_NATIVE_STATUSBAR
+#endif // wxUSE_STATUSBAR