+    ProcessCommand (event);
+}
+
+// ----------------------------------------------------------------------------
+// helpers
+// ----------------------------------------------------------------------------
+
+bool wxButton::SendClickEvent()
+{
+    wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, GetId());
+    event.SetEventObject(this);
+
+    return ProcessCommand(event);
+}
+
+void wxButton::SetDefault()
+{
+    wxWindow *parent = GetParent();
+    wxButton *btnOldDefault = NULL;
+    wxPanel *panel = wxDynamicCast(parent, wxPanel);
+    if (panel)
+        panel->SetDefaultItem(this);
+
+    // TODO: make button the default
+}
+
+// ----------------------------------------------------------------------------
+// event/message handlers
+// ----------------------------------------------------------------------------
+
+bool wxButton::OS2Command(WXUINT param, WXWORD id)
+{
+    bool processed = FALSE;