OSDN Git Service

2012/01/22 23:04:23
[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         ///\83E\83B\83\93\83h\83E\8dÅ\92á\83T\83C\83Y
13         ///
14         const static SIZE lowestFrameSize = {300,300};
15
16         ///
17         ///\83\81\83C\83\93\83t\83\8c\81[\83\80\83N\83\89\83X
18         ///
19         class CNliteMainFrame : public CFrameWindowImpl<CNliteMainFrame>,
20                 public CUpdateUI<CNliteMainFrame>,public CMessageFilter, public CIdleHandler
21         {
22
23                 ///
24                 ///\92è\90\94
25                 ///
26                 enum{
27                         IDC_COMBO_REBAR = 301,
28                         IDC_COMBO_TITLE = 302
29                 };
30
31         public:
32
33                 ///
34                 ///\95ú\91\97\94Ô\8d\86\93ü\97Í\97p
35                 ///
36                 class CSubLiveNoComboBox:public CWindowImpl<CEdit>{
37
38                         
39
40                 private:
41                         CNliteMainFrame &self;                          //\83\81\83C\83\93\83t\83\8c\81[\83\80\83E\83B\83\93\83h\83E
42                         CComAutoCriticalSection cs;                     //\83N\83\8a\83e\83B\83J\83\8b\83Z\83N\83V\83\87\83\93\83I\83u\83W\83F\83N\83g
43                         BOOL untilConnectingFlag;                       //\90Ú\91±\8f\88\97\9d\92\86\82©\82Ì\83t\83\89\83O\94»\92è
44
45                 public:
46                         
47                         ///
48                         ///\83R\83\93\83X\83^\83\89\83N\83^
49                         ///
50                         CSubLiveNoComboBox(CNliteMainFrame &in_self);
51                         
52
53                         //\83\81\83b\83Z\81[\83W\83\8b\81[\83v
54                         BEGIN_MSG_MAP_EX(CSubLiveNoComboBox)
55                                 MSG_WM_KEYDOWN(OnKeyDown)
56                         END_MSG_MAP()
57
58
59                         ///
60                         ///\83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d
61                         ///
62                         VOID OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam);
63
64                         ///
65                         ///\95ú\91\97\94Ô\8d\86\93ü\97Í\82ð\8b\96\89Â\82·\82é
66                         ///
67                         VOID AgreeInputLvNo();
68
69                         
70
71                 };
72
73
74                 ///
75                 ///\83R\83\81\83\93\83g\8eó\90M
76                 ///
77                 class CLiveUserData {
78
79                 private:
80
81                         CCommentView &commentView;                              //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
82                         CCommentWriteWindow &writeWindow;               //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\82Ì\83E\83B\83\93\83h\83E
83                         CSubLiveNoComboBox &lvnocombo;                  //\95ú\91\97\94Ô\8d\86\93ü\97Í\83R\83\93\83{\83{\83b\83N\83X
84
85                 public:
86
87                         ///
88                         ///\83R\83\93\83X\83g\83\89\83N\83^
89                         ///
90                         CLiveUserData(CCommentView& cv,CSubLiveNoComboBox &combo,CCommentWriteWindow &writeWindow);
91                         
92
93                         ///
94                         ///\90Ú\91±\8aJ\8en\8e\9e\8f\88\97\9d
95                         ///
96                         VOID OnConnect();
97                         
98                         ///
99                         ///\83R\83\81\83\93\83g\8eó\90M\8aJ\8en\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
100                         ///
101                         VOID OnChatReceveStart(StreamStatus &streamStatus);
102
103
104                         ///
105                         ///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
106                         ///\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82ð\83o\83b\83t\83@\82É\8ai\94[
107                         ///
108                         VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
109                         
110
111                         ///
112                         ///\83`\83\83\83b\83g\8eó\90M\8am\92è\8e\9e\82Ì\83R\81[\83\8b\83o\83b\83N\8f\88\97\9d
113                         ///\8eå\82É\8eó\90M\82µ\82½\83R\83\81\83\93\83g\82Ì\95`\89æ\8f\88\97\9d\82ð\8ds\82¤
114                         ///
115                         VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
116
117                         ///
118                         ///\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
119                         ///
120                         VOID OnChatSendResult(NicoLiveSendResultComment_P sendResult);
121
122                 };
123
124                 
125         public:
126
127                 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
128
129                 // \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^
130                 DECLARE_FRAME_WND_CLASS(NLITE_MAINWINDOW, IDC_NLITE)
131
132         private:
133                 CCommentView commentView;                                       //\83R\83\81\83\93\83g\95\\8e¦\83E\83B\83\93\83h\83E
134                 CStatusBarCtrl statusBar;                                       //\83X\83e\81[\83^\83X\83o\81[
135                 CLiveUserData userData;                                         //\83C\83x\83\93\83g\83n\83\93\83h\83\89\97p\83N\83\89\83X
136                 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)
137                 CCommentWriteWindow commentWriteWindow;         //\83R\83\81\83\93\83g\8f\91\82«\8d\9e\82Ý\97p\83N\83\89\83X
138                 CTabCtrl tabctrl;                                                       //\83^\83u\83R\83\93\83g\83\8d\81[\83\8b
139                 
140                 HFONT hTabFont;                                                         //\83^\83u\83E\83B\83\93\83h\83E\97p\82Ì\83t\83H\83\93\83g                            
141                 CComboBoxEx lvNoCombo;                                          //\90\95ú\91\97\94Ô\8d\86\93ü\97Í\97p\83R\83\93\83{\83{\83b\83N\83X
142                 INT_PTR statusBarHeight;                                        //\83X\83e\81[\83^\83X\83o\81[\82Ì\8d\82\82³
143                 INT_PTR toolBarHeight;                                          //\83c\81[\83\8b\83o\81[\82Ì\8d\82\82³
144                 CNicoVideoAuth nicoVideoAuth;                           //\83j\83R\83j\83R\93®\89æ\94F\8fØ\97p\83I\83u\83W\83F\83N\83g
145                 Property nliteProperty;                                         //\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83v\83\8d\83p\83e\83B
146                 CNicoLiveStream nicoLiveStream;                         //\83j\83R\83j\83R\90\95ú\91\97\83I\83u\83W\83F\83N\83g
147         private:
148
149                 // \83\81\83b\83Z\81[\83W\83t\83B\83\8b\83^\8f\88\97\9d
150                 virtual BOOL PreTranslateMessage(MSG* pMsg){
151                         // \8aî\92ê\83N\83\89\83X\82ÌPreTranslateMessage\82ð\8cÄ\82Ñ\8fo\82·
152                         return CFrameWindowImpl<CNliteMainFrame>::PreTranslateMessage(pMsg);
153                 }
154
155                 // \83A\83C\83h\83\8b\8f\88\97\9d
156                 virtual BOOL OnIdle(){
157                         return FALSE;
158                 }
159
160
161         public:
162
163                 ///
164                 ///\83R\83\93\83X\83g\83\89\83N\83^
165                 ///
166                 CNliteMainFrame();
167                 
168
169                 ///
170                 ///\83f\83X\83g\83\89\83N\83^
171                 ///
172                 ~CNliteMainFrame();
173                 
174
175                 
176                 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
177                         // \83G\83\93\83g\83\8a\82È\82µ
178                 END_UPDATE_UI_MAP()
179                 
180                 // \83\81\83b\83Z\81[\83W\83}\83b\83v
181                 BEGIN_MSG_MAP_EX(CNliteMainFrame)
182                         MSG_WM_CREATE(OnCreate)
183                         MSG_WM_DESTROY(OnDestroy)
184                         MESSAGE_HANDLER(WM_SIZE,OnSize)
185                         MSG_WM_SIZING(OnSizing)
186                         COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
187                         COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
188                         COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
189                         NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
190                         // CFrameWindowImpl\83N\83\89\83X\82Ö\83`\83F\81[\83\93
191                         CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
192                 END_MSG_MAP()
193
194                 
195                 ///
196                 ///\8f\89\8aú\89»\8f\88\97\9d
197                 ///
198                 VOID Initialize(LPCTSTR localAppDataPath);
199                 
200                 ///
201                 ///\8fI\97¹\8f\88\97\9d
202                 ///
203                 VOID Finalaize();
204                 
205                 VOID OnDestroy();
206
207                 VOID OnException();
208
209         private:
210
211                 ///
212                 ///\83c\81[\83\8b\83o\81[\8d\82\82³\95Ï\8dX
213                 ///
214                 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled);
215                 
216                 
217                 ///
218                 ///\83T\83C\83Y\95Ï\8dX\92\86\8f\88\97\9d
219                 ///
220                 VOID OnSizing(UINT wParam,LPRECT lParam);
221                 
222                 ///
223                 ///\83T\83C\83Y\95Ï\8dX\8cã
224                 ///
225                 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);
226                 
227                 
228                 ///
229                 ///\8eq\83E\83B\83\93\83h\83E\83T\83C\83Y\95Ï\8dX\8f\88\97\9d
230                 ///
231                 VOID ChangeSize(const SIZE& client);
232
233
234                 ///
235                 ///\83E\83B\83\93\83h\83E\8dì\90¬\8e\9e\82Ì\8f\88\97\9d
236                 ///
237                 LRESULT OnCreate(LPCREATESTRUCT lpcs);
238
239                 VOID ConnectNicoLive(LPCTSTR liveNo);
240
241                 
242                 
243
244                 //\83\81\83j\83\85\81[\82©\82ç\83t\83@\83C\83\8b\82ð\8fI\97¹\82ð\91I\91ð
245                 VOID OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl);
246
247                 //\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¦
248                 VOID OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl);
249
250                 //\83N\83b\83L\81[\82Ì\90Ý\92è
251                 VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
252
253                 
254                 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);
255
256                 
257         };
258
259
260
261
262         
263
264 }