2 #include "nlite_include.h"
5 CListenerList nlite::listenerList;
7 //
\83\8a\83X
\83i
\81[
\8c\9f\8dõ
\83I
\83u
\83W
\83F
\83N
\83g
12 ListenerPre(LPCTSTR user_id_in):
16 bool operator()(CListenerList::reference listenerData){
18 return _tcscmp(user_id,listenerData.user_id) == 0;
24 ListenerData::ListenerData(LPCTSTR user_id_in):
31 VOID ListenerData::SetBkColor(COLORREF bkColor_in){
37 VOID CCommentList::OnChatReceve(NicoLiveChat_P chatData_in, UINT_PTR commnetCountSum,CCommentListWindow &listWindow){
41 chatData.SetChat(*chatData_in);
43 // chatData.height = listWindow.CalcItemHeight(chatData);
45 chatList.push_back(chatData);
50 VOID CChatData::SetChat(NicoLiveChat &chat_in){
53 this->anonymity = _ttol(chat_in.anonymity);
54 this->premium = _ttol(chat_in.premium);
55 this->chatBuf = chat_in.chatBuf;
56 this->no = _ttol(chat_in.no);
58 if(_tcscmp(chat_in.locale,TEXT("jp")) == 0){
59 this->locale = cuntry::jp;
61 this->locale = cuntry::unknown;
63 this->mail.reserve(chat_in.mailCount);
64 for(UINT_PTR index = 0;index < chat_in.mailCount ;index++){
66 this->mail.push_back(chat_in.mail[index]);
69 this->name = chat_in.name;
71 this->listenerData = &listenerList.Register(chat_in.user_id);
74 this->vpos = _ttol(chat_in.vpos);
75 this->thread = _ttol(chat_in.thread);
76 this->date = _ttol(chat_in.date);
86 //
\83R
\83\81\83\93\83g
\83\8a\83X
\83g
\83N
\83\89\83X
87 //////////////////////////////////////////////////////////////////////////
89 //
\91I
\91ð
\8ds
\8eæ
\93¾
\97p
\83t
\83@
\83\93\83N
\83V
\83\87\83i
\83\8b
90 struct GetCurSelFunc_t{
99 BOOL operator() (CChatData &target){
101 findFlag = target.selectFlag;
102 return target.selectFlag;
107 CCommentList::CCommentList(){}
109 CCommentList::~CCommentList(){}
111 INT_PTR CCommentList::GetCurSel(){
112 GetCurSelFunc_t functa;
113 std::find_if(chatList.begin(),chatList.end(),functa);
115 return functa.findFlag == TRUE ? functa.count - 1 : -1;
118 CCommentList::iterator CCommentList::GetCurSelItem(){
119 auto rslt = std::find_if(chatList.begin(),chatList.end(),GetCurSelFunc_t());
125 VOID CCommentList::SetCurSel(INT_PTR cursel){
126 if(cursel < 0)return;
127 iterator data = chatList.begin();
128 std::advance(data,cursel);
129 data->selectFlag = TRUE;
135 CCommentList::reference CCommentList::GetChatAt(UINT_PTR no){
137 iterator data = chatList.begin();
138 std::advance(data,no);
143 UINT_PTR CCommentList::Size(){
145 return chatList.size();
148 BOOL CCommentList::empty(){
150 return chatList.empty();
155 CCommentList::iterator CCommentList::begin(){
157 return chatList.begin();
160 CCommentList::iterator CCommentList::end(){
162 return chatList.end();
166 CCommentList::reverse_iterator CCommentList::rbegein(){
168 return chatList.rbegin();
174 CCommentList::reverse_iterator CCommentList::rend(){
176 return chatList.rend();
179 VOID CCommentList::OnDestroy(){
185 VOID CCommentList::OnConnect(){
189 CCommentList::reference CCommentList::back(){
191 return chatList.back();
194 VOID CListenerList::BkColorCollect(CListenerColorCollector &target){
196 iterator end = m_listenerList.end();
197 std::for_each(m_listenerList.begin(), end,target);
200 CListenerList::reference CListenerList::Register(LPCTSTR user_id){
202 ListenerPre listenerPre(user_id);
204 iterator begin = m_listenerList.begin();
205 iterator end = m_listenerList.end();
207 iterator rslt = std::find_if(begin,end,listenerPre);
213 ListenerData insertData(user_id);
216 m_listenerList.push_back(insertData);
218 return m_listenerList.back();