]> git.saurik.com Git - wxWidgets.git/commitdiff
added temporary implementation of wxChoice for wxUniv
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 17 Nov 2001 23:13:55 +0000 (23:13 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 17 Nov 2001 23:13:55 +0000 (23:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

distrib/msw/tmake/filelist.txt
include/wx/choice.h
include/wx/univ/choice.h [new file with mode: 0644]
src/univ/choice.cpp [new file with mode: 0644]

index eea3edf75299deb2987087946a3bd49cd8e99b4e..e52786f05bfbe1def71cc6b3f4807f4580667446 100644 (file)
@@ -363,6 +363,7 @@ bmpbuttn.cpp        Univ
 button.cpp     Univ
 checkbox.cpp   Univ
 checklst.cpp   Univ
+choice.cpp     Univ
 colschem.cpp   Univ
 combobox.cpp   Univ
 control.cpp    Univ
@@ -403,8 +404,7 @@ brush.cpp   GTK     LowLevel
 button.cpp     GTK
 checkbox.cpp   GTK
 checklst.cpp   GTK
-# FIXME: remove LowLevel from choice!
-choice.cpp     GTK     LowLevel
+choice.cpp     GTK
 clipbrd.cpp    GTK     LowLevel
 colour.cpp     GTK     LowLevel
 combobox.cpp   GTK
@@ -1404,6 +1404,7 @@ bmpbuttn.h        UnivH
 button.h       UnivH
 checkbox.h     UnivH
 checklst.h     UnivH
+choice.h       UnivH
 colschem.h     UnivH
 combobox.h     UnivH
 control.h      UnivH
index b94a76c6e20e36685babd1506be4df6d8268d4bd..6110e4b35b60588ff6782103313c22d504a476b7 100644 (file)
@@ -63,7 +63,9 @@ public:
 // 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"
diff --git a/include/wx/univ/choice.h b/include/wx/univ/choice.h
new file mode 100644 (file)
index 0000000..0c98707
--- /dev/null
@@ -0,0 +1,56 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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_
diff --git a/src/univ/choice.cpp b/src/univ/choice.cpp
new file mode 100644 (file)
index 0000000..7af8af8
--- /dev/null
@@ -0,0 +1,71 @@
+/////////////////////////////////////////////////////////////////////////////
+// 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