]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/radiobut.cpp
wx..._EX_METAL styles support
[wxWidgets.git] / src / palmos / radiobut.cpp
index d7c45e609bc9f6f926df5e379c2a19660e621f56..394cf2d4139c2a032bce266b954faa645bb4c0da 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "radiobut.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -36,6 +32,8 @@
     #include "wx/dcscreen.h"
 #endif
 
+#include <Control.h>
+
 // ============================================================================
 // wxRadioButton implementation
 // ============================================================================
@@ -102,6 +100,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
 
 void wxRadioButton::Init()
 {
+    m_radioStyle = pushButtonCtl;
+    m_groupID = 0;
 }
 
 bool wxRadioButton::Create(wxWindow *parent,
@@ -113,8 +113,26 @@ bool wxRadioButton::Create(wxWindow *parent,
                            const wxValidator& validator,
                            const wxString& name)
 {
-    wxControl::PalmCreateControl(pushButtonCtl, parent, id, label, pos, size);
-    return true;
+    // replace native push button with native checkbox
+    if ( style & wxRB_USE_CHECKBOX )
+        m_radioStyle = checkboxCtl;
+
+    if(!wxControl::Create(parent, id, pos, size, style, validator, name))
+        return false;
+
+    return wxControl::PalmCreateControl(
+                          // be sure only one of two possibilities was taken
+                          m_radioStyle == checkboxCtl ? checkboxCtl : pushButtonCtl,
+                          label,
+                          pos,
+                          size,
+                          m_groupID
+                      );
+}
+
+void wxRadioButton::SetGroup(uint8_t group)
+{
+    m_groupID = group;
 }
 
 // ----------------------------------------------------------------------------
@@ -135,6 +153,14 @@ bool wxRadioButton::GetValue() const
 // wxRadioButton event processing
 // ----------------------------------------------------------------------------
 
+bool wxRadioButton::SendClickEvent()
+{
+    wxCommandEvent event(wxEVT_COMMAND_RADIOBUTTON_SELECTED, GetId());
+    event.SetInt(GetValue());
+    event.SetEventObject(this);
+    return ProcessCommand(event);
+}
+
 void wxRadioButton::Command (wxCommandEvent& event)
 {
 }