add: if (menu != NULL) return;
context: void RuleFilterConfig::AttachedToWindow() {	menu = new BPopUpMenu(MDR_DIALECT_CHOICE ("<Choose Action>","<動作を選択>"));	menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Move To","移動する"), new BMessage(kMsgActionMoveTo)));	menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Set Flags To","フラグを指定する"), new BMessage(kMsgActionSetTo)));	menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Delete Message","削除する"), new BMessage(kMsgActionDelete)));	menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Reply With","返事を書く"), new BMessage(kMsgActionReplyWith)));	menu->AddItem(new BMenuItem(MDR_DIALECT_CHOICE ("Set As Read","既読にする"), new BMessage(kMsgActionSetRead)));	menu->SetTargetForItems(this);	BMenuField *field = new BMenuField(BRect(5,30,210,50),"do_what",MDR_DIALECT_CHOICE ("Then","ならば"),menu);	field->ResizeToPreferred();	field->SetDivider(be_plain_font->StringWidth(MDR_DIALECT_CHOICE ("Then","ならば")) + 8);	AddChild(field);		outbound_field = new BMenuField(BRect(5,55,255,80),"reply","Foo",outbound);	outbound_field->ResizeToPreferred();	outbound_field->SetDivider(0);	if (staging >= 0) {		menu->ItemAt(staging)->SetMarked(true);		MessageReceived(menu->ItemAt(staging)->Message());	} else {		AddChild(arg);	}}