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
This commit is contained in:
Włodzimierz Skiba
2005-01-24 07:38:52 +00:00
parent 5125ea1f83
commit db101bd352
15 changed files with 139 additions and 202 deletions

View File

@@ -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()

View File

@@ -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);
FormType* form = FrmGetActiveForm ();
m_control = CtlNewControl (
(void **)&form,
id,
style,
label.c_str(),
pos.x,
pos.y,
size.x,
size.y,
boldFont,
0,
false
);
return MSWCreateControl(classname, msStyle, pos, size, label, exstyle);
}
if(m_control==NULL)
return false;
bool wxControl::MSWCreateControl(const wxChar *classname,
WXDWORD style,
const wxPoint& pos,
const wxSize& size,
const wxString& label,
WXDWORD exstyle)
{
return TRUE;
form = FrmGetActiveForm ();
m_objectIndex = FrmGetObjectIndex(form, id);
Show();
return true;
}
// ----------------------------------------------------------------------------
@@ -118,16 +128,42 @@ wxBorder wxControl::GetDefaultBorder() const
return wxBORDER_SUNKEN;
}
WXDWORD wxControl::MSWGetStyle(long style, WXDWORD *exstyle) const
{
return 0;
}
wxSize wxControl::DoGetBestSize() const
{
return wxSize(16, 16);
}
bool wxControl::Enable(bool enable)
{
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
wxControl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
{
@@ -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)
{
}

View File

@@ -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;

View File

@@ -107,7 +107,7 @@ int wxJoystick::GetProductId() const
wxString wxJoystick::GetProductName() const
{
return wxString("");
return wxEmptyString;
}
int wxJoystick::GetXMin() const

View File

@@ -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());

View File

@@ -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,6 +87,10 @@ bool wxTopLevelWindowPalm::Create(wxWindow *parent,
long style,
const wxString& name)
{
// this is a check for limitation mentioned before FrameFormHandleEvent() code
if(wxTopLevelWindows.GetCount()>0)
return false;
ActiveParentFrame=NULL;
wxTopLevelWindows.Append(this);
@@ -120,54 +100,37 @@ bool wxTopLevelWindowPalm::Create(wxWindow *parent,
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 ) ;
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 = FrmNewForm( m_windowId,
title,
x, y,
w, h,
false,
0,
NULL,
0,
NULL,
0);
if(FrameForm==0)
return false;
FrameForm = FrmNewFormWithConstraints(
m_windowId,
title.c_str(),
winFlagBackBuffer,
&constraints,
0,
NULL,
0,
NULL,
0
);
FrmSetEventHandler(FrameForm,FrameFormHandleEvent);
return true;
}
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)
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:

View File

@@ -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)