virtual void Visit(BStringContactField* field) { int count = fOwner->fControls.CountItems(); BGridLayout* layout = fOwner->GridLayout(); if (field->FieldType() != B_CONTACT_SIMPLE_GROUP) { ContactFieldTextControl* control = new ContactFieldTextControl(field); layout->AddItem(control->CreateLabelLayoutItem(), 1, count); layout->AddItem(control->CreateTextViewLayoutItem(), 2, count); fOwner->fControls.AddItem(control); } else { const char* label = BContactField::ExtendedLabel(field); fOwner->fGroups = new BPopUpMenu(label); fOwner->fGroups->SetRadioMode(false); fOwner->BuildGroupMenu(field); BMenuField* field = new BMenuField("", "", fOwner->fGroups); BTextControl* control = new BTextControl("simpleGroup", NULL, NULL, NULL); field->SetEnabled(true); layout->AddItem(field->CreateLabelLayoutItem(), 1, 0, count); layout->AddItem(field->CreateMenuBarLayoutItem(), 1, 1, count); layout->AddItem(control->CreateLabelLayoutItem(), 2, 0, count); layout->AddItem(control->CreateTextViewLayoutItem(), 2, 1, count); } }