void CRichEditWnd::OnItemClick(TNotifyUI& msg) { CAnimationTabLayoutUI* m_pTabSwitch = static_cast<CAnimationTabLayoutUI*>(GetPaintMgr()->FindControl(_T("TAB_MAIN"))); if (m_pTabSwitch != NULL) { if (m_pTabSwitch->GetCurSel() == 0) { } else if (m_pTabSwitch->GetCurSel() == 1) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(GetPaintMgr()->FindControl(_T("LIST_FRIEND"))); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); if (pFriendsList->CanExpand(node)) { pFriendsList->SetChildVisible(node, !node->data().child_visible_); } } } } } }
void MainFrame::OnItemActivate(TNotifyUI& msg) { CTabLayoutUI* pTabControl = static_cast<CTabLayoutUI*>(m_PaintManager.FindControl(kMainTabControlName)); if (pTabControl != NULL) { if (pTabControl->GetCurSel() == 0) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(m_PaintManager.FindControl(kFriendsListControlName)); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); CControlUI* background = m_PaintManager.FindControl(kBackgroundControlName); if (!pFriendsList->CanExpand(node) && (background != NULL)) { FriendListItemInfo friend_info; for (std::vector<FriendListItemInfo>::const_iterator citer = friends_.begin(); citer != friends_.end(); ++citer) { if (_tcsicmp(citer->id, node->data().value) == 0) { friend_info = *citer; break; } } TCHAR szBuf[MAX_PATH] = { 0 }; if (_tcslen(background->GetBkImage()) > 0) { _stprintf_s(szBuf, MAX_PATH - 1, _T("bg%d.png"), bk_image_index_); } ChatDialog* pChatDialog = new ChatDialog(szBuf, background->GetBkColor(), myself_info_, friend_info); if (pChatDialog == NULL) return; pChatDialog->Create(NULL, _T("ChatDialog"), UI_WNDSTYLE_FRAME | WS_POPUP, NULL, 0, 0, 0, 0); skin_changed_observer_.AddReceiver(pChatDialog); pChatDialog->CenterWindow(); ::ShowWindow(*pChatDialog, SW_SHOW); } } } } } }
void CRichEditWnd::OnItemActive(TNotifyUI& msg) { CAnimationTabLayoutUI* pTabControl = static_cast<CAnimationTabLayoutUI*>(GetPaintMgr()->FindControl(_T("TAB_MAIN"))); if (pTabControl != NULL) { if (pTabControl->GetCurSel() == 1) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(GetPaintMgr()->FindControl(_T("LIST_FRIEND"))); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); CControlUI* background = GetPaintMgr()->FindControl(_T("bg")); if (!pFriendsList->CanExpand(node) && (background != NULL)) { FriendListItemInfo friend_info; for (std::vector<FriendListItemInfo>::const_iterator citer = friends_.begin(); citer != friends_.end(); ++citer) { if (_tcsicmp(citer->id, node->data().value) == 0) { friend_info = *citer; break; } } ChatDialog* pChatDialog = new ChatDialog(background->GetBkImage(), background->GetBkColor(), myself_info_, friend_info); if (pChatDialog == NULL) return; #if defined(WIN32) && !defined(UNDER_CE) pChatDialog->Create(NULL, _T("ChatDialog"), UI_WNDSTYLE_FRAME | WS_POPUP, NULL, 0, 0, 0, 0); #else pChatDialog->Create(NULL, _T("ChatDialog"), UI_WNDSTYLE_FRAME | WS_POPUP, NULL, 0, 0, 0, 0); #endif pChatDialog->CenterWindow(); ::ShowWindow(*pChatDialog, SW_SHOW); } } } } } }
void MainFrame::OnItemClick(TNotifyUI& msg) { CTabLayoutUI* pTabControl = static_cast<CTabLayoutUI*>(m_PaintManager.FindControl(kMainTabControlName)); if (pTabControl != NULL) { if (pTabControl->GetCurSel() == 0) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(m_PaintManager.FindControl(kFriendsListControlName)); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); if (pFriendsList->CanExpand(node)) { pFriendsList->SetChildVisible(node, !node->data().child_visible_); } } } } else if (pTabControl->GetCurSel() == 1) { CGroupsUI* pGroupsList = static_cast<CGroupsUI*>(m_PaintManager.FindControl(kGroupsListControlName)); if ((pGroupsList != NULL) && pGroupsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); if (pGroupsList->CanExpand(node)) { pGroupsList->SetChildVisible(node, !node->data().child_visible_); } } } } } }
void MainFrame::Notify(TNotifyUI& msg) { if (_tcsicmp(msg.sType, _T("windowinit")) == 0) { OnPrepare(msg); } else if (_tcsicmp(msg.sType, _T("killfocus")) == 0) { if (_tcsicmp(msg.pSender->GetName(), kSignatureControlName) == 0) { msg.pSender->SetVisible(false); CControlUI* signature_tip = paint_manager_.FindControl(kSignatureTipsControlName); if (signature_tip != NULL) { CRichEditUI* signature = static_cast<CRichEditUI*>(msg.pSender); if (signature != NULL) signature_tip->SetText(signature->GetText()); signature_tip->SetVisible(true); } } else if (_tcsicmp(msg.pSender->GetName(), kSearchEditControlName) == 0) { msg.pSender->SetVisible(false); CControlUI* search_tip = static_cast<CRichEditUI*>(paint_manager_.FindControl(kSearchEditTipControlName)); if (search_tip != NULL) { CRichEditUI* search_edit = static_cast<CRichEditUI*>(msg.pSender); if (search_edit != NULL) search_tip->SetText(search_edit->GetText()); search_tip->SetVisible(true); } } } else if (_tcsicmp(msg.sType, _T("click")) == 0) { if (_tcsicmp(msg.pSender->GetName(), kCloseButtonControlName) == 0) { OnExit(msg); } else if (_tcsicmp(msg.pSender->GetName(), kMinButtonControlName) == 0) { #if defined(UNDER_CE) ::ShowWindow(m_hWnd, SW_MINIMIZE); #else SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0); #endif } else if (_tcsicmp(msg.pSender->GetName(), kMaxButtonControlName) == 0) { #if defined(UNDER_CE) ::ShowWindow(m_hWnd, SW_MAXIMIZE); CControlUI* pControl = static_cast<CControlUI*>(paint_manager_.FindControl(kMaxButtonControlName)); if( pControl ) pControl->SetVisible(false); pControl = static_cast<CControlUI*>(paint_manager_.FindControl(kRestoreButtonControlName)); if( pControl ) pControl->SetVisible(true); #else SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0); #endif } else if (_tcsicmp(msg.pSender->GetName(), kRestoreButtonControlName) == 0) { #if defined(UNDER_CE) ::ShowWindow(m_hWnd, SW_RESTORE); CControlUI* pControl = static_cast<CControlUI*>(paint_manager_.FindControl(kMaxButtonControlName)); if( pControl ) pControl->SetVisible(true); pControl = static_cast<CControlUI*>(paint_manager_.FindControl(kRestoreButtonControlName)); if( pControl ) pControl->SetVisible(false); #else SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0); #endif } else if (_tcsicmp(msg.pSender->GetName(), kHideLeftMainPannelControlName) == 0) { CControlUI* left_main_pannel = paint_manager_.FindControl(kLeftMainPannelControlName); CControlUI* hide_left_main_pannel = paint_manager_.FindControl(kHideLeftMainPannelControlName); CControlUI* show_left_main_pannel = paint_manager_.FindControl(kShowLeftMainPannelControlName); if ((left_main_pannel != NULL) && (show_left_main_pannel != NULL) && (hide_left_main_pannel != NULL)) { hide_left_main_pannel->SetVisible(false); left_main_pannel->SetVisible(false); show_left_main_pannel->SetVisible(true); } } else if (_tcsicmp(msg.pSender->GetName(), kShowLeftMainPannelControlName) == 0) { CControlUI* left_main_pannel = paint_manager_.FindControl(kLeftMainPannelControlName); CControlUI* hide_left_main_pannel = paint_manager_.FindControl(kHideLeftMainPannelControlName); CControlUI* show_left_main_pannel = paint_manager_.FindControl(kShowLeftMainPannelControlName); if ((left_main_pannel != NULL) && (show_left_main_pannel != NULL) && (hide_left_main_pannel != NULL)) { hide_left_main_pannel->SetVisible(true); left_main_pannel->SetVisible(true); show_left_main_pannel->SetVisible(false); } } else if (_tcsicmp(msg.pSender->GetName(), kSignatureTipsControlName) == 0) { msg.pSender->SetVisible(false); CRichEditUI* signature = static_cast<CRichEditUI*>(paint_manager_.FindControl(kSignatureControlName)); if (signature != NULL) { signature->SetText(msg.pSender->GetText()); signature->SetVisible(true); } } else if (_tcsicmp(msg.pSender->GetName(), kSearchEditTipControlName) == 0) { msg.pSender->SetVisible(false); CRichEditUI* search_edit = static_cast<CRichEditUI*>(paint_manager_.FindControl(kSearchEditControlName)); if (search_edit != NULL) { search_edit->SetText(msg.pSender->GetText()); search_edit->SetVisible(true); } } else if (_tcsicmp(msg.pSender->GetName(), kChangeBkSkinControlName) == 0) { CControlUI* background = paint_manager_.FindControl(kBackgroundControlName); if (background != NULL) { TCHAR szBuf[MAX_PATH] = {0}; ++bk_image_index_; if (kBackgroundSkinImageCount < bk_image_index_) bk_image_index_ = 0; #if defined(UNDER_WINCE) _stprintf(szBuf, _T("file='bg%d.png' corner='600,200,1,1'"), bk_image_index_); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("file='bg%d.png' corner='600,200,1,1'"), bk_image_index_); #endif background->SetBkImage(szBuf); SkinChangedParam param; CControlUI* background = paint_manager_.FindControl(kBackgroundControlName); if (background != NULL) { param.bkcolor = background->GetBkColor(); if (_tcslen(background->GetBkImage()) > 0) { #if defined(UNDER_WINCE) _stprintf(szBuf, _T("bg%d.png"), bk_image_index_); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("bg%d.png"), bk_image_index_); #endif } param.bgimage = szBuf; } skin_changed_observer_.Broadcast(param); } } else if (_tcsicmp(msg.pSender->GetName(), kChangeColorSkinControlName) == 0) { CDuiRect rcWindow; GetWindowRect(m_hWnd, &rcWindow); rcWindow.top = rcWindow.top + msg.pSender->GetPos().bottom; new ColorSkinWindow(this, rcWindow); } } else if (_tcsicmp(msg.sType, _T("timer")) == 0) { return OnTimer(msg); } else if (_tcsicmp(msg.sType, _T("selectchanged")) == 0) { CTabLayoutUI* pTabControl = static_cast<CTabLayoutUI*>(paint_manager_.FindControl(kTabControlName)); if (_tcsicmp(msg.pSender->GetName(), kFriendButtonControlName) == 0) { if (pTabControl && pTabControl->GetCurSel() != 0) { pTabControl->SelectItem(0); UpdateFriendsList(); } } else if (_tcsicmp(msg.pSender->GetName(), kGroupButtonControlName) == 0) { if (pTabControl && pTabControl->GetCurSel() != 1) { pTabControl->SelectItem(1); UpdateGroupsList(); } } else if (_tcsicmp(msg.pSender->GetName(), kMicroBlogButtonControlName) == 0) { if (pTabControl && pTabControl->GetCurSel() != 2) { pTabControl->SelectItem(2); UpdateMicroBlogList(); } } } else if (_tcsicmp(msg.sType, _T("itemactivate")) == 0) { CTabLayoutUI* pTabControl = static_cast<CTabLayoutUI*>(paint_manager_.FindControl(kTabControlName)); if (pTabControl != NULL) { if (pTabControl->GetCurSel() == 0) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(paint_manager_.FindControl(kFriendsListControlName)); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); CControlUI* background = paint_manager_.FindControl(kBackgroundControlName); if (!pFriendsList->CanExpand(node) && (background != NULL)) { FriendListItemInfo friend_info; for (std::vector<FriendListItemInfo>::const_iterator citer = friends_.begin(); citer != friends_.end(); ++citer) { if (_tcsicmp(citer->id.c_str(), node->data().value.c_str()) == 0) { friend_info = *citer; break; } } TCHAR szBuf[MAX_PATH] = {0}; if (_tcslen(background->GetBkImage()) > 0) { #if defined(UNDER_WINCE) _stprintf(szBuf, _T("bg%d.png"), bk_image_index_); #else _stprintf_s(szBuf, MAX_PATH - 1, _T("bg%d.png"), bk_image_index_); #endif } ChatDialog* pChatDialog = new ChatDialog(szBuf, background->GetBkColor(), myself_info_, friend_info); if( pChatDialog == NULL ) return; #if defined(WIN32) && !defined(UNDER_CE) pChatDialog->Create(NULL, _T("ChatDialog"), UI_WNDSTYLE_FRAME | WS_POPUP, NULL, 0, 0, 0, 0); #else pChatDialog->Create(NULL, _T("ChatDialog"), UI_WNDSTYLE_FRAME | WS_POPUP, NULL, 0, 0, 0, 0); #endif skin_changed_observer_.AddReceiver(pChatDialog); pChatDialog->CenterWindow(); ::ShowWindow(*pChatDialog, SW_SHOW); } } } } } } else if (_tcsicmp(msg.sType, _T("itemclick")) == 0) { CTabLayoutUI* pTabControl = static_cast<CTabLayoutUI*>(paint_manager_.FindControl(kTabControlName)); if (pTabControl != NULL) { if (pTabControl->GetCurSel() == 0) { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(paint_manager_.FindControl(kFriendsListControlName)); if ((pFriendsList != NULL) && pFriendsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); if (pFriendsList->CanExpand(node)) { pFriendsList->SetChildVisible(node, !node->data().child_visible_); } } } } else if (pTabControl->GetCurSel() == 1) { CGroupsUI* pGroupsList = static_cast<CGroupsUI*>(paint_manager_.FindControl(kGroupsListControlName)); if ((pGroupsList != NULL) && pGroupsList->GetItemIndex(msg.pSender) != -1) { if (_tcsicmp(msg.pSender->GetClass(), _T("ListContainerElementUI")) == 0) { Node* node = (Node*)msg.pSender->GetTag(); if (pGroupsList->CanExpand(node)) { pGroupsList->SetChildVisible(node, !node->data().child_visible_); } } } } } } }
void MainFrame::UpdateFriendsList() { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(paint_manager_.FindControl(kFriendsListControlName)); if (pFriendsList != NULL) { if (!friends_.empty()) friends_.clear(); if (pFriendsList->GetCount() > 0) pFriendsList->RemoveAll(); FriendListItemInfo item; item.id = _T("0"); item.folder = true; item.empty = false; item.nick_name = _T("我的好友"); Node* root_parent = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("1"); item.folder = false; item.logo = _T("man.png"); item.nick_name = _T("tojen"); item.description = _T("*****@*****.**"); myself_info_ = item; pFriendsList->AddNode(item, root_parent); friends_.push_back(item); item.id = _T("2"); item.folder = false; item.logo = _T("default.png"); item.nick_name = _T("achellies"); item.description = _T("*****@*****.**"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); item.id = _T("2"); item.folder = false; item.logo = _T("default.png"); item.nick_name = _T("wangchyz"); item.description = _T("*****@*****.**"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); for( int i = 0; i < 100; ++i ) { item.id = _T("2"); item.folder = false; item.logo = _T("default.png"); item.nick_name = _T("duilib"); item.description = _T("www.duilib.com"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); } item.id = _T("3"); item.folder = true; item.empty = false; item.nick_name = _T("企业好友"); Node* root_parent2 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("4"); item.folder = false; item.logo = _T("icon_home.png"); item.nick_name = _T("腾讯企业QQ的官方展示号"); item.description = _T(""); pFriendsList->AddNode(item, root_parent2); friends_.push_back(item); item.id = _T("5"); item.folder = true; item.empty = false; item.nick_name = _T("陌生人"); Node* root_parent3 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("6"); item.folder = true; item.empty = false; item.nick_name = _T("黑名单"); Node* root_parent4 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); } }
void CRichEditWnd::UpdateFriendsList() { CFriendsUI* pFriendsList = static_cast<CFriendsUI*>(GetPaintMgr()->FindControl(_T("LIST_FRIEND"))); if (pFriendsList != NULL) { if (!friends_.empty()) friends_.clear(); if (pFriendsList->GetCount() > 0) pFriendsList->RemoveAll(); FriendListItemInfo item; item.id = _T("0"); item.folder = true; item.empty = false; item.nick_name = _T("我的好友"); Node* root_parent = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("1"); item.folder = false; item.logo = _T("user.png"); item.nick_name = _T("tojen"); item.description = _T("北国风光,千里冰封,万里雪飘"); myself_info_ = item; pFriendsList->AddNode(item, root_parent); friends_.push_back(item); item.id = _T("2"); item.folder = false; item.logo = _T("users/175.png"); item.nick_name = _T("achellies"); item.description = _T("这个家伙很懒,什么也没留下。。。"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); item.id = _T("3"); item.folder = false; item.logo = _T("users/176.png"); item.nick_name = _T("wangchyz"); item.description = _T("*****@*****.**"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); for (int i = 0; i < 100; ++i) { item.id = CDuiString::FormatString(_T("%d"), 4 + i); item.folder = false; item.logo = CDuiString::FormatString(_T("users/%d.png"), (int)Math::RangeRandom(175, 264)); item.nick_name = _T("duilib"); item.description = _T("www.duilib.com"); pFriendsList->AddNode(item, root_parent); friends_.push_back(item); } item.id = _T("3"); item.folder = true; item.empty = false; item.nick_name = _T("企业好友"); Node* root_parent2 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("4"); item.folder = false; item.logo = CDuiString::FormatString(_T("users/%d.png"), (int)Math::RangeRandom(175, 264)); item.nick_name = _T("腾讯企业QQ的官方展示号"); item.description = _T(""); pFriendsList->AddNode(item, root_parent2); friends_.push_back(item); item.id = _T("5"); item.folder = true; item.empty = false; item.nick_name = _T("陌生人"); Node* root_parent3 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); item.id = _T("6"); item.folder = true; item.empty = false; item.nick_name = _T("黑名单"); Node* root_parent4 = pFriendsList->AddNode(item, NULL); friends_.push_back(item); } }