From 4f88e37aadccfd0ebc4c4ac880e310d2700c75e4 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 25 Oct 2013 19:52:36 +0000 Subject: StartupSilence plugin added (written by person) git-svn-id: http://svn.miranda-ng.org/main/trunk@6627 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- bin10/mir_full.sln | 10 + bin10/mir_full_pro.sln | 11 + bin11/mir_full.sln | 12 +- langpacks/russian/Plugins/StartupSilence.txt | 90 +++++ plugins/StartupSilence/StartupSilence_10.vcxproj | 207 +++++++++++ .../StartupSilence_10.vcxproj.filters | 43 +++ plugins/StartupSilence/StartupSilence_11.vcxproj | 209 +++++++++++ .../StartupSilence_11.vcxproj.filters | 43 +++ plugins/StartupSilence/doc/changelog.txt | 2 + plugins/StartupSilence/res/StartupSilence.rc | 122 +++++++ plugins/StartupSilence/res/disable.ico | Bin 0 -> 2550 bytes plugins/StartupSilence/res/disablettb.ico | Bin 0 -> 894 bytes plugins/StartupSilence/res/enable.ico | Bin 0 -> 2550 bytes plugins/StartupSilence/res/enablettb.ico | Bin 0 -> 894 bytes plugins/StartupSilence/res/startupsilence.ico | Bin 0 -> 894 bytes plugins/StartupSilence/res/version.rc | 44 +++ plugins/StartupSilence/src/StartupSilence.h | 67 ++++ plugins/StartupSilence/src/main.cpp | 394 +++++++++++++++++++++ plugins/StartupSilence/src/resource.h | 32 ++ plugins/StartupSilence/src/stdafx.cpp | 18 + plugins/StartupSilence/src/version.h | 56 +++ 21 files changed, 1359 insertions(+), 1 deletion(-) create mode 100644 langpacks/russian/Plugins/StartupSilence.txt create mode 100644 plugins/StartupSilence/StartupSilence_10.vcxproj create mode 100644 plugins/StartupSilence/StartupSilence_10.vcxproj.filters create mode 100644 plugins/StartupSilence/StartupSilence_11.vcxproj create mode 100644 plugins/StartupSilence/StartupSilence_11.vcxproj.filters create mode 100644 plugins/StartupSilence/doc/changelog.txt create mode 100644 plugins/StartupSilence/res/StartupSilence.rc create mode 100644 plugins/StartupSilence/res/disable.ico create mode 100644 plugins/StartupSilence/res/disablettb.ico create mode 100644 plugins/StartupSilence/res/enable.ico create mode 100644 plugins/StartupSilence/res/enablettb.ico create mode 100644 plugins/StartupSilence/res/startupsilence.ico create mode 100644 plugins/StartupSilence/res/version.rc create mode 100644 plugins/StartupSilence/src/StartupSilence.h create mode 100644 plugins/StartupSilence/src/main.cpp create mode 100644 plugins/StartupSilence/src/resource.h create mode 100644 plugins/StartupSilence/src/stdafx.cpp create mode 100644 plugins/StartupSilence/src/version.h diff --git a/bin10/mir_full.sln b/bin10/mir_full.sln index 31b299d7b5..30e401edec 100644 --- a/bin10/mir_full.sln +++ b/bin10/mir_full.sln @@ -411,6 +411,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinterSpeak", "..\plugins\W EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VKontakte", "..\protocols\VKontakte\vk_10.vcxproj", "{BF6E1942-7E42-4564-9DF5-FD0A00D71173}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartupSilence", "..\plugins\StartupSilence\StartupSilence_10.vcxproj", "{7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -1843,6 +1845,14 @@ Global {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|Win32.Build.0 = Release|Win32 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.ActiveCfg = Release|x64 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.Build.0 = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.Build.0 = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.ActiveCfg = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.Build.0 = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.ActiveCfg = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.Build.0 = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.ActiveCfg = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/bin10/mir_full_pro.sln b/bin10/mir_full_pro.sln index 7bc6875d52..60dd8415b7 100644 --- a/bin10/mir_full_pro.sln +++ b/bin10/mir_full_pro.sln @@ -447,6 +447,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinterSpeak", "..\plugins\W EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VKontakte", "..\protocols\VKontakte\vk_10.vcxproj", "{BF6E1942-7E42-4564-9DF5-FD0A00D71173}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartupSilence", "..\plugins\StartupSilence\StartupSilence_10.vcxproj", "{7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -1879,6 +1881,14 @@ Global {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|Win32.Build.0 = Release|Win32 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.ActiveCfg = Release|x64 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.Build.0 = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.Build.0 = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.ActiveCfg = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.Build.0 = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.ActiveCfg = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.Build.0 = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.ActiveCfg = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2037,6 +2047,7 @@ Global {3C83B0AB-9739-41C1-A127-ED7DB9551F76} = {99B819F8-65D9-45BC-B0C4-8C2B0F63AD46} {F462FDA1-BDCD-49B2-B996-D7DE71D07393} = {99B819F8-65D9-45BC-B0C4-8C2B0F63AD46} {A44F96D0-A850-4A67-9570-0E9298A16E40} = {99B819F8-65D9-45BC-B0C4-8C2B0F63AD46} + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3} = {99B819F8-65D9-45BC-B0C4-8C2B0F63AD46} {66503A70-B1E8-4545-B4FF-2108DFB40C72} = {74981ED5-7A15-4C46-AECF-DA229AF9CC9D} {D548A54E-310B-4A86-A545-64BDD5748745} = {74981ED5-7A15-4C46-AECF-DA229AF9CC9D} {1BD5E5B9-A750-4CF8-A370-0FBD40A92CB2} = {74981ED5-7A15-4C46-AECF-DA229AF9CC9D} diff --git a/bin11/mir_full.sln b/bin11/mir_full.sln index 5afb043936..ee42d21a5e 100644 --- a/bin11/mir_full.sln +++ b/bin11/mir_full.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop +# Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Miranda", "..\src\miranda32_11.vcxproj", "{F9916510-9055-4C9F-997A-3755DEC1511B}" ProjectSection(ProjectDependencies) = postProject {D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60} = {D9EFEA4B-B817-4DE1-BD62-68A5DB8F5F60} @@ -411,6 +411,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinterSpeak", "..\plugins\W EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VKontakte", "..\protocols\VKontakte\vk_11.vcxproj", "{BF6E1942-7E42-4564-9DF5-FD0A00D71173}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartupSilence", "..\plugins\StartupSilence\StartupSilence_11.vcxproj", "{7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -1843,6 +1845,14 @@ Global {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|Win32.Build.0 = Release|Win32 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.ActiveCfg = Release|x64 {BF6E1942-7E42-4564-9DF5-FD0A00D71173}.Release|x64.Build.0 = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|Win32.Build.0 = Debug|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.ActiveCfg = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Debug|x64.Build.0 = Debug|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.ActiveCfg = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|Win32.Build.0 = Release|Win32 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.ActiveCfg = Release|x64 + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/langpacks/russian/Plugins/StartupSilence.txt b/langpacks/russian/Plugins/StartupSilence.txt new file mode 100644 index 0000000000..625ef32111 --- /dev/null +++ b/langpacks/russian/Plugins/StartupSilence.txt @@ -0,0 +1,90 @@ +#muuid {7b856b6a-d48f-4f54-b8d6-c8d86d02ffc2} +;============================================================ +; File: StartupSilence.dll +; Plugin: Silence At Startup +; Versions: 0.1.0.0 +;============================================================ +[Silence at startup] +Тихий запуск +[Toggle Silence OFF] +Выключить тихий запуск +[Toggle Silence ON] +Включить тихий запуск +[Toggle Silence OFF TTB] +Выключен тихий запуск TTB +[Toggle Silence ON TTB] +Включен тихий запуск TTB +[Sounds and Popups are enabled] +Звуки и всплывающие окна включены +[Sounds and Popups are disabled temporary] +Звуки и всплывающие окна временно выключены +[Silent Startup mode changed to ON] +Тихий запуск включен +[Silent Startup mode changed to OFF] +Тихий запуск выключен +[Silence At Startup is ON] +Тихий запуск включен +[Silence At Startup is OFF] +Тихий запуск выключен +[Toggle Silence At Startup] +Тихий запуск Вкл/Выкл +[For use this option need TopToolBar module installed.] +Для использования этой функции необходим установленный TopToolBar модуль +[For use this option need \"YAPP\" or \"PopUp+\" module installed.] +Для использования этой функции необходим установленный \"YAPP\" или \"PopUp+\" модуль всплывающих окон. +[Silence at Startup] +Тихий запуск +[Settings for the next Computer Name:] +Настройки для компьютера: +[Enable silence at startup] +Включить тихий запуск +[for] +на +[(10-300) seconds (Default 20).] +(10-300) сукнд (По-умолчанию 20). +[Show PopUp notification] +Уведомлять во всплывающих окнах +[PopUp time (1-30) seconds (Default 5).] +Время показа (1-30) секунд (По-умолчанию 5). +[Main Menu Item (need plugin reload or miranda restart).] +Пункт в главном меню (требуется перезапуск Миранды). +[TopToolBar button (need miranda restart).] +Кнопка в TopToolBar (требуется перезапуск Миранды). +[Reset to default\r\n(for this computer)] +Сбросить настройки\r\n(для этого компьютера) +[You need configure it once for each computer, where you run your Maranda NG.] +Необходимо один раз настраивать для нового компьютера, где Вы запускаете Maranda NG. +[No Apply button needed.] +Настройки сохраняются автоматически. +[StartupSilence] +Тихий запуск +[Disabled ALL PopUps and Sounds for 10-300 sec at Miranda startup and Enabled it always for Miranda-NG (Automatically per computer settings).] +Отключает ВСЕ звуки и всплывающие окна при старте Миранды на 10-300 секунд и влючает их всегда для Miranda-NG (Автоматически запоминает настройки для каждого компьютера). + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/StartupSilence/StartupSilence_10.vcxproj b/plugins/StartupSilence/StartupSilence_10.vcxproj new file mode 100644 index 0000000000..271174d40b --- /dev/null +++ b/plugins/StartupSilence/StartupSilence_10.vcxproj @@ -0,0 +1,207 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + StartupSilence + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3} + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + true + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + true + EditAndContinue + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + Use + StartupSilence.h + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + Use + StartupSilence.h + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + OnlyExplicitInline + true + true + Full + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + Size + false + ProgramDatabase + Use + StartupSilence.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + true + true + true + false + /PDBALTPATH:%_PDB% %(AdditionalOptions) + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + OnlyExplicitInline + true + true + Full + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + Size + false + Use + StartupSilence.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin10\lib + true + true + true + false + /PDBALTPATH:%_PDB% %(AdditionalOptions) + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + Create + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/StartupSilence/StartupSilence_10.vcxproj.filters b/plugins/StartupSilence/StartupSilence_10.vcxproj.filters new file mode 100644 index 0000000000..e70ae7f2a5 --- /dev/null +++ b/plugins/StartupSilence/StartupSilence_10.vcxproj.filters @@ -0,0 +1,43 @@ + + + + + {ea5f1692-4e76-48cc-aac0-f46b04270245} + cpp + + + {d97369d8-bed4-484e-b8c6-f49bc26a0c9b} + h + + + {9de07257-97b5-4aa0-bf76-7f68c087d2db} + + + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/plugins/StartupSilence/StartupSilence_11.vcxproj b/plugins/StartupSilence/StartupSilence_11.vcxproj new file mode 100644 index 0000000000..88890bb032 --- /dev/null +++ b/plugins/StartupSilence/StartupSilence_11.vcxproj @@ -0,0 +1,209 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + StartupSilence + {7B072B7F-E2AA-4935-AAF5-5BEF99665AD3} + + + + DynamicLibrary + Unicode + true + v110_xp + + + DynamicLibrary + Unicode + true + v110_xp + + + DynamicLibrary + Unicode + v110_xp + + + DynamicLibrary + Unicode + v110_xp + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)\Plugins\ + $(SolutionDir)$(Configuration)64\Plugins\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + true + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + true + ProgramDatabase + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + Use + StartupSilence.h + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + false + + + + + MultiThreadedDebugDLL + false + Disabled + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + Use + StartupSilence.h + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + OnlyExplicitInline + true + true + Full + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + Size + false + Use + StartupSilence.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + true + true + true + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + OnlyExplicitInline + true + true + Full + Level3 + ..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + Size + false + Use + StartupSilence.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\include\msapi + + + true + Windows + $(IntDir)$(TargetName).lib + $(ProfileDir)..\..\bin11\lib + true + true + true + false + Ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + Create + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/StartupSilence/StartupSilence_11.vcxproj.filters b/plugins/StartupSilence/StartupSilence_11.vcxproj.filters new file mode 100644 index 0000000000..e70ae7f2a5 --- /dev/null +++ b/plugins/StartupSilence/StartupSilence_11.vcxproj.filters @@ -0,0 +1,43 @@ + + + + + {ea5f1692-4e76-48cc-aac0-f46b04270245} + cpp + + + {d97369d8-bed4-484e-b8c6-f49bc26a0c9b} + h + + + {9de07257-97b5-4aa0-bf76-7f68c087d2db} + + + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/plugins/StartupSilence/doc/changelog.txt b/plugins/StartupSilence/doc/changelog.txt new file mode 100644 index 0000000000..fea38c8b9f --- /dev/null +++ b/plugins/StartupSilence/doc/changelog.txt @@ -0,0 +1,2 @@ +ver. 0.1.0.0 +inicial release diff --git a/plugins/StartupSilence/res/StartupSilence.rc b/plugins/StartupSilence/res/StartupSilence.rc new file mode 100644 index 0000000000..3266c4f309 --- /dev/null +++ b/plugins/StartupSilence/res/StartupSilence.rc @@ -0,0 +1,122 @@ +// Microsoft Visual C++ generated resource script. +// +#include "..\src\resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// NEUTRAL resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_SSOPT DIALOGEX 0, 0, 312, 216 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER +EXSTYLE WS_EX_CONTROLPARENT +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + GROUPBOX "Silence at Startup",IDC_STATIC,3,0,304,211 + LTEXT "Settings for the next Computer Name:",IDC_STATIC,13,15,182,8 + EDITTEXT IDC_HST,24,27,271,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + CONTROL "Enable silence at startup",IDC_DELAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,46,259,9 + EDITTEXT IDC_SSTIME,47,59,34,14,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "spin1",IDC_SSSPIN,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,77,59,12,15 + RTEXT "for",IDC_STATIC,13,61,25,9 + LTEXT "(10-300) seconds (Default 20).",IDC_STATIC,84,61,161,9 + CONTROL "Show PopUp notification",IDC_DELAY2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,81,259,9 + EDITTEXT IDC_SSPOPUPTIME,47,95,34,14,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "spin2",IDC_SSSPIN2,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,77,95,12,15 + LTEXT "PopUp time (1-30) seconds (Default 5).",IDC_STATIC,83,97,161,9 + CONTROL "Main Menu Item (plugin reload or miranda restart required).",IDC_MENU, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,115,259,9 + CONTROL "TopToolBar button (restart miranda required).",IDC_TTB, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,134,259,9 + PUSHBUTTON "Reset to default\r\n(for this computer)",IDC_RESETDEFAULT,202,183,100,23,BS_CENTER | BS_VCENTER | BS_MULTILINE | NOT WS_TABSTOP + CTEXT "You need configure it once for each computer, where you run your Maranda NG.",IDC_STATIC,11,152,286,28 + LTEXT "No Apply button required.",IDC_STATIC,12,196,184,8 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_SSICON ICON "startupsilence.ico" +IDI_SSENABLE ICON "enable.ico" +IDI_SSDISABLE ICON "disable.ico" +IDI_SSENABLETTB ICON "enablettb.ico" +IDI_SSDISABLETTB ICON "disablettb.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_SSOPT, DIALOG + BEGIN + BOTTOMMARGIN, 211 + END +END +#endif // APSTUDIO_INVOKED + +#endif // NEUTRAL resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/plugins/StartupSilence/res/disable.ico b/plugins/StartupSilence/res/disable.ico new file mode 100644 index 0000000000..7cb0afddd9 Binary files /dev/null and b/plugins/StartupSilence/res/disable.ico differ diff --git a/plugins/StartupSilence/res/disablettb.ico b/plugins/StartupSilence/res/disablettb.ico new file mode 100644 index 0000000000..aaad5926a3 Binary files /dev/null and b/plugins/StartupSilence/res/disablettb.ico differ diff --git a/plugins/StartupSilence/res/enable.ico b/plugins/StartupSilence/res/enable.ico new file mode 100644 index 0000000000..5a2b81aeed Binary files /dev/null and b/plugins/StartupSilence/res/enable.ico differ diff --git a/plugins/StartupSilence/res/enablettb.ico b/plugins/StartupSilence/res/enablettb.ico new file mode 100644 index 0000000000..443dc07d0f Binary files /dev/null and b/plugins/StartupSilence/res/enablettb.ico differ diff --git a/plugins/StartupSilence/res/startupsilence.ico b/plugins/StartupSilence/res/startupsilence.ico new file mode 100644 index 0000000000..6683253611 Binary files /dev/null and b/plugins/StartupSilence/res/startupsilence.ico differ diff --git a/plugins/StartupSilence/res/version.rc b/plugins/StartupSilence/res/version.rc new file mode 100644 index 0000000000..2ba5a1d38f --- /dev/null +++ b/plugins/StartupSilence/res/version.rc @@ -0,0 +1,44 @@ +#ifdef APSTUDIO_INVOKED +#error this file is not editable by Microsoft Visual C++ +#endif //APSTUDIO_INVOKED + +#include "..\src\version.h" +#include "winres.h" + +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#endif //_WIN32 + +VS_VERSION_INFO VERSIONINFO + FILEVERSION __FILEVERSION_STRING + PRODUCTVERSION __FILEVERSION_STRING + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +//#else +// FILEFLAGS 0x0L +#endif + + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" // LOCALE_NEUTRAL<<16 + 1200 (ANSI - Unicode) + BEGIN + VALUE "Author", __AUTHOR + VALUE "FileDescription", __DESC + VALUE "InternalName", __PLUGIN_NAME + VALUE "LegalCopyright", __COPYRIGHT + VALUE "OriginalFilename", __FILENAME + VALUE "FileVersion", __VERSION_STRING + VALUE "ProductName", "Miranda NG" + VALUE "ProductVersion", __PROD_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", /*LOCALE_NEUTRAL from WinNT.h */ 0x0, 1200 + END +END diff --git a/plugins/StartupSilence/src/StartupSilence.h b/plugins/StartupSilence/src/StartupSilence.h new file mode 100644 index 0000000000..055ffa0448 --- /dev/null +++ b/plugins/StartupSilence/src/StartupSilence.h @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "version.h" +#include "resource.h" +#include "win2k.h" +#include "CommCtrl.h" +#include "WinSock.h" + +#if MIRANDA_VER >= 0x0A00 +static INT_PTR AdvSt(); +static INT_PTR initttb(); +static INT_PTR InitMenu(); +void InitSettings(); +void LoadSettings(); +void DefSettings(); +void IsMenu(); +void UpdateMenu(); +void UpdateTTB(); + +INT_PTR SturtupSilenceEnabled(WPARAM wParam, LPARAM lParam); + +#define MODULE_NAME "StartupSilence" + +#define SS_SERVICE_NAME "StartupSilence/ToggleEnabled" + +#define POPUPONOFF "Popup/ToggleEnabled" +#define POPUPONOFFPP "Popup/EnableDisableMenuCommand" + +#define MENU_NAME LPGEN("Silence at startup") +#define DISABLE_SILENCE LPGEN("Toggle Silence OFF") +#define ENABLE_SILENCE LPGEN("Toggle Silence ON") +#define DISABLE_SILENCETTB LPGEN("Toggle Silence OFF TTB") +#define ENABLE_SILENCETTB LPGEN("Toggle Silence ON TTB") +#define ALL_ENABLED TranslateT("Sounds and Popups are enabled") +#define ALL_DISABLED TranslateT("Sounds and Popups are disabled temporary") +#define S_MODE_CHANGEDON TranslateT("Silent Startup mode changed to ON") +#define S_MODE_CHANGEDOFF TranslateT("Silent Startup mode changed to OFF") +#define SS_IS_ON Translate("Silence At Startup is ON") +#define SS_IS_OFF Translate("Silence At Startup is OFF") +#define TTBNAME Translate("Toggle Silence At Startup") +#define NOTICE TranslateT(MENU_NAME) +#define NEEDTTBMOD TranslateT("For use this option need TopToolBar module installed.") +#define NEEDPOPUP TranslateT("For use this option need \"YAPP\" or \"PopUp+\" module installed.") + +static IconItem iconList[] = { + {MENU_NAME, MENU_NAME, IDI_SSICON}, + {DISABLE_SILENCE, DISABLE_SILENCE, IDI_SSDISABLE}, + {ENABLE_SILENCE, ENABLE_SILENCE, IDI_SSENABLE} +}; + +static IconItem iconttbList[] = { + {DISABLE_SILENCETTB, DISABLE_SILENCETTB, IDI_SSDISABLETTB}, + {ENABLE_SILENCETTB, ENABLE_SILENCETTB, IDI_SSENABLETTB} +}; +#endif + diff --git a/plugins/StartupSilence/src/main.cpp b/plugins/StartupSilence/src/main.cpp new file mode 100644 index 0000000000..176fa9a1bf --- /dev/null +++ b/plugins/StartupSilence/src/main.cpp @@ -0,0 +1,394 @@ +/* +Copyright 2012-2013 Vladimir Lyubimov +Copyright 2012-2013 Miranda-NG team, + +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +//HELPME: need new icons for TTB bottons + +#include "StartupSilence.h" + +HINSTANCE hInst; +int hLangpack; +HANDLE hSSMenuToggleOnOff; +HANDLE GetIconHandle(char *szIcon); +HANDLE hOptionsInitialize; +HANDLE hTTBarloaded = NULL; +HANDLE Buttons = NULL; +static HANDLE hSturtupSilenceEnabled; + +INT_PTR CALLBACK DlgProcOptions(HWND, UINT, WPARAM, LPARAM); +int InitializeOptions(WPARAM wParam,LPARAM lParam); +static int CreateTTButtons(WPARAM wParam, LPARAM lParam); +void RemoveTTButtons(); +BYTE Enabled; +DWORD delay; +BYTE PopUp; +DWORD PopUpTime; +BYTE MenuItem; +BYTE TTBButtons; +char hostname[MAX_PATH] = ""; +char EnabledComp[MAX_PATH] = ""; +char DelayComp[MAX_PATH] = ""; +char PopUpComp[MAX_PATH] = ""; +char PopUpTimeComp[MAX_PATH] = ""; +char MenuitemComp[MAX_PATH] = ""; +char TTBButtonsComp[MAX_PATH] = ""; + +static LIST ttbButtons(1); + +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESC, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + 0x7b856b6a, 0xd48f, 0x4f54, { 0xb8, 0xd6, 0xc8, 0xd8, 0x6d, 0x2, 0xff, 0xc2 } // {7B856B6A-D48F-4f54-B8D6-C8D86D02FFC2} +}; + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +INT_PTR StartupSilence() +{ + InitSettings(); + mir_forkthread((pThreadFunc)AdvSt, NULL); + hSturtupSilenceEnabled = CreateServiceFunction(SS_SERVICE_NAME, SturtupSilenceEnabled); + IsMenu(); + mir_forkthread((pThreadFunc)initttb, NULL); + HookEvent(ME_OPT_INITIALISE, InitializeOptions); + return 0; +} + +extern "C" __declspec(dllexport) int Load(void) +{ + mir_getLP(&pluginInfo); + StartupSilence(); + return 0; +} + +extern "C" __declspec(dllexport) int Unload(void) +{ + UnhookEvent(ME_OPT_INITIALISE); + if (hTTBarloaded != NULL){ + UnhookEvent(ME_TTB_MODULELOADED); + } + DestroyServiceFunction(hSturtupSilenceEnabled); + return 0; +} + +void InitSettings() +{ + if(gethostname(hostname, SIZEOF(hostname)) == 0){ + mir_snprintf(EnabledComp, SIZEOF(EnabledComp), "%s_Enabled", hostname); + mir_snprintf(DelayComp, SIZEOF(DelayComp), "%s_Delay", hostname); + mir_snprintf(PopUpComp, SIZEOF(PopUpComp), "%s_PopUp", hostname); + mir_snprintf(PopUpTimeComp, SIZEOF(PopUpTimeComp), "%s_PopUpTime", hostname); + mir_snprintf(MenuitemComp, SIZEOF(MenuitemComp), "%s_MenuItem", hostname); + mir_snprintf(TTBButtonsComp, SIZEOF(TTBButtonsComp), "%s_TTBButtons", hostname); + } + //first run on the host, initial setting + if (!(delay = db_get_dw(NULL, MODULE_NAME, DelayComp, 0))) + DefSettings(); + //or load host settings + else LoadSettings(); +} +void DefSettings() +{ + db_set_dw(NULL, MODULE_NAME, DelayComp, 20); + db_set_b(NULL, MODULE_NAME, EnabledComp, 1); + db_set_b(NULL, MODULE_NAME, PopUpComp, 1); + db_set_dw(NULL, MODULE_NAME, PopUpTimeComp, 5); + db_set_b(NULL, MODULE_NAME, MenuitemComp, 1); + db_set_b(NULL, MODULE_NAME, TTBButtonsComp, 0); + LoadSettings(); +} +void LoadSettings() +{ + Enabled = db_get_b(NULL, MODULE_NAME, EnabledComp, 0); + delay = db_get_dw(NULL, MODULE_NAME, DelayComp, 0); + PopUp = db_get_b(NULL, MODULE_NAME, PopUpComp, 0); + PopUpTime = db_get_dw(NULL, MODULE_NAME, PopUpTimeComp, 0); + MenuItem = db_get_b(NULL, MODULE_NAME, MenuitemComp, 0); + TTBButtons = db_get_b(NULL, MODULE_NAME, TTBButtonsComp, 0); + if (PopUpTime < 1) + PopUpTime = (DWORD)1; + if (PopUpTime > 30) + PopUpTime = (DWORD)30; + if (delay < 10) + delay = (DWORD)10; + if (delay > 300) + delay = (DWORD)300; + db_set_dw(NULL, MODULE_NAME, DelayComp, delay); + db_set_dw(NULL, MODULE_NAME, PopUpTimeComp, PopUpTime); +} + +void IsMenu() +{ + if (MenuItem == 1) { + Icon_Register(hInst, MENU_NAME, iconList, SIZEOF(iconList), MENU_NAME); + InitMenu(); + } +} + +static INT_PTR initttb() +{ + Sleep(7000); + hTTBarloaded = HookEvent(ME_TTB_MODULELOADED, CreateTTButtons); + if (TTBButtons == 1 && hTTBarloaded != NULL){ + Icon_Register(hInst, "Toolbar/"MENU_NAME, iconttbList, SIZEOF(iconttbList), MENU_NAME); + RemoveTTButtons(); + CreateTTButtons(0,0); + } + return 0; +} + +static INT_PTR AdvSt() +{ + if ((Enabled == 1)){ + POPUPDATAT ppd = {0}; + TCHAR * lptzText =L""; + db_set_b(NULL, "Skin", "UseSound", 0); + + if (PopUp == 1) { + lptzText = ALL_DISABLED; + ppd.lchIcon = (HICON)CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)GetIconHandle(MENU_NAME)); + ppd.lchContact = NULL; + ppd.iSeconds = PopUpTime; + wcsncpy_s(ppd.lptzText, lptzText, size_t(lptzText)); + lptzText = TranslateT(MENU_NAME); + wcsncpy_s(ppd.lptzContactName, lptzText, size_t(lptzText)); + PUAddPopupT(&ppd); + } + if (ServiceExists(POPUPONOFF)) + db_set_b(NULL, "YAPP", "Enabled", 0); + if (ServiceExists(POPUPONOFFPP)) + db_set_b(NULL, "PopUp", "ModuleIsEnabled", 0); + + Sleep(delay * 1000); + + if (ServiceExists(POPUPONOFF)) + db_set_b(NULL, "YAPP", "Enabled", 1); + if (ServiceExists(POPUPONOFFPP)) + db_set_b(NULL, "PopUp", "ModuleIsEnabled", 1); + + db_set_b(NULL, "Skin", "UseSound", 1); + if (PopUp == 1) { + lptzText = ALL_ENABLED; + wcsncpy_s(ppd.lptzText, lptzText, size_t(lptzText)); + PUAddPopupT(&ppd); + } + } + return 0; +} + +static INT_PTR SturtupSilenceEnabled(WPARAM wParam, LPARAM lParam) +{ + db_set_b(NULL, MODULE_NAME, EnabledComp, !Enabled); + LoadSettings(); + if (MenuItem == 1) + UpdateMenu(); + if (PopUp == 1) { + TCHAR * lptzText = Enabled == 1 ? S_MODE_CHANGEDON : S_MODE_CHANGEDOFF; + POPUPDATAT ppd = {0}; + ppd.lchIcon = (HICON)CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)(Enabled == 1 ? GetIconHandle(ENABLE_SILENCE) : GetIconHandle(DISABLE_SILENCE))); + ppd.lchContact = NULL; + ppd.iSeconds = PopUpTime; + wcsncpy_s(ppd.lptzText, lptzText, size_t(lptzText)); + lptzText = TranslateT(MENU_NAME); + wcsncpy_s(ppd.lptzContactName, lptzText, size_t(lptzText)); + PUAddPopupT(&ppd); + } + return 0; +} + +static INT_PTR InitMenu() +{ + CLISTMENUITEM mi = {sizeof(mi)}; + mi.flags = CMIM_ALL; + mi.position = 100000000; + mi.icolibItem = GetIconHandle(MENU_NAME); + mi.pszPopupName = MENU_NAME; + mi.pszService = SS_SERVICE_NAME; + hSSMenuToggleOnOff = Menu_AddMainMenuItem(&mi); + UpdateMenu(); + return 0; +} + +void UpdateMenu() +{ + CLISTMENUITEM mi = {sizeof(mi)}; + mi.pszName = (Enabled == 1 ? DISABLE_SILENCE : ENABLE_SILENCE); + mi.flags = CMIM_NAME | CMIM_ALL; + mi.icolibItem = (Enabled == 1 ? GetIconHandle(DISABLE_SILENCE) : GetIconHandle(ENABLE_SILENCE)); + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hSSMenuToggleOnOff, (LPARAM)&mi); + UpdateTTB(); +} + +void UpdateTTB() +{ + if (hTTBarloaded != NULL && TTBButtons == 1) + CallService(MS_TTB_SETBUTTONSTATE, (WPARAM)Buttons, (Enabled == 1 ? TTBST_RELEASED : TTBST_PUSHED)); + +} + +static int CreateTTButtons(WPARAM wParam, LPARAM lParam) +{ + TTBButton ttb = {sizeof(ttb)}; + ttb.dwFlags = (Enabled == 1 ? 0 : TTBBF_PUSHED) | TTBBF_VISIBLE | TTBBF_ASPUSHBUTTON; + ttb.pszService = SS_SERVICE_NAME; + ttb.hIconHandleDn = GetIconHandle(DISABLE_SILENCETTB); + ttb.hIconHandleUp = GetIconHandle(ENABLE_SILENCETTB); + ttb.name = TTBNAME; + ttb.pszTooltipUp = SS_IS_ON; + ttb.pszTooltipDn = SS_IS_OFF; + Buttons = TopToolbar_AddButton(&ttb); + if (Buttons) + ttbButtons.insert(Buttons); + return 0; +} + +void RemoveTTButtons() +{ + for (int i=ttbButtons.getCount()-1; i >= 0; i--) + CallService(MS_TTB_REMOVEBUTTON, (WPARAM)ttbButtons[i], 0); + ttbButtons.destroy(); +} + +HANDLE GetIconHandle(char *szIcon) +{ + char szSettingName[64]; + mir_snprintf(szSettingName, sizeof(szSettingName), "%s_%s", MENU_NAME, szIcon); + return Skin_GetIconHandle(szSettingName); +} + +int InitializeOptions(WPARAM wParam,LPARAM lParam) +{ + OPTIONSDIALOGPAGE odp = {sizeof(odp)}; + odp.position = 0; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_SSOPT); + odp.pszGroup = LPGEN("Events");//FIXME: move to...Group? + odp.pszTitle = MENU_NAME; + odp.groupPosition = 910000000; + odp.flags = ODPF_BOLDGROUPS; + odp.pfnDlgProc = DlgProcOptions; + Options_AddPage(wParam, &odp); + return 0; +} + +static INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) { + case WM_INITDIALOG: { + TranslateDialogDefault(hwndDlg); + static BOOL initDlg=FALSE; + LoadSettings(); + SetDlgItemText(hwndDlg, IDC_HST, mir_a2t(hostname)); + CheckDlgButton(hwndDlg, IDC_DELAY, (Enabled == 1) ? BST_CHECKED:BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_SSTIME), 0); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_SETRANGE32, 10, 300); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_SETPOS, 0, MAKELONG((delay), 0)); + SendDlgItemMessage(hwndDlg, IDC_SSTIME, EM_LIMITTEXT, (WPARAM)3, 0); + + CheckDlgButton(hwndDlg, IDC_DELAY2, (PopUp == 1) ? BST_CHECKED:BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_SETBUDDY, (WPARAM)GetDlgItem(hwndDlg, IDC_SSPOPUPTIME), 0); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_SETRANGE32, 1, 30); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_SETPOS, 0, MAKELONG((PopUpTime), 0)); + SendDlgItemMessage(hwndDlg, IDC_SSPOPUPTIME, EM_LIMITTEXT, (WPARAM)3, 0); + + CheckDlgButton(hwndDlg, IDC_MENU, (MenuItem == 1) ? BST_CHECKED:BST_UNCHECKED); + + CheckDlgButton(hwndDlg, IDC_TTB, (TTBButtons == 1) ? BST_CHECKED:BST_UNCHECKED); + } + break; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_SSTIME: + DWORD min; + if ((HWND)lParam != GetFocus() || HIWORD(wParam) != EN_CHANGE) return FALSE; + min = GetDlgItemInt(hwndDlg, IDC_SSTIME, NULL, FALSE); + if (min == 0 && GetWindowTextLength(GetDlgItem(hwndDlg, IDC_SSTIME))) + SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_SETPOS, 0, MAKELONG((short) 1, 0)); + delay = (DWORD)db_set_dw(NULL, MODULE_NAME, DelayComp, (DWORD)(SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_GETPOS, 0, 0))); + break; + + case IDC_SSPOPUPTIME: + if ((HWND)lParam != GetFocus() || HIWORD(wParam) != EN_CHANGE) return FALSE; + min = GetDlgItemInt(hwndDlg, IDC_SSPOPUPTIME, NULL, FALSE); + if (min == 0 && GetWindowTextLength(GetDlgItem(hwndDlg, IDC_SSPOPUPTIME))) + SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_SETPOS, 0, MAKELONG((short) 1, 0)); + PopUpTime = (DWORD)db_set_dw(NULL, MODULE_NAME, PopUpTimeComp, (DWORD)(SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_GETPOS, 0, 0))); + break; + + case IDC_DELAY: + CallService(SS_SERVICE_NAME, 0, 0); + break; + + case IDC_DELAY2: + if (!(ServiceExists(POPUPONOFF) || ServiceExists(POPUPONOFFPP))) { + MessageBox(0, NEEDPOPUP, NOTICE, MB_OK); + CheckDlgButton(hwndDlg, IDC_DELAY2, BST_UNCHECKED); + PopUp = (BYTE)db_set_b(NULL, MODULE_NAME, PopUpComp, 0); + } + else PopUp = (BYTE)db_set_b(NULL, MODULE_NAME, PopUpComp, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_DELAY2) == BST_CHECKED ? 1 : 0)); + break; + + case IDC_MENU: + MenuItem = (BYTE)db_set_b(NULL, MODULE_NAME, MenuitemComp, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_MENU) == BST_CHECKED ? 1 : 0)); + break; + + case IDC_TTB: + if (!hTTBarloaded) { + MessageBox(0, NEEDTTBMOD, NOTICE, MB_OK); + CheckDlgButton(hwndDlg, IDC_TTB, BST_UNCHECKED); + TTBButtons = (BYTE)db_set_b(NULL, MODULE_NAME, TTBButtonsComp, 0); + } + else TTBButtons = (BYTE)db_set_b(NULL, MODULE_NAME, TTBButtonsComp, (BYTE)(IsDlgButtonChecked(hwndDlg, IDC_TTB) == BST_CHECKED ? 1 : 0)); + break; + case IDC_RESETDEFAULT: + DefSettings(); + CheckDlgButton(hwndDlg, IDC_DELAY, (Enabled == 1) ? BST_CHECKED:BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN, UDM_SETPOS, 0, MAKELONG((delay), 0)); + CheckDlgButton(hwndDlg, IDC_DELAY2, (PopUp == 1) ? BST_CHECKED:BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_SSSPIN2, UDM_SETPOS, 0, MAKELONG((PopUpTime), 0)); + CheckDlgButton(hwndDlg, IDC_MENU, (MenuItem == 1) ? BST_CHECKED:BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TTB, (TTBButtons == 1) ? BST_CHECKED:BST_UNCHECKED); + break; + } + break; + case WM_NOTIFY: + case WM_DESTROY: + break; + } + return FALSE; +} diff --git a/plugins/StartupSilence/src/resource.h b/plugins/StartupSilence/src/resource.h new file mode 100644 index 0000000000..1abbf2e44b --- /dev/null +++ b/plugins/StartupSilence/src/resource.h @@ -0,0 +1,32 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by StartupSilence.rc +// +#define IDI_SSICON 101 +#define IDI_SSENABLE 102 +#define IDI_SSDISABLE 103 +#define IDD_SSOPT 104 +#define IDI_SSENABLETTB 105 +#define IDI_SSDISABLETTB 106 +#define IDC_SSTIME 40001 +#define IDC_DELAY 40002 +#define IDC_SSSPIN 40003 +#define IDC_DELAY2 40004 +#define IDC_SSPOPUPTIME 40005 +#define IDC_SSSPIN2 40006 +#define IDC_MENU 40007 +#define IDC_TTB 40008 +#define IDC_RESETDEFAULT 40009 +#define IDC_HST 40010 +#define IDC_HOSTNAME 40011 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 107 +#define _APS_NEXT_COMMAND_VALUE 40012 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/plugins/StartupSilence/src/stdafx.cpp b/plugins/StartupSilence/src/stdafx.cpp new file mode 100644 index 0000000000..4c76456ae4 --- /dev/null +++ b/plugins/StartupSilence/src/stdafx.cpp @@ -0,0 +1,18 @@ +/* +Copyright (C) 2012-13 Miranda NG Project (http://miranda-ng.org) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation version 2 +of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "StartupSilence.h" \ No newline at end of file diff --git a/plugins/StartupSilence/src/version.h b/plugins/StartupSilence/src/version.h new file mode 100644 index 0000000000..0d56110e4f --- /dev/null +++ b/plugins/StartupSilence/src/version.h @@ -0,0 +1,56 @@ +// Set the version number here - it will affect the version resource and the version field of the pluginInfo structure +// (Be careful that you don't have the resource file open when you change this and rebuild, otherwise the changes may not +// take effect within the version resource) +// Do not forget to define symbol "_DEBUG" for resource compiler if you use debug configuration (in VisualStudio you can +// find it under Project properties - Configuration properties - Resource - General - Preprocessor definitions) + +// plugin version part +#define __MAJOR_VERSION 0 +#define __MINOR_VERSION 1 +#define __RELEASE_NUM 0 +#define __BUILD_NUM 0 + +// minimal MirandaIM version number, with which this plugin supposed to work +#define __PROD_MAJOR_VERSION 0 +#define __PROD_MINOR_VERSION 93 +#define __PROD_RELEASE_NUM 5 +#define __PROD_BUILD_NUM 0 +// if your plugin works only with Miranda core beginning from specific revision, you can include this information in Product Version resource +//#define __PROD_REV_NUM 1234 + +// stuff that will be used in PluginInfo section and in Version resource +#define __PLUGIN_NAME "StartupSilence" +#define __FILENAME "StartupSilence.dll" +#define __DESC "Disabled ALL PopUps and Sounds for 10-300 sec at Miranda startup and Enabled it always for Miranda-NG (Automatically per computer settings)." +#define __AUTHOR "Vladimir Lyubimov" +#define __AUTHOREMAIL "" +#define __AUTHORWEB "http://miranda-ng.org/" +#define __COPYRIGHT " 2012-2013 Vladimir Lyubimov" + +// other stuff for Version resource +#define __STRINGIFY_IMPL(x) #x +#define __STRINGIFY(x) __STRINGIFY_IMPL(x) + +#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM +#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM +#ifdef _UNICODE +#ifdef __REV_NUM +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS rev. __REV_NUM Unicode) +#else +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS Unicode) +#endif +#else +#ifdef __REV_NUM +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS rev. __REV_NUM) +#else +#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS) +#endif +#endif + +#define __PRODVERSION_STRING __PROD_MAJOR_VERSION,__PROD_MINOR_VERSION,__PROD_RELEASE_NUM,__PROD_BUILD_NUM +#define __PRODVERSION_STRING_DOTS __PROD_MAJOR_VERSION.__PROD_MINOR_VERSION.__PROD_RELEASE_NUM.__PROD_BUILD_NUM +#ifdef __PROD_REV_NUM +#define __PROD_VERSION_STRING __STRINGIFY(__PRODVERSION_STRING_DOTS rev. __PROD_REV_NUM) +#else +#define __PROD_VERSION_STRING __STRINGIFY(__PRODVERSION_STRING_DOTS+) +#endif -- cgit v1.2.3