From: Włodzimierz Skiba <abx@abx.art.pl>
Date: Mon, 24 Jan 2005 07:38:52 +0000 (+0000)
Subject: Native PalmOS wxControl and wxButton implementation. wxTLW without fixed size. Unused... 
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/db101bd35296e100d490d3c033c0fdee32747e85

Native PalmOS wxControl and wxButton implementation. wxTLW without fixed size. Unused MSW code cleaning.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/docs/changes.txt b/docs/changes.txt
index 8bf2a61431..94befa571f 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -113,6 +113,7 @@ wxPalmOS:
 - native wxProgressDialog implementation
 - native wxColourDialog implementation
 - native wxSystemSettings colours
+- native wxButton implementation
 
 
 2.5.3
diff --git a/include/wx/button.h b/include/wx/button.h
index 0ccb8d2deb..8277c66ebc 100644
--- a/include/wx/button.h
+++ b/include/wx/button.h
@@ -94,6 +94,8 @@ protected:
     #include "wx/cocoa/button.h"
 #elif defined(__WXPM__)
     #include "wx/os2/button.h"
+#elif defined(__WXPALMOS__)
+    #include "wx/palmos/button.h"
 #endif
 
 #endif // wxUSE_BUTTON
diff --git a/include/wx/palmos/button.h b/include/wx/palmos/button.h
index a34f5a45c2..62d8e5f037 100644
--- a/include/wx/palmos/button.h
+++ b/include/wx/palmos/button.h
@@ -2,10 +2,10 @@
 // Name:        wx/palmos/button.h
 // Purpose:     wxButton class
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native wxButton implementation
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -26,7 +26,7 @@ public:
     wxButton() { }
     wxButton(wxWindow *parent,
              wxWindowID id,
-             const wxString& label,
+             const wxString& label = wxEmptyString,
              const wxPoint& pos = wxDefaultPosition,
              const wxSize& size = wxDefaultSize,
              long style = 0,
@@ -51,7 +51,6 @@ public:
 
     // implementation from now on
     virtual void Command(wxCommandEvent& event);
-    virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
     virtual bool MSWCommand(WXUINT param, WXWORD id);
 
     virtual void ApplyParentThemeBackground(const wxColour& bg)
diff --git a/include/wx/palmos/control.h b/include/wx/palmos/control.h
index 564f88e196..82fb415c0e 100644
--- a/include/wx/palmos/control.h
+++ b/include/wx/palmos/control.h
@@ -44,6 +44,11 @@ public:
     // Simulates an event
     virtual void Command(wxCommandEvent& event) { ProcessCommand(event); }
 
+    virtual bool Enable( bool enable = true );
+    virtual bool IsEnabled() const;
+
+    virtual bool Show( bool show = true );
+    virtual bool IsShown() const;
 
     // implementation from now on
     // --------------------------
@@ -59,15 +64,6 @@ public:
     // Calls the callback and appropriate event handlers
     bool ProcessCommand(wxCommandEvent& event);
 
-    // MSW-specific
-#ifdef __WIN95__
-    virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
-#endif // Win95
-
-    // For ownerdraw items
-    virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return FALSE; };
-    virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return FALSE; };
-
     const wxArrayLong& GetSubcontrols() const { return m_subControls; }
 
     void OnEraseBackground(wxEraseEvent& event);
@@ -82,38 +78,17 @@ protected:
     // return default best size (doesn't really make any sense, override this)
     virtual wxSize DoGetBestSize() const;
 
-    // create the control of the given Windows class: this is typically called
+    // create the control of the given ControlStyleType: this is typically called
     // from Create() method of the derived class passing its label, pos and
     // size parameter (style parameter is not needed because m_windowStyle is
     // supposed to had been already set and so is used instead when this
     // function is called)
-    bool MSWCreateControl(const wxChar *classname,
-                          const wxString& label,
-                          const wxPoint& pos,
-                          const wxSize& size);
-
-    // NB: the method below is deprecated now, with MSWGetStyle() the method
-    //     above should be used instead! Once all the controls are updated to
-    //     implement MSWGetStyle() this version will disappear.
-    //
-    // create the control of the given class with the given style (combination
-    // of WS_XXX flags, i.e. Windows style, not wxWidgets one), returns
-    // FALSE if creation failed
-    //
-    // All parameters except classname and style are optional, if the
-    // size/position are not given, they should be set later with SetSize()
-    // and, label (the title of the window), of course, is left empty. The
-    // extended style is determined from the style and the app 3D settings
-    // automatically if it's not specified explicitly.
-    bool MSWCreateControl(const wxChar *classname,
-                          WXDWORD style,
-                          const wxPoint& pos = wxDefaultPosition,
-                          const wxSize& size = wxDefaultSize,
-                          const wxString& label = wxEmptyString,
-                          WXDWORD exstyle = (WXDWORD)-1);
-
-    // default style for the control include WS_TABSTOP if it AcceptsFocus()
-    virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+    bool PalmCreateControl(ControlStyleType style,
+                           wxWindow *parent,
+                           wxWindowID id,
+                           const wxString& label,
+                           const wxPoint& pos,
+                           const wxSize& size);
 
     // this is a helper for the derived class GetClassDefaultAttributes()
     // implementation: it returns the right colours for the classes which
@@ -127,6 +102,9 @@ protected:
     // holds the ids (not HWNDs!) of the sub controls
     wxArrayLong m_subControls;
 
+    ControlType *m_control;
+    uint16_t m_objectIndex;
+
 private:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl)
     DECLARE_EVENT_TABLE()
diff --git a/include/wx/palmos/setup0.h b/include/wx/palmos/setup0.h
index 0f1725364f..7864731485 100644
--- a/include/wx/palmos/setup0.h
+++ b/include/wx/palmos/setup0.h
@@ -509,13 +509,14 @@
 // Default is 1
 //
 // Recommended setting: 1
-#define wxUSE_BUTTON       0    // wxButton
+#define wxUSE_BUTTON       1    // wxButton
 #define wxUSE_BMPBUTTON    0    // wxBitmapButton
 #define wxUSE_CALENDARCTRL 0    // wxCalendarCtrl
 #define wxUSE_CHECKBOX     0    // wxCheckBox
 #define wxUSE_CHECKLISTBOX 0    // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
 #define wxUSE_CHOICE       0    // wxChoice
 #define wxUSE_COMBOBOX     0    // wxComboBox
+#define wxUSE_DATEPICKCTRL 0    // wxDatePickerCtrl
 #define wxUSE_GAUGE        0    // wxGauge
 #define wxUSE_LISTBOX      0    // wxListBox
 #define wxUSE_LISTCTRL     0    // wxListCtrl
@@ -534,15 +535,15 @@
 #define wxUSE_TREECTRL     0    // wxTreeCtrl
 
 // Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
-// below either wxStatusBar95 or a generic wxStatusBar will be used.
+// below either wxStatusBarPalm or a generic wxStatusBar will be used.
 //
 // Default is 1
 //
 // Recommended setting: 1
 #define wxUSE_STATUSBAR    1
 
-// Two status bar implementations are available under Win32: the generic one
-// or the wrapper around native control. For native look and feel the native
+// Two status bar implementations are available under PalmOS: the generic one
+// or the wrapper around native status bar. For native look and feel the native
 // version should be used.
 //
 // Default is 1.
diff --git a/include/wx/palmos/toplevel.h b/include/wx/palmos/toplevel.h
index 73a44916b4..9783f91ad6 100644
--- a/include/wx/palmos/toplevel.h
+++ b/include/wx/palmos/toplevel.h
@@ -2,10 +2,10 @@
 // Name:        wx/palmos/toplevel.h
 // Purpose:     wxTopLevelWindow
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - more than minimal functionality
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -47,15 +47,6 @@ public:
                 long style = wxDEFAULT_FRAME_STYLE,
                 const wxString& name = wxFrameNameStr);
 
-    bool Create(wxWindow *parent,
-                wxWindowID id,
-                const wxString& title,
-                const wxPoint& pos,
-                const wxSize& size,
-                long style,
-                const wxString& name,
-                wxFrame* PFrame);
-
     virtual ~wxTopLevelWindowPalm();
 
     // implement base class pure virtuals
@@ -94,18 +85,6 @@ protected:
     // common part of all ctors
     void Init();
 
-    // create a new frame, return false if it couldn't be created
-    bool CreateFrame(const wxString& title,
-                     const wxPoint& pos,
-                     const wxSize& size);
-
-    // create a new dialog using the given dialog template from resources,
-    // return false if it couldn't be created
-    bool CreateDialog(const void *dlgTemplate,
-                      const wxString& title,
-                      const wxPoint& pos,
-                      const wxSize& size);
-
     // common part of Iconize(), Maximize() and Restore()
     void DoShowWindow(int nShowCmd);
 
diff --git a/include/wx/palmos/window.h b/include/wx/palmos/window.h
index a00a06e6e7..b103474cdc 100644
--- a/include/wx/palmos/window.h
+++ b/include/wx/palmos/window.h
@@ -2,10 +2,10 @@
 // Name:        wx/palmos/window.h
 // Purpose:     wxWindow class
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - more than minimal functionality
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
diff --git a/include/wx/window.h b/include/wx/window.h
index bb2c943204..50fae004cd 100644
--- a/include/wx/window.h
+++ b/include/wx/window.h
@@ -453,7 +453,7 @@ public:
     bool Disable() { return Enable(false); }
 
     virtual bool IsShown() const { return m_isShown; }
-    bool IsEnabled() const { return m_isEnabled; }
+    virtual bool IsEnabled() const { return m_isEnabled; }
 
         // get/set window style (setting style won't update the window and so
         // is only useful for internal usage)
diff --git a/src/palmos/button.cpp b/src/palmos/button.cpp
index a27f123b1e..f9be99b62a 100644
--- a/src/palmos/button.cpp
+++ b/src/palmos/button.cpp
@@ -2,10 +2,10 @@
 // Name:        src/palmos/button.cpp
 // Purpose:     wxButton
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native wxButton implementation
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -40,8 +40,6 @@
     #include "wx/dcscreen.h"
 #endif
 
-#include "wx/palmos/private.h"
-
 // ----------------------------------------------------------------------------
 // macros
 // ----------------------------------------------------------------------------
@@ -128,8 +126,8 @@ bool wxButton::Create(wxWindow *parent,
                       const wxValidator& validator,
                       const wxString& name)
 {
-    // remember about stock IDs
-    return false;
+    wxControl::PalmCreateControl(buttonCtl, parent, id, label, pos, size);
+    return true;
 }
 
 wxButton::~wxButton()
diff --git a/src/palmos/control.cpp b/src/palmos/control.cpp
index 4e13f592a7..c4360886e7 100644
--- a/src/palmos/control.cpp
+++ b/src/palmos/control.cpp
@@ -60,7 +60,7 @@ END_EVENT_TABLE()
 
 wxControl::~wxControl()
 {
-    m_isBeingDeleted = TRUE;
+    m_isBeingDeleted = true;
 }
 
 // ----------------------------------------------------------------------------
@@ -76,34 +76,44 @@ bool wxControl::Create(wxWindow *parent,
                        const wxString& name)
 {
     if ( !wxWindow::Create(parent, id, pos, size, style, name) )
-        return FALSE;
+        return false;
 
 #if wxUSE_VALIDATORS
     SetValidator(validator);
 #endif
 
-    return TRUE;
+    return true;
 }
 
-bool wxControl::MSWCreateControl(const wxChar *classname,
-                                 const wxString& label,
-                                 const wxPoint& pos,
-                                 const wxSize& size)
+bool wxControl::PalmCreateControl(ControlStyleType style,
+                                  wxWindow *parent,
+                                  wxWindowID id,
+                                  const wxString& label,
+                                  const wxPoint& pos,
+                                  const wxSize& size)
 {
-    WXDWORD exstyle;
-    WXDWORD msStyle = MSWGetStyle(GetWindowStyle(), &exstyle);
-
-    return MSWCreateControl(classname, msStyle, pos, size, label, exstyle);
-}
-
-bool wxControl::MSWCreateControl(const wxChar *classname,
-                                 WXDWORD style,
-                                 const wxPoint& pos,
-                                 const wxSize& size,
-                                 const wxString& label,
-                                 WXDWORD exstyle)
-{
-    return TRUE;
+    FormType* form = FrmGetActiveForm ();
+    m_control = CtlNewControl (
+                    (void **)&form,
+                    id,
+                    style,
+                    label.c_str(),
+                    pos.x,
+                    pos.y,
+                    size.x,
+                    size.y,
+                    boldFont,
+                    0,
+                    false
+                );
+
+    if(m_control==NULL)
+        return false;
+
+    form = FrmGetActiveForm ();
+    m_objectIndex = FrmGetObjectIndex(form, id);
+    Show();
+    return true;
 }
 
 // ----------------------------------------------------------------------------
@@ -118,14 +128,40 @@ wxBorder wxControl::GetDefaultBorder() const
     return wxBORDER_SUNKEN;
 }
 
-WXDWORD wxControl::MSWGetStyle(long style, WXDWORD *exstyle) const
+wxSize wxControl::DoGetBestSize() const
 {
-    return 0;
+    return wxSize(16, 16);
 }
 
-wxSize wxControl::DoGetBestSize() const
+bool wxControl::Enable(bool enable)
 {
-    return wxSize(16, 16);
+    if( m_control == NULL )
+        return false;
+    if( IsEnabled() == enable)
+        return false;
+    CtlSetEnabled( m_control, enable);
+    return true;
+}
+
+bool wxControl::IsEnabled() const
+{
+    if( m_control == NULL )
+        return false;
+    return CtlEnabled(m_control);
+}
+
+bool wxControl::IsShown() const
+{
+    return StatGetAttribute ( statAttrBarVisible , NULL );
+}
+
+bool wxControl::Show( bool show )
+{
+    if(show)
+        FrmShowObject(FrmGetActiveForm(), m_objectIndex);
+    else
+        FrmHideObject(FrmGetActiveForm(), m_objectIndex);
+    return true;
 }
 
 /* static */ wxVisualAttributes
@@ -167,14 +203,6 @@ bool wxControl::ProcessCommand(wxCommandEvent& event)
     return GetEventHandler()->ProcessEvent(event);
 }
 
-#ifdef __WIN95__
-bool wxControl::MSWOnNotify(int idCtrl,
-                            WXLPARAM lParam,
-                            WXLPARAM* result)
-{
-}
-#endif // Win95
-
 void wxControl::OnEraseBackground(wxEraseEvent& event)
 {
 }
diff --git a/src/palmos/frame.cpp b/src/palmos/frame.cpp
index 25c7b23fc0..b64d4da89b 100644
--- a/src/palmos/frame.cpp
+++ b/src/palmos/frame.cpp
@@ -2,10 +2,10 @@
 // Name:        src/palmos/frame.cpp
 // Purpose:     wxFrame
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - more than minimal functionality
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -162,7 +162,7 @@ bool wxFrame::Create(wxWindow *parent,
                      long style,
                      const wxString& name)
 {
-    if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name, this) )
+    if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return false;
 
     return true;
@@ -255,7 +255,7 @@ void wxFrame::OnPaint(wxPaintEvent& event)
 #endif // wxUSE_STATUSBAR
 }
 
-// Pass TRUE to show full screen, FALSE to restore.
+// Pass true to show full screen, false to restore.
 bool wxFrame::ShowFullScreen(bool show, long style)
 {
     return false;
diff --git a/src/palmos/joystick.cpp b/src/palmos/joystick.cpp
index 432244d1b1..8295c07fa7 100644
--- a/src/palmos/joystick.cpp
+++ b/src/palmos/joystick.cpp
@@ -107,7 +107,7 @@ int wxJoystick::GetProductId() const
 
 wxString wxJoystick::GetProductName() const
 {
-    return wxString("");
+    return wxEmptyString;
 }
 
 int wxJoystick::GetXMin() const
diff --git a/src/palmos/statbrpalm.cpp b/src/palmos/statbrpalm.cpp
index 0b77b5d424..ba68ff9a26 100644
--- a/src/palmos/statbrpalm.cpp
+++ b/src/palmos/statbrpalm.cpp
@@ -150,6 +150,7 @@ wxString wxStatusBarPalm::GetStatusText(int nField) const
 
 void wxStatusBarPalm::DrawStatusBar()
 {
+#if 0
     int i=0;
     int leftPos=0;
     wxArrayInt widthsAbs;
@@ -172,6 +173,7 @@ void wxStatusBarPalm::DrawStatusBar()
         leftPos+=widthsAbs[i]+2;
     }
     WinDrawLine(0,160-FntCharHeight()-1,159,160-FntCharHeight()-1);
+#endif
 }
 
 void wxStatusBarPalm::SetStatusBufferText(const wxString& text, int number)
@@ -187,7 +189,7 @@ wxString wxStatusBarPalm::GetStatusBufferText(int number)
 {
     wxListString *st = GetStatusBufferStack(number);
     if(st==0)
-        return "";
+        return wxEmptyString;
 
     wxListString::compatibility_iterator top = st->GetFirst();
     return(*top->GetData());
diff --git a/src/palmos/toplevel.cpp b/src/palmos/toplevel.cpp
index e049739b90..2d67f37da6 100644
--- a/src/palmos/toplevel.cpp
+++ b/src/palmos/toplevel.cpp
@@ -43,15 +43,6 @@
 
 #include "wx/display.h"
 
-#ifndef ICON_BIG
-    #define ICON_BIG 1
-#endif
-
-#ifndef ICON_SMALL
-    #define ICON_SMALL 0
-#endif
-
-
 // ----------------------------------------------------------------------------
 // globals
 // ----------------------------------------------------------------------------
@@ -60,7 +51,7 @@
 extern const wxChar *wxCanvasClassName;
 
 // Pointer to the currently active frame for the form event handler.
-wxFrame* ActiveParentFrame;
+wxTopLevelWindowPalm* ActiveParentFrame;
 
 // ============================================================================
 // wxTopLevelWindowPalm implementation
@@ -88,21 +79,6 @@ WXHWND wxTopLevelWindowPalm::PalmGetParent() const
     return NULL;
 }
 
-bool wxTopLevelWindowPalm::CreateDialog(const void *dlgTemplate,
-                                       const wxString& title,
-                                       const wxPoint& pos,
-                                       const wxSize& size)
-{
-    return false;
-}
-
-bool wxTopLevelWindowPalm::CreateFrame(const wxString& title,
-                                      const wxPoint& pos,
-                                      const wxSize& size)
-{
-    return false;
-}
-
 bool wxTopLevelWindowPalm::Create(wxWindow *parent,
                                   wxWindowID id,
                                   const wxString& title,
@@ -111,63 +87,50 @@ bool wxTopLevelWindowPalm::Create(wxWindow *parent,
                                   long style,
                                   const wxString& name)
 {
-    ActiveParentFrame=NULL;
-
-    wxTopLevelWindows.Append(this);
-
-    if ( parent )
-        parent->AddChild(this);
-
-    m_windowId = id == wxID_ANY ? NewControlId() : id;
-
-    wxCoord x = ( ( pos.x == wxDefaultCoord ) ? 0 : pos.x ) ;
-    wxCoord y = ( ( pos.y == wxDefaultCoord ) ? 0 : pos.y ) ;
-    wxCoord w = ( ( size.x == wxDefaultCoord ) ? 160 : size.x ) ;
-    wxCoord h = ( ( size.y == wxDefaultCoord ) ? 160 : size.y ) ;
-
-    FrameForm = FrmNewForm( m_windowId,
-                            title,
-                            x, y,
-                            w, h,
-                            false,
-                            0,
-                            NULL,
-                            0,
-                            NULL,
-                            0);
-    if(FrameForm==0)
+    // this is a check for limitation mentioned before FrameFormHandleEvent() code
+    if(wxTopLevelWindows.GetCount()>0)
         return false;
 
-    FrmSetEventHandler(FrameForm,FrameFormHandleEvent);
-
-    return true;
-}
+    ActiveParentFrame=NULL;
 
-bool wxTopLevelWindowPalm::Create(wxWindow *parent,
-                                  wxWindowID id,
-                                  const wxString& title,
-                                  const wxPoint& pos,
-                                  const wxSize& size,
-                                  long style,
-                                  const wxString& name,
-                                  wxFrame* PFrame)
-{
     wxTopLevelWindows.Append(this);
 
     if ( parent )
         parent->AddChild(this);
 
-    m_windowId = id == -1 ? NewControlId() : id;
+    m_windowId = id == wxID_ANY ? NewControlId() : id;
 
-    FrameForm=FrmNewForm(m_windowId,title,0,0,160,160,false,0,NULL,0,NULL,0);
-    if(FrameForm==0)
+    WinConstraintsType constraints;
+    memset(&constraints, 0, sizeof(WinConstraintsType));
+    constraints.x_pos = ( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x;
+    constraints.y_pos = ( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y;
+    constraints.x_min = winUndefConstraint;
+    constraints.x_max = winMaxConstraint;
+    constraints.x_pref = ( size.x == wxDefaultCoord ) ? winUndefConstraint : size.x;
+    constraints.y_min = winUndefConstraint;
+    constraints.y_max = winMaxConstraint;
+    constraints.y_pref = ( size.y == wxDefaultCoord ) ? winUndefConstraint : size.y;
+
+    FrameForm = FrmNewFormWithConstraints(
+                    m_windowId,
+                    title.c_str(),
+                    winFlagBackBuffer,
+                    &constraints,
+                    0,
+                    NULL,
+                    0,
+                    NULL,
+                    0
+                );
+
+    if(FrameForm==NULL)
         return false;
 
     FrmSetEventHandler(FrameForm,FrameFormHandleEvent);
 
     FrmSetActiveForm(FrameForm);
 
-    ActiveParentFrame=PFrame;
+    ActiveParentFrame=this;
 
     return true;
 }
@@ -280,21 +243,22 @@ void wxTopLevelWindowPalm::OnActivate(wxActivateEvent& event)
  */
 static Boolean FrameFormHandleEvent(EventType* pEvent)
 {
+    wxFrame*    frame = wxDynamicCast(ActiveParentFrame,wxFrame);
     Boolean     fHandled = false;
-    FormType*     pForm;
-    WinHandle    hWindow;
-    int ItemID=0;
+    FormType*   pForm;
+    WinHandle   hWindow;
+    int         ItemID=0;
 
     switch (pEvent->eType) {
         case ctlSelectEvent:
             break;
 #if wxUSE_MENUS_NATIVE
         case menuOpenEvent:
-            fHandled=ActiveParentFrame->HandleMenuOpen();
+            fHandled = frame->HandleMenuOpen();
             break;
         case menuEvent:
-            ItemID=pEvent->data.menu.itemID;
-            fHandled=ActiveParentFrame->HandleMenuSelect(ItemID);
+            ItemID = pEvent->data.menu.itemID;
+            fHandled = frame->HandleMenuSelect(ItemID);
             break;
 #endif
         default:
diff --git a/src/palmos/window.cpp b/src/palmos/window.cpp
index fe77c79547..39bff56d6a 100644
--- a/src/palmos/window.cpp
+++ b/src/palmos/window.cpp
@@ -334,7 +334,7 @@ void wxWindowPalm::SetTitle( const wxString& title)
 
 wxString wxWindowPalm::GetTitle() const
 {
-    return wxString("");
+    return wxEmptyString;
 }
 
 void wxWindowPalm::DoCaptureMouse()
@@ -1096,21 +1096,6 @@ extern wxWindow *wxGetWindowFromHWND(WXHWND hWnd)
     return NULL;
 }
 
-#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
-
-void wxSetKeyboardHook(bool doIt)
-{
-}
-
-#endif // !__WXMICROWIN__
-
-#ifdef __WXDEBUG__
-const char *wxGetMessageName(int message)
-{
-    return "";
-}
-#endif //__WXDEBUG__
-
 // Find the wxWindow at the current mouse position, returning the mouse
 // position.
 wxWindow* wxFindWindowAtPointer(wxPoint& pt)