#include "wx/display.h"
-#ifndef ICON_BIG
- #define ICON_BIG 1
-#endif
-
-#ifndef ICON_SMALL
- #define ICON_SMALL 0
-#endif
-
-
// ----------------------------------------------------------------------------
// globals
// ----------------------------------------------------------------------------
extern const wxChar *wxCanvasClassName;
// Pointer to the currently active frame for the form event handler.
-wxFrame* ActiveParentFrame;
+wxTopLevelWindowPalm* ActiveParentFrame;
// ============================================================================
// wxTopLevelWindowPalm implementation
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,
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;
-
- FrameForm=FrmNewForm(m_windowId,title,0,0,160,160,false,0,NULL,0,NULL,0);
- if(FrameForm==0)
+ SetId( id == wxID_ANY ? NewControlId() : id );
+
+ WinConstraintsType constraints;
+ memset(&constraints, 0, sizeof(WinConstraintsType));
+ // position
+ constraints.x_pos = ( pos.x == wxDefaultCoord ) ? winUndefConstraint : pos.x;
+ constraints.y_pos = ( pos.y == wxDefaultCoord ) ? winUndefConstraint : pos.y;
+ // size
+ 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(
+ GetId(),
+ 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;
}
{
}
+void wxTopLevelWindowPalm::DoGetSize( int *width, int *height ) const
+{
+ RectangleType rect;
+ FrmGetFormBounds( GetForm() , &rect );
+ if(width)
+ *width = rect.extent.x;
+ if(height)
+ *height = rect.extent.y;
+}
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowPalm fullscreen
// ----------------------------------------------------------------------------
return false;
}
+FormType *wxTopLevelWindowPalm::GetForm() const
+{
+ return FrmGetActiveForm();
+}
+
#ifndef __WXWINCE__
bool wxTopLevelWindowPalm::SetShape(const wxRegion& region)
*/
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: