7 const static LPCTSTR NLITE_MAINWINDOW = TEXT("nlite");
9 const static SIZE lowestFrameSize = {300,300};
17 CCommentView &commentView;
20 CLiveUserData(CCommentView& cv):commentView(cv){}
30 class CNliteMainFrame : public CFrameWindowImpl<CNliteMainFrame>,
31 public CUpdateUI<CNliteMainFrame>,public CMessageFilter, public CIdleHandler
35 class CSubLiveNoComboBox:public CWindowImpl<CEdit>{
40 CNliteMainFrame &self;
43 CSubLiveNoComboBox(CNliteMainFrame &in_self):self(in_self){}
46 BEGIN_MSG_MAP_EX(CSubLiveNoComboBox)
47 MSG_WM_KEYDOWN(OnKeyDown)
50 void OnKeyDown(TCHAR wParam, UINT upLParam,UINT loLParam){
51 if(wParam == VK_RETURN){
52 std::vector<TCHAR> buffer(this->GetWindowTextLengthW() + 1);
53 ::GetWindowTextW(this->m_hWnd,&buffer[0],buffer.size());
54 self.ConnectNicoLive(&buffer[0]);
64 typedef CFrameWindowImpl<CNliteMainFrame> baseWindow;
66 //
\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^
67 DECLARE_FRAME_WND_CLASS_EX(NLITE_MAINWINDOW, IDC_NLITE,CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, COLOR_WINDOW)
68 //DECLARE_FRAME_WND_CLASS_EX(NLITE_MAINWINDOW, IDC_NLITE,CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, COLOR_WINDOW)
69 //DECLARE_FRAME_WND_CLASS(NULL,IDC_NLITE);
71 CCommentView commentView;
74 CStatusBarCtrl statusBar;
75 CLiveUserData userData;
76 CSubLiveNoComboBox subLiveNoComboBox;
77 CCommentWriteWindow commentWriteWindow;
81 CComboBoxEx lvNoCombo;
82 INT_PTR statusBarHeight;
83 INT_PTR toolBarHeight;
84 CNicoVideoAuth nicoVideoAuth;
85 Property nliteProperty;
86 CNicoLiveStream nicoLiveStream;
89 //
\83\81\83b
\83Z
\81[
\83W
\83t
\83B
\83\8b\83^
\8f\88\97\9d
90 virtual BOOL PreTranslateMessage(MSG* pMsg){
91 //
\8aî
\92ê
\83N
\83\89\83X
\82ÌPreTranslateMessage
\82ð
\8cÄ
\82Ñ
\8fo
\82·
92 return CFrameWindowImpl<CNliteMainFrame>::PreTranslateMessage(pMsg);
95 //
\83A
\83C
\83h
\83\8b\8f\88\97\9d
96 virtual BOOL OnIdle(){
104 :userData(commentView),
105 subLiveNoComboBox(*this)
110 lf.lfCharSet = SHIFTJIS_CHARSET;
111 hTabFont = CreateFontIndirect(&lf);
116 DeleteObject(hTabFont);
120 BEGIN_UPDATE_UI_MAP(CNliteMainFrame)
121 //
\83G
\83\93\83g
\83\8a\82È
\82µ
124 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
125 BEGIN_MSG_MAP_EX(CNliteMainFrame)
126 MSG_WM_CREATE(OnCreate)
127 MSG_WM_DESTROY(OnDestroy)
128 MESSAGE_HANDLER(WM_SIZING,OnSizing)
129 MESSAGE_HANDLER(WM_SIZE,OnSize)
130 // MSG_WM_NOTIFY(OnNotify)
131 MESSAGE_HANDLER_EX(WM_ERASEBKGND,OnErasekgnd);
132 COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
133 COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
134 COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
135 NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
136 // CFrameWindowImpl
\83N
\83\89\83X
\82Ö
\83`
\83F
\81[
\83\93
137 // CHAIN_MSG_MAP(CUpdateUI<CNliteMainFrame>)
138 CHAIN_MSG_MAP(CFrameWindowImpl<CNliteMainFrame>)
141 //
\83T
\83C
\83Y
\95Ï
\8dX
\92\86
142 LRESULT OnSizing(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled){
144 ((LPRECT)lParam)->right = ((LPRECT)lParam)->right - ((LPRECT)lParam)->left < lowestFrameSize.cx ? lowestFrameSize.cx + ((LPRECT)lParam)->left : ((LPRECT)lParam)->right;
145 ((LPRECT)lParam)->bottom = ((LPRECT)lParam)->bottom - ((LPRECT)lParam)->top < lowestFrameSize.cy ? lowestFrameSize.cy + ((LPRECT)lParam)->top : ((LPRECT)lParam)->bottom;
147 GetClientRect(&client);
149 ChangeSize( _WTYPES_NS::CSize(client.right - client.left,client.bottom - client.top));
159 //
\83`
\83\89\83c
\83L
\82ð
\82È
\82
\82·
\81B
\82 \82ñ
\82Ü
\8cø
\89Ê
\82È
\82¢
\81H
160 LRESULT OnErasekgnd(UINT uMsg,WPARAM wParam,LPARAM lParam){
166 //
\83c
\81[
\83\8b\83o
\81[
\8d\82\82³
\95Ï
\8dX
167 LRESULT OnRbnHeightChange(INT_PTR wParam,LPNMHDR lParam,BOOL &bHandled){
170 ::GetClientRect(m_hWndToolBar,&toolbarRect);
171 toolBarHeight = toolbarRect.bottom - toolbarRect.top;
174 GetClientRect(&client);
176 ChangeSize( _WTYPES_NS::CSize(client.right - client.left,client.bottom - client.top));
184 //
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
185 LRESULT OnSize(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled){
189 clientSize.cx = LOWORD(lParam);
190 clientSize.cy = HIWORD(lParam);
191 ChangeSize(clientSize);
200 VOID ChangeSize(const SIZE& client);
203 LRESULT OnCreate(LPCREATESTRUCT lpcs);
205 VOID ConnectNicoLive(LPCTSTR liveNo){
207 // nicoLiveStream.Connect(nicoVideoAuth,liveNo,LiveCallBack,&userData);
211 VOID Initialize(LPCTSTR localAppDataPath){
213 nliteProperty.ReadIniFile();
219 nliteProperty.WriteIniFile();
223 commentView.DestroyWindow();
228 //
\83\81\83j
\83\85\81[
\82©
\82ç
\83t
\83@
\83C
\83\8b\82ð
\8fI
\97¹
\82ð
\91I
\91ð
229 void OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl){
230 PostMessage(WM_CLOSE);
233 //
\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¦
234 void OnMenuAbount(UINT uNotifyCode,int nID,HWND hWndCtl){
240 //
\83N
\83b
\83L
\81[
\82Ì
\90Ý
\92è
241 void OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl){
243 nliteProperty.CookieSetting();
248 static NLIB_RESULT LiveCallBack(NICOLIVE_EVENT eventType,NicoLiveStream_P pNicoLiveStream,LPVOID option,NICOLIVE_PARAM param1,NICOLIVE_PARAM param2);