OSDN Git Service

be26529941fb8093efe175f7c24bcb677cc07769
[nlite/nlite.git] / nlite / nlite_mailframe.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_KEYDOWN(OnKeyDown)
55                         END_MSG_MAP()
56
57                 public:
58
59                         ///
60                         ///\95ú\91\97\8fî\95ñ\92Ç\89Á
61                         ///
62                         VOID AddLiveInfo(CNicoLiveStream &stream,LvnoSearchFunctional &functional);
63                         
64
65                         ///
66                         ///\95ú\91\97\94Ô\8d\86\93ü\97Í\82ð\8b\96\89Â\82·\82é
67                         ///
68                         VOID AgreeInputLvNo();
69
70
71                 private:
72                         ///
73                         ///\83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d
74                         ///
75                         VOID OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam);
76                         
77
78                 };
79
80
81                 
82                 struct LvnoSearchFunctional{
83                         LPCTSTR lvNo;
84                         CNLiteString dispData;
85
86                         LvnoSearchFunctional(LPCTSTR in_lvNo):lvNo(in_lvNo){}
87
88                         bool operator()(CSubLiveNoComboBox::LiveInfo &listInfo){
89                                 return listInfo.second == lvNo;
90                         }
91
92                 };
93
94
95                 ///
96                 ///\83R\83\81\83\93\83g\8eó\90M
97                 ///
98                 class CLiveUserData {
99
100
101                         friend CNliteMainFrame;
102                 private:
103
104                         CNliteMainFrame &self;
105                         
106
107                 public:
108
109                         ///
110                         ///\83R\83\93\83X\83g\83\89\83N\83^
111                         ///
112                         CLiveUserData(CNliteMainFrame &self);
113                         
114
115                         ///
116                         ///\90Ú\91±\8aJ\8en\8e\9e\8f\88\97\9d
117                         ///
118                         VOID OnConnect();
119                         
120                         ///
121                         ///\83R\83\81\83\93\83g\8eó\90M\8aJ\8en\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
122                         ///
123                         VOID OnChatReceveStart(CNicoLiveStream &stream);
124
125
126                         ///
127                         ///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
128                         ///\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82ð\83o\83b\83t\83@\82É\8ai\94[
129                         ///
130                         VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
131                         
132
133                         ///
134                         ///\83`\83\83\83b\83g\8eó\90M\8am\92è\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
135                         ///\8eå\82É\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82Ì\95`\89æ\8f\88\97\9d\82ð\8ds\82¤
136                         ///
137                         VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
138
139                         ///
140                         ///\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
141                         ///
142                         VOID OnChatSendResult(NicoLiveSendResultComment_P sendResult);
143
144                 };
145
146                 friend CSubLiveNoComboBox;
147         public:
148
149                 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
150
151                 // \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^
152                 DECLARE_FRAME_WND_CLASS(NLITE_MAINWINDOW, IDC_NLITE)
153
154         private:
155                 CCommentView commentView;                                       //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
156                 CStatusBarCtrl statusBar;                                       //\83X\83e\81[\83^\83X\83o\81[
157                 CLiveUserData userData;                                         //\83C\83x\83\93\83g\83n\83\93\83h\83\89\97p\83N\83\89\83X
158                 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)
159                 CCommentWriteWindow commentWriteWindow;         //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\83N\83\89\83X
160                 CTabCtrl tabctrl;                                                       //\83^\83u\83R\83\93\83g\83\8d\81[\83\8b
161                 HFONT hTabFont;                                                         //\83^\83u\83E\83B\83\93\83h\83E\97p\82Ì\83t\83H\83\93\83g                            
162                 CComboBoxEx lvNoCombo;                                          //\90\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X
163                 INT_PTR statusBarHeight;                                        //\83X\83e\81[\83^\83X\83o\81[\82Ì\8d\82\82³
164                 INT_PTR toolBarHeight;                                          //\83c\81[\83\8b\83o\81[\82Ì\8d\82\82³
165                 CNicoVideoAuth nicoVideoAuth;                           //\83j\83R\83j\83R\93®\89æ\94F\8fØ\97p\83I\83u\83W\83F\83N\83g
166                 Property nliteProperty;                                         //\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83v\83\8d\83p\83e\83B
167                 CNicoLiveStream nicoLiveStream;                         //\83j\83R\83j\83R\90\95ú\91\97\83I\83u\83W\83F\83N\83g
168                 CMultiPaneStatusBarCtrl m_hStatusBar;           //\83}\83\8b\83`\83y\83C\83\93\83X\83e\81[\83^\83X\83o\81[
169                 CProgressBarCtrl  m_progresBar;                         //\83v\83\8d\83O\83\8c\83X\83o\81[
170         private:
171                 // \83\81\83b\83Z\81[\83W\83t\83B\83\8b\83^\8f\88\97\9d
172                 virtual BOOL PreTranslateMessage(MSG* pMsg);
173
174                 // \83A\83C\83h\83\8b\8f\88\97\9d
175                 virtual BOOL OnIdle();
176
177                 
178                 
179
180         public:
181
182                 ///
183                 ///\83R\83\93\83X\83g\83\89\83N\83^
184                 ///
185                 CNliteMainFrame();
186                 
187
188                 ///
189                 ///\83f\83X\83g\83\89\83N\83^
190                 ///
191                 ~CNliteMainFrame();
192                 
193
194                 
195                 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
196                         // \83G\83\93\83g\83\8a\82È\82µ
197                 END_UPDATE_UI_MAP()
198                 
199                 // \83\81\83b\83Z\81[\83W\83}\83b\83v
200                 BEGIN_MSG_MAP_EX(CNliteMainFrame)
201                         MSG_WM_CREATE(OnCreate)
202                         MSG_WM_CLOSE(OnClose)
203                         MSG_WM_DESTROY(OnDestroy)
204                         MESSAGE_HANDLER(WM_SIZE,OnSize)
205                         MSG_WM_SIZING(OnSizing)
206                         MESSAGE_HANDLER(WM_SETCURSOR,OnSetCursor)
207                         COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
208                         COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
209                         COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
210                         COMMAND_CODE_HANDLER_EX(CBN_SELCHANGE,OnCbSelChange)
211                         NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
212                         // CFrameWindowImpl\83N\83\89\83X\82Ö\83`\83F\81[\83\93
213                         CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
214                 END_MSG_MAP()
215
216                 
217                 ///
218                 ///\8f\89\8aú\89»\8f\88\97\9d
219                 ///
220                 VOID Initialize(LPCTSTR localAppDataPath);
221                 
222                 ///
223                 ///\8fI\97¹\8f\88\97\9d
224                 ///
225                 VOID Finalaize();
226                 
227                 
228                 ///
229                 ///\97á\8aO\94­\90\8e\9e\82Ì\8f\88\97\9d
230                 ///
231                 VOID OnException();
232
233         private:
234
235                 ///
236                 ///\83E\83B\83\93\83h\83E\82ð\95Â\82\82é\82Æ\82«\82Ì\8f\88\97\9d
237                 ///
238                 VOID OnClose();
239
240                 ///
241                 ///\83E\83B\83\93\83h\83E\94j\8aü\8e\9e\82Ì\8f\88\97\9d
242                 ///
243                 VOID OnDestroy();
244
245                 ///
246                 ///\83c\81[\83\8b\83o\81[\8d\82\82³\95Ï\8dX
247                 ///
248                 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled);
249                 
250                 
251                 ///
252                 ///\83T\83C\83Y\95Ï\8dX\92\86\8f\88\97\9d
253                 ///
254                 VOID OnSizing(UINT wParam,LPRECT lParam);
255                 
256                 ///
257                 ///\83T\83C\83Y\95Ï\8dX\8cã
258                 ///
259                 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);
260                 
261                 
262                 ///
263                 ///\8eq\83E\83B\83\93\83h\83E\83T\83C\83Y\95Ï\8dX\8f\88\97\9d
264                 ///
265                 VOID ChangeSize(const SIZE& client);
266
267                 ///
268                 ///\83R\83\93\83{\83{\83b\83N\83X\82Ì\91I\91ð\8d\80\96Ú\82ª\95Ï\8dX\82³\82ê\82½
269                 ///
270                 LRESULT OnCbSelChange(UINT hiWparam,int loWparam,HWND lParam);
271
272                 ///
273                 ///\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
274                 ///
275                 LRESULT OnCreate(LPCREATESTRUCT lpcs);
276
277
278                 ///
279                 ///\83j\83R\90\95ú\91\97\82É\90Ú\91±
280                 ///
281                 BOOL ConnectNicoLive(LPCTSTR liveNo);
282
283
284                 ///
285                 ///\83}\83E\83X\83J\81[\83\\83\8b\95Ï\8dX\8f\88\97\9d
286                 ///
287                 LRESULT OnSetCursor(LRESULT msg,WPARAM wParam,LPARAM lParam,BOOL &bHandled);
288
289
290                 //\83\81\83j\83\85\81[\82©\82ç\83t\83@\83C\83\8b\82ð\8fI\97¹\82ð\91I\91ð
291                 VOID OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl);
292
293                 //\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¦
294                 VOID OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl);
295
296                 //\83N\83b\83L\81[\82Ì\90Ý\92è
297                 VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
298
299                 ///
300                 ///CNicoLiveStream\82Ì\83R\81[\83\8b\83o\83b\83N\97p\8aÖ\90\94
301                 ///
302                 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
303
304                 
305         };
306
307
308
309
310         
311
312 }