]>
git.saurik.com Git - wxWidgets.git/blob - contrib/samples/applet/monitorapplet.cpp
1 /****************************************************************************
3 * wxWindows HTML Applet Package
5 * Copyright (C) 1991-2001 SciTech Software, Inc.
8 * ======================================================================
9 * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
11 * |This copyrighted computer code is a proprietary trade secret of |
12 * |SciTech Software, Inc., located at 505 Wall Street, Chico, CA 95928 |
13 * |USA (www.scitechsoft.com). ANY UNAUTHORIZED POSSESSION, USE, |
14 * |VIEWING, COPYING, MODIFICATION OR DISSEMINATION OF THIS CODE IS |
15 * |STRICTLY PROHIBITED BY LAW. Unless you have current, express |
16 * |written authorization from SciTech to possess or use this code, you |
17 * |may be subject to civil and/or criminal penalties. |
19 * |If you received this code in error or you would like to report |
20 * |improper use, please immediately contact SciTech Software, Inc. at |
23 * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
24 * ======================================================================
29 * Description: Main wxApplet class implementation
31 ****************************************************************************/
33 // For compilers that support precompilation
34 #include "wx/wxprec.h"
36 // Include private headers
38 #include "monitorapplet.h"
40 /*---------------------------- Global variables ---------------------------*/
42 // Implement the dynamic class so it can be constructed dynamically
43 IMPLEMENT_DYNAMIC_CLASS(MonitorApplet
, wxApplet
);
45 // Event handler table.
46 BEGIN_EVENT_TABLE(MonitorApplet
, wxApplet
)
47 EVT_LISTBOX(ID_LISTBOX_MFTR
, MonitorApplet::OnChange
)
48 EVT_LISTBOX(ID_LISTBOX_MDL
, MonitorApplet::OnChange
)
51 // Include database of known monitors. Normally this would come from a
52 // real database on disk, but for this simple example we hard code all
53 // the values into a table.
56 /*------------------------- Implementation --------------------------------*/
58 /****************************************************************************
60 Constructor called during dynamic creation. Simple initialise all
61 internal values for the class so that it can be properly created later
62 via the virtual Create member function.
63 ****************************************************************************/
64 MonitorApplet::MonitorApplet()
71 /****************************************************************************
73 Psuedo virtual constructor for the MonitorApplet class.
74 ****************************************************************************/
75 bool MonitorApplet::Create(
76 wxHtmlAppletWindow
*parent
,
80 bool ret
= wxApplet::Create(parent
, size
, style
);
82 // Read our cookie or create it if it does not exist
83 if ((m_Data
= (MonitorData
*)parent
->FindCookie(MONITOR_COOKIE_NAME
)) == NULL
) {
84 m_Data
= new MonitorData
;
85 memset(&m_Data
->m_Monitor
,0,sizeof(m_Data
->m_Monitor
));
86 parent
->RegisterCookie(MONITOR_COOKIE_NAME
,m_Data
);
89 // Create all the controls and initialise them
90 MonitorDialogFunc(this,true,true);
91 if ((m_Mfr
= new ComboBox(this , ID_LISTBOX_MFTR
, ID_TEXTCTRL_MFTR
)) == NULL
)
93 if ((m_Model
= new ComboBox(this , ID_LISTBOX_MDL
, ID_TEXTCTRL_MDL
)) == NULL
)
101 /****************************************************************************
103 Destructor for the MonitorApplet class.
104 ****************************************************************************/
105 MonitorApplet::~MonitorApplet()
111 /****************************************************************************
113 Save the current state for the applet to our cookie
114 ****************************************************************************/
115 void MonitorApplet::SaveCurrentState()
117 // Read currently selected strings into cookie
118 strcpy(m_Data
->m_Monitor
.m_Mfr
,m_Mfr
->GetStringSelection());
119 strcpy(m_Data
->m_Monitor
.m_Model
,m_Model
->GetStringSelection());
122 /****************************************************************************
124 Handles user navigation away from the applet via an HTML link
125 ****************************************************************************/
126 void MonitorApplet::OnLinkClicked(
127 const wxHtmlLinkInfo
&)
132 /****************************************************************************
134 Handles user navigation away from the applet via the history forward command
135 ****************************************************************************/
136 void MonitorApplet::OnHistoryForward()
141 /****************************************************************************
143 Handles user navigation away from the applet via the history back command
144 ****************************************************************************/
145 void MonitorApplet::OnHistoryBack()
150 /****************************************************************************
152 Handles inter applet communication messages
153 ****************************************************************************/
154 void MonitorApplet::OnMessage(
160 /****************************************************************************
162 ****************************************************************************/
163 void MonitorApplet::OnChange(
166 if (evt
.GetId() == m_Mfr
->GetListBoxId()) {
167 m_Mfr
->OnChange(evt
);
170 else if (evt
.GetId() == m_Model
->GetListBoxId()) {
171 m_Model
->OnChange(evt
);
175 /****************************************************************************
177 Updates the manufacturer list for the dialog box from the database.
178 ****************************************************************************/
179 void MonitorApplet::ReadMfrList()
186 for (m
= m_Monitors
,i
= 0; m
->m_Mfr
[0] != 0; m
++) {
187 if (wxStricmp(buf
,m
->m_Mfr
) != 0) {
188 m_Mfr
->Append(m
->m_Mfr
);
189 if (wxStricmp(m_Data
->m_Monitor
.m_Mfr
,m
->m_Mfr
) == 0)
191 strcpy(buf
,m
->m_Mfr
);
195 m_Mfr
->Select(selected
);
198 /****************************************************************************
200 Updates the model list for the dialog box for the currently selected
202 ****************************************************************************/
203 void MonitorApplet::ReadModelList(
210 mfrStr
= m_Mfr
->GetStringSelection();
212 for (m
= m_Monitors
,i
= 0; m
->m_Mfr
[0] != 0; m
++) {
213 if (wxStricmp(mfrStr
,m
->m_Mfr
) == 0) {
214 m_Model
->Append(m
->m_Model
);
215 if (selectCurrent
&& wxStricmp(m_Data
->m_Monitor
.m_Model
,m
->m_Model
) == 0)
220 m_Model
->Select(selected
);