From b755b53e0d01a25eb280af404d4f46d8d70c7492 Mon Sep 17 00:00:00 2001 From: qwerty2501 Date: Wed, 1 Feb 2012 22:08:23 +0900 Subject: [PATCH] =?utf8?q?=E3=82=B7=E3=83=A7=E3=83=BC=E3=83=88=E3=82=AB?= =?utf8?q?=E3=83=83=E3=83=88=E6=A9=9F=E8=83=BD=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- nlite.suo | Bin 146432 -> 146432 bytes nlite/nlite_chatData.cpp | 26 ++++++++++++++++++++++++++ nlite/nlite_chatData.h | 20 +++++++++++++++----- nlite/nlite_commentview.cpp | 20 ++++++++++---------- 4 files changed, 51 insertions(+), 15 deletions(-) diff --git a/nlite.suo b/nlite.suo index 3ba963051fed662f4c6575d80985827bee636964..0ad530afe33eb1c2f734f3085e60a0a6ff87b348 100644 GIT binary patch delta 3876 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 T88t#W8(E(ysc%PeX2AadvT7^8 delta 3844 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 P-(Alvo!kUXHaYx1NyiiJ diff --git a/nlite/nlite_chatData.cpp b/nlite/nlite_chatData.cpp index 75b9439..55a823c 100644 --- a/nlite/nlite_chatData.cpp +++ b/nlite/nlite_chatData.cpp @@ -227,6 +227,7 @@ VOID CCommentList::OnDestroy(){ VOID CCommentList::OnConnect(){ OnDestroy(); + shortcut = chatList.begin(); } CCommentList::reference CCommentList::back(){ @@ -234,6 +235,31 @@ CCommentList::reference CCommentList::back(){ return chatList.back(); } +/// +///ƒVƒ‡[ƒgƒJƒbƒgƒCƒeƒŒ[ƒ^‚ðŽæ“¾ +/// +CCommentList::iterator CCommentList::GetShortCut(){ + + return shortcut; +} + +/// +///ƒVƒ‡[ƒgƒJƒbƒg‚ðÝ’è +/// +BOOL CCommentList::SetShortCut(UINT_PTR no){ + + dumpln(TEXT("no%d"),no); + if(chatList.size() <= no)return FALSE; + dumpln(TEXT("no%dtrue"),no); + shortcut = chatList.begin(); + std::advance(shortcut,no); + + return TRUE; + +} + + + VOID CListenerList::BkColorCollect(CListenerColorCollector &target){ iterator end = m_listenerList.end(); diff --git a/nlite/nlite_chatData.h b/nlite/nlite_chatData.h index 00fcbfa..41c2286 100644 --- a/nlite/nlite_chatData.h +++ b/nlite/nlite_chatData.h @@ -155,8 +155,13 @@ namespace nlite{ private: typedef std::list ChatList; + public: + typedef ChatList::iterator iterator; + typedef ChatList::reference reference; + typedef ChatList::reverse_iterator reverse_iterator; + private: ChatList chatList; - + iterator shortcut; @@ -171,10 +176,7 @@ namespace nlite{ //Œ^’è‹` - public: - typedef ChatList::iterator iterator; - typedef ChatList::reference reference; - typedef ChatList::reverse_iterator reverse_iterator; + public: @@ -266,7 +268,15 @@ namespace nlite{ /// reference back(); + /// + ///ƒVƒ‡[ƒgƒJƒbƒgƒCƒeƒŒ[ƒ^‚ðŽæ“¾ + /// + iterator GetShortCut(); + /// + ///ƒVƒ‡[ƒgƒJƒbƒg‚ðÝ’è + /// + BOOL SetShortCut(UINT_PTR no); }; diff --git a/nlite/nlite_commentview.cpp b/nlite/nlite_commentview.cpp index a708c4a..46fb2fc 100644 --- a/nlite/nlite_commentview.cpp +++ b/nlite/nlite_commentview.cpp @@ -132,12 +132,12 @@ namespace nlite{ auto ctrlsBegin = m_list.begin(); auto ctrlsEnd = m_list.end(); - INT_PTR scrollPos = m_hMaster.GetScrollPos(SB_VERT); - if(!(scrollPos == -1 || static_cast(m_hMaster.commentlist.Size()) <= scrollPos)){ + + if(m_hMaster.commentlist.Size() > 0){ - auto chatDataBigin = m_hMaster.commentlist.begin(); - dumpln(TEXT("scrollPos%d"),scrollPos); - std::advance(chatDataBigin,scrollPos); + auto chatDataBigin = m_hMaster.commentlist.GetShortCut(); + + for(; chatDataBigin != m_hMaster.commentlist.end() && heightSum < listRect.bottom;++ctrlsBegin,dumpln(TEXT("++ctrlsBegin")),++chatDataBigin,dumpln(TEXT("++chatDataBigin"))){ tmpRect = headerRect; @@ -646,6 +646,7 @@ namespace nlite{ vScrollInfo.nPos += dy; // viewStartHeight = vScrollInfo.nPos; this->SetScrollPos(SB_VERT,vScrollInfo.nPos); + this->commentlist.SetShortCut(this->GetScrollPos(SB_VERT)); //this->SetScrollInfo(SB_VERT,&vScrollInfo); this->UpdateWindow(); if(TryEnterCriticalSection(&m_commentListWindow.m_sec) == TRUE){ @@ -760,16 +761,16 @@ namespace nlite{ BOOL selectFlag = FALSE; CCommentList::iterator selectData; RECT selectRect = {0}; - UINT_PTR viewStartHeight = self.GetScrollPos(SB_VERT); + - if(commentList.Size() > (UINT_PTR)viewStartHeight){ + if(commentList.Size() > 0){ listRect = windowRect; listRect.right = self.GetColumnHolSizeSum(); - CCommentList::iterator chatData = commentList.begin(); - std::advance(chatData,viewStartHeight); + CCommentList::iterator chatData = commentList.GetShortCut(); + //std::advance(chatData,viewStartHeight); @@ -1276,7 +1277,6 @@ end: LRESULT CCommentListWindow::OnCalcSellSize(LPNMHDR lParam){ auto pReqResize = reinterpret_cast (lParam); - dumpln(TEXT("calcsell")); ::SetWindowPos(pReqResize->nmhdr.hwndFrom,NULL,0,0,pReqResize->rc.right - pReqResize->rc.left,pReqResize->rc.bottom - pReqResize->rc.top,SWP_NOZORDER | SWP_NOMOVE | SWP_HIDEWINDOW); //calcRc = pReqResize->rc; return 0; -- 2.11.0