void SessionLayout::_AddGroupMemberToList(IN const std::string& sID, IN const BOOL bCreator) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId:%s"),util::stringToCString(sID),util::stringToCString(m_sId)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); PTR_VOID(pLogo); pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); if (bCreator) { CButtonUI* pCreator = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("Creator"))); PTR_VOID(pCreator); pCreator->SetVisible(true); pCreator->SetUserData(_T("Creator")); } CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); PTR_VOID(pNameLable); pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void SessionLayout::_AddGroupMemberToList(IN const std::string& sID) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sID, userInfo)) { APP_LOG(LOG_ERROR, _T("SessionLayout::_updateGroupMembersList(),can't find the userInfo")); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { APP_LOG(LOG_ERROR, _T("群item创建失败")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pGroupMemberList->Add(pListElement); }
void CreateDiscussionGrpDialog::_updateSearchResultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } pListElement->SetName(_T("SearchResultItem")); CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListSearchResult->Add(pListElement); } }
void SessionLayout::_UpdateSearchRsultList(IN const std::vector<std::string>& nameList) { if (nameList.empty()) { return; } for (std::string sid : nameList) { module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(ERR, _T("can't find the userInfo:%s,GroupId: %s"),util::stringToCString(sid),util::stringToCString(m_sId)); continue; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("SessionDialog\\groupMembersListItem.xml"), (UINT)0, NULL, &m_paint_manager); if (!pListElement) { LOG__(ERR, _T("creat group item failed")); return; } CButtonUI* pLogo = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pSearchResultList->Add(pListElement); } }
void CreateDiscussionGrpDialog::_AddToGroupMemberList(std::string sid) { if (sid.empty()) { return; } //确认没有重复的项 for (int n = 0; n < m_pListGroupMembers->GetCount();n++) { CControlUI* pItem = m_pListGroupMembers->GetItemAt(n); if (pItem) { CString strId = pItem->GetUserData(); if (!strId.IsEmpty()) { std::string sId = util::cStringToString(strId); if (sId == sid) { return; } } } } //插入ITEM module::UserInfoEntity userInfo; if (!module::getUserListModule()->getUserInfoBySId(sid, userInfo)) { LOG__(DEBG, _T("can't find the userInfo:%s"), util::stringToCString(sid)); return; } CDialogBuilder dlgBuilder; CListContainerElementUI* pListElement = (CListContainerElementUI*)dlgBuilder.Create(_T("CreateDiscussionGrpDialog\\ListGroupMembersItem.xml"), (UINT)0, NULL, &m_PaintManager); if (!pListElement) { LOG__(ERR, _T("群item创建失败")); return; } CControlUI* pLogo = static_cast<CControlUI*>(pListElement->FindSubControl(_T("AvatarInfo"))); if (!pLogo) { return; } pLogo->SetBkImage(util::stringToCString(userInfo.getAvatarPath())); CLabelUI* pNameLable = static_cast<CLabelUI*>(pListElement->FindSubControl(_T("nickname"))); if (!pNameLable) { return; } pNameLable->SetText(userInfo.getRealName()); CButtonUI* pRemoveBtn = static_cast<CButtonUI*>(pListElement->FindSubControl(_T("removebtn"))); if (pRemoveBtn) { //点击删除按钮的时候根据这个来判断是哪个项 pRemoveBtn->SetTag(UINT_PTR(pListElement)); } if (module::getSysConfigModule()->userID() == userInfo.sId)//自己不能删除 { pRemoveBtn->SetVisible(false); } pListElement->SetUserData(util::stringToCString(userInfo.sId)); m_pListGroupMembers->Add(pListElement); }
Node* CUIRecentSessionList::AddNode(const SessionListItemInfo& item, Node* parent /*= NULL*/, int index /*= 0*/) { if (!parent) parent = root_node_; TCHAR szBuf[MAX_PATH] = { 0 }; CListContainerElementUI* pListElement = NULL; if (!m_dlgBuilder.GetMarkup()->IsValid()) { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create(_T("MainDialog\\recentlyListItem.xml"), (UINT)0, NULL, &paint_manager_)); } else { pListElement = static_cast<CListContainerElementUI*>(m_dlgBuilder.Create((UINT)0, &paint_manager_)); } if (pListElement == NULL) return NULL; Node* node = new Node; node->data().level_ = parent->data().level_ + 1; if (item.folder) node->data().has_child_ = !item.empty; else node->data().has_child_ = false; node->data().folder_ = item.folder; node->data().child_visible_ = (node->data().level_ == 0); node->data().sId = item.id; node->data().text_ = item.nickName; node->data().list_elment_ = pListElement; if (!parent->data().child_visible_) pListElement->SetVisible(false); if (parent != root_node_ && !parent->data().list_elment_->IsVisible()) pListElement->SetVisible(false); CDuiRect rcPadding = text_padding_; for (int i = 0; i < node->data().level_; ++i) { rcPadding.left += level_text_start_pos_; } pListElement->SetPadding(rcPadding); CControlUI* log_button = static_cast<CControlUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoButtonControlName)); if (log_button != NULL) { if (!item.folder && !item.avatarPath.IsEmpty()) { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.avatarPath); log_button->SetBkImage(szBuf); } else { CContainerUI* logo_container = static_cast<CContainerUI*>(paint_manager_.FindSubControlByName(pListElement, kLogoContainerControlName)); if (logo_container != NULL) logo_container->SetVisible(false); } log_button->SetTag((UINT_PTR)pListElement); //log_button->OnEvent += MakeDelegate(&OnLogoButtonEvent);//右键替代了该功能,不用绑定 } CDuiString html_text; if (node->data().has_child_) { if (node->data().child_visible_) html_text += level_expand_image_; else html_text += level_collapse_image_; _stprintf_s(szBuf, MAX_PATH - 1, _T("<x %d>"), level_text_start_pos_); html_text += szBuf; } if (item.folder) { html_text += node->data().text_; } else { _stprintf_s(szBuf, MAX_PATH - 1, _T("%s"), item.nickName); html_text += szBuf; } CLabelUI* nick_name = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, kNickNameControlName)); if (nick_name != NULL) { if (item.folder) nick_name->SetFixedWidth(0); nick_name->SetShowHtml(true); nick_name->SetText(html_text); } CLabelUI* lastTime = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, lastContentTimeControlName)); if (lastTime != NULL) { lastTime->SetShowHtml(true); CString strTime = module::getMiscModule()->makeShortTimeDescription(item.Time);//timeData.Format(_T("-%Y%m%d-%H-%M-%S-")); lastTime->SetText(strTime); } CLabelUI* plastMsgUI = static_cast<CLabelUI*>(paint_manager_.FindSubControlByName(pListElement, klastmsgControlName)); if (plastMsgUI) { CString strContent = item.description; ReceiveMsgManage::getInstance()->parseContent(strContent, TRUE, 400);//需要转换成本地的格式 plastMsgUI->SetText(strContent); } pListElement->SetFixedHeight(kIMListItemNormalHeight); pListElement->SetTag((UINT_PTR)node); pListElement->SetUserData(item.id); if (0 == index) { if (parent->has_children()) { Node* prev = parent->get_last_child(); index = prev->data().list_elment_->GetIndex() + 1; } else { if (parent == root_node_) index = 0; else index = parent->data().list_elment_->GetIndex() + 1; } } if (!CListUI::AddAt(pListElement, index)) { delete pListElement; delete node; node = NULL; } parent->add_child(node); return node; }