- native wxColourDialog implementation
- native wxSystemSettings colours
- native wxButton implementation
+- native wxCheckBox implementation
+- native wxSlider implementation
+- native wxToggleButton implementation
2.5.3
#include "wx/cocoa/checkbox.h"
#elif defined(__WXPM__)
#include "wx/os2/checkbox.h"
+#elif defined(__WXPALMOS__)
+ #include "wx/palmos/checkbox.h"
#endif
#endif // wxUSE_CHECKBOX
// implementation from now on
virtual void Command(wxCommandEvent& event);
- virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual void ApplyParentThemeBackground(const wxColour& bg)
{
// usually overridden base class virtuals
virtual wxSize DoGetBestSize() const;
- virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const ;
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxButton)
// Name: wx/palmos/checkbox.h
// Purpose: wxCheckBox class
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
virtual void SetValue(bool value);
virtual bool GetValue() const;
- virtual void SetLabel(const wxString& label);
-
- virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual void Command(wxCommandEvent& event);
protected:
// Name: wx/palmos/control.h
// Purpose: wxControl class
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
virtual bool Show( bool show = true );
virtual bool IsShown() const;
+ virtual void SetLabel(const wxString& label);
+ virtual wxString GetLabel();
+
// implementation from now on
// --------------------------
wxArrayLong m_subControls;
ControlType *m_control;
- uint16_t m_objectIndex;
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl)
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 0 // wxBitmapButton
#define wxUSE_CALENDARCTRL 0 // wxCalendarCtrl
-#define wxUSE_CHECKBOX 0 // wxCheckBox
+#define wxUSE_CHECKBOX 1 // wxCheckBox
#define wxUSE_CHECKLISTBOX 0 // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
#define wxUSE_CHOICE 0 // wxChoice
#define wxUSE_COMBOBOX 0 // wxComboBox
#define wxUSE_RADIOBOX 0 // wxRadioBox
#define wxUSE_RADIOBTN 0 // wxRadioButton
#define wxUSE_SCROLLBAR 0 // wxScrollBar
-#define wxUSE_SLIDER 0 // wxSlider
+#define wxUSE_SLIDER 1 // wxSlider
#define wxUSE_SPINBTN 0 // wxSpinButton
#define wxUSE_SPINCTRL 0 // wxSpinCtrl
#define wxUSE_STATBOX 0 // wxStaticBox
#define wxUSE_STATTEXT 0 // wxStaticText
#define wxUSE_STATBMP 0 // wxStaticBitmap
#define wxUSE_TEXTCTRL 0 // wxTextCtrl
-#define wxUSE_TOGGLEBTN 0 // requires wxButton
+#define wxUSE_TOGGLEBTN 1 // requires wxButton
#define wxUSE_TREECTRL 0 // wxTreeCtrl
// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
// Name: wx/palmos/slider95.h
// Purpose: wxSlider class
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
void GetPosition(int *x, int *y) const;
- bool Show(bool show = TRUE);
-
void SetRange(int minValue, int maxValue);
- int GetMin() const { return m_rangeMin; }
- int GetMax() const { return m_rangeMax; }
+ int GetMin() const;
+ int GetMax() const;
// For trackbars only
void SetTickFreq(int n, int pos);
- int GetTickFreq() const { return m_tickFreq; }
+ int GetTickFreq() const { return GetPageSize(); }
void SetPageSize(int pageSize);
int GetPageSize() const;
void ClearSel();
int GetThumbLength() const;
void SetTick(int tickPos);
- // IMPLEMENTATION
- WXHWND GetStaticMin() const { return m_staticMin; }
- WXHWND GetStaticMax() const { return m_staticMax; }
- WXHWND GetEditValue() const { return m_staticValue; }
- virtual bool ContainsHWND(WXHWND hWnd) const;
-
+ // implementation
void Command(wxCommandEvent& event);
- virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
- virtual bool MSWOnScroll(int orientation, WXWORD wParam,
- WXWORD pos, WXHWND control);
protected:
- WXHWND m_staticMin;
- WXHWND m_staticMax;
- WXHWND m_staticValue;
- int m_rangeMin;
- int m_rangeMax;
- int m_pageSize;
- int m_lineSize;
- int m_tickFreq;
-
virtual void DoGetSize(int *width, int *height) const;
virtual void DoSetSize(int x, int y,
// Purpose: Declaration of the wxToggleButton class, which implements a
// toggle button under Palm OS.
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
virtual void SetValue(bool value);
virtual bool GetValue() const ;
- virtual bool MSWCommand(WXUINT param, WXWORD id);
- virtual void SetLabel(const wxString& label);
virtual void Command(wxCommandEvent& event);
protected:
virtual wxSize DoGetBestSize() const;
virtual wxBorder GetDefaultBorder() const;
- virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton)
void SetLastFocus(wxWindow *win) { m_winLastFocused = win; }
wxWindow *GetLastFocus() const { return m_winLastFocused; }
+ // interface to native frame structure
+ FormType *GetForm();
+
protected:
// common part of all ctors
void Init();
#include "wx/cocoa/slider.h"
#elif defined(__WXPM__)
#include "wx/os2/slider.h"
+#elif defined(__WXPALMOS__)
+ #include "wx/palmos/slider.h"
#endif
#endif // wxUSE_SLIDER
#include "wx/motif/tglbtn.h"
#elif defined(__WXMAC__)
#include "wx/mac/tglbtn.h"
+#elif defined(__WXPALMOS__)
+ #include "wx/palmos/tglbtn.h"
/*
# elif defined(__WXPM__)
# include "wx/os2/tglbtn.h"
{
}
-// ----------------------------------------------------------------------------
-// flags
-// ----------------------------------------------------------------------------
-
-WXDWORD wxButton::MSWGetStyle(long style, WXDWORD *exstyle) const
-{
- return 0;
-}
-
// ----------------------------------------------------------------------------
// size management including autosizing
// ----------------------------------------------------------------------------
{
}
-// ----------------------------------------------------------------------------
-// event/message handlers
-// ----------------------------------------------------------------------------
-
-bool wxButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
-{
- return false;
-}
-
#endif // wxUSE_BUTTON
// Name: src/palmos/checkbox.cpp
// Purpose: wxCheckBox
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/settings.h"
#endif
-#include "wx/palmos/private.h"
-
-#ifndef BST_UNCHECKED
- #define BST_UNCHECKED 0x0000
-#endif
-
-#ifndef BST_CHECKED
- #define BST_CHECKED 0x0001
-#endif
-
-#ifndef BST_INDETERMINATE
- #define BST_INDETERMINATE 0x0002
-#endif
-
// ============================================================================
// implementation
// ============================================================================
// wxCheckBox
// ----------------------------------------------------------------------------
-bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
-{
- return true;
-}
-
bool wxCheckBox::Create(wxWindow *parent,
wxWindowID id,
const wxString& label,
const wxValidator& validator,
const wxString& name)
{
- return false;
-}
-
-void wxCheckBox::SetLabel(const wxString& label)
-{
+ wxControl::PalmCreateControl(checkboxCtl, parent, id, label, pos, size);
+ return true;
}
wxSize wxCheckBox::DoGetBestSize() const
{
}
-wxCOMPILE_TIME_ASSERT(wxCHK_UNCHECKED == BST_UNCHECKED
- && wxCHK_CHECKED == BST_CHECKED
- && wxCHK_UNDETERMINED == BST_INDETERMINATE, EnumValuesIncorrect);
-
void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
{
}
// Name: src/palmos/control.cpp
// Purpose: wxControl class
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#endif
#include "wx/control.h"
+#include "wx/toplevel.h"
+#include "wx/button.h"
+#include "wx/checkbox.h"
+#include "wx/tglbtn.h"
// ----------------------------------------------------------------------------
// wxWin macros
const wxPoint& pos,
const wxSize& size)
{
- FormType* form = FrmGetActiveForm ();
- m_control = CtlNewControl (
+ wxWindow* parentTLW = parent;
+ while ( parentTLW && !parentTLW->IsTopLevel() )
+ {
+ parentTLW = parentTLW->GetParent();
+ }
+ wxTopLevelWindowPalm* tlw = wxDynamicCast(parentTLW, wxTopLevelWindowPalm);
+ if(!tlw)
+ return false;
+ FormType* form = tlw->GetForm();
+
+ SetParent(parent);
+
+ m_control = CtlNewControl(
(void **)&form,
id,
style,
if(m_control==NULL)
return false;
- form = FrmGetActiveForm ();
- m_objectIndex = FrmGetObjectIndex(form, id);
Show();
return true;
}
bool wxControl::Show( bool show )
{
if(show)
- FrmShowObject(FrmGetActiveForm(), m_objectIndex);
+ CtlShowControl(m_control);
else
- FrmHideObject(FrmGetActiveForm(), m_objectIndex);
+ CtlHideControl(m_control);
return true;
}
+void wxControl::SetLabel(const wxString& label)
+{
+ // setting in wrong control causes crash
+ if ( ( wxDynamicCast(this,wxButton) != NULL ) ||
+ ( wxDynamicCast(this,wxCheckBox) != NULL ) ||
+ ( wxDynamicCast(this,wxToggleButton) != NULL ) )
+ {
+ CtlSetLabel(m_control,label);
+ }
+}
+
+wxString wxControl::GetLabel()
+{
+ // setting in wrong control causes crash
+ if ( wxDynamicCast(this,wxButton) ||
+ wxDynamicCast(this,wxCheckBox) ||
+ wxDynamicCast(this,wxToggleButton) )
+ {
+ return CtlGetLabel(m_control);
+ }
+
+ return wxEmptyString;
+}
+
/* static */ wxVisualAttributes
wxControl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
{
// Name: src/palmos/slider.cpp
// Purpose: wxSlider
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/slider.h"
#endif
-#include "wx/palmos/slider.h"
-#include "wx/palmos/private.h"
+#include "wx/toplevel.h"
#if wxUSE_EXTENDED_RTTI
WX_DEFINE_FLAGS( wxSliderStyle )
const wxValidator& validator,
const wxString& name)
{
- return false;
+ wxWindow* parentTLW = GetParent();
+ while ( parentTLW && !parentTLW->IsTopLevel() )
+ {
+ parentTLW = parentTLW->GetParent();
+ }
+ wxTopLevelWindowPalm* tlw = wxDynamicCast(parentTLW, wxTopLevelWindowPalm);
+ if(!tlw)
+ return false;
+ FormType* form = tlw->GetForm();
+
+ SetParent(parent);
+
+ SliderControlType *slider = CtlNewSliderControl (
+ (void **)&form,
+ id,
+ feedbackSliderCtl,
+ NULL,
+ 0,
+ 0,
+ pos.x,
+ pos.y,
+ size.x,
+ size.y,
+ minValue,
+ maxValue,
+ 1,
+ value
+ );
+
+ m_control = (ControlType*) slider;
+
+ if(m_control==NULL)
+ return false;
+
+ Show();
+ return true;
}
-bool wxSlider::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
- WXWORD WXUNUSED(pos), WXHWND control)
+wxSlider::~wxSlider()
{
- return false;
}
-wxSlider::~wxSlider()
+int wxSlider::GetMin() const
+{
+ uint16_t ret;
+ CtlGetSliderValues(m_control, &ret, NULL, NULL, NULL);
+ return ret;
+}
+
+int wxSlider::GetMax() const
+{
+ uint16_t ret;
+ CtlGetSliderValues(m_control, NULL, &ret, NULL, NULL);
+ return ret;
+}
+
+int wxSlider::GetPageSize() const
{
+ uint16_t ret;
+ CtlGetSliderValues(m_control, NULL, NULL, &ret, NULL);
+ return ret;
}
int wxSlider::GetValue() const
{
- return 0;
+ uint16_t ret;
+ CtlGetSliderValues(m_control, NULL, NULL, NULL, &ret);
+ return ret;
}
void wxSlider::SetValue(int value)
{
}
-WXHBRUSH wxSlider::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
-{
- return 0;
-}
-
void wxSlider::SetTickFreq(int n, int pos)
{
}
{
}
-int wxSlider::GetPageSize() const
-{
- return 0;
-}
-
void wxSlider::ClearSel()
{
}
{
}
-bool wxSlider::ContainsHWND(WXHWND hWnd) const
-{
- return false;
-}
-
void wxSlider::Command (wxCommandEvent & event)
{
}
-bool wxSlider::Show(bool show)
-{
- return false;
-}
-
#endif // wxUSE_SLIDER
// Purpose: Definition of the wxToggleButton class, which implements a
// toggle button.
// Author: William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
// Created: 10/13/04
// RCS-ID: $Id$
-// Copyright: (c) William Osborne
+// Copyright: (c) William Osborne, Wlodzimierz Skiba
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#pragma hdrstop
#endif
-#include "wx/tglbtn.h"
-
#if wxUSE_TOGGLEBTN
#ifndef WX_PRECOMP
#include "wx/log.h"
#endif // WX_PRECOMP
-#include "wx/palmos/private.h"
+#include "wx/tglbtn.h"
// ----------------------------------------------------------------------------
// macros
IMPLEMENT_DYNAMIC_CLASS(wxToggleButton, wxControl)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
-#define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10)
-
// ============================================================================
// implementation
// ============================================================================
// wxToggleButton
// ----------------------------------------------------------------------------
-bool wxToggleButton::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
-{
- wxCommandEvent event(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, m_windowId);
- event.SetInt(GetValue());
- event.SetEventObject(this);
- ProcessCommand(event);
- return TRUE;
-}
-
// Single check box item
bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
const wxString& label,
const wxValidator& validator,
const wxString& name)
{
- return false;
+ wxControl::PalmCreateControl(pushButtonCtl, parent, id, label, pos, size);
+ return true;
}
wxBorder wxToggleButton::GetDefaultBorder() const
return wxBORDER_NONE;
}
-WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const
-{
- return 0;
-}
-
-void wxToggleButton::SetLabel(const wxString& label)
-{
-}
-
wxSize wxToggleButton::DoGetBestSize() const
{
return wxSize(0,0);
{
}
-#ifndef BST_CHECKED
-#define BST_CHECKED 0x0001
-#endif
-
bool wxToggleButton::GetValue() const
{
return false;
return false;
}
+FormType *wxTopLevelWindowPalm::GetForm()
+{
+ return FrmGetActiveForm ();
+}
+
#ifndef __WXWINCE__
bool wxTopLevelWindowPalm::SetShape(const wxRegion& region)