#include "wx/generic/statusbr.h"
#include "wx/msw/statbr95.h"
-#include <windows.h>
-#include <windowsx.h>
+#include "wx/msw/private.h"
+#include <windowsx.h>
-#if !defined(__GNUWIN32__)
-#include <commctrl.h>
+#if !defined(__GNUWIN32__) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
+#include <commctrl.h>
#endif
-#ifdef GetClassInfo
-#undef GetClassInfo
-#endif
-
-#ifdef GetClassName
-#undef GetClassName
-#endif
-
-#if wxUSE_NATIVE_STATUSBAR
+#if wxUSE_NATIVE_STATUSBAR
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxStatusBar95, wxStatusBar);
BEGIN_EVENT_TABLE(wxStatusBar95, wxStatusBar)
- EVT_PAINT(wxWindow::OnPaint)
EVT_SIZE(wxStatusBar95::OnSize)
END_EVENT_TABLE()
#endif //USE_SHARED_LIBRARY
// windowsx.h and commctrl.h don't define those, so we do it here
#define StatusBar_SetParts(h, n, w) SendMessage(h, SB_SETPARTS, (WPARAM)n, (LPARAM)w)
-#define StatusBar_SetText(h, n, t) SendMessage(h, SB_SETTEXT, (WPARAM)n, (LPARAM)(LPCSTR)t)
+#define StatusBar_SetText(h, n, t) SendMessage(h, SB_SETTEXT, (WPARAM)n, (LPARAM)(LPCTSTR)t)
#define StatusBar_GetTextLen(h, n) LOWORD(SendMessage(h, SB_GETTEXTLENGTH, (WPARAM)n, 0))
-#define StatusBar_GetText(h, n, s) LOWORD(SendMessage(h, SB_GETTEXT, (WPARAM)n, (LPARAM)(LPSTR)s))
+#define StatusBar_GetText(h, n, s) LOWORD(SendMessage(h, SB_GETTEXT, (WPARAM)n, (LPARAM)(LPTSTR)s))
#define hwnd ((HWND)m_hWnd)
wstyle |= SBARS_SIZEGRIP;
m_hWnd = (WXHWND)CreateStatusWindow(wstyle,
- "",
+ wxT(""),
(HWND)parent->GetHWND(),
m_windowId);
if ( m_hWnd == 0 ) {
- wxLogSysError("can't create status bar window");
+ wxLogSysError(wxT("can't create status bar window"));
return FALSE;
}
void wxStatusBar95::SetFieldsWidth()
{
+ if ( !m_nFields )
+ return;
+
int *pWidths = new int[m_nFields];
int nWindowWidth, y;
}
if ( !StatusBar_SetParts(hwnd, m_nFields, pWidths) ) {
- wxLogDebug("StatusBar_SetParts failed.");
+ wxLogLastError(wxT("StatusBar_SetParts"));
}
delete [] pWidths;
void wxStatusBar95::SetStatusText(const wxString& strText, int nField)
{
if ( !StatusBar_SetText(hwnd, nField, strText) ) {
- wxLogDebug("StatusBar_SetText failed");
+ wxLogLastError(wxT("StatusBar_SetText"));
}
}
{
wxASSERT( (nField > -1) && (nField < m_nFields) );
- wxString str("");
+ wxString str(wxT(""));
int len = StatusBar_GetTextLen(hwnd, nField);
if (len > 0)
{
SetFieldsWidth();
}
-#endif
- // __WIN95__
-#endif
- // wxUSE_NATIVE_STATUSBAR
+#endif // wxUSE_NATIVE_STATUSBAR
+
+#else
+ #error "wxStatusBar95 is only available under Windows 95 and later."
+#endif // __WIN95__
+