From: Václav Slavík Date: Sat, 17 Nov 2001 23:13:55 +0000 (+0000) Subject: added temporary implementation of wxChoice for wxUniv X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/926592a8cf4d74c4db610149b72172d0b263a5f4 added temporary implementation of wxChoice for wxUniv git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/distrib/msw/tmake/filelist.txt b/distrib/msw/tmake/filelist.txt index eea3edf752..e52786f05b 100644 --- a/distrib/msw/tmake/filelist.txt +++ b/distrib/msw/tmake/filelist.txt @@ -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 diff --git a/include/wx/choice.h b/include/wx/choice.h index b94a76c6e2..6110e4b35b 100644 --- a/include/wx/choice.h +++ b/include/wx/choice.h @@ -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 index 0000000000..0c98707ea0 --- /dev/null +++ b/include/wx/univ/choice.h @@ -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 index 0000000000..7af8af88e4 --- /dev/null +++ b/src/univ/choice.cpp @@ -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