///////////////////////////////////////////////////////////////////////////////
-// Name: palmos/statbrpalm.cpp
+// Name: src/palmos/statbrpalm.cpp
// Purpose: Implementation of wxStatusBar for PalmOS
-// Author: William Osborne
-// Modified by:
+// Author: William Osborne - minimal working wxPalmOS port
+// Modified by: Wlodzimierz ABX Skiba - transition from faked drawing to native statusbar
// Created: 10/13/04
-// RCS-ID: $Id:
-// Copyright: (c) William Osborne
+// RCS-ID: $Id$
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "statusbr.h"
-#endif
-
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
+#if wxUSE_NATIVE_STATUSBAR
+
+#include "wx/statusbr.h"
+
#ifndef WX_PRECOMP
- #include "wx/setup.h"
- #include "wx/frame.h"
- #include "wx/settings.h"
- #include "wx/dcclient.h"
+ #include "wx/frame.h"
+ #include "wx/settings.h"
+ #include "wx/dcclient.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
#endif
-#if wxUSE_STATUSBAR
-
-#include "wx/intl.h"
-#include "wx/log.h"
-#include "wx/statusbr.h"
+#ifdef __WXPALMOS6__
+ #include <StatusBar.h>
+#else
+ #include <PenInputMgr.h>
+#endif // __WXPALMOS6__
// ----------------------------------------------------------------------------
// macros
wxStatusBarPalm::wxStatusBarPalm()
{
SetParent(NULL);
- m_hWnd = 0;
- m_windowId = 0;
}
bool wxStatusBarPalm::Create(wxWindow *parent,
- wxWindowID id,
- long style,
- const wxString& name)
+ wxWindowID id,
+ long style,
+ const wxString& name)
{
- wxCHECK_MSG( parent, FALSE, wxT("status bar must have a parent") );
+ wxCHECK_MSG( parent, false, wxT("status bar must have a parent") );
StatusTextBuffer = NULL;
SetName(name);
SetParent(parent);
+ SetId( id == wxID_ANY ? NewControlId() : id );
parent->AddChild(this);
- m_windowId = id == -1 ? NewControlId() : id;
-
SetFieldsCount(1);
- SubclassWin(m_hWnd);
- return TRUE;
+ return true;
}
wxStatusBarPalm::~wxStatusBarPalm()
{
+ Show();
+
DeleteStatusBuffer();
}
+bool wxStatusBarPalm::IsShown() const
+{
+ return StatGetAttribute ( statAttrBarVisible , NULL );
+}
+
+bool wxStatusBarPalm::Show( bool show )
+{
+ if(show)
+ {
+ // show it if hidden
+ if(IsShown())
+ return false;
+ status_t rc = StatShow();
+ wxCHECK_MSG( rc == errNone, false, wxT("cannot hide status bar") );
+ }
+ else
+ {
+ // hide it if shown
+ if(!IsShown())
+ return false;
+ status_t rc = StatHide();
+ wxCHECK_MSG( rc == errNone, false, wxT("cannot hide status bar") );
+ }
+ return true;
+}
+
void wxStatusBarPalm::SetFieldsCount(int nFields, const int *widths)
{
// this is a Windows limitation
- wxASSERT_MSG( (nFields > 0) && (nFields < 255), _T("too many fields") );
+ wxASSERT_MSG( (nFields > 0) && (nFields < 255), wxT("too many fields") );
wxStatusBarBase::SetFieldsCount(nFields, widths);
DeleteStatusBuffer();
}
-void wxStatusBarPalm::SetStatusText(const wxString& strText, int nField)
+void wxStatusBarPalm::DoUpdateStatusText(int nField)
{
- wxCHECK_RET( (nField >= 0) && (nField < m_nFields),
- _T("invalid statusbar field index") );
-
SetStatusBufferText(strText,nField);
DrawStatusBar();
}
-wxString wxStatusBarPalm::GetStatusText(int nField) const
-{
- wxCHECK_MSG( (nField >= 0) && (nField < m_nFields), wxEmptyString,
- _T("invalid statusbar field index") );
-
- wxString text;
- return text;
-}
-
void wxStatusBarPalm::DrawStatusBar()
{
+#if 0
int i=0;
int leftPos=0;
wxArrayInt widthsAbs;
leftPos+=widthsAbs[i]+2;
}
WinDrawLine(0,160-FntCharHeight()-1,159,160-FntCharHeight()-1);
+#endif
}
void wxStatusBarPalm::SetStatusBufferText(const wxString& text, int number)
{
wxListString *st = GetStatusBufferStack(number);
if(st==0)
- return "";
+ return wxEmptyString;
wxListString::compatibility_iterator top = st->GetFirst();
return(*top->GetData());
{
}
-#endif // wxUSE_STATUSBAR
-
+#endif // wxUSE_NATIVE_STATUSBAR