1 /****************************************************************************
2 *
3 *                       wxWindows HTML Applet Package
4 *
5 *               Copyright (C) 1991-2001 SciTech Software, Inc.
6 *                            All rights reserved.
7 *
8 *  ========================================================================
9 *
10 *    The contents of this file are subject to the wxWindows License
11 *    Version 3.0 (the "License"); you may not use this file except in
12 *    compliance with the License. You may obtain a copy of the License at
13 *    http://www.wxwindows.org/licence3.txt
14 *
15 *    Software distributed under the License is distributed on an
16 *    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
17 *    implied. See the License for the specific language governing
18 *    rights and limitations under the License.
19 *
20 *  ========================================================================
21 *
22 * Language:     ANSI C++
23 * Environment:  Any
24 *
25 * Description:  Combobox wrapper. This file implements the custom
26 *               combo boxes used for this sample program.
27 *
28 ****************************************************************************/
29 
30 // For compilers that support precompilation, includes "wx/wx.h".
31 #include "wx/wxprec.h"
32 #ifdef __BORLANDC__
33     #pragma hdrstop
34 #endif
35 
36 #include "wx/wx.h"
37 #include "combobox.h"
38 
39 /*------------------------- Implementation --------------------------------*/
40 
ComboBox(wxWindow * parent,int listid,int textid)41 ComboBox::ComboBox(
42     wxWindow *parent,
43     int listid,
44     int textid)
45     : m_Parent(parent), m_ListBoxId(listid), m_TextCtrlId(textid)
46 {
47     m_ListBox  = wxDynamicCast(m_Parent->FindWindow(listid),wxListBox);
48     m_TextCtrl = wxDynamicCast(m_Parent->FindWindow(textid),wxTextCtrl);
49 }
50 
GetListBoxId()51 int ComboBox::GetListBoxId()
52 {
53     return m_ListBoxId;
54 }
55 
GetSelection()56 int ComboBox::GetSelection()
57 {
58     return m_ListBox->GetSelection();
59 }
60 
GetStringSelection()61 wxString ComboBox::GetStringSelection()
62 {
63     return m_ListBox->GetStringSelection();
64 }
65 
SetStringSelection(const wxString & s,bool select)66 bool ComboBox::SetStringSelection(const wxString& s, bool select)
67 {
68     select = TRUE;
69     select = m_ListBox->SetStringSelection(s, select);
70     m_TextCtrl->SetValue(GetStringSelection());
71     return select;
72 }
73 
Select(int n)74 void ComboBox::Select(int n)
75 {
76     m_ListBox->Select(n);
77     m_TextCtrl->SetValue(GetStringSelection());
78 }
79 
Deselect(int n)80 void ComboBox::Deselect(int n)
81 {
82     m_ListBox->Deselect(n);
83 }
84 
Insert(const wxString & item,int pos)85 void ComboBox::Insert(const wxString& item, int pos)
86 {
87     m_ListBox->Insert(item,pos);
88 }
89 
Insert(const wxString & item,int pos,void * clientData)90 void ComboBox::Insert(const wxString& item, int pos, void *clientData)
91 {
92     m_ListBox->Insert(item, pos, clientData);
93 }
94 
Insert(const wxString & item,int pos,wxClientData * clientData)95 void ComboBox::Insert(const wxString& item, int pos, wxClientData *clientData)
96 {
97     m_ListBox->Insert(item, pos, clientData);
98 }
99 
InsertItems(int nItems,const wxString * items,int pos)100 void ComboBox::InsertItems(int nItems, const wxString *items, int pos)
101 {
102     m_ListBox->InsertItems(nItems, items, pos);
103 }
104 
InsertItems(const wxArrayString & items,int pos)105 void ComboBox::InsertItems(const wxArrayString& items, int pos)
106 {
107     m_ListBox->InsertItems(items, pos);
108 }
109 
Set(int n,const wxString * items,void ** clientData)110 void ComboBox::Set(int n, const wxString* items, void **clientData)
111 {
112     m_ListBox->Set(n, items, clientData);
113     m_TextCtrl->SetValue(GetStringSelection());
114 }
115 
Set(const wxArrayString & items,void ** clientData)116 void ComboBox::Set(const wxArrayString& items, void **clientData)
117 {
118     m_ListBox->Set(items, clientData);
119     m_TextCtrl->SetValue(GetStringSelection());
120 }
121 
FindString(const wxString & s)122 int ComboBox::FindString(const wxString &s)
123 {
124     return (m_ListBox->FindString(s));
125 }
126 
SetFirstItem(int n)127 void ComboBox::SetFirstItem(int n)
128 {
129     m_ListBox->SetFirstItem(n);
130     m_TextCtrl->SetValue(GetStringSelection());
131 }
132 
SetFirstItem(const wxString & s)133 void ComboBox::SetFirstItem(const wxString &s)
134 {
135     m_ListBox->SetFirstItem(s);
136     m_TextCtrl->SetValue(GetStringSelection());
137 }
138 
Append(const wxString & item)139 void ComboBox::Append(const wxString &item)
140 {
141     m_ListBox->Append(item);
142     m_TextCtrl->SetValue(GetStringSelection());
143 }
144 
Append(const wxString & item,void * clientData)145 void ComboBox::Append(const wxString& item, void *clientData)
146 {
147     m_ListBox->Append(item, clientData);
148     m_TextCtrl->SetValue(GetStringSelection());
149 }
150 
Append(const wxString & item,wxClientData * clientData)151 void ComboBox::Append(const wxString& item, wxClientData *clientData)
152 {
153     m_ListBox->Append(item, clientData);
154     m_TextCtrl->SetValue(GetStringSelection());
155 }
156 
Clear()157 void ComboBox::Clear()
158 {
159     m_ListBox->Clear();
160     m_TextCtrl->SetValue(GetStringSelection());
161 }
162 
Delete(int n)163 void ComboBox::Delete(int n)
164 {
165     m_ListBox->Delete(n);
166     m_TextCtrl->SetValue(GetStringSelection());
167 }
168 
OnChange(wxCommandEvent &)169 void ComboBox::OnChange(wxCommandEvent &)
170 {
171     m_TextCtrl->SetValue(GetStringSelection());
172 }
173 
174