#include "PeopleSearchDlg.h" #include "T2DlgItemListBox.h" #include "T2FloorInfo.h" #include "T2Name.h" #include "T2NameList.h" #include "T2People.h" #include "T2PeopleArrayList.h" #include "T2Tenant.h" #include "T2TowerDoc.h" #include "T2WorldDef.h" #include "UT2Utils.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif PeopleSearchDlg::PeopleSearchDlg() { mDeleteOnClose = true; } /*virtual*/ PeopleSearchDlg::~PeopleSearchDlg() { } void PeopleSearchDlg::Create(T2TowerDoc *inDoc, HINSTANCE inInstance, CWnd *inParentWnd, const POINT &inPt) { mDocument = inDoc; T2DLGTEMPLATE tmpl; tmpl.resID = 7110; tmpl.pt = inPt; tmpl.moduleHandle = inInstance; Realize(inParentWnd, &tmpl, inDoc, NULL, inDoc->mWorldDef->GetPalette(), false, inParentWnd, 110, true); ShowWindow(SW_HIDE); } void PeopleSearchDlg::DoFind() { T2DlgItemListBox *listBox = (T2DlgItemListBox *) GetDlgItem(1000); if (!listBox) return; int sel = listBox->GetCurSel(); if (sel == -1) return; T2Name *theName = (T2Name *) listBox->GetItemDataPtr(sel); mDocument->DoFind(theName); } void PeopleSearchDlg::DoDelete() { T2DlgItemListBox *listBox = (T2DlgItemListBox *) GetDlgItem(1000); if (!listBox) return; int sel = listBox->GetCurSel(); if (sel == -1) return; T2Name *theName = (T2Name *) listBox->GetItemDataPtr(sel); mDocument->mNameDB->RemoveName(theName); listBox->DeleteString(sel); } /*virtual*/ void PeopleSearchDlg::OnT2Create() { T2DlgItemListBox *listBox = (T2DlgItemListBox *) GetDlgItem(1000); if (!listBox) return; HFONT theFont = GetFont(); if (theFont) listBox->SetFont(theFont); listBox->ResetContent(); T2NameList *theNameList = mDocument->mNameDB; T2Name *theName; LArrayIterator iter(*theNameList); while (iter.Next(&theName)) { int type = theName->GetType(); if (type == kPeopleNameType) { CString name; unsigned int id; theName->GetName(name, id); T2People *thePeople = mDocument->mPeopleArrayList->FindPeople(id); if (thePeople) { CString roomNum; CString text; if (thePeople->GetWorkTenant() > 1) { T2Tenant *theTenant = mDocument->mFloorInfo->GetTenant(thePeople->GetWorkTenant()); if (theTenant) UT2Utils::GetRoomNumberString(theTenant->GetRoomNumber(mDocument->mFloorInfo), roomNum); } roomNum += " "; text = roomNum.Left(7); text += name; int ind = listBox->AddString(text); listBox->SetItemDataPtr(ind, theName); } } } }