// include the platform-dependent class definition
// ----------------------------------------------------------------------------
-#if defined(__WXMSW__)
+#if defined(__WXUNIVERSAL__)
+ #include "wx/univ/choice.h"
+#elif defined(__WXMSW__)
#include "wx/msw/choice.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/choice.h"
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/univ/choice.h
+// Purpose: the universal choice
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 30.08.00
+// RCS-ID: $Id$
+// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_UNIV_CHOICE_H_
+#define _WX_UNIV_CHOICE_H_
+
+#ifdef __GNUG__
+ #pragma interface "univchoice.h"
+#endif
+
+#include "wx/combobox.h"
+
+// VS: This is only a *temporary* implementation, real wxChoice should not
+// derive from wxComboBox and may have different l&f
+class WXDLLEXPORT wxChoice : public wxComboBox
+{
+public:
+ wxChoice() {}
+ wxChoice(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = (const wxString *) NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr)
+ {
+ Create(parent, id, pos, size, n, choices, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ int n = 0, const wxString choices[] = (wxString *) NULL,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxChoiceNameStr);
+
+ void *GetClientData(int n) const { return wxItemContainer::GetClientData(n); }
+
+private:
+ void OnComboBox(wxCommandEvent &event);
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxChoice)
+};
+
+
+#endif // _WX_UNIV_CHOICE_H_
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: univ/choice.cpp
+// Purpose: wxChoice implementation
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 15.12.00
+// RCS-ID: $Id$
+// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#ifdef __GNUG__
+ #pragma implementation "univchoice.h"
+#endif
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#if wxUSE_CHOICE
+
+#ifndef WX_PRECOMP
+ #include "wx/choice.h"
+#endif
+
+IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
+
+BEGIN_EVENT_TABLE(wxChoice, wxComboBox)
+ EVT_COMBOBOX(-1, wxChoice::OnComboBox)
+END_EVENT_TABLE()
+
+bool wxChoice::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ int n, const wxString choices[],
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ wxString value;
+ if ( n )
+ value = choices[0];
+ return wxComboBox::Create(parent, id, value,
+ pos, size, n, choices,
+ wxCB_READONLY, validator, name);
+}
+
+
+void wxChoice::OnComboBox(wxCommandEvent& event)
+{
+ if ( event.GetId() == GetId() )
+ {
+ event.SetEventType(wxEVT_COMMAND_CHOICE_SELECTED);
+ event.Skip();
+ GetEventHandler()->ProcessEvent(event);
+ }
+ else
+ event.Skip();
+}
+
+#endif // wxUSE_CHOICE