Moved wxApplet files to the correct locations.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
221
contrib/samples/applet/monitorapplet.cpp
Normal file
221
contrib/samples/applet/monitorapplet.cpp
Normal file
@@ -0,0 +1,221 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* wxWindows HTML Applet Package
|
||||
*
|
||||
* Copyright (C) 1991-2001 SciTech Software, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* ======================================================================
|
||||
* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
|
||||
* | |
|
||||
* |This copyrighted computer code is a proprietary trade secret of |
|
||||
* |SciTech Software, Inc., located at 505 Wall Street, Chico, CA 95928 |
|
||||
* |USA (www.scitechsoft.com). ANY UNAUTHORIZED POSSESSION, USE, |
|
||||
* |VIEWING, COPYING, MODIFICATION OR DISSEMINATION OF THIS CODE IS |
|
||||
* |STRICTLY PROHIBITED BY LAW. Unless you have current, express |
|
||||
* |written authorization from SciTech to possess or use this code, you |
|
||||
* |may be subject to civil and/or criminal penalties. |
|
||||
* | |
|
||||
* |If you received this code in error or you would like to report |
|
||||
* |improper use, please immediately contact SciTech Software, Inc. at |
|
||||
* |530-894-8400. |
|
||||
* | |
|
||||
* |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
|
||||
* ======================================================================
|
||||
*
|
||||
* Language: ANSI C++
|
||||
* Environment: Any
|
||||
*
|
||||
* Description: Main wxApplet class implementation
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
// For compilers that support precompilation
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
// Include private headers
|
||||
#include "monitorapplet.h"
|
||||
|
||||
/*---------------------------- Global variables ---------------------------*/
|
||||
|
||||
// Implement the dynamic class so it can be constructed dynamically
|
||||
IMPLEMENT_DYNAMIC_CLASS(MonitorApplet, wxApplet);
|
||||
|
||||
// Event handler table.
|
||||
BEGIN_EVENT_TABLE(MonitorApplet, wxApplet)
|
||||
EVT_LISTBOX(ID_LISTBOX_MFTR, MonitorApplet::OnChange)
|
||||
EVT_LISTBOX(ID_LISTBOX_MDL, MonitorApplet::OnChange)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
// Include database of known monitors. Normally this would come from a
|
||||
// real database on disk, but for this simple example we hard code all
|
||||
// the values into a table.
|
||||
#include "monitors.c"
|
||||
|
||||
/*------------------------- Implementation --------------------------------*/
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Constructor called during dynamic creation. Simple initialise all
|
||||
internal values for the class so that it can be properly created later
|
||||
via the virtual Create member function.
|
||||
****************************************************************************/
|
||||
MonitorApplet::MonitorApplet()
|
||||
{
|
||||
m_Mfr = NULL;
|
||||
m_Model = NULL;
|
||||
m_Data = NULL;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Psuedo virtual constructor for the MonitorApplet class.
|
||||
****************************************************************************/
|
||||
bool MonitorApplet::Create(
|
||||
wxHtmlAppletWindow *parent,
|
||||
const wxSize& size,
|
||||
long style)
|
||||
{
|
||||
bool ret = wxApplet::Create(parent, size, style);
|
||||
if (ret) {
|
||||
// Read our cookie or create it if it does not exist
|
||||
if ((m_Data = (MonitorData*)parent->FindCookie(MONITOR_COOKIE_NAME)) == NULL) {
|
||||
m_Data = new MonitorData;
|
||||
memset(&m_Data->m_Monitor,0,sizeof(m_Data->m_Monitor));
|
||||
parent->RegisterCookie(MONITOR_COOKIE_NAME,m_Data);
|
||||
}
|
||||
|
||||
// Create all the controls and initialise them
|
||||
MonitorDialogFunc(this,true,true);
|
||||
if ((m_Mfr = new ComboBox(this , ID_LISTBOX_MFTR, ID_TEXTCTRL_MFTR)) == NULL)
|
||||
return false;
|
||||
if ((m_Model = new ComboBox(this , ID_LISTBOX_MDL, ID_TEXTCTRL_MDL)) == NULL)
|
||||
return false;
|
||||
ReadMfrList();
|
||||
ReadModelList(true);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Destructor for the MonitorApplet class.
|
||||
****************************************************************************/
|
||||
MonitorApplet::~MonitorApplet()
|
||||
{
|
||||
delete m_Mfr;
|
||||
delete m_Model;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Save the current state for the applet to our cookie
|
||||
****************************************************************************/
|
||||
void MonitorApplet::SaveCurrentState()
|
||||
{
|
||||
// Read currently selected strings into cookie
|
||||
strcpy(m_Data->m_Monitor.m_Mfr,m_Mfr->GetStringSelection());
|
||||
strcpy(m_Data->m_Monitor.m_Model,m_Model->GetStringSelection());
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Handles user navigation away from the applet via an HTML link
|
||||
****************************************************************************/
|
||||
void MonitorApplet::OnLinkClicked(
|
||||
const wxHtmlLinkInfo&)
|
||||
{
|
||||
SaveCurrentState();
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Handles user navigation away from the applet via the history forward command
|
||||
****************************************************************************/
|
||||
void MonitorApplet::OnHistoryForward()
|
||||
{
|
||||
SaveCurrentState();
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Handles user navigation away from the applet via the history back command
|
||||
****************************************************************************/
|
||||
void MonitorApplet::OnHistoryBack()
|
||||
{
|
||||
SaveCurrentState();
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Handles inter applet communication messages
|
||||
****************************************************************************/
|
||||
void MonitorApplet::OnMessage(
|
||||
wxEvent& msg)
|
||||
{
|
||||
msg.Skip(true);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
****************************************************************************/
|
||||
void MonitorApplet::OnChange(
|
||||
wxCommandEvent &evt)
|
||||
{
|
||||
if (evt.GetId() == m_Mfr->GetListBoxId()) {
|
||||
m_Mfr->OnChange(evt);
|
||||
ReadModelList(true);
|
||||
}
|
||||
else if (evt.GetId() == m_Model->GetListBoxId()) {
|
||||
m_Model->OnChange(evt);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Updates the manufacturer list for the dialog box from the database.
|
||||
****************************************************************************/
|
||||
void MonitorApplet::ReadMfrList()
|
||||
{
|
||||
char buf[80] = "";
|
||||
int i,selected = 0;
|
||||
MonitorEntry *m;
|
||||
|
||||
m_Mfr->Clear();
|
||||
for (m = m_Monitors,i = 0; m->m_Mfr[0] != 0; m++) {
|
||||
if (stricmp(buf,m->m_Mfr) != 0) {
|
||||
m_Mfr->Append(m->m_Mfr);
|
||||
if (stricmp(m_Data->m_Monitor.m_Mfr,m->m_Mfr) == 0)
|
||||
selected = i;
|
||||
strcpy(buf,m->m_Mfr);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
m_Mfr->Select(selected);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
REMARKS:
|
||||
Updates the model list for the dialog box for the currently selected
|
||||
manufacturer type.
|
||||
****************************************************************************/
|
||||
void MonitorApplet::ReadModelList(
|
||||
bool selectCurrent)
|
||||
{
|
||||
int i,selected = 0;
|
||||
MonitorEntry *m;
|
||||
wxString mfrStr;
|
||||
|
||||
mfrStr = m_Mfr->GetStringSelection();
|
||||
m_Model->Clear();
|
||||
for (m = m_Monitors,i = 0; m->m_Mfr[0] != 0; m++) {
|
||||
if (stricmp(mfrStr,m->m_Mfr) == 0) {
|
||||
m_Model->Append(m->m_Model);
|
||||
if (selectCurrent && stricmp(m_Data->m_Monitor.m_Model,m->m_Model) == 0)
|
||||
selected = i;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
m_Model->Select(selected);
|
||||
}
|
||||
|
Reference in New Issue
Block a user