OSDN Git Service

余分な処理を削除
[nlite/nlite.git] / nlite / nlite_mainframe.h
1 #pragma once
2
3 namespace nlite{
4         
5
6         ///
7         ///\83E\83B\83\93\83h\83E\96¼
8         ///
9         const static LPCTSTR NLITE_MAINWINDOW = TEXT("nlite");
10
11         
12         
13         ///
14         ///\83\81\83C\83\93\83t\83\8c\81[\83\80\83N\83\89\83X
15         ///
16         class CNliteMainFrame : public CFrameWindowImpl<CNliteMainFrame>
17                 ,public CUpdateUI<CNliteMainFrame>,public CMessageFilter, public CIdleHandler
18         {
19                 
20         public:
21
22                 
23                 class CLiveUserData;
24                 friend CLiveUserData;
25
26                 struct LvnoSearchFunctional;
27
28                 ///
29                 ///\95ú\91\97\94Ô\8d\86\93ü\97Í\97p
30                 ///
31                 class CSubLiveNoComboBox:public CWindowImpl<CEdit>{
32                         friend CNliteMainFrame;
33
34                 public:
35                         //\8e\8b\92®\97\9a\97ð\95\\8e¦\97p\83y\83A
36                         typedef std::pair<CNLiteString,CNLiteString> LiveInfo;
37                         typedef std::list<LiveInfo> LiveInfoList;
38
39                 private:
40                         CNliteMainFrame &self;                                          //\83\81\83C\83\93\83t\83\8c\81[\83\80\83E\83B\83\93\83h\83E
41                         CComAutoCriticalSection cs;                                     //\83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\83I\83u\83W\83F\83N\83g
42                         BOOL untilConnectingFlag;                                       //\90Ú\91±\8f\88\97\9d\92\86\82©\82Ì\83t\83\89\83O\94»\92è
43                         LiveInfoList liveInfoList;                                      //\95ú\91\97\97\9a\97ð\8fî\95ñ
44                 public:
45                         
46                         ///
47                         ///\83R\83\93\83X\83^\83\89\83N\83^
48                         ///
49                         CSubLiveNoComboBox(CNliteMainFrame &in_self);
50                         
51
52                         //\83\81\83b\83Z\81[\83W\83\8b\81[\83v
53                         BEGIN_MSG_MAP_EX(CSubLiveNoComboBox)
54                                 MSG_WM_MOUSEWHEEL(OnMouseWheel)
55                                 MSG_WM_KEYDOWN(OnKeyDown)
56                         END_MSG_MAP()
57
58                 public:
59
60                         ///
61                         ///\95ú\91\97\8fî\95ñ\92Ç\89Á
62                         ///
63                         VOID AddLiveInfo(CNicoLiveStream &stream,LvnoSearchFunctional &functional);
64                         
65
66                         ///
67                         ///\95ú\91\97\94Ô\8d\86\93ü\97Í\82ð\8b\96\89Â\82·\82é
68                         ///
69                         VOID AgreeInputLvNo();
70
71
72                 private:
73                         ///
74                         ///\83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d
75                         ///
76                         VOID OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam);
77
78
79                         ///
80                         ///\83}\83E\83X\83z\83C\81[\83\8b\8e\9e\82Ì\8f\88\97\9d
81                         ///
82                         LRESULT OnMouseWheel(UINT loWparam,SHORT hiWparam,CPoint &point);
83                         
84
85                 };
86
87
88                 
89                 struct LvnoSearchFunctional{
90                         LPCTSTR lvNo;
91                         CNLiteString dispData;
92
93                         LvnoSearchFunctional(LPCTSTR in_lvNo):lvNo(in_lvNo){}
94
95                         bool operator()(CSubLiveNoComboBox::LiveInfo &listInfo){
96                                 return listInfo.second == lvNo;
97                         }
98
99                 };
100
101
102                 ///
103                 ///\83R\83\81\83\93\83g\8eó\90M
104                 ///
105                 class CLiveUserData {
106
107
108                         friend CNliteMainFrame;
109                 private:
110
111                         CNliteMainFrame &self;
112                         
113
114                 public:
115
116                         ///
117                         ///\83R\83\93\83X\83g\83\89\83N\83^
118                         ///
119                         CLiveUserData(CNliteMainFrame &self);
120                         
121
122                         ///
123                         ///\90Ú\91±\8aJ\8en\8e\9e\8f\88\97\9d
124                         ///
125                         VOID OnConnect();
126                         
127                         ///
128                         ///\83R\83\81\83\93\83g\8eó\90M\8aJ\8en\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
129                         ///
130                         VOID OnChatReceveStart(CNicoLiveStream &stream,NicoLiveThreadComment_P threadComment);
131
132
133                         ///
134                         ///1\83R\83\81\83\93\83g\8eó\90M\82µ\82½\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
135                         ///\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82ð\83o\83b\83t\83@\82É\8ai\94[
136                         ///
137                         VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
138                         
139
140                         ///
141                         ///\83`\83\83\83b\83g\8eó\90M\8am\92è\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
142                         ///\8eå\82É\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82Ì\95`\89æ\8f\88\97\9d\82ð\8ds\82¤
143                         ///
144                         VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
145
146                         ///
147                         ///\83R\83\81\83\93\83g\91\97\90M\8c\8b\89Ê\8eó\90M\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
148                         ///
149                         VOID OnChatSendResult(NicoLiveSendResultComment_P sendResult);
150
151
152                         ///
153                         ///\83n\81[\83g\83r\81[\83g\91\97\90M\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N
154                         ///
155                         VOID OnHeartBeat(NicoLiveHeartBeat_P heartBeat);
156
157
158                         ///
159                         ///\90Ø\92f\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N
160                         ///
161                         VOID OnDisconnect();
162
163                 };
164
165                 friend CSubLiveNoComboBox;
166         public:
167
168                 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
169
170                 // \83E\83B\83\93\83h\83E\83N\83\89\83X\96¼\81A\8b¤\92Ê\83\8a\83\\81[\83XID\81A\83X\83^\83C\83\8b\81A\94w\8ci\90F\82ð\93o\98^
171                 DECLARE_FRAME_WND_CLASS(NLITE_MAINWINDOW, IDC_NLITE)
172
173         private:
174                 CCommentView commentView;                                       //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
175                 CStatusBarCtrl statusBar;                                       //\83X\83e\81[\83^\83X\83o\81[
176                 CLiveUserData userData;                                         //\83C\83x\83\93\83g\83n\83\93\83h\83\89\97p\83N\83\89\83X
177                 CSubLiveNoComboBox subLiveNoComboBox;           //\90\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X(\83T\83u\83N\83\89\83X)
178                 CCommentWriteWindow commentWriteWindow;         //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\83N\83\89\83X
179                 CTabCtrl tabctrl;                                                       //\83^\83u\83R\83\93\83g\83\8d\81[\83\8b
180                 HFONT hTabFont;                                                         //\83^\83u\83E\83B\83\93\83h\83E\97p\82Ì\83t\83H\83\93\83g                            
181                 CComboBoxEx lvNoCombo;                                          //\90\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X
182                 INT_PTR statusBarHeight;                                        //\83X\83e\81[\83^\83X\83o\81[\82Ì\8d\82\82³
183                 INT_PTR toolBarHeight;                                          //\83c\81[\83\8b\83o\81[\82Ì\8d\82\82³
184                 CNicoVideoAuth nicoVideoAuth;                           //\83j\83R\83j\83R\93®\89æ\94F\8fØ\97p\83I\83u\83W\83F\83N\83g
185                 CNicoLiveStream nicoLiveStream;                         //\83j\83R\83j\83R\90\95ú\91\97\83I\83u\83W\83F\83N\83g
186                 CMultiPaneStatusBarCtrl m_hStatusBar;           //\83}\83\8b\83`\83y\83C\83\93\83X\83e\81[\83^\83X\83o\81[
187                 CProgressBarCtrl  m_progresBar;                         //\83v\83\8d\83O\83\8c\83X\83o\81[
188                 
189                 
190         private:
191                 // \83\81\83b\83Z\81[\83W\83t\83B\83\8b\83^\8f\88\97\9d
192                 virtual BOOL PreTranslateMessage(MSG* pMsg);
193
194                 // \83A\83C\83h\83\8b\8f\88\97\9d
195                 virtual BOOL OnIdle();
196
197                 
198                 
199
200         public:
201
202                 ///
203                 ///\83R\83\93\83X\83g\83\89\83N\83^
204                 ///
205                 CNliteMainFrame();
206                 
207
208                 ///
209                 ///\83f\83X\83g\83\89\83N\83^
210                 ///
211                 ~CNliteMainFrame();
212                 
213
214                 
215                 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
216                         // \83G\83\93\83g\83\8a\82È\82µ
217                 END_UPDATE_UI_MAP()
218                 
219                 // \83\81\83b\83Z\81[\83W\83}\83b\83v
220                 BEGIN_MSG_MAP_EX(CNliteMainFrame)
221                         MSG_WM_CREATE(OnCreate)
222                         MSG_WM_CLOSE(OnClose)
223                         MSG_WM_DESTROY(OnDestroy)
224                         MESSAGE_HANDLER(WM_SIZE,OnSize)
225                         MSG_WM_SIZING(OnSizing)
226                         MESSAGE_HANDLER(WM_SETCURSOR,OnSetCursor)
227                         COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
228                         COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
229                         COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
230                         COMMAND_ID_HANDLER_EX(IDM_VIEW_PREFERENCE,OnViewPreference)
231                         COMMAND_CODE_HANDLER_EX(CBN_SELCHANGE,OnCbSelChange)
232                         NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
233                         // CFrameWindowImpl\83N\83\89\83X\82Ö\83`\83F\81[\83\93
234                         CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
235                 END_MSG_MAP()
236
237                 
238                 ///
239                 ///\8f\89\8aú\89»\8f\88\97\9d
240                 ///
241                 VOID Initialize(LPCTSTR localAppDataPath);
242                 
243                 ///
244                 ///\8fI\97¹\8f\88\97\9d
245                 ///
246                 VOID Finalaize();
247                 
248                 
249                 ///
250                 ///\97á\8aO\94­\90\8e\9e\82Ì\8f\88\97\9d
251                 ///
252                 VOID OnException();
253
254         private:
255
256                 ///
257                 ///\83E\83B\83\93\83h\83E\82ð\95Â\82\82é\82Æ\82«\82Ì\8f\88\97\9d
258                 ///
259                 VOID OnClose();
260
261                 ///
262                 ///\83E\83B\83\93\83h\83E\94j\8aü\8e\9e\82Ì\8f\88\97\9d
263                 ///
264                 VOID OnDestroy();
265
266                 ///
267                 ///\83c\81[\83\8b\83o\81[\8d\82\82³\95Ï\8dX
268                 ///
269                 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled);
270                 
271                 
272                 ///
273                 ///\83T\83C\83Y\95Ï\8dX\92\86\8f\88\97\9d
274                 ///
275                 VOID OnSizing(UINT wParam,LPRECT lParam);
276                 
277                 ///
278                 ///\83T\83C\83Y\95Ï\8dX\8cã
279                 ///
280                 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);
281                 
282                 
283                 ///
284                 ///\8eq\83E\83B\83\93\83h\83E\83T\83C\83Y\95Ï\8dX\8f\88\97\9d
285                 ///
286                 VOID ChangeSize(const SIZE& client);
287
288                 ///
289                 ///\83R\83\93\83{\83{\83b\83N\83X\82Ì\91I\91ð\8d\80\96Ú\82ª\95Ï\8dX\82³\82ê\82½
290                 ///
291                 LRESULT OnCbSelChange(UINT hiWparam,int loWparam,HWND lParam);
292
293                 ///
294                 ///\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
295                 ///
296                 LRESULT OnCreate(LPCREATESTRUCT lpcs);
297
298
299                 ///
300                 ///\83j\83R\90\95ú\91\97\82É\90Ú\91±
301                 ///
302                 BOOL ConnectNicoLive(LPCTSTR liveNo);
303
304
305                 ///
306                 ///\83}\83E\83X\83J\81[\83\\83\8b\95Ï\8dX\8f\88\97\9d
307                 ///
308                 LRESULT OnSetCursor(LRESULT msg,WPARAM wParam,LPARAM lParam,BOOL &bHandled);
309
310
311                 //\83\81\83j\83\85\81[\82©\82ç\83t\83@\83C\83\8b\82ð\8fI\97¹\82ð\91I\91ð
312                 VOID OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl);
313
314                 //\83\81\83j\83\85\81[\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83o\81[\83W\83\87\83\93\8fî\95ñ\95\\8e¦
315                 VOID OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl);
316
317                 //\83N\83b\83L\81[\82Ì\90Ý\92è
318                 VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
319
320                 //\83r\83\85\81[\83A\90Ý\92è
321                 VOID OnViewPreference(UINT uNotifyCode,int nID,HWND hWndCtl);
322
323                 ///
324                 ///CNicoLiveStream\82Ì\83R\81[\83\8b\83o\83b\83N\97p\8aÖ\90\94
325                 ///
326                 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
327
328                 
329                 ///
330                 ///\90Ú\91±\83X\83\8c\83b\83h
331                 ///
332                 static VOID ConnectingThread(LPVOID userData);
333         };
334
335
336
337
338         
339
340 }