Exemplo n.º 1
0
// タブの追加
void CMainWindow::onAddTab(wxCommandEvent& event)
{
    CChatServiceBase* contents = m_serviceHolder->getService(
            m_serviceHolder->getCurrentServiceId());
    if (contents == NULL || contents->getCurrentChannel() == ""){
        return;
    }
    CChannelStatus* channel = contents->getChannel(
            contents->getCurrentChannel());

    vector<wxString> userNames;
    vector<CMemberData*> members = channel->getMembers();
    vector<CMemberData*>::iterator it = members.begin();
    while (it != members.end()){
        userNames.push_back((*it)->m_nick);
        it++;
    }

    // ダイアログを表示
    CFilterDialog dialog;
    dialog.init(this, contents->getCurrentChannel(), userNames);
    if (dialog.ShowModal() == wxID_OK){
        IFilter* filter = dialog.getFilter();
        if (filter != NULL){
            contents->getConfiguration()->addFilter(
                    contents->getCurrentChannel(), filter);
            updateMessageView(m_serviceHolder->getCurrentServiceId(),
                    contents->getCurrentChannel());
        }
    }
}