OSDN Git Service

コメント読み上げ切り替え機能
authorqwerty2501 <riot313@gmail.com>
Tue, 21 Feb 2012 14:27:32 +0000 (23:27 +0900)
committerqwerty2501 <riot313@gmail.com>
Tue, 21 Feb 2012 14:27:32 +0000 (23:27 +0900)
ウィンドウ最前面表示機能

13 files changed:
nlite.sln
nlite.suo
nlite/Resource.h
nlite/nlite.rc
nlite/nlite.vcxproj
nlite/nlite.vcxproj.filters
nlite/nlite_chatData.cpp
nlite/nlite_common.cpp
nlite/nlite_include.h
nlite/nlite_mainframe.cpp
nlite/nlite_mainframe.h
nlite/nlite_property.cpp
nlite/nlite_viewerPropertyWindow.h [new file with mode: 0644]

index 966813e..8bfa9b4 100644 (file)
--- a/nlite.sln
+++ b/nlite.sln
@@ -42,6 +42,9 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "open_jtalk_lib", "open_jtalk_lib\open_jtalk_lib.vcxproj", "{125DDEDE-934B-4B5D-B2F3-6635B1E99EC1}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speaker", "speaker\speaker.vcxproj", "{FBE9021E-5717-4EEE-A3AC-E4516C8A29AD}"
+       ProjectSection(ProjectDependencies) = postProject
+               {125DDEDE-934B-4B5D-B2F3-6635B1E99EC1} = {125DDEDE-934B-4B5D-B2F3-6635B1E99EC1}
+       EndProjectSection
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
index 9769462..3f6412f 100644 (file)
Binary files a/nlite.suo and b/nlite.suo differ
index 002f65d..f5e3038 100644 (file)
@@ -8,24 +8,25 @@
 #define IDI_SMALL                               108
 #define IDC_NLITE                               109
 #define IDD_DIALOG_BROWSERTYPE                  211
-#define IDD_DIALOG_VIEW_PROPERTY                213
-#define IDD_DIALOG_GENERAL_PAGE                 216
-#define IDD_ADDMYLISTDIALOG                     219
 #define IDD_LISTENER_SETTING_DIALOG             220
-#define IDC_EDIT1                               1000
+#define IDD_WRITE_SETTING_DIALOG                222
+#define IDD_MAINWINDOW_SETTING_DIALOG           224
+#define IDD_SPEAKER_DIALOG                      227
 #define IDC_BUTTON_COOKIE_OK                    1001
+#define IDC_COMMENT_SPEAK_CHECKBOX              1001
 #define IDC_LT_BACKCOLOR_STATIC                 1001
+#define IDC_ZORDER_TOP_CHECKBOX                 1001
 #define IDC_USERID_STATIC                       1002
-#define IDC_APPLY                               1003
 #define IDC_NICKNAME_EDIT                       1003
 #define IDC_LT_NICKNAME_STATIC                  1004
 #define IDC_RADIO_IE                            1005
 #define IDC_BACKCOLOR_RETURN_BUTTON             1006
 #define IDC_NAMECOLOR_RETURN_BUTTON             1007
 #define IDM_COOKIE                              30000
-#define IDM_VIEW_PREFERENCE                     30001
+#define IDM_FRONT_WINDOW_CHECK                  40000
 #define IDR_COMMAND1                            40000
 #define IDS_PANE_TIME                           40000
+#define IDM_SPEAK_COMMENT_CHECK                 40001
 #define IDR_COMMAND2                            40001
 #define IDR_COMMAND3                            40002
 #define IDR_COMMAND4                            40003
index 262896b..f7081ef 100644 (file)
@@ -47,7 +47,9 @@ IDC_NLITE MENU
     POPUP "\90Ý\92è(&T)"
     {
         MENUITEM "\83N\83b\83L\81[\82Ì\90Ý\92è(&B)", IDM_COOKIE
-        MENUITEM "\83r\83\85\81[\83A\82Ì\90Ý\92è(&C)", IDM_VIEW_PREFERENCE
+        MENUITEM SEPARATOR
+        MENUITEM "\8fí\82É\8dÅ\91O\96Ê\82É\95\\8e¦", IDM_FRONT_WINDOW_CHECK, CHECKED
+        MENUITEM "\83R\83\81\83\93\83g\82ð\93Ç\82Ý\8fã\82°\82é", IDM_SPEAK_COMMENT_CHECK, CHECKED
     }
     POPUP "\83w\83\8b\83v(&H)"
     {
@@ -61,16 +63,6 @@ IDC_NLITE MENU
 // Dialog resources
 //
 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-IDD_ADDMYLISTDIALOG DIALOG 0, 0, 360, 240
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
-CAPTION "\83}\83C\83\8a\83X\83g\93o\98^"
-FONT 8, "Ms Shell Dlg"
-{
-}
-
-
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 IDD_DIALOG_BROWSERTYPE DIALOG 0, 0, 123, 110
 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
 CAPTION "\83N\83b\83L\81[\82Ì\90Ý\92è"
@@ -88,33 +80,6 @@ FONT 8, "Ms Shell Dlg"
 
 
 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-IDD_DIALOG_GENERAL_PAGE DIALOG 0, 0, 275, 345
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
-EXSTYLE WS_EX_WINDOWEDGE
-CAPTION "\88ê\94Ê\90Ý\92è"
-FONT 8, "Ms Shell Dlg"
-{
-    EDITTEXT        IDC_EDIT1, 61, 23, 68, 12, ES_AUTOHSCROLL
-    LTEXT           "\83u\83\89\83E\83U\83p\83X", IDC_STATIC, 21, 25, 40, 8, SS_LEFT
-}
-
-
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-IDD_DIALOG_VIEW_PROPERTY DIALOG 0, 0, 357, 290
-STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
-EXSTYLE WS_EX_WINDOWEDGE
-CAPTION "\83r\83\85\81[\83A\90Ý\92è"
-FONT 8, "Ms Shell Dlg"
-{
-    DEFPUSHBUTTON   "OK", IDOK, 189, 268, 50, 14
-    PUSHBUTTON      "\83L\83\83\83\93\83Z\83\8b", IDCANCEL, 245, 268, 50, 14
-    PUSHBUTTON      "\93K\97p", IDC_APPLY, 301, 268, 50, 14, WS_DISABLED
-}
-
-
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 IDD_LISTENER_SETTING_DIALOG DIALOG 0, 0, 175, 151
 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU
 EXSTYLE WS_EX_WINDOWEDGE
@@ -137,6 +102,38 @@ FONT 8, "Ms Shell Dlg"
 
 
 
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+IDD_MAINWINDOW_SETTING_DIALOG DIALOG 0, 0, 186, 148
+STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
+CAPTION "\83E\83B\83\93\83h\83E\90Ý\92è"
+FONT 8, "Ms Shell Dlg"
+{
+    AUTOCHECKBOX    "\8fí\82É\8dÅ\91O\96Ê\82É\95\\8e¦", IDC_ZORDER_TOP_CHECKBOX, 49, 20, 72, 8
+}
+
+
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+IDD_SPEAKER_DIALOG DIALOG 0, 0, 186, 95
+STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
+CAPTION "\93Ç\82Ý\8fã\82°\90Ý\92è"
+FONT 8, "Ms Shell Dlg"
+{
+    AUTOCHECKBOX    "\83R\83\81\83\93\83g\82ð\93Ç\82Ý\8fã\82°\82é", IDC_COMMENT_SPEAK_CHECKBOX, 38, 15, 75, 8
+}
+
+
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+IDD_WRITE_SETTING_DIALOG DIALOG 0, 0, 186, 147
+STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
+CAPTION "\8f\91\82«\8d\9e\82Ý\90Ý\92è"
+FONT 8, "Ms Shell Dlg"
+{
+}
+
+
+
 //
 // String Table resources
 //
index 439d4fa..39764c3 100644 (file)
@@ -166,6 +166,7 @@ xcopy "$(ProjectDir)libs" "$(targetdir)libs" /e /y</Command>
     <ClInclude Include="nlite_property.h" />
     <ClInclude Include="nlite_propertyWindow.h" />
     <ClInclude Include="nlite_string.h" />
+    <ClInclude Include="nlite_viewerPropertyWindow.h" />
     <ClInclude Include="Resource.h" />
     <ClInclude Include="stdafx.h" />
     <ClInclude Include="targetver.h" />
index e0c83f6..885ff9e 100644 (file)
@@ -77,6 +77,9 @@
     <ClInclude Include="nlite_common.h">
       <Filter>ヘッダー ファイル</Filter>
     </ClInclude>
+    <ClInclude Include="nlite_viewerPropertyWindow.h">
+      <Filter>ヘッダー ファイル</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="stdafx.cpp">
index e5569cd..4b14fbe 100644 (file)
@@ -186,6 +186,10 @@ CCommentList::iterator CCommentList::OnChatReceve(NicoLiveChat_P chatData_in,LPC
        if(empty() == TRUE || back().date <= chatData.date){
                chatList.push_back(chatData);
                rslt = (--chatList.end());
+               if(nlite::nliteProperty.crp.commentReadFlag == TRUE){
+                       
+                       g_speaker.SynthesisAsync((const speaker::TChar_P)(LPCTSTR)rslt->chatBuf);
+               }
        }else {
 
                rslt = chatList.insert(std::find_if(chatList.begin(),chatList.end(),SeartchSetPos_t(chatData.date)),chatData);
index c1cb6c6..e27c3f8 100644 (file)
@@ -12,7 +12,7 @@ namespace nlite{
                        const  CString VIDEOID_TEXT = TEXT("(sm|nm)([0-9])+");
                        const  CString LIVEID_TEXT = TEXT("(lv)([0-9])+");
                        const  CString LINK_TEXT = TEXT("(") + URL_TEXT + TEXT(")|(") + VIDEOID_TEXT + TEXT(")|(") + LIVEID_TEXT + TEXT(")");
-                       const  CString SEARTCH_AT_MARK(TEXT("(.*)(@|\81\97)(^ |^\81@[^@^\81\97]+)"));
+                       const  CString SEARTCH_AT_MARK(TEXT("(.*)(@|\81\97)([^ |^\81@][^@^\81\97]+)"));
                        const  tstring NUTHINGSTRING(TEXT(""));
                }
                const  tregex URL(text::URL_TEXT);
index 4601db7..7eed2e3 100644 (file)
@@ -18,6 +18,7 @@
 #include "nlite_nlib.h"
 #include "nlite_chatData.h"
 #include "nlite_property.h"
+#include "nlite_viewerPropertyWindow.h"
 #include "nlite_commentview.h"
 #include "nlite_appinfo.h"
 #include "nlite_propertyWindow.h"
index 443c7e5..b1d08d9 100644 (file)
@@ -174,6 +174,10 @@ LRESULT CNliteMainFrame::OnCreate(LPCREATESTRUCT lpcs){
        
        listenerSettingWindow.Create(*this);
        
+       this->SetMenuItemCheck(IDM_FRONT_WINDOW_CHECK,nliteProperty.mfp.windowFrontFlag);
+       this->SetMenuItemCheck(IDM_SPEAK_COMMENT_CHECK,nliteProperty.crp.commentReadFlag);
+       
+       this->SetWindowPos(nliteProperty.mfp.windowFrontFlag == TRUE ? HWND_TOPMOST : HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
 
        return 0;
 }
@@ -244,6 +248,25 @@ VOID CNliteMainFrame::OnException(){
 
 }
 
+
+BOOL CNliteMainFrame::IsMenuItemChecked(UINT item){
+       MENUITEMINFO menuInfo;
+       menuInfo.fMask = MIIM_STATE;
+       menuInfo.cbSize = sizeof(menuInfo);
+       ::GetMenuItemInfo(this->GetMenu(),item,FALSE,&menuInfo);
+       return menuInfo.fState == MFS_CHECKED;
+}
+
+
+VOID CNliteMainFrame::SetMenuItemCheck(UINT item,BOOL state){
+       MENUITEMINFO menuInfo;
+       menuInfo.cbSize = sizeof(menuInfo);
+       menuInfo.fMask = MIIM_STATE;
+       menuInfo.fState = state == TRUE ? MFS_CHECKED :MFS_UNCHECKED;
+       ::SetMenuItemInfo(this->GetMenu(),item,FALSE,&menuInfo);
+
+}
+
 //\83\81\83j\83\85\81[\82©\82ç\83t\83@\83C\83\8b\82ð\8fI\97¹\82ð\91I\91ð
 VOID CNliteMainFrame::OnMenuExit(UINT uNotifyCode, int nID, HWND hWndCtl){
        PostMessage(WM_CLOSE);
@@ -291,8 +314,24 @@ VOID CNliteMainFrame::OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl){
 
 }
 
+VOID CNliteMainFrame::OnSpeakCommentCheck(UINT uNotifyCode,int nID,HWND hWndCtl){
+
+
+       nliteProperty.crp.commentReadFlag = !IsMenuItemChecked(IDM_SPEAK_COMMENT_CHECK);
+       SetMenuItemCheck(IDM_SPEAK_COMMENT_CHECK,nliteProperty.crp.commentReadFlag );
+       
+       return;
+}
+
+VOID CNliteMainFrame::OnFrontWindowCheck(UINT uNotifyCode,int nID,HWND hWndCtl){
 
 
+       nliteProperty.mfp.windowFrontFlag = !IsMenuItemChecked(IDM_FRONT_WINDOW_CHECK);
+       SetMenuItemCheck(IDM_FRONT_WINDOW_CHECK,nliteProperty.mfp.windowFrontFlag );
+       this->SetWindowPos(nliteProperty.mfp.windowFrontFlag == TRUE ? HWND_TOPMOST : HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
+       return;
+}
+
 VOID CNliteMainFrame::ConnectingThread(LPVOID userData){
 
        auto &self = *(CNliteMainFrame*)userData;
@@ -688,7 +727,7 @@ VOID CNliteMainFrame::CLiveUserData::OnChatReceveStart(CNicoLiveStream &stream,N
 VOID CNliteMainFrame::CLiveUserData::OnChatReceve(NicoLiveChat_P chat,UINT_PTR count){
 
        self.commentView.OnChatReceve(chat,count);
-       g_speaker.SynthesisAsync((const speaker::TChar_P)chat->chatBuf);
+       
 }
 
 VOID CNliteMainFrame::CLiveUserData::OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum){
index c2888b3..06c321c 100644 (file)
@@ -231,8 +231,10 @@ namespace nlite{
                        MESSAGE_HANDLER_EX(UM_CLICK_USERNAME,OnClickUserName)
                        COMMAND_ID_HANDLER_EX(IDM_EXIT, OnMenuExit)
                        COMMAND_ID_HANDLER_EX(IDM_ABOUT,OnMenuAbount)
+                       COMMAND_ID_HANDLER_EX(IDM_SPEAK_COMMENT_CHECK,OnSpeakCommentCheck)
+                       COMMAND_ID_HANDLER_EX(IDM_FRONT_WINDOW_CHECK,OnFrontWindowCheck)
                        COMMAND_ID_HANDLER_EX(IDM_COOKIE,OnCookie)
-                       COMMAND_ID_HANDLER_EX(IDM_VIEW_PREFERENCE,OnViewPreference)
+//                     COMMAND_ID_HANDLER_EX(IDM_VIEW_PREFERENCE,OnViewPreference)
                        COMMAND_CODE_HANDLER_EX(CBN_SELCHANGE,OnCbSelChange)
                        NOTIFY_HANDLER(ATL_IDW_TOOLBAR,RBN_HEIGHTCHANGE,OnRbnHeightChange)
                        // CFrameWindowImpl\83N\83\89\83X\82Ö\83`\83F\81[\83\93
@@ -256,6 +258,18 @@ namespace nlite{
                ///
                VOID OnException();
 
+
+       private:
+               ///
+               ///\83\81\83j\83\85\81[\83A\83C\83e\83\80\82ª\83`\83F\83b\83N\82³\82ê\82Ä\82¢\82é\82©\82Ì\94»\92è
+               ///
+               BOOL IsMenuItemChecked(UINT item);
+
+               ///
+               ///\83\81\83j\83\85\81[\83A\83C\83e\83\80\82Ì\83`\83F\83b\83N\8fó\91Ô\82ð\95Ï\8dX
+               ///
+               VOID SetMenuItemCheck(UINT item,BOOL state);
+
        private:
 
                ///
@@ -339,6 +353,16 @@ namespace nlite{
                //\83N\83b\83L\81[\82Ì\90Ý\92è
                VOID OnCookie(UINT uNotifyCode,int nID,HWND hWndCtl);
 
+               ///
+               ///\83R\83\81\83\93\83g\93Ç\82Ý\8fã\82°\83`\83F\83b\83N\83N\83\8a\83b\83N\8e\9e\82Ì\93®\8dì
+               ///
+               VOID OnSpeakCommentCheck(UINT uNotifyCode,int nID,HWND hWndCtl);
+               
+               ///
+               ///\8dÅ\91O\96Ê\95\\8e¦\83`\83F\83b\83N\83N\83\8a\83b\83N\8e\9e\82Ì\93®\8dì
+               ///
+               VOID OnFrontWindowCheck(UINT uNotifyCode,int nID,HWND hWndCtl);
+
                //\83r\83\85\81[\83A\90Ý\92è
                VOID OnViewPreference(UINT uNotifyCode,int nID,HWND hWndCtl);
 
index 9516968..092e06f 100644 (file)
@@ -95,7 +95,7 @@ namespace nlite{
                numberNameFlag(FALSE),
                autoColorRegisterFlag(FALSE),
                activeCountTimeFlag(TRUE),
-               browserType(BT_NOSETTING),
+               browserType(BT_INTERNET_EXPLORER),
                ncvUserSettingReadedFlag(FALSE)
        {}
 
diff --git a/nlite/nlite_viewerPropertyWindow.h b/nlite/nlite_viewerPropertyWindow.h
new file mode 100644 (file)
index 0000000..3f59c93
--- /dev/null
@@ -0,0 +1,2 @@
+#pragma once
+