// Process commands from children for combo. void CATComboBox::OnCommand( CATCommand& command, CATControl* ctrl) { CATString param = command.GetStringParam(); if (ctrl == fComboMenu) { if (fComboEdit) { fComboEdit->SetString( param ); } AddComboString(param); ctrl = fComboEdit; } else if (ctrl == fComboEdit) { AddComboString(param); } else { // Not either of our normal controls - just pass it through. CATLayer::OnCommand(command, ctrl); return; } if ((fParent) && (fComboEdit)) { ((CATGuiObj*)fParent)->OnCommand( fComboEdit->GetCommand(), fComboEdit); } }
static void SetHDWEDBFields(HWND hwnd, int startField, int index) { AddComboString(hwnd, startField + 1, "Write"); // AddComboString(hwnd, startField + 1, "Read"); AddComboString(hwnd, startField + 1, "Access"); SetComboSel(hwnd, startField + 1, hdwebp[index].mode == 3 ? 1 : 0); AddComboString(hwnd, startField + 2, "Byte"); AddComboString(hwnd, startField + 2, "Word"); AddComboString(hwnd, startField + 2, "Dword"); SetComboSel(hwnd, startField + 2, hdwebp[index].size == 3 ? 2 : hdwebp[index].size); SetCBField(hwnd, startField + 3, hdwebp[index].active); SetEditField(hwnd, startField, hdwebp[index].name); SendDlgItemMessage(hwnd, startField, EM_LIMITTEXT, 250, 0); }
INT_PTR CALLBACK DlgAddEditContact::dialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { DlgAddEditContact *p=(DlgAddEditContact *) GetWindowLong(hDlg, GWL_USERDATA); switch (message) { case WM_INITDIALOG: { p=(DlgAddEditContact *) lParam; SetWindowLong(hDlg, GWL_USERDATA, (LONG) p ); // Create a Done button and size it. SHINITDLGINFO shidi; shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; shidi.hDlg = hDlg; SHInitDialog(&shidi); // MenuBar SHMENUBARINFO mbi; memset ( &mbi, 0, sizeof ( mbi ) ); mbi.cbSize = sizeof ( mbi ); mbi.hwndParent = hDlg; mbi.nToolBarId = IDR_MENU_OK_CANCEL; mbi.hInstRes = g_hInst; mbi.dwFlags |= SHCMBF_HMENU; SHCreateMenuBar ( &mbi ); if (p->contact) { SetDlgItemText(hDlg, IDC_E_JID, p->contact->rosterJid); SetDlgItemText(hDlg, IDC_E_NICK, p->contact->nickname); SetDlgItemText(hDlg, IDC_C_GROUP, p->contact->group); } StringVectorRef groups=p->rc->roster->getRosterGroups(); for (size_t i=0; i<groups->size(); i++) AddComboString(hDlg, IDC_C_GROUP, (*groups)[i]); CheckDlgButton(hDlg, IDC_X_SUBSCR, BST_CHECKED); } return (INT_PTR)TRUE; case WM_COMMAND: if (LOWORD(wParam==ID_VCARD_NICK)) { std::string jid; GetDlgItemText(hDlg, IDC_E_JID, jid); if (!verifyJid(hDlg, jid)) return TRUE; GetVcardNick *getNick=new GetVcardNick(jid, hDlg, IDC_E_NICK); p->rc->jabberStanzaDispatcherRT->addListener(JabberDataBlockListenerRef(getNick)); getNick->doRequest(p->rc); return TRUE; } if (LOWORD(wParam) == IDOK) { std::string jid; GetDlgItemText(hDlg, IDC_E_JID, jid); std::trim(jid); if (!verifyJid(hDlg, jid)) return TRUE; std::string group; GetDlgItemText(hDlg, IDC_C_GROUP, group); std::string nick; GetDlgItemText(hDlg, IDC_E_NICK, nick); p->rc->roster->rosterSet( (nick.length()==0)? NULL : nick.c_str(), jid.c_str(), (group.length()==0)? NULL: group.c_str(), NULL); if (p->edit) if (IsDlgButtonChecked(hDlg, IDC_X_SUBSCR)==BST_CHECKED) p->rc->sendPresence(jid.c_str(), presence::PRESENCE_AUTH_ASK, std::string(), 0); EndDialog(hDlg, LOWORD(wParam)); delete p; return TRUE; } if (LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); delete p; return TRUE; } break; case WM_CLOSE: EndDialog(hDlg, message); delete p; return TRUE; } return (INT_PTR)FALSE; }