- native wxProgressDialog implementation
- native wxColourDialog implementation
- native wxSystemSettings colours
+- native wxButton implementation
2.5.3
#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
// 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
/////////////////////////////////////////////////////////////////////////////
wxButton() { }
wxButton(wxWindow *parent,
wxWindowID id,
- const wxString& label,
+ const wxString& label = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
// 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)
// 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
// --------------------------
// 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);
// 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
// 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()
// 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
#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.
// 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
///////////////////////////////////////////////////////////////////////////////
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
// 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);
// 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
/////////////////////////////////////////////////////////////////////////////
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)
// 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
/////////////////////////////////////////////////////////////////////////////
#include "wx/dcscreen.h"
#endif
-#include "wx/palmos/private.h"
-
// ----------------------------------------------------------------------------
// macros
// ----------------------------------------------------------------------------
const wxValidator& validator,
const wxString& name)
{
- // remember about stock IDs
- return false;
+ wxControl::PalmCreateControl(buttonCtl, parent, id, label, pos, size);
+ return true;
}
wxButton::~wxButton()
wxControl::~wxControl()
{
- m_isBeingDeleted = TRUE;
+ m_isBeingDeleted = true;
}
// ----------------------------------------------------------------------------
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;
}
// ----------------------------------------------------------------------------
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
return GetEventHandler()->ProcessEvent(event);
}
-#ifdef __WIN95__
-bool wxControl::MSWOnNotify(int idCtrl,
- WXLPARAM lParam,
- WXLPARAM* result)
-{
-}
-#endif // Win95
-
void wxControl::OnEraseBackground(wxEraseEvent& event)
{
}
// 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
/////////////////////////////////////////////////////////////////////////////
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;
#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;
wxString wxJoystick::GetProductName() const
{
- return wxString("");
+ return wxEmptyString;
}
int wxJoystick::GetXMin() const
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());
#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;
+ 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;
}
*/
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:
wxString wxWindowPalm::GetTitle() const
{
- return wxString("");
+ return wxEmptyString;
}
void wxWindowPalm::DoCaptureMouse()
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)