summaryrefslogtreecommitdiff
path: root/plugins/Clist_mw
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2014-07-21 21:12:43 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2014-07-21 21:12:43 +0000
commit2e784e23903934a362dc52e3cd2c8ed742a64557 (patch)
treeb49ab948f101ec780309bc177fc860331a97cd03 /plugins/Clist_mw
parent37ed485afc5f1733c1fafb2180886d54b7fd7f3d (diff)
Clist_mw moved to deprecated
git-svn-id: http://svn.miranda-ng.org/main/trunk@9914 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Clist_mw')
-rw-r--r--plugins/Clist_mw/clist_mw_10.vcxproj249
-rw-r--r--plugins/Clist_mw/clist_mw_10.vcxproj.filters122
-rw-r--r--plugins/Clist_mw/clist_mw_12.vcxproj252
-rw-r--r--plugins/Clist_mw/clist_mw_12.vcxproj.filters122
-rw-r--r--plugins/Clist_mw/res/1.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/2.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/3.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/4.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/5.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/6.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/7.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/8.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/Miranda.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/Version.rc38
-rw-r--r--plugins/Clist_mw/res/addgoupp.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/delete.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/globus.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/icon1.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/icon2.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/mirandaclassic.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/notick.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/notick1.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/rename.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/resource.rc530
-rw-r--r--plugins/Clist_mw/res/sendmail.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/res/sms.icobin1150 -> 0 bytes
-rw-r--r--plugins/Clist_mw/src/BkgrCfg.cpp310
-rw-r--r--plugins/Clist_mw/src/BkgrCfg.h18
-rw-r--r--plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp2860
-rw-r--r--plugins/Clist_mw/src/CLUIFrames/cluiframes.h120
-rw-r--r--plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp122
-rw-r--r--plugins/Clist_mw/src/CLUIFrames/statusbar.cpp497
-rw-r--r--plugins/Clist_mw/src/Version.h14
-rw-r--r--plugins/Clist_mw/src/clc.cpp319
-rw-r--r--plugins/Clist_mw/src/clc.h148
-rw-r--r--plugins/Clist_mw/src/clcfonts.cpp117
-rw-r--r--plugins/Clist_mw/src/clcidents.cpp307
-rw-r--r--plugins/Clist_mw/src/clcitems.cpp685
-rw-r--r--plugins/Clist_mw/src/clcopts.cpp548
-rw-r--r--plugins/Clist_mw/src/clcpaint.cpp662
-rw-r--r--plugins/Clist_mw/src/clcutils.cpp289
-rw-r--r--plugins/Clist_mw/src/clist.h55
-rw-r--r--plugins/Clist_mw/src/clistmenus.cpp62
-rw-r--r--plugins/Clist_mw/src/clistmod.cpp133
-rw-r--r--plugins/Clist_mw/src/clistopts.cpp237
-rw-r--r--plugins/Clist_mw/src/clistsettings.cpp340
-rw-r--r--plugins/Clist_mw/src/clisttray.cpp263
-rw-r--r--plugins/Clist_mw/src/clui.cpp765
-rw-r--r--plugins/Clist_mw/src/cluiopts.cpp373
-rw-r--r--plugins/Clist_mw/src/cluiservices.cpp176
-rw-r--r--plugins/Clist_mw/src/commonheaders.cpp29
-rw-r--r--plugins/Clist_mw/src/commonheaders.h116
-rw-r--r--plugins/Clist_mw/src/contact.cpp178
-rw-r--r--plugins/Clist_mw/src/groupmenu.cpp566
-rw-r--r--plugins/Clist_mw/src/init.cpp225
-rw-r--r--plugins/Clist_mw/src/keyboard.cpp67
-rw-r--r--plugins/Clist_mw/src/resource.h642
-rw-r--r--plugins/Clist_mw/src/stdafx.cpp18
58 files changed, 0 insertions, 12574 deletions
diff --git a/plugins/Clist_mw/clist_mw_10.vcxproj b/plugins/Clist_mw/clist_mw_10.vcxproj
deleted file mode 100644
index a5df001f7f..0000000000
--- a/plugins/Clist_mw/clist_mw_10.vcxproj
+++ /dev/null
@@ -1,249 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectName>Clist_mw</ProjectName>
- <ProjectGuid>{56997126-0098-407A-94E1-7C5748C1C9EF}</ProjectGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>false</StringPooling>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27X86%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>false</StringPooling>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27*%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>Full</Optimization>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <FloatingPointModel>Fast</FloatingPointModel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27X86%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
- <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>Full</Optimization>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <FloatingPointModel>Fast</FloatingPointModel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27*%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
- <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="src\BkgrCfg.cpp" />
- <ClCompile Include="src\clc.cpp" />
- <ClCompile Include="src\clcfonts.cpp" />
- <ClCompile Include="src\clcidents.cpp" />
- <ClCompile Include="src\clcitems.cpp" />
- <ClCompile Include="src\clcopts.cpp" />
- <ClCompile Include="src\clcpaint.cpp" />
- <ClCompile Include="src\clcutils.cpp" />
- <ClCompile Include="src\clistmenus.cpp" />
- <ClCompile Include="src\clistmod.cpp" />
- <ClCompile Include="src\clistopts.cpp" />
- <ClCompile Include="src\clistsettings.cpp" />
- <ClCompile Include="src\clisttray.cpp" />
- <ClCompile Include="src\clui.cpp" />
- <ClCompile Include="src\cluiopts.cpp" />
- <ClCompile Include="src\cluiservices.cpp" />
- <ClCompile Include="src\stdafx.cpp">
- <PrecompiledHeader>Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="src\contact.cpp" />
- <ClCompile Include="src\groupmenu.cpp" />
- <ClCompile Include="src\init.cpp" />
- <ClCompile Include="src\keyboard.cpp" />
- <ClCompile Include="src\CLUIFrames\cluiframes.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\framesmenu.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\statusbar.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\commonheaders.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="src\CLUIFrames\cluiframes.h" />
- <ClInclude Include="src\clc.h" />
- <ClInclude Include="src\clist.h" />
- <ClInclude Include="src\commonheaders.h" />
- <ClInclude Include="src\resource.h" />
- <ClInclude Include="src\Version.h" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="res\resource.rc" />
- <ResourceCompile Include="res\Version.rc" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/plugins/Clist_mw/clist_mw_10.vcxproj.filters b/plugins/Clist_mw/clist_mw_10.vcxproj.filters
deleted file mode 100644
index c117a63633..0000000000
--- a/plugins/Clist_mw/clist_mw_10.vcxproj.filters
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{6c881602-dfa1-45ce-8613-13d8c6bd3ad5}</UniqueIdentifier>
- <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{56b79972-29f3-40b1-bf23-ccffb8791acd}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{a32ba414-7a6a-4ff3-9127-2fba358accda}</UniqueIdentifier>
- <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\BkgrCfg.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clc.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcfonts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcidents.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcitems.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcpaint.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcutils.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistmenus.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistmod.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistsettings.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clisttray.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clui.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\cluiopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\cluiservices.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\commonheaders.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\contact.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\groupmenu.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\init.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\keyboard.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\cluiframes.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\framesmenu.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\statusbar.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="src\clc.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\clist.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\commonheaders.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\resource.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\CLUIFrames\cluiframes.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\Version.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="res\resource.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- <ResourceCompile Include="res\Version.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/plugins/Clist_mw/clist_mw_12.vcxproj b/plugins/Clist_mw/clist_mw_12.vcxproj
deleted file mode 100644
index 45ddd741c8..0000000000
--- a/plugins/Clist_mw/clist_mw_12.vcxproj
+++ /dev/null
@@ -1,252 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectName>Clist_mw</ProjectName>
- <ProjectGuid>{56997126-0098-407A-94E1-7C5748C1C9EF}</ProjectGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v120_xp</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v120_xp</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v120_xp</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v120_xp</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
- <IgnoreImportLibrary>true</IgnoreImportLibrary>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>false</StringPooling>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27X86%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>false</StringPooling>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27*%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>Full</Optimization>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <FloatingPointModel>Fast</FloatingPointModel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27X86%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>Full</Optimization>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
- <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <FloatingPointModel>Fast</FloatingPointModel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
- <WarningLevel>Level3</WarningLevel>
- <ExceptionHandling>false</ExceptionHandling>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>comctl32.lib;UxTheme.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalManifestDependencies>type=%27Win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 processorArchitecture=%27*%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27;%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <BaseAddress>0x6590000</BaseAddress>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
- <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
- <SubSystem>Windows</SubSystem>
- <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="src\BkgrCfg.cpp" />
- <ClCompile Include="src\clc.cpp" />
- <ClCompile Include="src\clcfonts.cpp" />
- <ClCompile Include="src\clcidents.cpp" />
- <ClCompile Include="src\clcitems.cpp" />
- <ClCompile Include="src\clcopts.cpp" />
- <ClCompile Include="src\clcpaint.cpp" />
- <ClCompile Include="src\clcutils.cpp" />
- <ClCompile Include="src\clistmenus.cpp" />
- <ClCompile Include="src\clistmod.cpp" />
- <ClCompile Include="src\clistopts.cpp" />
- <ClCompile Include="src\clistsettings.cpp" />
- <ClCompile Include="src\clisttray.cpp" />
- <ClCompile Include="src\clui.cpp" />
- <ClCompile Include="src\cluiopts.cpp" />
- <ClCompile Include="src\cluiservices.cpp" />
- <ClCompile Include="src\stdafx.cpp">
- <PrecompiledHeader>Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="src\contact.cpp" />
- <ClCompile Include="src\groupmenu.cpp" />
- <ClCompile Include="src\init.cpp" />
- <ClCompile Include="src\keyboard.cpp" />
- <ClCompile Include="src\CLUIFrames\cluiframes.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\framesmenu.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\statusbar.cpp">
- <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
- </ClCompile>
- <ClCompile Include="src\commonheaders.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="src\CLUIFrames\cluiframes.h" />
- <ClInclude Include="src\clc.h" />
- <ClInclude Include="src\clist.h" />
- <ClInclude Include="src\commonheaders.h" />
- <ClInclude Include="src\resource.h" />
- <ClInclude Include="src\Version.h" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="res\resource.rc" />
- <ResourceCompile Include="res\Version.rc" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/plugins/Clist_mw/clist_mw_12.vcxproj.filters b/plugins/Clist_mw/clist_mw_12.vcxproj.filters
deleted file mode 100644
index c117a63633..0000000000
--- a/plugins/Clist_mw/clist_mw_12.vcxproj.filters
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{6c881602-dfa1-45ce-8613-13d8c6bd3ad5}</UniqueIdentifier>
- <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{56b79972-29f3-40b1-bf23-ccffb8791acd}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{a32ba414-7a6a-4ff3-9127-2fba358accda}</UniqueIdentifier>
- <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="src\BkgrCfg.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clc.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcfonts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcidents.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcitems.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcpaint.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clcutils.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistmenus.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistmod.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clistsettings.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clisttray.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\clui.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\cluiopts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\cluiservices.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\commonheaders.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\contact.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\groupmenu.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\init.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\keyboard.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\cluiframes.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\framesmenu.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\CLUIFrames\statusbar.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="src\stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="src\clc.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\clist.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\commonheaders.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\resource.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\CLUIFrames\cluiframes.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="src\Version.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="res\resource.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- <ResourceCompile Include="res\Version.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/plugins/Clist_mw/res/1.ico b/plugins/Clist_mw/res/1.ico
deleted file mode 100644
index df6c8fc04e..0000000000
--- a/plugins/Clist_mw/res/1.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/2.ico b/plugins/Clist_mw/res/2.ico
deleted file mode 100644
index ce05d2b327..0000000000
--- a/plugins/Clist_mw/res/2.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/3.ico b/plugins/Clist_mw/res/3.ico
deleted file mode 100644
index 4bdb2b9e8a..0000000000
--- a/plugins/Clist_mw/res/3.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/4.ico b/plugins/Clist_mw/res/4.ico
deleted file mode 100644
index 712f0b3905..0000000000
--- a/plugins/Clist_mw/res/4.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/5.ico b/plugins/Clist_mw/res/5.ico
deleted file mode 100644
index 4ab50eafd3..0000000000
--- a/plugins/Clist_mw/res/5.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/6.ico b/plugins/Clist_mw/res/6.ico
deleted file mode 100644
index 35629e8cd2..0000000000
--- a/plugins/Clist_mw/res/6.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/7.ico b/plugins/Clist_mw/res/7.ico
deleted file mode 100644
index cdb11c58bd..0000000000
--- a/plugins/Clist_mw/res/7.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/8.ico b/plugins/Clist_mw/res/8.ico
deleted file mode 100644
index 4489d84723..0000000000
--- a/plugins/Clist_mw/res/8.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/Miranda.ico b/plugins/Clist_mw/res/Miranda.ico
deleted file mode 100644
index db8dc77c09..0000000000
--- a/plugins/Clist_mw/res/Miranda.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/Version.rc b/plugins/Clist_mw/res/Version.rc
deleted file mode 100644
index 5bfbab4754..0000000000
--- a/plugins/Clist_mw/res/Version.rc
+++ /dev/null
@@ -1,38 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#ifdef APSTUDIO_INVOKED
-#error this file is not editable by Microsoft Visual C++
-#endif //APSTUDIO_INVOKED
-
-#include "afxres.h"
-#include "..\src\version.h"
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION __FILEVERSION_STRING
- PRODUCTVERSION __FILEVERSION_STRING
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x0L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "000004b0"
- BEGIN
- VALUE "FileDescription", __DESCRIPTION
- VALUE "InternalName", __PLUGIN_NAME
- VALUE "LegalCopyright", __COPYRIGHT
- VALUE "OriginalFilename", __FILENAME
- VALUE "ProductName", __PLUGIN_NAME
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x0, 1200
- END
-END
diff --git a/plugins/Clist_mw/res/addgoupp.ico b/plugins/Clist_mw/res/addgoupp.ico
deleted file mode 100644
index 539c32fcd9..0000000000
--- a/plugins/Clist_mw/res/addgoupp.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/delete.ico b/plugins/Clist_mw/res/delete.ico
deleted file mode 100644
index 3770daf2fc..0000000000
--- a/plugins/Clist_mw/res/delete.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/globus.ico b/plugins/Clist_mw/res/globus.ico
deleted file mode 100644
index dbf58aeb04..0000000000
--- a/plugins/Clist_mw/res/globus.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/icon1.ico b/plugins/Clist_mw/res/icon1.ico
deleted file mode 100644
index cad0e2a5cc..0000000000
--- a/plugins/Clist_mw/res/icon1.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/icon2.ico b/plugins/Clist_mw/res/icon2.ico
deleted file mode 100644
index 8ee933d416..0000000000
--- a/plugins/Clist_mw/res/icon2.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/mirandaclassic.ico b/plugins/Clist_mw/res/mirandaclassic.ico
deleted file mode 100644
index 0c8d999e70..0000000000
--- a/plugins/Clist_mw/res/mirandaclassic.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/notick.ico b/plugins/Clist_mw/res/notick.ico
deleted file mode 100644
index 2a78c302df..0000000000
--- a/plugins/Clist_mw/res/notick.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/notick1.ico b/plugins/Clist_mw/res/notick1.ico
deleted file mode 100644
index 0ba1d546f3..0000000000
--- a/plugins/Clist_mw/res/notick1.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/rename.ico b/plugins/Clist_mw/res/rename.ico
deleted file mode 100644
index 90848f1179..0000000000
--- a/plugins/Clist_mw/res/rename.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/resource.rc b/plugins/Clist_mw/res/resource.rc
deleted file mode 100644
index f3337f2f52..0000000000
--- a/plugins/Clist_mw/res/resource.rc
+++ /dev/null
@@ -1,530 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "..\src\resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include <winres.h>
-#include <statusmodes.h>
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Ðóññêèé (Ðîññèÿ) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-#pragma code_page(1251)
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_GLOBUS ICON "globus.ico"
-IDI_SMS ICON "sms.ico"
-IDI_ICQC1 ICON "1.ico"
-IDI_ICQC2 ICON "2.ico"
-IDI_ICQC3 ICON "3.ico"
-IDI_ICQC4 ICON "4.ico"
-IDI_ICQC5 ICON "5.ico"
-IDI_ICQC6 ICON "6.ico"
-IDI_ICQC7 ICON "7.ico"
-IDI_ICQC8 ICON "8.ico"
-IDI_EMAIL ICON "sendmail.ico"
-IDI_NEWGROUP2 ICON "addgoupp.ico"
-IDI_RENAME ICON "rename.ico"
-IDI_DELETE ICON "delete.ico"
-IDI_NOTICK ICON "..\\..\\..\\src\\res\\check_off.ico"
-IDI_TICK ICON "..\\..\\..\\src\\res\\check_on.ico"
-IDI_BLANK ICON "..\\..\\..\\src\\res\\_blank.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Cursor
-//
-
-IDC_HYPERLINKHAND CURSOR "..\\..\\..\\src\\res\\cursor_hyperlink.cur"
-IDC_DROP CURSOR "..\\..\\..\\src\\res\\cursor_drag_copy.cur"
-IDC_DROPUSER CURSOR "..\\..\\..\\src\\res\\cursor_drop_user.cur"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_OPT_CLCBKG2 DIALOGEX 0, 0, 234, 164
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "Settings",IDC_STATIC,4,19,226,141
- LTEXT "Background color:",IDC_BC_STATIC,12,35,72,8,NOT WS_GROUP
- CONTROL "",IDC_BKGCOLOUR,"ColourPicker",WS_TABSTOP,84,34,32,10
- LTEXT "Selection color:",IDC_SC_STATIC,12,51,72,8
- CONTROL "",IDC_SELCOLOUR,"ColourPicker",WS_TABSTOP,84,50,32,10
- CONTROL "Use background bitmap",IDC_BITMAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,68,161,10
- EDITTEXT IDC_FILENAME,22,82,184,12,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_BROWSE,208,82,15,11
- CONTROL "Stretch to width",IDC_STRETCHH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,99,98,10
- CONTROL "Stretch to height",IDC_STRETCHV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,99,101,10
- CONTROL "Tile horizontally",IDC_TILEH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,112,98,10
- CONTROL "Tile vertically",IDC_TILEV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,125,98,10
- CONTROL "Scroll with text",IDC_SCROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,125,100,10
- CONTROL "Stretch proportionally",IDC_PROPORTIONAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,112,101,10
- CONTROL "Tile vertically according to Row Height",IDC_TILEVROWH,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,140,205,10
- COMBOBOX IDC_BKGRLIST,4,5,226,155,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_OPT_GENMENU DIALOGEX 0, 0, 306, 241
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- CONTROL "Tree1",IDC_MENUITEMS,"SysTreeView32",TVS_SHOWSELALWAYS | WS_DISABLED | WS_BORDER | WS_TABSTOP,155,15,134,200
- CONTROL "Tree2",IDC_MENUOBJECTS,"SysTreeView32",TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,10,15,119,80
- LTEXT "Warning!\r\nThis MenuObject not support user defined options.",IDC_NOTSUPPORTWARNING,10,110,130,31,NOT WS_VISIBLE
- GROUPBOX "MenuObjects",IDC_STATIC,5,5,133,95
- GROUPBOX "MenuItems",IDC_STATIC,148,5,147,215
- PUSHBUTTON "InsertSeparator",IDC_INSERTSEPARATOR,90,146,54,14,WS_DISABLED
- LTEXT "Service:",IDC_STATIC,0,166,27,8
- EDITTEXT IDC_GENMENU_SERVICE,29,164,115,14,ES_AUTOHSCROLL | WS_DISABLED
- LTEXT "Name:",IDC_STATIC,0,183,28,8
- EDITTEXT IDC_GENMENU_CUSTOMNAME,29,180,116,14,ES_AUTOHSCROLL | WS_DISABLED
- PUSHBUTTON "Set",IDC_GENMENU_SET,128,196,17,14,WS_DISABLED
- PUSHBUTTON "Default",IDC_GENMENU_DEFAULT,77,196,43,14,WS_DISABLED
-END
-
-IDD_DELETECONTACT DIALOGEX 0, 0, 284, 90
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Delete Contact"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "No",IDNO,162,38,65,14
- PUSHBUTTON "Yes",IDYES,54,38,65,14
- CONTROL "Hide from list only, in order to keep their history and ignore/visibility settings",IDC_HIDE,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,7,65,270,9
- LTEXT "Use Options->Contacts->Ignore to unhide contacts.",IDC_STATIC,20,78,257,8
- CONTROL "Are you sure you want to delete %s?",IDC_TOPLINE,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,7,7,270,8
- LTEXT "This will erase all history and settings for this contact!",IDC_STATIC,7,18,239,14
-END
-
-IDD_OPT_CLIST DIALOGEX 0, 0, 314, 232
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- CONTROL "Hide offline users",IDC_HIDEOFFLINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,17,124,10
- CONTROL "Hide empty groups",IDC_HIDEEMPTYGROUPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,33,124,10
- CONTROL "Disable groups",IDC_DISABLEGROUPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,50,124,10
- CONTROL "Ask before deleting contacts",IDC_CONFIRMDELETE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,67,124,10
- CONTROL "Always on top",IDC_ONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,84,124,10
- CONTROL "Hide contact list after it has been idle for",IDC_AUTOHIDE,
- "Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,10,100,124,22
- EDITTEXT IDC_HIDETIME,54,109,30,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_HIDETIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,75,108,10,14
- LTEXT "seconds",IDC_STAUTOHIDESECS,87,111,47,8
- CONTROL "Sort contacts by name",IDC_SORTBYNAME,"Button",BS_AUTORADIOBUTTON | WS_GROUP,153,14,151,10
- CONTROL "Sort contacts by status",IDC_SORTBYSTATUS,"Button",BS_AUTORADIOBUTTON,153,38,151,10
- CONTROL "Sort contacts by protocol",IDC_SORTBYPROTO,"Button",BS_AUTORADIOBUTTON,153,51,151,10
- CONTROL "Single click interface",IDC_ONECLK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,82,151,10
- CONTROL "Always show status in tooltip",IDC_ALWAYSSTATUS,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,151,95,151,11
- CONTROL "Disable icon blinking",IDC_DISABLEBLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,108,151,9
- EDITTEXT IDC_BLINKTIME,153,122,35,12,ES_NUMBER
- LTEXT "ms, delay between icon blinking",IDC_STATIC,203,124,102,8
- CONTROL "Show",IDC_DONTCYCLE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,10,155,97,10
- COMBOBOX IDC_PRIMARYSTATUS,107,153,78,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "icon when statuses differ",IDC_STATIC,189,155,116,8,NOT WS_GROUP
- CONTROL "Cycle icons every",IDC_CYCLE,"Button",BS_AUTORADIOBUTTON,10,170,97,10
- EDITTEXT IDC_CYCLETIME,107,170,30,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_CYCLETIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,137,168,11,14
- LTEXT "seconds, when statuses differ",IDC_STATIC,154,172,151,8,NOT WS_GROUP
- CONTROL "Show multiple icons",IDC_MULTITRAY,"Button",BS_AUTORADIOBUTTON,9,184,98,10
- CONTROL "Only when statuses differ",IDC_ALWAYSMULTI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,184,198,10
- GROUPBOX "Contact list",IDC_STCLISTGROUP,2,2,135,139
- GROUPBOX "System tray icon",IDC_STATIC,143,71,169,70
- GROUPBOX "System tray icon when using multiple protocols",IDC_STATIC,2,142,310,57
- GROUPBOX "Contact list sorting",IDC_STATIC,143,2,169,69,WS_GROUP
- CONTROL "Spin5",IDC_BLINKSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,177,109,11,12
- CONTROL "Don't move offline user to bottom",IDC_NOOFFLINEMOVE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,26,142,10
- CONTROL "Pin to desktop",IDC_ONDESKTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,120,125,15
- CONTROL "Disable icon blinking",IDC_ICONBLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,84,97,10
- GROUPBOX "Rows",IDC_STATIC,2,199,174,31
- LTEXT "Row height:",IDC_STATIC,10,213,65,8
- EDITTEXT IDC_ROWHEIGHT,77,211,40,13,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_ROWHEIGHTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,97,210,10,14
- LTEXT "pixels",IDC_STATIC,112,213,62,8
- CONTROL "Gamma correction",IDC_GAMMACORRECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,180,211,95,10
-END
-
-IDD_OPT_CLUI DIALOGEX 0, 0, 314, 232
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "Window",IDC_STWINDOWGROUP,4,4,305,121
- CONTROL "Always on top",IDC_ONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,18,128,10
- CONTROL "Tool style main window",IDC_TOOLWND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,32,128,10
- CONTROL "Minimize to tray",IDC_MIN2TRAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,46,128,10
- CONTROL "Hide contact list after it has been idle for",IDC_AUTOHIDE,
- "Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,141,18,162,10
- EDITTEXT IDC_HIDETIME,151,33,30,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_HIDETIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,172,32,10,14
- LTEXT "seconds",IDC_STATIC01,186,35,56,8
- CONTROL "Automatically resize window to height of list",IDC_AUTOSIZE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,55,162,10
- LTEXT "maximum",IDC_STATIC21,151,71,45,8
- EDITTEXT IDC_MAXSIZEHEIGHT,197,69,31,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "Spin1",IDC_MAXSIZESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_HOTTRACK,218,68,10,14
- LTEXT "% of screen",IDC_STATIC22,230,71,69,8
- CONTROL "Size upwards",IDC_AUTOSIZEUPWARD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,86,147,10
- LTEXT "Title bar text:",IDC_STATIC,12,106,51,8
- GROUPBOX "Translucency options",IDC_STATIC,4,130,191,80
- CONTROL "Fade contact list in/out",IDC_FADEINOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,140,163,10
- CONTROL "Transparent contact list",IDC_TRANSPARENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,152,151,9
- LTEXT "Inactive opacity:",IDC_STATIC11,23,165,67,8
- CONTROL "Slider2",IDC_TRANSINACTIVE,"msctls_trackbar32",TBS_TOP | TBS_NOTICKS | WS_TABSTOP,95,164,70,11
- LTEXT "Active opacity:",IDC_STATIC12,23,181,67,8
- CONTROL "Slider2",IDC_TRANSACTIVE,"msctls_trackbar32",TBS_TOP | TBS_NOTICKS | WS_TABSTOP,95,179,70,11
- LTEXT "000%",IDC_INACTIVEPERC,165,164,25,8,SS_NOPREFIX
- LTEXT "000%",IDC_ACTIVEPERC,165,184,25,8,SS_NOPREFIX
- CONTROL "Show menu bar",IDC_SHOWMAINMENU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,60,128,10
- CONTROL "Easy move",IDC_CLIENTDRAG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,74,128,10
- CONTROL "Show title bar",IDC_SHOWCAPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,88,128,10
- CONTROL "If window is partially covered, bring to front instead of hiding",IDC_BRINGTOFRONT,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,141,102,162,16
- EDITTEXT IDC_TITLETEXT,63,104,72,12,ES_AUTOHSCROLL
- CONTROL "Enable drop shadow (restart required)",IDC_DROPSHADOW,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,194,138,10
-END
-
-IDD_OPT_CLC DIALOGEX 0, 0, 314, 251
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "Items",IDC_STATIC,2,2,310,114
- CONTROL "Show divider between online and offline contacts",IDC_DIVIDERONOFF,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,13,179,10
- CONTROL "Hot track items as mouse passes over",IDC_TRACKSELECT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,28,179,10
- CONTROL "Disable drag and drop of items",IDC_DISABLEDRAGDROP,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,43,179,10
- CONTROL "Disable rename of items by clicking twice",IDC_NOTEDITLABELS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,58,179,10
- CONTROL "Show selection even when list is not focused",IDC_SHOWSELALWAYS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,73,179,10
- CONTROL "Make selection highlight translucent",IDC_NOTNOTRANSLUCENTSEL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,88,179,10
- LTEXT "'Hide offline' means to hide:",IDC_STATIC,191,10,112,8
- CONTROL "Tree1",IDC_HIDEOFFLINEOPTS,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_NONEVENHEIGHT | WS_BORDER | WS_TABSTOP,191,20,112,80
- GROUPBOX "Groups",IDC_STATIC,2,120,148,121
- CONTROL "Draw a line alongside group names",IDC_LINEWITHGROUPS,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,129,131,16
- CONTROL "Show counts of number of contacts in a group",IDC_SHOWGROUPCOUNTS,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,147,131,16
- CONTROL "Hide group counts when there are none online",IDC_HIDECOUNTSWHENEMPTY,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,165,131,16
- CONTROL "Sort groups alphabetically",IDC_SORTGROUPSALPHA,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,183,131,16
- CONTROL "Quicksearch in open groups only",IDC_QUICKSEARCHVISONLY,
- "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,11,201,131,16
- LTEXT "Indent groups by:",IDC_STATIC,11,221,67,8
- EDITTEXT IDC_GROUPINDENT,78,219,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_GROUPINDENTSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,95,215,10,14
- LTEXT "pixels",IDC_STATIC,112,221,36,8
- GROUPBOX "Visual",IDC_STATIC,156,120,156,121
- CONTROL "Scroll list smoothly",IDC_NOTNOSMOOTHSCROLLING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,164,130,139,10
- LTEXT "Time:",IDC_STATIC11,174,144,42,8
- EDITTEXT IDC_SMOOTHTIME,216,142,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_SMOOTHTIMESPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,237,137,10,14
- LTEXT "milliseconds",IDC_STATIC12,250,140,56,8,SS_CENTERIMAGE
- LTEXT "Left margin:",IDC_STATIC,165,180,52,8
- EDITTEXT IDC_LEFTMARGIN,215,180,31,12,ES_RIGHT | ES_NUMBER
- CONTROL "Spin1",IDC_LEFTMARGINSPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,240,180,10,14
- LTEXT "pixels",IDC_STATIC,250,180,54,8
- CONTROL "Gray out entire list when:",IDC_GREYOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,195,139,10
- CONTROL "Tree1",IDC_GREYOUTOPTS,"SysTreeView32",TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_NONEVENHEIGHT | WS_BORDER | WS_TABSTOP,165,205,139,30
- CONTROL "Dim idle contacts",IDC_IDLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,102,153,10
- CONTROL "Hide vertical scrollbar",IDC_NOSCROLLBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,160,140,10
-END
-
-IDD_OPT_CLCBKG DIALOGEX 0, 0, 235, 151
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "Contact list background",IDC_STATIC,4,4,227,141
- LTEXT "Background color:",IDC_STATIC,12,20,72,8,NOT WS_GROUP
- CONTROL "",IDC_BKGCOLOUR,"ColourPicker",WS_TABSTOP,84,19,32,10
- LTEXT "Selection color:",IDC_STATIC,12,36,72,8
- CONTROL "",IDC_SELCOLOUR,"ColourPicker",WS_TABSTOP,84,35,32,10
- CONTROL "Use background bitmap",IDC_BITMAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,53,161,10
- EDITTEXT IDC_FILENAME,22,67,184,12,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_BROWSE,208,67,15,11
- CONTROL "Stretch to width",IDC_STRETCHH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,84,100,10
- CONTROL "Stretch to height",IDC_STRETCHV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,84,101,10
- CONTROL "Tile horizontally",IDC_TILEH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,97,93,10
- CONTROL "Tile vertically",IDC_TILEV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,110,85,10
- CONTROL "Scroll with text",IDC_SCROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,110,100,10
- CONTROL "Stretch proportionally",IDC_PROPORTIONAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,97,101,10
- CONTROL "Tile vertically according to Row Height",IDC_TILEVROWH,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,125,205,10
-END
-
-IDD_OPT_META_CLC DIALOGEX 0, 0, 259, 97
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- CONTROL "Use 'Meta' protocol icons for metacontacts",IDC_META,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,13,233,10
- CONTROL "Avoid double click expand",IDC_METADBLCLK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,29,233,10
- CONTROL "Hide all extra icons for subcontacts",IDC_METASUBEXTRA,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,45,233,10
- GROUPBOX "Metacontacts supporting",-1,2,2,252,90
- CONTROL "Ignore empty extra icons places (arrange to right)",IDC_METASUBEXTRA_IGN,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,75,233,10
- CONTROL "Hide offline subcontacts",IDC_METASUB_HIDEOFFLINE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,60,233,10
-END
-
-IDD_OPT_SBAR DIALOGEX 0, 0, 178, 211
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "Status bar",IDC_STATIC,4,4,170,201
- CONTROL "Show status bar",IDC_SHOWSBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,17,152,10
- CONTROL "Show icons",IDC_SHOWICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,35,142,10
- CONTROL "Show protocol names",IDC_SHOWPROTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,47,142,10
- CONTROL "Show status text",IDC_SHOWSTATUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,59,142,10
- CONTROL "Right click opens status menu",IDC_RIGHTSTATUS,"Button",BS_AUTORADIOBUTTON,20,111,142,10
- CONTROL "Right click opens Miranda menu",IDC_RIGHTMIRANDA,"Button",BS_AUTORADIOBUTTON,20,122,142,10
- CONTROL "Make sections equal width",IDC_EQUALSECTIONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,141,142,10
- CONTROL "",IDC_BKGCOLOUR,"ColourPicker",WS_TABSTOP,100,175,32,10
- LTEXT "Background color:",IDC_STATIC,20,175,72,8,NOT WS_GROUP
- PUSHBUTTON "-",IDC_DEFBKCOLOR,135,175,6,10
- CONTROL "Show size grip",IDC_SHOWSIZEGRIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,72,142,10
- CONTROL "Show bevel effect on panels",IDC_SBPANELBEVEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,86,107,10
- CONTROL "Use connecting icon",IDC_USECONNECTINGICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,97,82,10
- CONTROL "Use new drawer for status bar",IDC_USEOWNERDRAW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,160,142,10
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_OPT_CLCBKG2, DIALOG
- BEGIN
- BOTTOMMARGIN, 149
- END
-
- IDD_DELETECONTACT, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 277
- TOPMARGIN, 7
- BOTTOMMARGIN, 85
- END
-
- IDD_OPT_CLIST, DIALOG
- BEGIN
- LEFTMARGIN, 2
- RIGHTMARGIN, 312
- VERTGUIDE, 10
- VERTGUIDE, 107
- TOPMARGIN, 2
- BOTTOMMARGIN, 204
- HORZGUIDE, 182
- HORZGUIDE, 196
- END
-
- IDD_OPT_CLUI, DIALOG
- BEGIN
- LEFTMARGIN, 4
- RIGHTMARGIN, 309
- VERTGUIDE, 13
- VERTGUIDE, 23
- VERTGUIDE, 112
- VERTGUIDE, 141
- VERTGUIDE, 151
- VERTGUIDE, 175
- VERTGUIDE, 242
- VERTGUIDE, 246
- TOPMARGIN, 4
- BOTTOMMARGIN, 228
- HORZGUIDE, 18
- HORZGUIDE, 39
- HORZGUIDE, 75
- HORZGUIDE, 180
- HORZGUIDE, 196
- END
-
- IDD_OPT_CLC, DIALOG
- BEGIN
- LEFTMARGIN, 2
- RIGHTMARGIN, 312
- VERTGUIDE, 11
- VERTGUIDE, 164
- VERTGUIDE, 216
- TOPMARGIN, 2
- BOTTOMMARGIN, 249
- HORZGUIDE, 145
- HORZGUIDE, 163
- HORZGUIDE, 222
- END
-
- IDD_OPT_CLCBKG, DIALOG
- BEGIN
- LEFTMARGIN, 4
- RIGHTMARGIN, 231
- VERTGUIDE, 12
- VERTGUIDE, 22
- VERTGUIDE, 122
- TOPMARGIN, 4
- BOTTOMMARGIN, 147
- HORZGUIDE, 24
- HORZGUIDE, 40
- HORZGUIDE, 73
- HORZGUIDE, 89
- HORZGUIDE, 102
- HORZGUIDE, 115
- END
-
- IDD_OPT_META_CLC, DIALOG
- BEGIN
- LEFTMARGIN, 2
- RIGHTMARGIN, 257
- VERTGUIDE, 11
- VERTGUIDE, 244
- TOPMARGIN, 2
- BOTTOMMARGIN, 92
- END
-
- IDD_OPT_SBAR, DIALOG
- BEGIN
- LEFTMARGIN, 4
- RIGHTMARGIN, 174
- VERTGUIDE, 12
- VERTGUIDE, 22
- VERTGUIDE, 164
- TOPMARGIN, 4
- BOTTOMMARGIN, 207
- HORZGUIDE, 33
- HORZGUIDE, 73
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "..\\src\\resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include <winres.h>\r\n"
- "#include <statusmodes.h>\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_CLISTMENU MENU
-BEGIN
- POPUP "&Main menu"
- BEGIN
- MENUITEM SEPARATOR
- MENUITEM "E&xit", ID_ICQ_EXIT
- END
- POPUP "&Status"
- BEGIN
- MENUITEM "&Offline\tCtrl+0", ID_STATUS_OFFLINE, CHECKED
- MENUITEM "On&line\tCtrl+1", ID_STATUS_ONLINE
- MENUITEM "&Away\tCtrl+2", ID_STATUS_AWAY
- MENUITEM "&NA\tCtrl+3", ID_STATUS_NA
- MENUITEM "Occ&upied\tCtrl+4", ID_STATUS_OCCUPIED
- MENUITEM "&DND\tCtrl+5", ID_STATUS_DND
- MENUITEM "&Free for chat\tCtrl+6", ID_STATUS_FREECHAT
- MENUITEM "&Invisible\tCtrl+7", ID_STATUS_INVISIBLE
- MENUITEM "On the &phone\tCtrl+8", ID_STATUS_ONTHEPHONE
- MENUITEM "Out to &lunch\tCtrl+9", ID_STATUS_OUTTOLUNCH
- END
-END
-
-IDR_CONTEXT MENU
-BEGIN
- POPUP "Tray"
- BEGIN
- MENUITEM "&Hide/Show", ID_TRAY_HIDE
- MENUITEM SEPARATOR
- MENUITEM "E&xit", ID_TRAY_EXIT
- END
- POPUP "Nowhere"
- BEGIN
- MENUITEM "&New group", POPUP_NEWGROUP
- MENUITEM SEPARATOR
- MENUITEM "&Hide offline users", POPUP_HIDEOFFLINE
- MENUITEM "Hide &offline users out here", POPUP_HIDEOFFLINEROOT
- MENUITEM "Hide &empty groups", POPUP_HIDEEMPTYGROUPS
- MENUITEM "Disable &groups", POPUP_DISABLEGROUPS
- MENUITEM SEPARATOR
- MENUITEM "Hide Miranda", POPUP_HIDEMIRANDA
- END
- POPUP "Group"
- BEGIN
- MENUITEM "&New subgroup", POPUP_NEWSUBGROUP
- MENUITEM "&Hide offline users in here", POPUP_GROUPHIDEOFFLINE
- MENUITEM SEPARATOR
- MENUITEM "&Rename group", POPUP_RENAMEGROUP
- MENUITEM "&Delete group", POPUP_DELETEGROUP
- END
-END
-
-#endif // Ðóññêèé (Ðîññèÿ) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/plugins/Clist_mw/res/sendmail.ico b/plugins/Clist_mw/res/sendmail.ico
deleted file mode 100644
index 461ecc9557..0000000000
--- a/plugins/Clist_mw/res/sendmail.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/res/sms.ico b/plugins/Clist_mw/res/sms.ico
deleted file mode 100644
index 6d6ff2162b..0000000000
--- a/plugins/Clist_mw/res/sms.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/Clist_mw/src/BkgrCfg.cpp b/plugins/Clist_mw/src/BkgrCfg.cpp
deleted file mode 100644
index 8895bacbaa..0000000000
--- a/plugins/Clist_mw/src/BkgrCfg.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-
-#include "commonheaders.h"
-
-#define DEFAULT_BKCOLOUR GetSysColor(COLOR_3DFACE)
-#define DEFAULT_USEBITMAP 0
-#define DEFAULT_BKBMPUSE CLB_STRETCH
-#define DEFAULT_SELBKCOLOUR GetSysColor(COLOR_HIGHLIGHT)
-
-
-extern HINSTANCE g_hInst;
-
-char **bkgrList = NULL;
-int bkgrCount = 0;
-HANDLE hEventBkgrChanged;
-
-#define M_BKGR_UPDATE (WM_USER+10)
-#define M_BKGR_SETSTATE (WM_USER+11)
-#define M_BKGR_GETSTATE (WM_USER+12)
-
-#define M_BKGR_BACKCOLOR 0x01
-#define M_BKGR_SELECTCOLOR 0x02
-#define M_BKGR_ALLOWBITMAPS 0x04
-#define M_BKGR_STRETCH 0x08
-#define M_BKGR_TILE 0x10
-
-#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
-static const int bitmapRelatedControls[] = {
- IDC_FILENAME,IDC_BROWSE,IDC_STRETCHH,IDC_STRETCHV,IDC_TILEH,IDC_TILEV,
- IDC_SCROLL,IDC_PROPORTIONAL,IDC_TILEVROWH
-};
-struct BkgrItem
-{
- BYTE changed;
- BYTE useBitmap;
- COLORREF bkColor, selColor;
- char filename[MAX_PATH];
- WORD flags;
-};
-struct BkgrData
-{
- struct BkgrItem *item;
- int indx;
- int count;
-};
-static INT_PTR CALLBACK DlgProcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- struct BkgrData *dat = (struct BkgrData *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- switch (msg)
- {
- case WM_INITDIALOG:
- {
- int indx;
- HWND hList = GetDlgItem(hwndDlg, IDC_BKGRLIST);
- TranslateDialogDefault(hwndDlg);
-
- dat = (struct BkgrData*)mir_alloc(sizeof(struct BkgrData));
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat);
- dat->count = bkgrCount;
- dat->item = (struct BkgrItem*)mir_alloc(sizeof(struct BkgrItem)*dat->count);
- dat->indx = CB_ERR;
- for (indx = 0; indx < dat->count; indx++)
- {
- char *module = bkgrList[indx] + strlen(bkgrList[indx]) + 1;
- int jndx;
-
- dat->item[indx].changed = FALSE;
- dat->item[indx].useBitmap = db_get_b(NULL,module, "UseBitmap", DEFAULT_USEBITMAP);
- dat->item[indx].bkColor = db_get_dw(NULL,module, "BkColour", DEFAULT_BKCOLOUR);
- dat->item[indx].selColor = db_get_dw(NULL,module, "SelBkColour", DEFAULT_SELBKCOLOUR);
- {
- DBVARIANT dbv;
- if ( !db_get_s(NULL,module,"BkBitmap",&dbv))
- {
- int retval = PathToAbsolute(dbv.pszVal, dat->item[indx].filename);
- if ( !retval || retval == CALLSERVICE_NOTFOUND)
- lstrcpynA(dat->item[indx].filename, dbv.pszVal, MAX_PATH);
- mir_free(dbv.pszVal);
- }
- else
- *dat->item[indx].filename = 0;
- }
- dat->item[indx].flags = db_get_w(NULL,module,"BkBmpUse", DEFAULT_BKBMPUSE);
- jndx = SendMessageA(hList, CB_ADDSTRING, 0, (LPARAM)Translate(bkgrList[indx]));
- SendMessage(hList, CB_SETITEMDATA, jndx, indx);
- }
- SendMessage(hList, CB_SETCURSEL, 0, 0);
- PostMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_BKGRLIST, CBN_SELCHANGE), 0);
- SHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- return TRUE;
- }
- case WM_DESTROY:
- if (dat)
- {
- if (dat->item) mir_free(dat->item);
- mir_free(dat);
- }
-
- return TRUE;
-
- case M_BKGR_GETSTATE:
- {
- int indx = wParam;
- if (indx == CB_ERR || indx >= dat->count) break;
- indx = SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETITEMDATA, indx, 0);
-
- dat->item[indx].useBitmap = IsDlgButtonChecked(hwndDlg,IDC_BITMAP);
- dat->item[indx].bkColor = SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_GETCOLOUR,0,0);
- dat->item[indx].selColor = SendDlgItemMessage(hwndDlg, IDC_SELCOLOUR, CPM_GETCOLOUR,0,0);
- GetDlgItemTextA(hwndDlg, IDC_FILENAME, dat->item[indx].filename, sizeof(dat->item[indx].filename));
- {
- WORD flags = 0;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHH)) flags |= CLB_STRETCHH;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHV)) flags |= CLB_STRETCHV;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEH)) flags |= CLBF_TILEH;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEV)) flags |= CLBF_TILEV;
- if (IsDlgButtonChecked(hwndDlg,IDC_SCROLL)) flags |= CLBF_SCROLL;
- if (IsDlgButtonChecked(hwndDlg,IDC_PROPORTIONAL)) flags |= CLBF_PROPORTIONAL;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEVROWH)) flags |= CLBF_TILEVTOROWHEIGHT;
- dat->item[indx].flags = flags;
- }
- break;
- }
- case M_BKGR_SETSTATE:
- {
- int indx = wParam;
- int flags = dat->item[indx].flags;
- if (indx == CB_ERR || indx >= dat->count) break;
- indx = SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETITEMDATA, indx, 0);
-
- CheckDlgButton(hwndDlg, IDC_BITMAP, dat->item[indx].useBitmap?BST_CHECKED:BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETDEFAULTCOLOUR, 0, DEFAULT_BKCOLOUR);
- SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_SETCOLOUR, 0, dat->item[indx].bkColor);
- SendDlgItemMessage(hwndDlg, IDC_SELCOLOUR, CPM_SETDEFAULTCOLOUR, 0, DEFAULT_SELBKCOLOUR);
- SendDlgItemMessage(hwndDlg, IDC_SELCOLOUR, CPM_SETCOLOUR, 0, dat->item[indx].selColor);
- SetDlgItemTextA(hwndDlg, IDC_FILENAME, dat->item[indx].filename);
-
- CheckDlgButton(hwndDlg,IDC_STRETCHH, flags&CLB_STRETCHH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_STRETCHV,flags&CLB_STRETCHV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEH,flags&CLBF_TILEH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEV,flags&CLBF_TILEV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_SCROLL,flags&CLBF_SCROLL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_PROPORTIONAL,flags&CLBF_PROPORTIONAL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEVROWH,flags&CLBF_TILEVTOROWHEIGHT?BST_CHECKED:BST_UNCHECKED);
-
- SendMessage(hwndDlg, M_BKGR_UPDATE, 0,0);
- break;
- }
- case M_BKGR_UPDATE:
- {
- int isChecked = IsDlgButtonChecked(hwndDlg,IDC_BITMAP);
- int indx;
- for (indx = 0; indx < ARRAY_SIZE(bitmapRelatedControls); indx++)
- EnableWindow(GetDlgItem(hwndDlg, bitmapRelatedControls[indx]),isChecked);
- break;
- }
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_BROWSE) {
- char str[MAX_PATH];
- OPENFILENAMEA ofn = {0};
- char filter[512];
-
- GetDlgItemTextA(hwndDlg,IDC_FILENAME, str, sizeof(str));
- ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = NULL;
- CallService(MS_UTILS_GETBITMAPFILTERSTRINGS, sizeof(filter), (LPARAM)filter);
- ofn.lpstrFilter = filter;
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = sizeof(str);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = "bmp";
- if ( !GetOpenFileNameA(&ofn)) break;
- SetDlgItemTextA(hwndDlg, IDC_FILENAME, str);
- }
- else if (LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) != EN_CHANGE)
- break;
-
- if (LOWORD(wParam) == IDC_BITMAP)
- SendMessage(hwndDlg, M_BKGR_UPDATE, 0,0);
- if (LOWORD(wParam) == IDC_FILENAME && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()))
- return 0;
- if (LOWORD(wParam) == IDC_BKGRLIST) {
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- SendMessage(hwndDlg, M_BKGR_GETSTATE, dat->indx, 0);
- SendMessage(hwndDlg, M_BKGR_SETSTATE, dat->indx = SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETCURSEL, 0,0), 0);
- }
- return 0;
- }
- {
- int indx = SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETCURSEL, 0,0);
- if (indx != CB_ERR && indx < dat->count) {
- indx = SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETITEMDATA, indx, 0);
- dat->item[indx].changed = TRUE;
-
- }
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0,0);
- }
- break;
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom)
- {
- case 0:
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_APPLY:
- {
- int indx;
- SendMessage(hwndDlg, M_BKGR_GETSTATE, SendDlgItemMessage(hwndDlg, IDC_BKGRLIST, CB_GETCURSEL, 0,0), 0);
- for (indx = 0; indx < dat->count; indx++)
- if (dat->item[indx].changed)
- {
- char *module = bkgrList[indx] + strlen(bkgrList[indx]) + 1;
- db_set_b(NULL, module, "UseBitmap", (BYTE)dat->item[indx].useBitmap);
- {
- COLORREF col;
-
- if ((col = dat->item[indx].bkColor) == DEFAULT_BKCOLOUR)
- db_unset(NULL, module, "BkColour");
- else
- db_set_dw(NULL, module, "BkColour", col);
-
- if ((col = dat->item[indx].selColor) == DEFAULT_SELBKCOLOUR)
- db_unset(NULL, module, "SelBkColour");
- else
- db_set_dw(NULL, module, "SelBkColour", col);
- }
- {
- char str[MAX_PATH];
- int retval = PathToAbsolute(dat->item[indx].filename, str);
- if ( !retval || retval == CALLSERVICE_NOTFOUND)
- db_set_s(NULL, module, "BkBitmap", dat->item[indx].filename);
- else
- db_set_s(NULL, module, "BkBitmap", str);
- }
- db_set_w(NULL, module, "BkBmpUse", dat->item[indx].flags);
- dat->item[indx].changed = FALSE;
- NotifyEventHooks(hEventBkgrChanged, (WPARAM)module, 0);
- }
- return TRUE;
- }
- }
- break;
- }
- break;
- }
- return FALSE;
-}
-
-static INT_PTR BkgrCfg_Register(WPARAM wParam, LPARAM lParam)
-{
- char *szSetting = (char *)wParam;
- char *value, *tok;
- size_t len = strlen(szSetting) + 1;
-
- value = (char *)mir_alloc(len + 4); // add room for flags (DWORD)
- memcpy(value, szSetting, len);
- tok = strchr(value, '/');
- if (tok == NULL) {
- mir_free(value);
- return 1;
- }
- *tok = 0;
- *(DWORD*)(value + len) = lParam;
-
- bkgrList = (char **)mir_realloc(bkgrList, sizeof(char*)*(bkgrCount+1));
- bkgrList[bkgrCount] = value;
- bkgrCount++;
-
- return 0;
-}
-
-int OnOptionsInit(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = { sizeof(odp) };
- odp.hInstance = g_hInst;
- odp.pszGroup = LPGEN("Customize");
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLCBKG2);
- odp.pszTitle = LPGEN("Backgrounds");
- odp.pfnDlgProc = DlgProcBkgOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
- return 0;
-}
-
-int BGModuleLoad()
-{
- HookEvent(ME_OPT_INITIALISE, OnOptionsInit);
-
- CreateServiceFunction(MS_BACKGROUNDCONFIG_REGISTER, BkgrCfg_Register);
-
- hEventBkgrChanged = CreateHookableEvent(ME_BACKGROUNDCONFIG_CHANGED);
- return 0;
-}
-
-int BGModuleUnload(void)
-{
- if (bkgrList != NULL)
- {
- int indx;
- for (indx = 0; indx < bkgrCount; indx++)
- if (bkgrList[indx] != NULL)
- mir_free(bkgrList[indx]);
- mir_free(bkgrList);
- }
- DestroyHookableEvent(hEventBkgrChanged);
-
- return 0;
-}
diff --git a/plugins/Clist_mw/src/BkgrCfg.h b/plugins/Clist_mw/src/BkgrCfg.h
deleted file mode 100644
index a47b53a603..0000000000
--- a/plugins/Clist_mw/src/BkgrCfg.h
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// Register of plugin's user
-//
-// wParam = (WPARAM)szSetting - string that describes a user
-// format: Category/ModuleName,
-// eg: "Contact list background/CLUI",
-// "Status bar background/StatusBar"
-// lParam = (LPARAM)dwFlags
-//
-#define MS_BACKGROUNDCONFIG_REGISTER "BkgrCfg/Register"
-
-//
-// Notification about changed background
-// wParam = ModuleName
-// lParam = 0
-#define ME_BACKGROUNDCONFIG_CHANGED "BkgrCfg/Changed"
-
-#define CLBF_TILEVTOROWHEIGHT 0x0100
diff --git a/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp b/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp
deleted file mode 100644
index 129bd2e794..0000000000
--- a/plugins/Clist_mw/src/CLUIFrames/cluiframes.cpp
+++ /dev/null
@@ -1,2860 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "../commonheaders.h"
-
-extern HINSTANCE g_hInst;
-
-//we use dynamic frame list,
-//but who wants so huge number of frames ??
-#define MAX_FRAMES 16
-
-#define UNCOLLAPSED_FRAME_SIZE 0
-#define DEFAULT_TITLEBAR_HEIGHT 20
-
-//legacy menu support
-#define frame_menu_lock 1
-#define frame_menu_visible 2
-#define frame_menu_showtitlebar 3
-#define frame_menu_floating 4
-static int UpdateTBToolTip(int framepos);
-INT_PTR CLUIFrameSetFloat(WPARAM wParam, LPARAM lParam);
-int CLUIFrameResizeFloatingFrame(int framepos);
-extern int InitFramesMenus(void);
-int GapBetweenTitlebar;
-
-LOGFONTA TitleBarLogFont = {0};
-
-boolean FramesSysNotStarted = TRUE;
-
-static int sortfunc(const void *a,const void *b)
-{
- SortData *sd1,*sd2;
- sd1 = (SortData *)a;
- sd2 = (SortData *)b;
- if (sd1->order > sd2->order){return(1);}
- if (sd1->order < sd2->order){return(-1);}
- //if (sd1->order == sd2->order){return 0;}
- return 0;
-}
-
-//static FRAMEWND Frames[MAX_FRAMES];
-static FRAMEWND *Frames = NULL;
-
-static int nFramescount = 0;
-static int alclientFrame = -1;//for fast access to frame with alclient properties
-static int NextFrameId = 100;
-
-HFONT TitleBarFont;
-static int TitleBarH = DEFAULT_TITLEBAR_HEIGHT;
-static boolean resizing = FALSE;
-
-// menus
-static HANDLE contMIVisible,contMITitle,contMITBVisible,contMILock,contMIColl,contMIFloating;
-static HANDLE contMIAlignRoot;
-static HANDLE contMIAlignTop,contMIAlignClient,contMIAlignBottom;
-static HANDLE contMIBorder;
-static HGENMENU MainMIRoot = (HGENMENU)-1;
-
-// others
-static int ContactListHeight;
-static int LastStoreTick = 0;
-
-static int lbypos = -1;
-static int oldframeheight = -1;
-static int curdragbar = -1;
-static CRITICAL_SECTION csFrameHook;
-
-static BOOLEAN CLUIFramesFitInSize(void);
-static int RemoveItemFromList(int pos,FRAMEWND **lpFrames,int *FrameItemCount);
-HWND hWndExplorerToolBar;
-static int GapBetweenFrames = 1;
-
-static int RemoveItemFromList(int pos,FRAMEWND **lpFrames,int *FrameItemCount)
-{
- memcpy(&((*lpFrames)[pos]),&((*lpFrames)[pos+1]),sizeof(FRAMEWND)*(*FrameItemCount-pos-1));
- (*FrameItemCount)--;
- (*lpFrames) = (FRAMEWND*)realloc((*lpFrames),sizeof(FRAMEWND)*(*FrameItemCount));
- return 0;
-}
-
-static int id2pos(int id)
-{
- if (FramesSysNotStarted)
- return -1;
-
- for (int i=0;i<nFramescount;i++)
- if (Frames[i].id == id)
- return i;
-
- return -1;
-}
-
-static int btoint(BOOLEAN b)
-{
- if (b) return 1;
- return 0;
-}
-
-static void __inline lockfrm()
-{
- EnterCriticalSection(&csFrameHook);
-}
-
-static void __inline ulockfrm()
-{
- LeaveCriticalSection(&csFrameHook);
-}
-
-//////////screen docking,code from "floating contacts" plugin.
-
-static FRAMEWND* FindFrameByWnd( HWND hwnd )
-{
- if ( hwnd == NULL )
- return NULL;
-
- for (int i=0; i < nFramescount; i++)
- if ( Frames[i].floating && Frames[i].ContainerWnd == hwnd )
- return &Frames[i];
-
- return NULL;
-}
-
-static void DockThumbs( FRAMEWND *pThumbLeft, FRAMEWND *pThumbRight, BOOL bMoveLeft )
-{
- if ( pThumbRight->dockOpt.hwndLeft == NULL && pThumbLeft->dockOpt.hwndRight == NULL ) {
- pThumbRight->dockOpt.hwndLeft = pThumbLeft->ContainerWnd;
- pThumbLeft->dockOpt.hwndRight = pThumbRight->ContainerWnd;
- }
-}
-
-static void UndockThumbs( FRAMEWND *pThumb1, FRAMEWND *pThumb2 )
-{
- if ( pThumb1 == NULL || pThumb2 == NULL )
- return;
-
- if ( pThumb1->dockOpt.hwndRight == pThumb2->ContainerWnd )
- pThumb1->dockOpt.hwndRight = NULL;
-
- if ( pThumb1->dockOpt.hwndLeft == pThumb2->ContainerWnd )
- pThumb1->dockOpt.hwndLeft = NULL;
-
- if ( pThumb2->dockOpt.hwndRight == pThumb1->ContainerWnd )
- pThumb2->dockOpt.hwndRight = NULL;
-
- if ( pThumb2->dockOpt.hwndLeft == pThumb1->ContainerWnd )
- pThumb2->dockOpt.hwndLeft = NULL;
-}
-
-BOOLEAN bMoveTogether;
-
-static void PositionThumb( FRAMEWND *pThumb, short nX, short nY )
-{
- FRAMEWND *pCurThumb = &Frames[0];
- FRAMEWND *pDockThumb = pThumb;
- FRAMEWND fakeMainWindow;
- FRAMEWND fakeTaskBarWindow;
- RECT rc;
- RECT rcThumb;
- RECT rcOld;
- SIZE sizeScreen;
- int nNewX;
- int nNewY;
- int nOffs = 10;
- int nWidth;
- int nHeight;
- POINT pt;
- RECT rcLeft;
- RECT rcTop;
- RECT rcRight;
- RECT rcBottom;
- BOOL bDocked;
- BOOL bDockedLeft;
- BOOL bDockedRight;
- BOOL bLeading;
- int frmidx = 0;
-
- if ( pThumb == NULL )
- return;
-
- sizeScreen.cx = GetSystemMetrics( SM_CXSCREEN );
- sizeScreen.cy = GetSystemMetrics( SM_CYSCREEN );
-
- // Get thumb dimnsions
- GetWindowRect( pThumb->ContainerWnd, &rcThumb );
- nWidth = rcThumb.right - rcThumb.left;
- nHeight = rcThumb.bottom - rcThumb.top;
-
- // Docking to the edges of the screen
- nNewX = nX < nOffs ? 0 : nX;
- nNewX = nNewX > ( sizeScreen.cx - nWidth - nOffs ) ? ( sizeScreen.cx - nWidth ) : nNewX;
- nNewY = nY < nOffs ? 0 : nY;
- nNewY = nNewY > ( sizeScreen.cy - nHeight - nOffs ) ? ( sizeScreen.cy - nHeight ) : nNewY;
-
- bLeading = pThumb->dockOpt.hwndRight != NULL;
-
- if ( bMoveTogether ) {
- UndockThumbs( pThumb, FindFrameByWnd( pThumb->dockOpt.hwndLeft ));
- GetWindowRect( pThumb->ContainerWnd, &rcOld );
- }
-
- memset(&fakeMainWindow,0,sizeof(fakeMainWindow));
- fakeMainWindow.ContainerWnd = pcli->hwndContactList;
- fakeMainWindow.floating = TRUE;
-
- memset(&fakeTaskBarWindow,0,sizeof(fakeTaskBarWindow));
- fakeTaskBarWindow.ContainerWnd = hWndExplorerToolBar;
- fakeTaskBarWindow.floating = TRUE;
-
- while( pCurThumb != NULL ) {
- if (pCurThumb->floating) {
- if ( pCurThumb != pThumb ) {
- GetWindowRect( pThumb->ContainerWnd, &rcThumb );
- OffsetRect( &rcThumb, nX - rcThumb.left, nY - rcThumb.top );
-
- GetWindowRect( pCurThumb->ContainerWnd, &rc );
-
- // These are rects we will dock into
- rcLeft.left = rc.left - nOffs;
- rcLeft.top = rc.top - nOffs;
- rcLeft.right = rc.left + nOffs;
- rcLeft.bottom = rc.bottom + nOffs;
-
- rcTop.left = rc.left - nOffs;
- rcTop.top = rc.top - nOffs;
- rcTop.right = rc.right + nOffs;
- rcTop.bottom = rc.top + nOffs;
-
- rcRight.left = rc.right - nOffs;
- rcRight.top = rc.top - nOffs;
- rcRight.right = rc.right + nOffs;
- rcRight.bottom = rc.bottom + nOffs;
-
- rcBottom.left = rc.left - nOffs;
- rcBottom.top = rc.bottom - nOffs;
- rcBottom.right = rc.right + nOffs;
- rcBottom.bottom = rc.bottom + nOffs;
-
-
- bDockedLeft = FALSE;
- bDockedRight = FALSE;
-
- // Upper-left
- pt.x = rcThumb.left;
- pt.y = rcThumb.top;
- bDocked = FALSE;
-
- if ( PtInRect( &rcRight, pt )) {
- nNewX = rc.right;
- bDocked = TRUE;
- }
-
- if ( PtInRect( &rcBottom, pt )) {
- nNewY = rc.bottom;
- if ( PtInRect( &rcLeft, pt ))
- nNewX = rc.left;
- }
-
- if ( PtInRect( &rcTop, pt )) {
- nNewY = rc.top;
- bDockedLeft = bDocked;
- }
-
- // Upper-right
- pt.x = rcThumb.right;
- pt.y = rcThumb.top;
- bDocked = FALSE;
-
- if ( !bLeading && PtInRect( &rcLeft, pt )) {
- if ( !bDockedLeft ) {
- nNewX = rc.left - nWidth;
- bDocked = TRUE;
- }
- else if ( rc.right == rcThumb.left )
- bDocked = TRUE;
- }
-
- if ( PtInRect( &rcBottom, pt )) {
- nNewY = rc.bottom;
- if ( PtInRect( &rcRight, pt ))
- nNewX = rc.right - nWidth;
- }
-
- if ( !bLeading && PtInRect( &rcTop, pt )) {
- nNewY = rc.top;
- bDockedRight = bDocked;
- }
-
- if ( bMoveTogether ) {
- if ( bDockedRight )
- DockThumbs( pThumb, pCurThumb, TRUE );
-
- if ( bDockedLeft )
- DockThumbs( pCurThumb, pThumb, FALSE );
- }
-
- // Lower-left
- pt.x = rcThumb.left;
- pt.y = rcThumb.bottom;
-
- if ( PtInRect( &rcRight, pt ))
- nNewX = rc.right;
-
- if ( PtInRect( &rcTop, pt )) {
- nNewY = rc.top - nHeight;
- if ( PtInRect( &rcLeft, pt ))
- nNewX = rc.left;
- }
-
- // Lower-right
- pt.x = rcThumb.right;
- pt.y = rcThumb.bottom;
-
- if ( !bLeading && PtInRect( &rcLeft, pt ))
- nNewX = rc.left - nWidth;
-
- if ( !bLeading && PtInRect( &rcTop, pt )) {
- nNewY = rc.top - nHeight;
- if ( PtInRect( &rcRight, pt ))
- nNewX = rc.right - nWidth;
- }
- }
- }
-
- frmidx++;
- if (pCurThumb->ContainerWnd = fakeTaskBarWindow.ContainerWnd){break;}
- if (pCurThumb->ContainerWnd = fakeMainWindow.ContainerWnd){
- pCurThumb = &fakeTaskBarWindow;continue;}
- if (frmidx = nFramescount){
- pCurThumb = &fakeMainWindow;continue;
- }
-
- pCurThumb = &Frames[frmidx];
- }
-
- // Adjust coords once again
- nNewX = nNewX < nOffs ? 0 : nNewX;
- nNewX = nNewX > ( sizeScreen.cx - nWidth - nOffs ) ? ( sizeScreen.cx - nWidth ) : nNewX;
- nNewY = nNewY < nOffs ? 0 : nNewY;
- nNewY = nNewY > ( sizeScreen.cy - nHeight - nOffs ) ? ( sizeScreen.cy - nHeight ) : nNewY;
-
- SetWindowPos( pThumb->ContainerWnd, HWND_TOPMOST, nNewX, nNewY, 0, 0, SWP_NOSIZE | SWP_NOZORDER );
-
- // OK, move all docked thumbs
- if ( bMoveTogether ) {
- pDockThumb = FindFrameByWnd( pDockThumb->dockOpt.hwndRight );
- PositionThumb( pDockThumb, (short)( nNewX + nWidth ), (short)nNewY );
- }
-}
-
-//////////
-
-void GetBorderSize(HWND hwnd,RECT *rect)
-{
- RECT wr,cr;
- POINT pt1,pt2;
-
- GetWindowRect(hwnd,&wr);
- GetClientRect(hwnd,&cr);
- pt1.y = cr.top;pt1.x = cr.left;
- pt2.y = cr.bottom;pt2.x = cr.right;
-
- ClientToScreen(hwnd,&pt1);
- ClientToScreen(hwnd,&pt2);
-
- cr.top = pt1.y;cr.left = pt1.x;
- cr.bottom = pt2.y;cr.right = pt2.x;
-
- rect->top = cr.top-wr.top;
- rect->left = cr.left-wr.left;
- rect->right = wr.right-cr.right;
- rect->bottom = wr.bottom-cr.bottom;
-}
-
-//append string
-char __inline *AS(char *str,const char *setting,char *addstr)
-{
- if (str != NULL) {
- strcpy(str,setting);
- strcat(str,addstr);
- }
- return str;
-}
-
-int DBLoadFrameSettingsAtPos(int pos,int Frameid)
-{
- char sadd[15];
- char buf[255];
-
- _itoa(pos,sadd,10);
-
- //boolean
- Frames[Frameid].collapsed = db_get_b(0,CLUIFrameModule,AS(buf,"Collapse",sadd),Frames[Frameid].collapsed);
-
- Frames[Frameid].Locked = db_get_b(0,CLUIFrameModule,AS(buf,"Locked",sadd),Frames[Frameid].Locked);
- Frames[Frameid].visible = db_get_b(0,CLUIFrameModule,AS(buf,"Visible",sadd),Frames[Frameid].visible);
- Frames[Frameid].TitleBar.ShowTitleBar = db_get_b(0,CLUIFrameModule,AS(buf,"TBVisile",sadd),Frames[Frameid].TitleBar.ShowTitleBar);
-
- Frames[Frameid].height = db_get_w(0,CLUIFrameModule,AS(buf,"Height",sadd),Frames[Frameid].height);
- Frames[Frameid].HeightWhenCollapsed = db_get_w(0,CLUIFrameModule,AS(buf,"HeightCollapsed",sadd),0);
- Frames[Frameid].align = db_get_w(0,CLUIFrameModule,AS(buf,"Align",sadd),Frames[Frameid].align);
-
- Frames[Frameid].FloatingPos.x = DBGetContactSettingRangedWord(0,CLUIFrameModule,AS(buf,"FloatX",sadd),100,0,1024);
- Frames[Frameid].FloatingPos.y = DBGetContactSettingRangedWord(0,CLUIFrameModule,AS(buf,"FloatY",sadd),100,0,1024);
- Frames[Frameid].FloatingSize.x = DBGetContactSettingRangedWord(0,CLUIFrameModule,AS(buf,"FloatW",sadd),100,0,1024);
- Frames[Frameid].FloatingSize.y = DBGetContactSettingRangedWord(0,CLUIFrameModule,AS(buf,"FloatH",sadd),100,0,1024);
-
- Frames[Frameid].floating = db_get_b(0,CLUIFrameModule,AS(buf,"Floating",sadd),0);
- Frames[Frameid].order = db_get_w(0,CLUIFrameModule,AS(buf,"Order",sadd),0);
-
- Frames[Frameid].UseBorder = db_get_b(0,CLUIFrameModule,AS(buf,"UseBorder",sadd),Frames[Frameid].UseBorder);
-
- return 0;
-}
-
-int DBStoreFrameSettingsAtPos(int pos,int Frameid)
-{
- char sadd[16];
- char buf[255];
-
- _itoa(pos,sadd,10);
-
- db_set_ts(0,CLUIFrameModule,AS(buf,"Name",sadd),Frames[Frameid].name);
- //boolean
- db_set_b(0,CLUIFrameModule,AS(buf,"Collapse",sadd),(BYTE)btoint(Frames[Frameid].collapsed));
- db_set_b(0,CLUIFrameModule,AS(buf,"Locked",sadd),(BYTE)btoint(Frames[Frameid].Locked));
- db_set_b(0,CLUIFrameModule,AS(buf,"Visible",sadd),(BYTE)btoint(Frames[Frameid].visible));
- db_set_b(0,CLUIFrameModule,AS(buf,"TBVisile",sadd),(BYTE)btoint(Frames[Frameid].TitleBar.ShowTitleBar));
-
- db_set_w(0,CLUIFrameModule,AS(buf,"Height",sadd),(WORD)Frames[Frameid].height);
- db_set_w(0,CLUIFrameModule,AS(buf,"HeightCollapsed",sadd),(WORD)Frames[Frameid].HeightWhenCollapsed);
- db_set_w(0,CLUIFrameModule,AS(buf,"Align",sadd),(WORD)Frames[Frameid].align);
- //FloatingPos
- db_set_w(0,CLUIFrameModule,AS(buf,"FloatX",sadd),(WORD)Frames[Frameid].FloatingPos.x);
- db_set_w(0,CLUIFrameModule,AS(buf,"FloatY",sadd),(WORD)Frames[Frameid].FloatingPos.y);
- db_set_w(0,CLUIFrameModule,AS(buf,"FloatW",sadd),(WORD)Frames[Frameid].FloatingSize.x);
- db_set_w(0,CLUIFrameModule,AS(buf,"FloatH",sadd),(WORD)Frames[Frameid].FloatingSize.y);
-
- db_set_b(0,CLUIFrameModule,AS(buf,"Floating",sadd),(BYTE)btoint(Frames[Frameid].floating));
- db_set_b(0,CLUIFrameModule,AS(buf,"UseBorder",sadd),(BYTE)btoint(Frames[Frameid].UseBorder));
- db_set_w(0,CLUIFrameModule,AS(buf,"Order",sadd),(WORD)Frames[Frameid].order);
- //db_set_s(0,CLUIFrameModule,AS(buf,"TBName",sadd),Frames[Frameid].TitleBar.tbname);
- return 0;
-}
-
-int LocateStorePosition(int Frameid,int maxstored)
-{
- if (Frames[Frameid].name == NULL)
- return -1;
-
- for (int i=0; i < maxstored; i++) {
- char settingname[255];
- mir_snprintf(settingname, sizeof(settingname), "Name%d",i);
- LPTSTR frmname = db_get_tsa(0,CLUIFrameModule,settingname);
- if (frmname == NULL)
- continue;
-
- if (lstrcmpi(frmname,Frames[Frameid].name) == 0) {
- mir_free(frmname);
- return i;
- }
- mir_free(frmname);
- }
- return -1;
-}
-
-int CLUIFramesLoadFrameSettings(int Frameid)
-{
- if (Frameid < 0 || Frameid >= nFramescount)
- return -1;
-
- int maxstored = db_get_w(0,CLUIFrameModule,"StoredFrames",-1);
- if (maxstored == -1)
- return 0;
-
- int storpos = LocateStorePosition(Frameid,maxstored);
- if (storpos == -1)
- return 0;
-
- DBLoadFrameSettingsAtPos(storpos,Frameid);
- return 0;
-}
-
-int CLUIFramesStoreFrameSettings(int Frameid)
-{
- if (Frameid < 0 || Frameid >= nFramescount)
- return -1;
-
- int maxstored = db_get_w(0,CLUIFrameModule,"StoredFrames",-1);
- if (maxstored == -1)
- maxstored = 0;
-
- int storpos = LocateStorePosition(Frameid,maxstored);
- if (storpos == -1) {
- storpos = maxstored;
- maxstored++;
- }
-
- DBStoreFrameSettingsAtPos(storpos,Frameid);
- db_set_w(0,CLUIFrameModule,"StoredFrames",(WORD)maxstored);
- //ulockfrm();
- return 0;
-}
-
-int CLUIFramesStoreAllFrames()
-{
- lockfrm();
- for (int i=0;i<nFramescount;i++)
- CLUIFramesStoreFrameSettings(i);
- ulockfrm();
- return 0;
-}
-
-// Get client frame
-int CLUIFramesGetalClientFrame(void)
-{
- if (alclientFrame != -1) {
- /* this value could become invalid if RemoveItemFromList was called,
- * so we double-check */
- if (alclientFrame < nFramescount)
- if (Frames[alclientFrame].align == alClient)
- return alclientFrame;
- }
-
- for (int i=0; i < nFramescount; i++)
- if (Frames[i].align == alClient) {
- alclientFrame = i;
- return i;
- }
-
- return -1;
-}
-
-HMENU CLUIFramesCreateMenuForFrame(int frameid,int root,int popuppos,HGENMENU (*pfnAdd )( CLISTMENUITEM* ))
-{
- HGENMENU menuid;
- int framepos = id2pos(frameid);
-
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.hIcon = LoadIcon(g_hInst,MAKEINTRESOURCE(IDI_CLIENTMIRANDA));
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&FrameTitle");
- mi.flags = CMIF_CHILDPOPUP|CMIF_GRAYED;
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMITitle = menuid;
- else Frames[framepos].MenuHandles.MITitle = menuid;
-
- popuppos += 100000;
- mi.hIcon = NULL;
- mi.cbSize = sizeof(mi);
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Visible");
- mi.flags = CMIF_CHILDPOPUP | CMIF_CHECKED;
- mi.pszContactOwner = (char *)0;
- mi.pszService = MS_CLIST_FRAMES_SHFRAME;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIVisible = menuid;
- else Frames[framepos].MenuHandles.MIVisible = menuid;
-
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Show title bar");
- mi.flags = CMIF_CHILDPOPUP | CMIF_CHECKED;
- mi.pszService = MS_CLIST_FRAMES_SHFRAMETITLEBAR;
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMITBVisible = menuid;
- else Frames[framepos].MenuHandles.MITBVisible = menuid;
-
- popuppos += 100000;
-
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Locked");
- mi.flags = CMIF_CHILDPOPUP | CMIF_CHECKED;
- mi.pszService = MS_CLIST_FRAMES_ULFRAME;
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMILock = menuid;
- else Frames[framepos].MenuHandles.MILock = menuid;
-
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Collapsed");
- mi.flags = CMIF_CHILDPOPUP | CMIF_CHECKED;
- mi.pszService = MS_CLIST_FRAMES_UCOLLFRAME;
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIColl = menuid;
- else Frames[framepos].MenuHandles.MIColl = menuid;
-
- //floating
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Floating mode");
- mi.flags = CMIF_CHILDPOPUP;
- mi.pszService = "Set_Floating";
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIFloating = menuid;
- else Frames[framepos].MenuHandles.MIFloating = menuid;
-
- popuppos += 100000;
-
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Border");
- mi.flags = CMIF_CHILDPOPUP | CMIF_CHECKED;
- mi.pszService = MS_CLIST_FRAMES_SETUNBORDER;
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIBorder = menuid;
- else Frames[framepos].MenuHandles.MIBorder = menuid;
-
- popuppos += 100000;
-
- //alignment root
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Align");
- mi.flags = CMIF_CHILDPOPUP | CMIF_ROOTPOPUP;
- mi.pszService = "";
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIAlignRoot = menuid;
- else Frames[framepos].MenuHandles.MIAlignRoot = menuid;
-
- mi.flags = CMIF_CHILDPOPUP;
- //align top
- mi.pszPopupName = (char *)menuid;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Top");
- mi.pszService = CLUIFRAMESSETALIGNALTOP;
- mi.pszContactOwner = (char *)alTop;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIAlignTop = menuid;
- else Frames[framepos].MenuHandles.MIAlignTop = menuid;
-
-
- //align client
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Client");
- mi.pszService = CLUIFRAMESSETALIGNALCLIENT;
- mi.pszContactOwner = (char *)alClient;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIAlignClient = menuid;
- else Frames[framepos].MenuHandles.MIAlignClient = menuid;
-
- //align bottom
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Bottom");
- mi.pszService = CLUIFRAMESSETALIGNALBOTTOM;
- mi.pszContactOwner = (char *)alBottom;
- menuid = pfnAdd(&mi);
- if (frameid == -1) contMIAlignBottom = menuid;
- else Frames[framepos].MenuHandles.MIAlignBottom = menuid;
-
- //position
- //position root
- mi.pszPopupName = (char *)root;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Position");
- mi.flags = CMIF_CHILDPOPUP | CMIF_ROOTPOPUP;
- mi.pszService = "";
- mi.pszContactOwner = (char *)0;
- menuid = pfnAdd(&mi);
-
- mi.pszPopupName = (char *)menuid;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Up");
- mi.flags = CMIF_CHILDPOPUP;
- mi.pszService = CLUIFRAMESMOVEUPDOWN;
- mi.pszContactOwner = (char *)1;
- pfnAdd(&mi);
-
- mi.pszPopupName = (char *)menuid;
- mi.popupPosition = frameid;
- mi.position = popuppos++;
- mi.pszName = LPGEN("&Down");
- mi.flags = CMIF_CHILDPOPUP;
- mi.pszService = CLUIFRAMESMOVEUPDOWN;
- mi.pszContactOwner = (char *)-1;
- pfnAdd(&mi);
-
- return 0;
-}
-
-INT_PTR ModifyMItem(WPARAM wParam, LPARAM lParam)
-{
- return CallService(MS_CLIST_MODIFYMENUITEM, wParam, lParam);
-}
-
-static int CLUIFramesModifyContextMenuForFrame(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
- int pos = id2pos(wParam);
-
- if (pos >= 0 && pos < nFramescount) {
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.flags = CMIM_NAME|CMIF_CHILDPOPUP|CMIF_TCHAR;
- mi.ptszName = Frames[pos].TitleBar.tbname ? Frames[pos].TitleBar.tbname : Frames[pos].name;
- ModifyMItem((WPARAM)contMITitle,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].visible) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIVisible,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].Locked) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMILock,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].TitleBar.ShowTitleBar) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMITBVisible,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].floating) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIFloating,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if ((Frames[pos].UseBorder)) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIBorder,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].align&alTop) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIAlignTop,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].align&alClient) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIAlignClient,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].align&alBottom) mi.flags |= CMIF_CHECKED;
- ModifyMItem((WPARAM)contMIAlignBottom,(LPARAM)&mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].collapsed) mi.flags |= CMIF_CHECKED;
- if ((!Frames[pos].visible)||(Frames[pos].Locked)||(pos == CLUIFramesGetalClientFrame())) mi.flags |= CMIF_GRAYED;
- ModifyMItem((WPARAM)contMIColl,(LPARAM)&mi);
- }
- ulockfrm();
- return 0;
-}
-
-INT_PTR CLUIFramesModifyMainMenuItems(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
-
- int pos = id2pos(wParam);
- if (pos >= 0 && pos < nFramescount) {
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.flags = CMIM_NAME|CMIF_CHILDPOPUP|CMIF_TCHAR;
- mi.ptszName = Frames[pos].TitleBar.tbname ? Frames[pos].TitleBar.tbname : Frames[pos].name;
- Menu_ModifyItem(Frames[pos].MenuHandles.MITitle, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].visible) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIVisible, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].Locked) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MILock, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].TitleBar.ShowTitleBar) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MITBVisible, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].floating) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIFloating, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if ((Frames[pos].UseBorder)) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIBorder, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP|((Frames[pos].align&alClient)?CMIF_GRAYED:0);
- if (Frames[pos].align&alTop) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIAlignTop, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].align&alClient) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIAlignClient, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP|((Frames[pos].align&alClient)?CMIF_GRAYED:0);
- if (Frames[pos].align&alBottom) mi.flags |= CMIF_CHECKED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIAlignBottom, &mi);
-
- mi.flags = CMIM_FLAGS|CMIF_CHILDPOPUP;
- if (Frames[pos].collapsed) mi.flags |= CMIF_CHECKED;
- if ((!Frames[pos].visible)||Frames[pos].Locked||(pos == CLUIFramesGetalClientFrame())) mi.flags |= CMIF_GRAYED;
- Menu_ModifyItem(Frames[pos].MenuHandles.MIColl, &mi);
- }
- ulockfrm();
- return 0;
-}
-
-//hiword(wParam) = frameid,loword(wParam) = flag
-INT_PTR CLUIFramesGetFrameOptions(WPARAM wParam, LPARAM lParam)
-{
- if (FramesSysNotStarted) return 0;
-
- lockfrm();
- int pos = id2pos(HIWORD(wParam));
- if (pos < 0 || pos >= nFramescount) {
- ulockfrm();
- return -1;
- }
-
- INT_PTR retval;
-
- switch(LOWORD(wParam)) {
- case FO_FLAGS:
- retval = 0;
- if (Frames[pos].visible) retval |= F_VISIBLE;
- if ( !Frames[pos].collapsed) retval |= F_UNCOLLAPSED;
- if (Frames[pos].Locked) retval |= F_LOCKED;
- if (Frames[pos].TitleBar.ShowTitleBar) retval |= F_SHOWTB;
- if (Frames[pos].TitleBar.ShowTitleBarTip) retval |= F_SHOWTBTIP;
- if ( !(GetWindowLongPtr(Frames[pos].hWnd,GWL_STYLE)&WS_BORDER)) retval |= F_NOBORDER;
- break;
-
- case FO_NAME:
- retval = (INT_PTR)Frames[pos].name;
- break;
-
- case FO_TBNAME:
- retval = (INT_PTR)Frames[pos].TitleBar.tbname;
- break;
-
- case FO_TBTIPNAME:
- retval = (INT_PTR)Frames[pos].TitleBar.tooltip;
- break;
-
- case FO_TBSTYLE:
- retval = GetWindowLongPtr(Frames[pos].TitleBar.hwnd,GWL_STYLE);
- break;
-
- case FO_TBEXSTYLE:
- retval = GetWindowLongPtr(Frames[pos].TitleBar.hwnd,GWL_EXSTYLE);
- break;
-
- case FO_ICON:
- retval = (INT_PTR)Frames[pos].TitleBar.hicon;
- break;
-
- case FO_HEIGHT:
- retval = (INT_PTR)Frames[pos].height;
- break;
-
- case FO_ALIGN:
- retval = (INT_PTR)Frames[pos].align;
- break;
- case FO_FLOATING:
- retval = (INT_PTR)Frames[pos].floating;
- break;
- default:
- retval = -1;
- break;
- }
- ulockfrm();
- return retval;
-}
-
-//hiword(wParam) = frameid,loword(wParam) = flag
-INT_PTR CLUIFramesSetFrameOptions(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
- int pos = id2pos(HIWORD(wParam));
- if (pos<0||pos>=nFramescount) {
- ulockfrm();
- return -1;
- }
-
- INT_PTR retval; // value to be returned
-
- switch(LOWORD(wParam) & ~FO_UNICODETEXT) {
- case FO_FLAGS:{
- int flag = lParam;
- LONG_PTR style;
-
- Frames[pos].dwFlags = flag;
- Frames[pos].visible = FALSE;
- if (flag&F_VISIBLE) Frames[pos].visible = TRUE;
-
- Frames[pos].collapsed = TRUE;
- if (flag&F_UNCOLLAPSED) Frames[pos].collapsed = FALSE;
-
- Frames[pos].Locked = FALSE;
- if (flag&F_LOCKED) Frames[pos].Locked = TRUE;
-
- Frames[pos].UseBorder = TRUE;
- if (flag&F_NOBORDER) Frames[pos].UseBorder = FALSE;
-
- Frames[pos].TitleBar.ShowTitleBar = FALSE;
- if (flag&F_SHOWTB) Frames[pos].TitleBar.ShowTitleBar = TRUE;
-
- Frames[pos].TitleBar.ShowTitleBarTip = FALSE;
- if (flag&F_SHOWTBTIP) Frames[pos].TitleBar.ShowTitleBarTip = TRUE;
-
- SendMessage(Frames[pos].TitleBar.hwndTip,TTM_ACTIVATE,(WPARAM)Frames[pos].TitleBar.ShowTitleBarTip,0);
-
- style = GetWindowLongPtr(Frames[pos].hWnd,GWL_STYLE);
- style |= WS_BORDER;
- if (flag&F_NOBORDER) {style &= (~WS_BORDER);}
- SetWindowLongPtr(Frames[pos].hWnd,GWL_STYLE,(LONG_PTR)style);
- ulockfrm();
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
- }
-
- case FO_NAME:
- if (lParam == 0) {ulockfrm(); return -1;}
- mir_free(Frames[pos].name);
- Frames[pos].name = mir_tstrdup((LPTSTR)lParam);
- ulockfrm();
- return 0;
-
- case FO_TBNAME:
- if (lParam == 0) {ulockfrm(); return(-1);}
- mir_free(Frames[pos].TitleBar.tbname);
- Frames[pos].TitleBar.tbname = mir_tstrdup((LPTSTR)lParam);
- ulockfrm();
- if (Frames[pos].floating&&(Frames[pos].TitleBar.tbname != NULL)){SetWindowText(Frames[pos].ContainerWnd,Frames[pos].TitleBar.tbname);}
- return 0;
-
- case FO_TBTIPNAME:
- if (lParam == 0) {ulockfrm(); return(-1);}
- mir_free(Frames[pos].TitleBar.tooltip);
- Frames[pos].TitleBar.tooltip = mir_tstrdup((LPTSTR)lParam);
- UpdateTBToolTip(pos);
- ulockfrm();
- return 0;
-
- case FO_TBSTYLE:
- SetWindowLongPtr(Frames[pos].TitleBar.hwnd,GWL_STYLE,lParam);
- ulockfrm();
- return 0;
-
- case FO_TBEXSTYLE:
- SetWindowLongPtr(Frames[pos].TitleBar.hwnd,GWL_EXSTYLE,lParam);
- ulockfrm();
- return 0;
-
- case FO_ICON:
- Frames[pos].TitleBar.hicon = (HICON)lParam;
- ulockfrm();
- return 0;
-
- case FO_HEIGHT:
- if (lParam<0) {ulockfrm(); return -1;}
- retval = Frames[pos].height;
- Frames[pos].height = lParam;
- if ( !CLUIFramesFitInSize()) Frames[pos].height = retval;
- retval = Frames[pos].height;
- ulockfrm();
-
- return retval;
-
- case FO_FLOATING:
- if (lParam<0) {ulockfrm(); return -1;}
-
- {
- int id = Frames[pos].id;
- Frames[pos].floating = !(lParam);
- ulockfrm();
-
- CLUIFrameSetFloat(id,1);//lparam = 1 use stored width and height
- return wParam;
- }
-
- case FO_ALIGN:
- if ( !(lParam&alTop || lParam&alBottom || lParam&alClient)) {
- OutputDebugStringA("Wrong align option \r\n");
- return (-1);
- }
-
- if ((lParam&alClient)&&(CLUIFramesGetalClientFrame()>=0)) { //only one alClient frame possible
- alclientFrame = -1;//recalc it
- ulockfrm();
- return -1;
- }
- Frames[pos].align = lParam;
-
- ulockfrm();
- return 0;
- }
- ulockfrm();
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return -1;
-}
-
-//wparam = lparam = 0
-static INT_PTR CLUIFramesShowAll(WPARAM wParam, LPARAM lParam)
-{
- for (int i=0;i<nFramescount;i++)
- Frames[i].visible = TRUE;
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-//wparam = lparam = 0
-INT_PTR CLUIFramesShowAllTitleBars(WPARAM wParam, LPARAM lParam)
-{
- for (int i=0;i<nFramescount;i++)
- Frames[i].TitleBar.ShowTitleBar = TRUE;
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-//wparam = lparam = 0
-INT_PTR CLUIFramesHideAllTitleBars(WPARAM wParam, LPARAM lParam)
-{
- for (int i=0;i<nFramescount;i++)
- Frames[i].TitleBar.ShowTitleBar = FALSE;
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-//wparam = frameid
-INT_PTR CLUIFramesShowHideFrame(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
- int pos = id2pos(wParam);
- if ( pos >= 0 && (int)pos < nFramescount)
- Frames[pos].visible = !Frames[pos].visible;
- if (Frames[pos].floating)
- CLUIFrameResizeFloatingFrame(pos);
- ulockfrm();
-
- if ( !Frames[pos].floating)
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-//wparam = frameid
-INT_PTR CLUIFramesShowHideFrameTitleBar(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
- int pos = id2pos(wParam);
- if ( pos >= 0 && (int)pos < nFramescount)
- Frames[pos].TitleBar.ShowTitleBar = !Frames[pos].TitleBar.ShowTitleBar;
-
- ulockfrm();
-
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-//wparam = frameid
-//lparam = -1 up ,1 down
-INT_PTR CLUIFramesMoveUpDown(WPARAM wParam, LPARAM lParam)
-{
- int pos,i,curpos,curalign,v,tmpval;
-
- lockfrm();
- pos = id2pos(wParam);
- if (pos >= 0 &&(int)pos < nFramescount) {
- SortData *sd;
- curpos = Frames[pos].order;
- curalign = Frames[pos].align;
- v = 0;
- sd = (SortData*)malloc(sizeof(SortData)*nFramescount);
- memset(sd,0,sizeof(SortData)*nFramescount);
- for (i=0; i < nFramescount; i++) {
- if (Frames[i].floating||(!Frames[i].visible)||(Frames[i].align != curalign))
- continue;
-
- sd[v].order = Frames[i].order;
- sd[v].realpos = i;
- v++;
- }
- if (v == 0) {
- ulockfrm();
- return 0;
- }
- qsort(sd,v,sizeof(SortData),sortfunc);
- for (i=0; i < v; i++) {
- if (sd[i].realpos == pos) {
- if (lParam == -1) {
- if (i >= v-1)
- break;
-
- tmpval = Frames[sd[i+1].realpos].order;
- Frames[sd[i+1].realpos].order = Frames[pos].order;
- Frames[pos].order = tmpval;
- break;
- }
- if (lParam == +1) {
- if (i < 1)
- break;
-
- tmpval = Frames[sd[i-1].realpos].order;
- Frames[sd[i-1].realpos].order = Frames[pos].order;
- Frames[pos].order = tmpval;
- break;
- }
- }
- }
-
- free(sd);
- CLUIFramesStoreFrameSettings(pos);
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- }
- ulockfrm();
- return 0;
-}
-
-//wparam = frameid
-//lparam = alignment
-INT_PTR CLUIFramesSetAlign(WPARAM wParam, LPARAM lParam)
-{
- CLUIFramesSetFrameOptions(MAKEWPARAM(FO_ALIGN,wParam),lParam);
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- return 0;
-}
-
-INT_PTR CLUIFramesSetAlignalTop(WPARAM wParam, LPARAM lParam)
-{
- return CLUIFramesSetAlign(wParam,alTop);
-}
-
-INT_PTR CLUIFramesSetAlignalBottom(WPARAM wParam, LPARAM lParam)
-{
- return CLUIFramesSetAlign(wParam,alBottom);
-}
-
-INT_PTR CLUIFramesSetAlignalClient(WPARAM wParam, LPARAM lParam)
-{
- return CLUIFramesSetAlign(wParam,alClient);
-}
-
-//wparam = frameid
-INT_PTR CLUIFramesLockUnlockFrame(WPARAM wParam, LPARAM lParam)
-{
- lockfrm();
- int pos = id2pos(wParam);
- if (pos >= 0 && (int)pos < nFramescount) {
- Frames[pos].Locked = !Frames[pos].Locked;
- CLUIFramesStoreFrameSettings(pos);
- }
- ulockfrm();
- return 0;
-}
-
-//wparam = frameid
-INT_PTR CLUIFramesSetUnSetBorder(WPARAM wParam, LPARAM lParam)
-{
- int oldflags;
-
- lockfrm();
- int FrameId = id2pos(wParam);
- if (FrameId == -1) {
- ulockfrm();
- return -1;
- }
-
- boolean flt = oldflags = CallService(MS_CLIST_FRAMES_GETFRAMEOPTIONS,MAKEWPARAM(FO_FLAGS,wParam),0);
- if (oldflags & F_NOBORDER)
- oldflags &= (~F_NOBORDER);
- else
- oldflags |= F_NOBORDER;
-
- HWND hw = Frames[FrameId].hWnd;
- RECT rc;
- GetWindowRect(hw, &rc);
-
- ulockfrm();
- CallService(MS_CLIST_FRAMES_SETFRAMEOPTIONS,MAKEWPARAM(FO_FLAGS,wParam),oldflags);
-
- SetWindowPos(hw,0,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE|SWP_DRAWFRAME);
- return 0;
-}
-
-//wparam = frameid
-INT_PTR CLUIFramesCollapseUnCollapseFrame(WPARAM wParam, LPARAM lParam)
-{
- int FrameId;
-
- lockfrm();
- FrameId = id2pos(wParam);
- if (FrameId >= 0 && FrameId < nFramescount) {
- int oldHeight;
-
- // do not collapse/uncollapse client/locked/invisible frames
- if (Frames[FrameId].align == alClient&&!(Frames[FrameId].Locked||(!Frames[FrameId].visible)||Frames[FrameId].floating)) {
- RECT rc;
- if (CallService(MS_CLIST_DOCKINGISDOCKED,0,0)) {
- ulockfrm();
- return 0;
- }
- if ( db_get_b(NULL,"CLUI","AutoSize",0)) {
- ulockfrm();
- return 0;
- }
-
- GetWindowRect(pcli->hwndContactList, &rc);
-
- if (Frames[FrameId].collapsed == TRUE) {
- rc.bottom -= rc.top;
- rc.bottom -= Frames[FrameId].height;
- Frames[FrameId].HeightWhenCollapsed = Frames[FrameId].height;
- Frames[FrameId].collapsed = FALSE;
- }
- else {
- rc.bottom -= rc.top;
- rc.bottom += Frames[FrameId].HeightWhenCollapsed;
- Frames[FrameId].collapsed = TRUE;
- }
-
- SetWindowPos(pcli->hwndContactList,NULL,0,0,rc.right-rc.left,rc.bottom,SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOMOVE);
-
- CLUIFramesStoreAllFrames();
- ulockfrm();
- return 0;
- }
-
- if (Frames[FrameId].Locked||(!Frames[FrameId].visible))
- return 0;
-
- oldHeight = Frames[FrameId].height;
-
- // if collapsed, uncollapse
- if (Frames[FrameId].collapsed == TRUE) {
- Frames[FrameId].HeightWhenCollapsed = Frames[FrameId].height;
- Frames[FrameId].height = UNCOLLAPSED_FRAME_SIZE;
- Frames[FrameId].collapsed = FALSE;
- }
- // if uncollapsed, collapse
- else {
- Frames[FrameId].height = Frames[FrameId].HeightWhenCollapsed;
- Frames[FrameId].collapsed = TRUE;
- }
-
- if ( !Frames[FrameId].floating) {
- if ( !CLUIFramesFitInSize()) {
- //cant collapse,we can resize only for height<alclient frame height
- int alfrm = CLUIFramesGetalClientFrame();
-
- if (alfrm != -1) {
- Frames[FrameId].collapsed = FALSE;
- if (Frames[alfrm].height>2*UNCOLLAPSED_FRAME_SIZE) {
- oldHeight = Frames[alfrm].height-UNCOLLAPSED_FRAME_SIZE;
- Frames[FrameId].collapsed = TRUE;
- }
- }
- else {
- int i,sumheight = 0;
- for (i=0; i < nFramescount; i++) {
- if ((Frames[i].align != alClient)&&(!Frames[i].floating)&&(Frames[i].visible)&&(!Frames[i].needhide)) {
- sumheight += (Frames[i].height)+(TitleBarH*btoint(Frames[i].TitleBar.ShowTitleBar))+2;
- return FALSE;
- }
-
- if (sumheight>ContactListHeight-0-2)
- Frames[FrameId].height = (ContactListHeight-0-2)-sumheight;
- }
- }
-
- Frames[FrameId].height = oldHeight;
-
- if (Frames[FrameId].collapsed == FALSE) {
- if (Frames[FrameId].floating)
- SetWindowPos(Frames[FrameId].ContainerWnd,HWND_TOP,0,0,Frames[FrameId].wndSize.right-Frames[FrameId].wndSize.left+6,Frames[FrameId].height+DEFAULT_TITLEBAR_HEIGHT+4,SWP_SHOWWINDOW|SWP_NOMOVE);
-
- ulockfrm();
- return -1;
- }
- }
- }
-
- ulockfrm();
-
- if ( !Frames[FrameId].floating)
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- else {
- //SetWindowPos(Frames[FrameId].hWnd,HWND_TOP,0,0,Frames[FrameId].wndSize.right-Frames[FrameId].wndSize.left,Frames[FrameId].height,SWP_SHOWWINDOW|SWP_NOMOVE);
- RECT contwnd;
- GetWindowRect(Frames[FrameId].ContainerWnd,&contwnd);
- contwnd.top = contwnd.bottom-contwnd.top;//height
- contwnd.left = contwnd.right-contwnd.left;//width
-
- contwnd.top -= (oldHeight-Frames[FrameId].height);//newheight
- SetWindowPos(Frames[FrameId].ContainerWnd,HWND_TOP,0,0,contwnd.left,contwnd.top,SWP_SHOWWINDOW|SWP_NOMOVE);
- }
- CLUIFramesStoreAllFrames();
- return 0;
- }
- else return -1;
-
- ulockfrm();
- return 0;
-}
-
-static int CLUIFramesLoadMainMenu()
-{
- if (MainMIRoot != (HGENMENU)-1) {
- CallService(MS_CLIST_REMOVEMAINMENUITEM,(WPARAM)MainMIRoot,0);
- MainMIRoot = (HGENMENU)-1;
- }
-
- // create root menu
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.icolibItem = LoadSkinnedIconHandle(SKINICON_OTHER_FRAME);
- mi.flags = CMIF_ROOTPOPUP;
- mi.position = 3000090000;
- mi.pszPopupName = (char*)-1;
- mi.pszName = LPGEN("Frames");
- mi.pszService = 0;
- MainMIRoot = Menu_AddMainMenuItem(&mi);
-
- // create frames menu
- int separator = 3000200000;
- for (int i=0; i < nFramescount; i++) {
- mi.hIcon = Frames[i].TitleBar.hicon;
- mi.flags = CMIF_CHILDPOPUP | CMIF_ROOTPOPUP | CMIF_TCHAR;
- mi.position = separator;
- mi.hParentMenu = MainMIRoot;
- mi.ptszName = Frames[i].TitleBar.tbname ? Frames[i].TitleBar.tbname : Frames[i].name;
- mi.pszService = 0;
- Frames[i].MenuHandles.MainMenuItem = Menu_AddMainMenuItem(&mi);
- CLUIFramesCreateMenuForFrame(Frames[i].id,(int)Frames[i].MenuHandles.MainMenuItem,separator,Menu_AddMainMenuItem);
- CLUIFramesModifyMainMenuItems(Frames[i].id,0);
- //NotifyEventHooks(hPreBuildFrameMenuEvent,i,(LPARAM)Frames[i].MenuHandles.MainMenuItem);
- CallService(MS_CLIST_FRAMEMENUNOTIFY,(WPARAM)Frames[i].id,(LPARAM)Frames[i].MenuHandles.MainMenuItem);
- separator++;
- }
-
- separator += 100000;
-
- // create "show all frames" menu
- mi.hIcon = NULL;
- mi.flags = CMIF_CHILDPOPUP;
- mi.position = separator++;
- mi.hParentMenu = MainMIRoot;
- mi.pszName = LPGEN("Show all frames");
- mi.pszService = MS_CLIST_FRAMES_SHOWALLFRAMES;
- Menu_AddMainMenuItem(&mi);
-
- // create "show all titlebars" menu
- mi.hIcon = NULL;
- mi.position = separator++;
- mi.hParentMenu = MainMIRoot;
- mi.flags = CMIF_CHILDPOPUP;
- mi.pszName = LPGEN("Show all title bars");
- mi.pszService = MS_CLIST_FRAMES_SHOWALLFRAMESTB;
- Menu_AddMainMenuItem(&mi);
-
- // create "hide all titlebars" menu
- mi.hIcon = NULL;
- mi.position = separator++;
- mi.hParentMenu = MainMIRoot;
- mi.flags = CMIF_CHILDPOPUP;
- mi.pszName = LPGEN("Hide all title bars");
- mi.pszService = MS_CLIST_FRAMES_HIDEALLFRAMESTB;
- Menu_AddMainMenuItem(&mi);
- return 0;
-}
-
-static HFONT CLUILoadTitleBarFont()
-{
- char facename[] = "MS Shell Dlg";
- HFONT hfont;
- LOGFONT logfont;
- memset(&logfont,0,sizeof(logfont));
- memcpy(logfont.lfFaceName,facename,sizeof(facename));
- logfont.lfWeight = FW_NORMAL;
- logfont.lfHeight = -10;
- hfont = CreateFontIndirect(&logfont);
- return hfont;
-}
-
-static int UpdateTBToolTip(int framepos)
-{
- TOOLINFO ti = { 0 };
- ti.cbSize = sizeof(ti);
- ti.lpszText = Frames[framepos].TitleBar.tooltip;
- ti.hinst = g_hInst;
- ti.uFlags = TTF_IDISHWND|TTF_SUBCLASS ;
- ti.uId = (UINT_PTR)Frames[framepos].TitleBar.hwnd;
-
- return SendMessage(Frames[framepos].TitleBar.hwndTip, TTM_UPDATETIPTEXT, 0, (LPARAM)&ti);
-}
-
-//wparam = (CLISTFrame*)clfrm
-INT_PTR CLUIFramesAddFrame(WPARAM wParam, LPARAM lParam)
-{
- int retval;
- LONG_PTR style;
- CLISTFrame *clfrm = (CLISTFrame *)wParam;
-
- if (pcli->hwndContactList == 0) return -1;
- if (FramesSysNotStarted) return -1;
- if (clfrm->cbSize != sizeof(CLISTFrame)) return -1;
- if ( !(TitleBarFont)) TitleBarFont = CLUILoadTitleBarFont();
-
- lockfrm();
- if (nFramescount>=MAX_FRAMES) { ulockfrm(); return -1;}
- Frames = (FRAMEWND*)realloc(Frames,sizeof(FRAMEWND)*(nFramescount+1));
-
- memset(&Frames[nFramescount],0,sizeof(FRAMEWND));
- Frames[nFramescount].id = NextFrameId++;
- Frames[nFramescount].align = clfrm->align;
- Frames[nFramescount].hWnd = clfrm->hWnd;
- Frames[nFramescount].height = clfrm->height;
- Frames[nFramescount].TitleBar.hicon = clfrm->hIcon;
- Frames[nFramescount].floating = FALSE;
-
- //override tbbtip
- //clfrm->Flags != F_SHOWTBTIP;
- //
- if ( db_get_b(0,CLUIFrameModule,"RemoveAllBorders",0) == 1)
- clfrm->Flags |= F_NOBORDER;
-
- Frames[nFramescount].dwFlags = clfrm->Flags;
-
- if (clfrm->name == NULL||((clfrm->Flags&F_UNICODE) ? lstrlenW(clfrm->wname) : lstrlenA(clfrm->name)) == 0) {
- Frames[nFramescount].name = (LPTSTR)malloc(255 * sizeof(TCHAR));
- GetClassName(Frames[nFramescount].hWnd,Frames[nFramescount].name,255);
- }
- else Frames[nFramescount].name = (clfrm->Flags&F_UNICODE) ? mir_u2t(clfrm->wname) : mir_a2t(clfrm->name);
-
- if (IsBadCodePtr((FARPROC)clfrm->TBname) || clfrm->TBname == NULL
- || ((clfrm->Flags&F_UNICODE) ? lstrlenW(clfrm->TBwname) : lstrlenA(clfrm->TBname)) == 0)
- Frames[nFramescount].TitleBar.tbname = mir_tstrdup(Frames[nFramescount].name);
- else
- Frames[nFramescount].TitleBar.tbname = (clfrm->Flags&F_UNICODE) ? mir_u2t(clfrm->TBwname) : mir_a2t(clfrm->TBname);
- Frames[nFramescount].needhide = FALSE;
- Frames[nFramescount].TitleBar.ShowTitleBar = (clfrm->Flags&F_SHOWTB?TRUE:FALSE);
- Frames[nFramescount].TitleBar.ShowTitleBarTip = (clfrm->Flags&F_SHOWTBTIP?TRUE:FALSE);
-
- Frames[nFramescount].collapsed = clfrm->Flags & F_UNCOLLAPSED ? FALSE:TRUE;
- Frames[nFramescount].Locked = clfrm->Flags & F_LOCKED ? TRUE : FALSE;
- Frames[nFramescount].visible = clfrm->Flags & F_VISIBLE ? TRUE : FALSE;
-
- Frames[nFramescount].UseBorder = (clfrm->Flags&F_NOBORDER)?FALSE:TRUE;
-
- // create frame
- Frames[nFramescount].TitleBar.hwnd = CreateWindow(CLUIFrameTitleBarClassName,Frames[nFramescount].name,
- ( db_get_b(0,CLUIFrameModule,"RemoveAllTitleBarBorders",0)?0:WS_BORDER) |WS_CHILD|WS_CLIPCHILDREN|
- (Frames[nFramescount].TitleBar.ShowTitleBar?WS_VISIBLE:0)| WS_CLIPCHILDREN,
- 0,0,0,0,pcli->hwndContactList,NULL,g_hInst,NULL);
- SetWindowLongPtr(Frames[nFramescount].TitleBar.hwnd,GWLP_USERDATA,Frames[nFramescount].id);
-
- Frames[nFramescount].TitleBar.hwndTip = CreateWindowEx(0, TOOLTIPS_CLASS, NULL,
- WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
- CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, CW_USEDEFAULT,
- pcli->hwndContactList, NULL, g_hInst, NULL);
-
- SetWindowPos(Frames[nFramescount].TitleBar.hwndTip, HWND_TOPMOST,0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
-
- TOOLINFO ti = { 0 };
- ti.cbSize = sizeof(ti);
- ti.lpszText = _T("");
- ti.hinst = g_hInst;
- ti.uFlags = TTF_IDISHWND|TTF_SUBCLASS ;
- ti.uId = (UINT_PTR)Frames[nFramescount].TitleBar.hwnd;
- SendMessage(Frames[nFramescount].TitleBar.hwndTip,TTM_ADDTOOL,0,(LPARAM)&ti);
-
- SendMessage(Frames[nFramescount].TitleBar.hwndTip,TTM_ACTIVATE,(WPARAM)Frames[nFramescount].TitleBar.ShowTitleBarTip,0);
-
- Frames[nFramescount].oldstyles = GetWindowLongPtr(Frames[nFramescount].hWnd,GWL_STYLE);
- Frames[nFramescount].TitleBar.oldstyles = GetWindowLongPtr(Frames[nFramescount].TitleBar.hwnd,GWL_STYLE);
- //Frames[nFramescount].FloatingPos.x =
-
- retval = Frames[nFramescount].id;
- Frames[nFramescount].order = nFramescount+1;
- nFramescount++;
-
- CLUIFramesLoadFrameSettings(id2pos(retval));
- style = GetWindowLongPtr(Frames[nFramescount-1].hWnd,GWL_STYLE);
- style &= (~WS_BORDER);
- style |= ((Frames[nFramescount-1].UseBorder)?WS_BORDER:0);
- SetWindowLongPtr(Frames[nFramescount-1].hWnd,GWL_STYLE,style);
-
- if (Frames[nFramescount-1].order == 0){Frames[nFramescount-1].order = nFramescount;}
- ulockfrm();
-
- alclientFrame = -1;//recalc it
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
-
- if (Frames[nFramescount-1].floating) {
- Frames[nFramescount-1].floating = FALSE;
- CLUIFrameSetFloat(retval,1);//lparam = 1 use stored width and height
- }
-
- return retval;
-}
-
-static INT_PTR CLUIFramesRemoveFrame(WPARAM wParam, LPARAM lParam)
-{
- if (FramesSysNotStarted)
- return -1;
-
- lockfrm();
- int pos = id2pos(wParam);
-
- if (pos<0||pos>nFramescount){ulockfrm();return(-1);}
-
- mir_free(Frames[pos].name);
- mir_free(Frames[pos].TitleBar.tbname);
- mir_free(Frames[pos].TitleBar.tooltip);
-
- DestroyWindow(Frames[pos].hWnd);
- Frames[pos].hWnd = (HWND)-1;
- DestroyWindow(Frames[pos].TitleBar.hwnd);
- Frames[pos].TitleBar.hwnd = (HWND)-1;
- DestroyWindow(Frames[pos].ContainerWnd);
- Frames[pos].ContainerWnd = (HWND)-1;
- DestroyMenu(Frames[pos].TitleBar.hmenu);
-
- RemoveItemFromList(pos,&Frames,&nFramescount);
-
- ulockfrm();
- InvalidateRect(pcli->hwndContactList,NULL,TRUE);
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- InvalidateRect(pcli->hwndContactList,NULL,TRUE);
-
- return 0;
-}
-
-
-int CLUIFramesForceUpdateTB(const FRAMEWND *Frame)
-{
- if (Frame->TitleBar.hwnd != 0)
- RedrawWindow(Frame->TitleBar.hwnd,NULL,NULL,RDW_ALLCHILDREN|RDW_UPDATENOW|RDW_ERASE|RDW_INVALIDATE|RDW_FRAME);
- return 0;
-}
-
-int CLUIFramesForceUpdateFrame(const FRAMEWND *Frame)
-{
- if (Frame->hWnd != 0) {
- RedrawWindow(Frame->hWnd,NULL,NULL,RDW_UPDATENOW|RDW_FRAME|RDW_ERASE|RDW_INVALIDATE);
- UpdateWindow(Frame->hWnd);
- }
- if (Frame->floating) {
- if (Frame->ContainerWnd != 0)
- RedrawWindow(Frame->ContainerWnd,NULL,NULL,RDW_UPDATENOW|RDW_ALLCHILDREN|RDW_ERASE|RDW_INVALIDATE|RDW_FRAME);
- }
- return 0;
-}
-
-int CLUIFrameMoveResize(const FRAMEWND *Frame)
-{
- //int b;
- // we need to show or hide the frame?
- if (Frame->visible&&(!Frame->needhide)) {
- ShowWindow(Frame->hWnd,SW_SHOW);
- ShowWindow(Frame->TitleBar.hwnd,Frame->TitleBar.ShowTitleBar == TRUE?SW_SHOW:SW_HIDE);
- }
- else {
- ShowWindow(Frame->hWnd,SW_HIDE);
- ShowWindow(Frame->TitleBar.hwnd,SW_HIDE);
- return 0;
- }
-
- // set frame position
- SetWindowPos(Frame->hWnd,NULL,Frame->wndSize.left,Frame->wndSize.top,
- Frame->wndSize.right-Frame->wndSize.left,
- Frame->wndSize.bottom-Frame->wndSize.top,SWP_NOZORDER|SWP_NOREDRAW);
-
- // set titlebar position
- if (Frame->TitleBar.ShowTitleBar)
- SetWindowPos(Frame->TitleBar.hwnd,NULL,Frame->wndSize.left,Frame->wndSize.top-TitleBarH-GapBetweenTitlebar,
- Frame->wndSize.right-Frame->wndSize.left,
- TitleBarH,SWP_NOZORDER|SWP_NOREDRAW );
-
- return 0;
-}
-
-BOOLEAN CLUIFramesFitInSize(void)
-{
- int sumheight = 0;
- int tbh = 0; // title bar height
-
- int clientfrm = CLUIFramesGetalClientFrame();
- if (clientfrm != -1)
- tbh = TitleBarH*btoint(Frames[clientfrm].TitleBar.ShowTitleBar);
-
- for (int i=0;i<nFramescount;i++) {
- if ((Frames[i].align != alClient)&&(!Frames[i].floating)&&(Frames[i].visible)&&(!Frames[i].needhide)) {
- sumheight += (Frames[i].height)+(TitleBarH*btoint(Frames[i].TitleBar.ShowTitleBar))+2;
- if (sumheight>ContactListHeight-tbh-2)
- return FALSE;
- }
- }
- return TRUE;
-}
-
-int CLUIFramesGetMinHeight()
-{
- int i,tbh,clientfrm,sumheight = 0;
- RECT border;
- int allbord = 0;
- if (pcli->hwndContactList == NULL) return 0;
- lockfrm();
-
- // search for alClient frame and get the titlebar's height
- tbh = 0;
- clientfrm = CLUIFramesGetalClientFrame();
- if (clientfrm != -1)
- tbh = TitleBarH*btoint(Frames[clientfrm].TitleBar.ShowTitleBar);
-
- for (i=0; i < nFramescount; i++) {
- if ((Frames[i].align != alClient)&&(Frames[i].visible)&&(!Frames[i].needhide)&&(!Frames[i].floating)) {
- RECT wsize;
-
- GetWindowRect(Frames[i].hWnd,&wsize);
- sumheight += (wsize.bottom-wsize.top)+(TitleBarH*btoint(Frames[i].TitleBar.ShowTitleBar))+3;
- }
- }
- ulockfrm();
- GetBorderSize(pcli->hwndContactList,&border);
- return (sumheight+border.top+border.bottom+allbord+tbh+3);
-}
-
-int CLUIFramesResize(const RECT newsize)
-{
- int sumheight = 9999999,newheight;
- int prevframe,prevframebottomline;
- int tbh,curfrmtbh;
- int drawitems;
- int clientfrm;
- int i,j;
- int sepw = GapBetweenFrames;
- SortData *sdarray;
-
- GapBetweenTitlebar = (int)db_get_dw(NULL,"CLUIFrames","GapBetweenTitleBar",1);
- GapBetweenFrames = db_get_dw(NULL,"CLUIFrames","GapBetweenFrames",1);
- TitleBarH = db_get_dw(NULL,"CLUIFrames","TitleBarH",DEFAULT_TITLEBAR_HEIGHT);
-
- if (nFramescount < 1)
- return 0;
-
- newheight = newsize.bottom-newsize.top;
-
- // search for alClient frame and get the titlebar's height
- tbh = 0;
- clientfrm = CLUIFramesGetalClientFrame();
- if (clientfrm != -1)
- tbh = (TitleBarH+GapBetweenTitlebar)*btoint(Frames[clientfrm].TitleBar.ShowTitleBar);
-
- for (i=0; i < nFramescount; i++) {
- if ( !Frames[i].floating) {
- Frames[i].needhide = FALSE;
- Frames[i].wndSize.left = 0;
- Frames[i].wndSize.right = newsize.right-0;
- }
- }
-
- //sorting stuff
- sdarray = (SortData*)malloc(sizeof(SortData)*nFramescount);
- if (sdarray == NULL){return(-1);}
- for (i=0;i<nFramescount;i++) {
- sdarray[i].order = Frames[i].order;
- sdarray[i].realpos = i;
- }
- qsort(sdarray,nFramescount,sizeof(SortData),sortfunc);
-
- drawitems = nFramescount;
-
- while(sumheight>(newheight-tbh)&&drawitems>0) {
- sumheight = 0;
- drawitems = 0;
- for (i=0;i<nFramescount;i++) {
- if (((Frames[i].align != alClient))&&(!Frames[i].floating)&&(Frames[i].visible)&&(!Frames[i].needhide)) {
- drawitems++;
- curfrmtbh = (TitleBarH+GapBetweenTitlebar)*btoint(Frames[i].TitleBar.ShowTitleBar);
- sumheight += (Frames[i].height)+curfrmtbh+sepw+(Frames[i].UseBorder?2:0);
- if (sumheight>newheight-tbh) {
- sumheight -= (Frames[i].height)+curfrmtbh+sepw;
- Frames[i].needhide = TRUE;
- drawitems--;
- break;
- }
- }
- }
- }
-
- prevframe = -1;
- prevframebottomline = 0;
- for (j = 0;j<nFramescount;j++) {
- //move all alTop frames
- i = sdarray[j].realpos;
- if ((!Frames[i].needhide)&&(!Frames[i].floating)&&(Frames[i].visible)&&(Frames[i].align == alTop)) {
- curfrmtbh = (TitleBarH+GapBetweenTitlebar)*btoint(Frames[i].TitleBar.ShowTitleBar);
- Frames[i].wndSize.top = prevframebottomline+sepw+(curfrmtbh);
- Frames[i].wndSize.bottom = Frames[i].height+Frames[i].wndSize.top+(Frames[i].UseBorder?2:0);
- Frames[i].prevvisframe = prevframe;
- prevframe = i;
- prevframebottomline = Frames[i].wndSize.bottom;
- if (prevframebottomline>newheight){
- //prevframebottomline -= Frames[i].height+(curfrmtbh+1);
- //Frames[i].needhide = TRUE;
- }
- }
- }
-
- if (sumheight<newheight) {
- for (j = 0;j<nFramescount;j++) {
- //move alClient frame
- i = sdarray[j].realpos;
- if ((!Frames[i].needhide)&&(!Frames[i].floating)&&(Frames[i].visible)&&(Frames[i].align == alClient)) {
- int oldh;
- Frames[i].wndSize.top = prevframebottomline+sepw+(tbh);
- Frames[i].wndSize.bottom = Frames[i].wndSize.top+newheight-sumheight-tbh-sepw;
-
- oldh = Frames[i].height;
- Frames[i].height = Frames[i].wndSize.bottom-Frames[i].wndSize.top;
- Frames[i].prevvisframe = prevframe;
- prevframe = i;
- prevframebottomline = Frames[i].wndSize.bottom;
- if (prevframebottomline>newheight) {
- //prevframebottomline -= Frames[i].height+(tbh+1);
- //Frames[i].needhide = TRUE;
- }
- break;
- }
- }
- }
-
- //newheight
- prevframebottomline = newheight+sepw;
- //prevframe = -1;
- for (j = nFramescount-1;j>=0;j--) {
- //move all alBottom frames
- i = sdarray[j].realpos;
- if ((Frames[i].visible)&&(!Frames[i].floating)&&(!Frames[i].needhide)&&(Frames[i].align == alBottom)) {
- curfrmtbh = (TitleBarH+GapBetweenTitlebar)*btoint(Frames[i].TitleBar.ShowTitleBar);
-
- Frames[i].wndSize.bottom = prevframebottomline-sepw;
- Frames[i].wndSize.top = Frames[i].wndSize.bottom-Frames[i].height-(Frames[i].UseBorder?2:0);
- Frames[i].prevvisframe = prevframe;
- prevframe = i;
- prevframebottomline = Frames[i].wndSize.top/*-1*/-curfrmtbh;
- if (prevframebottomline>newheight) {
-
- }
- }
- }
-
- if (sdarray != NULL) {
- free(sdarray);
- sdarray = NULL;
- }
-
- for (i=0;i<nFramescount;i++) {
- if (Frames[i].floating)
- CLUIFrameResizeFloatingFrame(i);
- else
- CLUIFrameMoveResize(&Frames[i]);
- }
- return 0;
-}
-
-INT_PTR CLUIFramesUpdateFrame(WPARAM wParam, LPARAM lParam)
-{
- if (FramesSysNotStarted) return -1;
- if (wParam == -1) { CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0); return 0;}
- if (lParam&FU_FMPOS) CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,1);
- lockfrm();
- int pos = id2pos(wParam);
- if (pos < 0 || pos >= nFramescount) { ulockfrm(); return -1;}
- if (lParam & FU_TBREDRAW) CLUIFramesForceUpdateTB(&Frames[pos]);
- if (lParam & FU_FMREDRAW) CLUIFramesForceUpdateFrame(&Frames[pos]);
- ulockfrm();
-
- return 0;
-}
-
-int CLUIFramesOnClistResize(WPARAM wParam, LPARAM lParam)
-{
- RECT nRect,rcStatus;
- int tick,i;
-
- if (FramesSysNotStarted) return -1;
- lockfrm();
-
- GetClientRect(pcli->hwndContactList,&nRect);
-
- rcStatus.top = rcStatus.bottom = 0;
-
- nRect.bottom -= nRect.top;
- nRect.bottom -= (rcStatus.bottom-rcStatus.top);
- nRect.right -= nRect.left;
- nRect.left = 0;
- nRect.top = 0;
- ContactListHeight = nRect.bottom;
-
- tick = GetTickCount();
-
- CLUIFramesResize(nRect);
-
- for (i=0; i < nFramescount; i++) {
- CLUIFramesForceUpdateFrame(&Frames[i]);
- CLUIFramesForceUpdateTB(&Frames[i]);
- }
-
- //resizing = FALSE;
- ulockfrm();
- tick = GetTickCount()-tick;
-
- if (pcli->hwndContactList != 0) InvalidateRect(pcli->hwndContactList,NULL,TRUE);
- if (pcli->hwndContactList != 0) UpdateWindow(pcli->hwndContactList);
-
- Sleep(0);
-
- //dont save to database too many times
- if (GetTickCount() - LastStoreTick > 1000) {
- CLUIFramesStoreAllFrames();
- LastStoreTick = GetTickCount();
- }
- return 0;
-}
-
-static HBITMAP hBmpBackground;
-static int backgroundBmpUse;
-static COLORREF bkColour;
-static COLORREF SelBkColour;
-boolean AlignCOLLIconToLeft; //will hide frame icon
-
-int OnFrameTitleBarBackgroundChange(WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
-
- AlignCOLLIconToLeft = db_get_b(NULL,"FrameTitleBar","AlignCOLLIconToLeft",0);
-
- bkColour = db_get_dw(NULL,"FrameTitleBar","BkColour",CLCDEFAULT_BKCOLOUR);
- //SelBkColour = db_get_dw(NULL,"FrameTitleBar","SelBkColour",0);
-
- if (hBmpBackground) {DeleteObject(hBmpBackground); hBmpBackground = NULL;}
- if ( db_get_b(NULL,"FrameTitleBar","UseBitmap",CLCDEFAULT_USEBITMAP)) {
- if ( !db_get(NULL,"FrameTitleBar","BkBitmap",&dbv)) {
- hBmpBackground = (HBITMAP)CallService(MS_UTILS_LOADBITMAP,0,(LPARAM)dbv.pszVal);
- mir_free(dbv.pszVal);
- }
- }
- backgroundBmpUse = db_get_w(NULL,"FrameTitleBar","BkBmpUse",CLCDEFAULT_BKBMPUSE);
-
- CLUIFramesOnClistResize(0,0);
- return 0;
-}
-
-void DrawBackGroundTTB(HWND hwnd,HDC mhdc)
-{
- HDC hdcMem,hdc;
- RECT clRect,*rcPaint;
-
- int yScroll = 0;
- int y;
- PAINTSTRUCT paintst = {0};
- HBITMAP hBmpOsb,hOldBmp;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
- int grey = 0;
- HFONT oFont;
- HBRUSH hBrushAlternateGrey = NULL;
-
- HFONT hFont;
-
- //InvalidateRect(hwnd,0,FALSE);
-
- hFont = (HFONT)SendMessage(hwnd,WM_GETFONT,0,0);
-
- if (mhdc) {
- hdc = mhdc;
- rcPaint = NULL;
- }
- else {
- hdc = BeginPaint(hwnd,&paintst);
- rcPaint = &(paintst.rcPaint);
- }
-
- GetClientRect(hwnd,&clRect);
- if (rcPaint == NULL) rcPaint = &clRect;
- if (rcPaint->right-rcPaint->left == 0||rcPaint->top-rcPaint->bottom == 0) rcPaint = &clRect;
- y = -yScroll;
- hdcMem = CreateCompatibleDC(hdc);
- hBmpOsb = CreateBitmap(clRect.right,clRect.bottom,1,GetDeviceCaps(hdc,BITSPIXEL),NULL);
- hOldBmp = (HBITMAP)SelectObject(hdcMem,hBmpOsb);
- oFont = (HFONT)SelectObject(hdcMem,hFont);
- SetBkMode(hdcMem,TRANSPARENT);
- {
- HBRUSH hBrush = CreateSolidBrush(bkColour);
- HBRUSH hoBrush = (HBRUSH)SelectObject(hdcMem,hBrush);
- FillRect(hdcMem,rcPaint,hBrush);
- SelectObject(hdcMem,hoBrush);
- DeleteObject(hBrush);
- if (hBmpBackground) {
- BITMAP bmp;
- HDC hdcBmp;
- int x,y;
- int maxx,maxy;
- int destw,desth;
-
- GetObject(hBmpBackground,sizeof(bmp),&bmp);
- hdcBmp = CreateCompatibleDC(hdcMem);
- SelectObject(hdcBmp,hBmpBackground);
- y = backgroundBmpUse&CLBF_SCROLL?-yScroll:0;
- maxx = backgroundBmpUse&CLBF_TILEH?clRect.right:1;
- maxy = backgroundBmpUse&CLBF_TILEV?maxy = rcPaint->bottom:y+1;
- switch(backgroundBmpUse&CLBM_TYPE) {
- case CLB_STRETCH:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- if (clRect.right*bmp.bmHeight<clRect.bottom*bmp.bmWidth) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- }
- else {
- destw = clRect.right;
- desth = clRect.bottom;
- }
- break;
- case CLB_STRETCHH:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- else {
- destw = clRect.right;
- desth = bmp.bmHeight;
- }
- break;
- case CLB_STRETCHV:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = bmp.bmWidth;
- desth = clRect.bottom;
- }
- break;
- default: //clb_topleft
- destw = bmp.bmWidth;
- desth = bmp.bmHeight;
- break;
- }
- desth = clRect.bottom -clRect.top;
- for (;y<maxy;y += desth) {
- if (y<rcPaint->top-desth) continue;
- for (x = 0;x<maxx;x += destw)
- StretchBlt(hdcMem,x,y,destw,desth,hdcBmp,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
- }
- DeleteDC(hdcBmp);
- }
- }
-
- BitBlt(hdc,rcPaint->left,rcPaint->top,rcPaint->right-rcPaint->left,rcPaint->bottom-rcPaint->top,hdcMem,rcPaint->left,rcPaint->top,SRCCOPY);
-
- SelectObject(hdcMem,hOldBmp);
- SelectObject(hdcMem,oFont);
- DeleteObject(hBmpOsb);
- DeleteDC(hdcMem);
- paintst.fErase = FALSE;
- //DeleteObject(hFont);
- if ( !mhdc)
- EndPaint(hwnd,&paintst);
-}
-
-static int DrawTitleBar(HDC dc,RECT rect,int Frameid)
-{
- HDC paintDC = dc;
-
- HDC hdcMem = CreateCompatibleDC(paintDC);
- HBITMAP hBmpOsb = CreateBitmap(rect.right,rect.bottom,1,GetDeviceCaps(paintDC,BITSPIXEL),NULL);
- HBITMAP hoBmp = (HBITMAP)SelectObject(hdcMem,hBmpOsb);
-
- HFONT hoTTBFont = (HFONT)SelectObject(hdcMem,TitleBarFont);
- SetBkMode(hdcMem,TRANSPARENT);
-
- HBRUSH hBack = GetSysColorBrush(COLOR_3DFACE);
- HBRUSH hoBrush = (HBRUSH)SelectObject(hdcMem,hBack);
-
- lockfrm();
-
- int pos = id2pos(Frameid);
- if (pos >= 0 && pos < nFramescount) {
- GetClientRect(Frames[pos].TitleBar.hwnd,&Frames[pos].TitleBar.wndSize);
-
- //set font charset
- HFONT hf = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
- if (TitleBarLogFont.lfHeight != 0)
- hf = CreateFontIndirectA(&TitleBarLogFont);
-
- HFONT oFont = (HFONT)SelectObject(hdcMem,hf);
-
- DrawBackGroundTTB(Frames[pos].TitleBar.hwnd,hdcMem);
- //hFront = CreateSolidPe (SelBkColour);
- //SelectObject(hdcMem,hFront);
- SelBkColour = db_get_dw(NULL,"CLUIFrames","FramesTitleBarFontCol",0);
- if (SelBkColour) SetTextColor(hdcMem,SelBkColour);
-
- if ( !AlignCOLLIconToLeft) {
-
- if (Frames[pos].TitleBar.hicon != NULL) {
- //(TitleBarH>>1)-(GetSystemMetrics(SM_CXSMICON)>>1)
- DrawIconEx(hdcMem,2,((TitleBarH>>1)-(GetSystemMetrics(SM_CYSMICON)>>1)),Frames[pos].TitleBar.hicon,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0,NULL,DI_NORMAL);
- TextOut(hdcMem,GetSystemMetrics(SM_CYSMICON)+4,0,Frames[pos].TitleBar.tbname,lstrlen(Frames[pos].TitleBar.tbname));
- }
- else
- TextOut(hdcMem,2,0,Frames[pos].TitleBar.tbname,lstrlen(Frames[pos].TitleBar.tbname));
- }
- else
- TextOut(hdcMem,GetSystemMetrics(SM_CXSMICON)+2,0,Frames[pos].TitleBar.tbname,lstrlen(Frames[pos].TitleBar.tbname));
-
- if ( !AlignCOLLIconToLeft)
- DrawIconEx(hdcMem,Frames[pos].TitleBar.wndSize.right-GetSystemMetrics(SM_CXSMICON)-2,((TitleBarH>>1)-(GetSystemMetrics(SM_CXSMICON)>>1)),Frames[pos].collapsed?LoadSkinnedIcon(SKINICON_OTHER_GROUPOPEN):LoadSkinnedIcon(SKINICON_OTHER_GROUPSHUT),GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0,NULL,DI_NORMAL);
- else
- DrawIconEx(hdcMem,0,((TitleBarH>>1)-(GetSystemMetrics(SM_CXSMICON)>>1)),Frames[pos].collapsed?LoadSkinnedIcon(SKINICON_OTHER_GROUPOPEN):LoadSkinnedIcon(SKINICON_OTHER_GROUPSHUT),GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0,NULL,DI_NORMAL);
-
- DeleteObject(hf);
- SelectObject(hdcMem,oFont);
- }
- ulockfrm();
-
- BitBlt(paintDC,rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,hdcMem,rect.left,rect.top,SRCCOPY);
-
- SelectObject(hdcMem,hoBmp);
- SelectObject(hdcMem,hoBrush);
- SelectObject(hdcMem,hoTTBFont);
- DeleteDC(hdcMem);
- DeleteObject(hBack);
- DeleteObject(hBmpOsb);
- return 0;
-}
-
-//for old multiwindow
-#define MPCF_CONTEXTFRAMEMENU 3
-POINT ptOld;
-short nLeft = 0;
-short nTop = 0;
-
-LRESULT CALLBACK CLUIFrameTitleBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- RECT rect;
- int Frameid,Framemod,direction;
- int xpos,ypos;
-
- Frameid = (GetWindowLongPtr(hwnd,GWLP_USERDATA));
- memset(&rect,0,sizeof(rect));
-
- switch(msg) {
- case WM_CREATE:
- SendMessage(hwnd,WM_SETFONT,(WPARAM)TitleBarFont,0);
- return FALSE;
-
- case WM_MEASUREITEM:
- return CallService(MS_CLIST_MENUMEASUREITEM,wParam,lParam);
-
- case WM_DRAWITEM:
- return CallService(MS_CLIST_MENUDRAWITEM,wParam,lParam);
-
- case WM_ENABLE:
- if (hwnd != 0) InvalidateRect(hwnd,NULL,FALSE);
- return 0;
-
- case WM_COMMAND:
- if ( CallService(MS_CLIST_MENUPROCESSCOMMAND, MAKEWPARAM(LOWORD(wParam),0), Frameid))
- break;
-
- if (HIWORD(wParam) == 0) { //mouse events for self created menu
- int framepos = id2pos(Frameid);
- if (framepos == -1)
- break;
-
- switch(LOWORD(wParam)) {
- case frame_menu_lock:
- Frames[framepos].Locked = !Frames[framepos].Locked;
- break;
- case frame_menu_visible:
- Frames[framepos].visible = !Frames[framepos].visible;
- break;
- case frame_menu_showtitlebar:
- Frames[framepos].TitleBar.ShowTitleBar = !Frames[framepos].TitleBar.ShowTitleBar;
- break;
- case frame_menu_floating:
- CLUIFrameSetFloat(Frameid,0);
- break;
- }
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- }
- break;
-
- case WM_RBUTTONDOWN:
- {
- HMENU hmenu;
- POINT pt;
- GetCursorPos(&pt);
-
- if (ServiceExists(MS_CLIST_MENUBUILDFRAMECONTEXT))
- hmenu = (HMENU)CallService(MS_CLIST_MENUBUILDFRAMECONTEXT,Frameid,0);
- else {
- //legacy menu support
- int framepos = id2pos(Frameid);
- lockfrm();
- if (framepos == -1){ulockfrm();break;}
- hmenu = CreatePopupMenu();
-
- AppendMenu(hmenu,MF_STRING|MF_DISABLED|MF_GRAYED,15,Frames[framepos].name);
- AppendMenu(hmenu,MF_SEPARATOR,16,_T(""));
-
- if (Frames[framepos].Locked)
- {AppendMenu(hmenu,MF_STRING|MF_CHECKED,frame_menu_lock,TranslateT("Lock frame"));}
- else{AppendMenu(hmenu,MF_STRING,frame_menu_lock,TranslateT("Lock frame"));}
-
- if (Frames[framepos].visible)
- {AppendMenu(hmenu,MF_STRING|MF_CHECKED,frame_menu_visible,TranslateT("Visible"));}
- else{AppendMenu(hmenu,MF_STRING,frame_menu_visible,TranslateT("Visible"));}
-
- if (Frames[framepos].TitleBar.ShowTitleBar)
- {AppendMenu(hmenu,MF_STRING|MF_CHECKED,frame_menu_showtitlebar,TranslateT("Show title bar"));}
- else{AppendMenu(hmenu,MF_STRING,frame_menu_showtitlebar,TranslateT("Show title bar"));}
-
- if (Frames[framepos].floating)
- {AppendMenu(hmenu,MF_STRING|MF_CHECKED,frame_menu_floating,TranslateT("Floating"));}
- else{AppendMenu(hmenu,MF_STRING,frame_menu_floating,TranslateT("Floating"));}
-
- ulockfrm();
- }
-
- TrackPopupMenu(hmenu,TPM_LEFTALIGN,pt.x,pt.y,0,hwnd,0);
- DestroyMenu(hmenu);
- }
- break;
-
- case WM_LBUTTONDBLCLK:
- Framemod = -1;
- lbypos = -1;oldframeheight = -1;ReleaseCapture();
- CallService(MS_CLIST_FRAMES_UCOLLFRAME,Frameid,0);
- lbypos = -1;oldframeheight = -1;ReleaseCapture();
- break;
-
- case WM_LBUTTONUP:
- if (GetCapture() != hwnd)
- break;
- curdragbar = -1;lbypos = -1;oldframeheight = -1;ReleaseCapture();
- break;
-
- case WM_LBUTTONDOWN:
- {
- int framepos = id2pos(Frameid);
- if (framepos == -1)
- break;
-
- lockfrm();
- if (Frames[framepos].floating)
- {
- POINT pt;
- GetCursorPos(&pt);
- Frames[framepos].TitleBar.oldpos = pt;
- }
-
- if (( !(wParam & MK_CONTROL)) && Frames[framepos].Locked && (!(Frames[framepos].floating))) {
- if ( db_get_b(NULL,"CLUI","ClientAreaDrag",0)) {
- POINT pt;
- //pt = nm->pt;
- GetCursorPos(&pt);
- return SendMessage(GetParent(hwnd), WM_SYSCOMMAND, SC_MOVE|HTCAPTION,MAKELPARAM(pt.x,pt.y));
- }
- }
-
- if (Frames[framepos].floating) {
- RECT rc;
- GetCursorPos(&ptOld);
- //ClientToScreen(hwnd,&ptOld);
- GetWindowRect( hwnd, &rc );
-
- nLeft = (short)rc.left;
- nTop = (short)rc.top;
- }
- ulockfrm();
- SetCapture(hwnd);
- }
- break;
-
- case WM_MOUSEMOVE:
- {
- POINT pt,pt2;
- RECT wndr;
- int pos;
-
- char TBcapt[255];
-
- lockfrm();
- pos = id2pos(Frameid);
-
- if (pos != -1) {
- int oldflags;
- mir_snprintf(TBcapt, SIZEOF(TBcapt), "%s - h:%d, vis:%d, fl:%d, fl:(%d,%d,%d,%d),or: %d",
- Frames[pos].name, Frames[pos].height, Frames[pos].visible, Frames[pos].floating,
- Frames[pos].FloatingPos.x, Frames[pos].FloatingPos.y,
- Frames[pos].FloatingSize.x, Frames[pos].FloatingSize.y,
- Frames[pos].order);
-
- oldflags = CallService(MS_CLIST_FRAMES_GETFRAMEOPTIONS,MAKEWPARAM(FO_FLAGS,Frames[pos].id),0);
- if ( !(oldflags & F_SHOWTBTIP))
- oldflags |= F_SHOWTBTIP;
- }
-
- ulockfrm();
-
- if (wParam & MK_LBUTTON) {
- RECT rcMiranda;
- RECT rcwnd,rcOverlap;
- POINT newpt,ofspt,curpt,newpos;
- //if (GetCapture() != hwnd){break;}
- //curdragbar = -1;lbypos = -1;oldframeheight = -1;ReleaseCapture();
- lockfrm();
- pos = id2pos(Frameid);
- if (Frames[pos].floating) {
-
- GetCursorPos(&curpt);
- rcwnd.bottom = curpt.y+5;
- rcwnd.top = curpt.y;
- rcwnd.left = curpt.x;
- rcwnd.right = curpt.x+5;
-
- GetWindowRect(pcli->hwndContactList, &rcMiranda );
- //GetWindowRect( Frames[pos].ContainerWnd, &rcwnd );
- //IntersectRect( &rcOverlap, &rcwnd, &rcMiranda )
- if (IsWindowVisible(pcli->hwndContactList) &&IntersectRect( &rcOverlap, &rcwnd, &rcMiranda )) {
- int id = Frames[pos].id;
- ulockfrm();
-
- ofspt.x = 0;ofspt.y = 0;
- ClientToScreen(Frames[pos].TitleBar.hwnd,&ofspt);
- ofspt.x = curpt.x-ofspt.x;ofspt.y = curpt.y-ofspt.y;
-
- CLUIFrameSetFloat(id,0);
- newpt.x = 0;newpt.y = 0;
- ClientToScreen(Frames[pos].TitleBar.hwnd,&newpt);
- SetCursorPos(newpt.x+ofspt.x,newpt.y+ofspt.y);
- GetCursorPos(&curpt);
- lockfrm();
- Frames[pos].TitleBar.oldpos = curpt;
- ulockfrm();
- return 0;
- }
- }
- else {
- int id = Frames[pos].id;
-
- GetCursorPos(&curpt);
- rcwnd.bottom = curpt.y+5;
- rcwnd.top = curpt.y;
- rcwnd.left = curpt.x;
- rcwnd.right = curpt.x+5;
-
- GetWindowRect(pcli->hwndContactList, &rcMiranda );
-
- if ( !IntersectRect( &rcOverlap, &rcwnd, &rcMiranda )) {
- ulockfrm();
- GetCursorPos(&curpt);
- GetWindowRect( Frames[pos].hWnd, &rcwnd );
- rcwnd.left = rcwnd.right-rcwnd.left;
- rcwnd.top = rcwnd.bottom-rcwnd.top;
- newpos.x = curpt.x;newpos.y = curpt.y;
- if (curpt.x>=(rcMiranda.right-1)){newpos.x = curpt.x+5;}
- if (curpt.x<=(rcMiranda.left+1)){newpos.x = curpt.x-(rcwnd.left)-5;}
-
- if (curpt.y>=(rcMiranda.bottom-1)){newpos.y = curpt.y+5;}
- if (curpt.y<=(rcMiranda.top+1)){newpos.y = curpt.y-(rcwnd.top)-5;}
-
-
- ofspt.x = 0;ofspt.y = 0;
- //ClientToScreen(Frames[pos].TitleBar.hwnd,&ofspt);
- GetWindowRect(Frames[pos].TitleBar.hwnd,&rcwnd);
- ofspt.x = curpt.x-ofspt.x;ofspt.y = curpt.y-ofspt.y;
-
- Frames[pos].FloatingPos.x = newpos.x;
- Frames[pos].FloatingPos.y = newpos.y;
- CLUIFrameSetFloat(id,0);
- //SetWindowPos(Frames[pos].ContainerWnd,0,newpos.x,newpos.y,0,0,SWP_NOSIZE);
-
- lockfrm();
- newpt.x = 0;newpt.y = 0;
- ClientToScreen(Frames[pos].TitleBar.hwnd,&newpt);
-
- GetWindowRect( Frames[pos].hWnd, &rcwnd );
- SetCursorPos(newpt.x+(rcwnd.right-rcwnd.left)/2,newpt.y+(rcwnd.bottom-rcwnd.top)/2);
- GetCursorPos(&curpt);
-
- Frames[pos].TitleBar.oldpos = curpt;
- ulockfrm();
-
- return 0;
- }
- }
- ulockfrm();
- }
-
- if (wParam & MK_LBUTTON) {
- int newh = -1,prevold;
-
- if (GetCapture() != hwnd){break;}
-
- lockfrm();
- pos = id2pos(Frameid);
-
- if (Frames[pos].floating) {
- GetCursorPos(&pt);
- if ((Frames[pos].TitleBar.oldpos.x != pt.x)||(Frames[pos].TitleBar.oldpos.y != pt.y)) {
-
- pt2 = pt;
- ScreenToClient(hwnd,&pt2);
- GetWindowRect(Frames[pos].ContainerWnd,&wndr);
-
- int dX,dY;
- POINT ptNew;
-
- ptNew.x = pt.x;
- ptNew.y = pt.y;
- //ClientToScreen( hwnd, &ptNew );
-
- dX = ptNew.x - ptOld.x;
- dY = ptNew.y - ptOld.y;
-
- nLeft += (short)dX;
- nTop += (short)dY;
-
- if ( !(wParam & MK_CONTROL))
- PositionThumb( &Frames[pos], nLeft, nTop );
- else
- SetWindowPos( Frames[pos].ContainerWnd,
- HWND_TOPMOST,
- nLeft,
- nTop,
- 0,
- 0,
- SWP_NOSIZE | SWP_NOZORDER );
-
- ptOld = ptNew;
-
- pt.x = nLeft;
- pt.y = nTop;
- Frames[pos].TitleBar.oldpos = pt;
- }
-
- ulockfrm();
- return 0;
- }
-
- if (Frames[pos].prevvisframe != -1) {
- GetCursorPos(&pt);
-
- if ((Frames[pos].TitleBar.oldpos.x == pt.x)&&(Frames[pos].TitleBar.oldpos.y == pt.y)) {
- ulockfrm();
- break;
- }
-
- ypos = rect.top+pt.y;xpos = rect.left+pt.x;
- Framemod = -1;
-
- if (Frames[pos].align == alBottom) {
- direction = -1;
- Framemod = pos;
- }
- else {
- direction = 1;
- Framemod = Frames[pos].prevvisframe;
- }
- if (Frames[Framemod].Locked) {ulockfrm();break;}
- if (curdragbar != -1&&curdragbar != pos) {ulockfrm();break;}
-
- if (lbypos == -1) {
- curdragbar = pos;
- lbypos = ypos;
- oldframeheight = Frames[Framemod].height;
- SetCapture(hwnd);
- {ulockfrm();break;}
- }
-
- newh = oldframeheight+direction*(ypos-lbypos);
- if (newh > 0) {
- prevold = Frames[Framemod].height;
- Frames[Framemod].height = newh;
- if ( !CLUIFramesFitInSize()) {
- Frames[Framemod].height = prevold;
- ulockfrm();
- return TRUE;
- }
- Frames[Framemod].height = newh;
- if (newh > 3)
- Frames[Framemod].collapsed = TRUE;
- }
- Frames[pos].TitleBar.oldpos = pt;
- }
- ulockfrm();
- if (newh > 0)
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0);
- break;
- }
- curdragbar = -1;lbypos = -1;oldframeheight = -1;ReleaseCapture();
- }
- break;
-
- case WM_PRINTCLIENT:
- if (lParam & PRF_CLIENT) {
- GetClientRect(hwnd,&rect);
- DrawTitleBar((HDC)wParam,rect,Frameid);
- }
-
- case WM_PAINT:
- {
- HDC paintDC;
- PAINTSTRUCT paintStruct;
-
- //GetClientRect(hwnd,&rect);
- paintDC = BeginPaint(hwnd, &paintStruct);
- rect = paintStruct.rcPaint;
- DrawTitleBar(paintDC,rect,Frameid);
- EndPaint(hwnd, &paintStruct);
- }
- return 0;
-
- default:
- return DefWindowProc(hwnd, msg, wParam, lParam);
- }
- return TRUE;
-}
-
-int CLUIFrameResizeFloatingFrame(int framepos)
-{
- int width,height;
- RECT rect;
-
- if ( !Frames[framepos].floating){return 0;}
- if (Frames[framepos].ContainerWnd == 0){return 0;}
- GetClientRect(Frames[framepos].ContainerWnd,&rect);
-
- width = rect.right-rect.left;
- height = rect.bottom-rect.top;
-
- Frames[framepos].visible?ShowWindow(Frames[framepos].ContainerWnd,SW_SHOW):ShowWindow(Frames[framepos].ContainerWnd,SW_HIDE);
-
- if (Frames[framepos].TitleBar.ShowTitleBar) {
- ShowWindow(Frames[framepos].TitleBar.hwnd,SW_SHOW);
- Frames[framepos].height = height-DEFAULT_TITLEBAR_HEIGHT;
-
- SetWindowPos(Frames[framepos].TitleBar.hwnd,HWND_TOP,0,0,width,DEFAULT_TITLEBAR_HEIGHT,SWP_SHOWWINDOW|SWP_DRAWFRAME);
- SetWindowPos(Frames[framepos].hWnd,HWND_TOP,0,DEFAULT_TITLEBAR_HEIGHT,width,height-DEFAULT_TITLEBAR_HEIGHT,SWP_SHOWWINDOW);
- }
- else {
- Frames[framepos].height = height;
- ShowWindow(Frames[framepos].TitleBar.hwnd,SW_HIDE);
- SetWindowPos(Frames[framepos].hWnd,HWND_TOP,0,0,width,height,SWP_SHOWWINDOW);
- }
-
- if (Frames[framepos].ContainerWnd != 0)
- UpdateWindow(Frames[framepos].ContainerWnd);
-
- GetWindowRect(Frames[framepos].hWnd,&Frames[framepos].wndSize);
- return 0;
-}
-
-static int CLUIFrameOnMainMenuBuild(WPARAM wParam, LPARAM lParam)
-{
- CLUIFramesLoadMainMenu();
- return 0;
-}
-
-LRESULT CALLBACK CLUIFrameContainerWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- RECT rect = { 0 };
- int Frameid = (GetWindowLongPtr(hwnd,GWLP_USERDATA));
-
- switch(msg) {
- case WM_CREATE:
- {
- lockfrm();
- int framepos = id2pos(Frameid);
- ulockfrm();
- }
- return 0;
-
- case WM_GETMINMAXINFO:
- {
- int framepos;
- MINMAXINFO minmax;
-
- lockfrm();
- framepos = id2pos(Frameid);
- if (framepos<0||framepos>=nFramescount){ulockfrm();break;}
- if ( !Frames[framepos].minmaxenabled){ulockfrm();break;}
- if (Frames[framepos].ContainerWnd == 0){ulockfrm();break;}
-
- if (Frames[framepos].Locked) {
- RECT rct;
-
- GetWindowRect(hwnd,&rct);
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x = rct.right-rct.left;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y = rct.bottom-rct.top;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.x = rct.right-rct.left;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.y = rct.bottom-rct.top;
- }
-
- memset(&minmax,0,sizeof(minmax));
- if (SendMessage(Frames[framepos].hWnd,WM_GETMINMAXINFO,0,(LPARAM)&minmax) == 0) {
- RECT border;
- int tbh = TitleBarH*btoint(Frames[framepos].TitleBar.ShowTitleBar);
- GetBorderSize(hwnd,&border);
- if (minmax.ptMaxTrackSize.x != 0&&minmax.ptMaxTrackSize.y != 0){
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x = minmax.ptMinTrackSize.x;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y = minmax.ptMinTrackSize.y;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.x = minmax.ptMaxTrackSize.x+border.left+border.right;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.y = minmax.ptMaxTrackSize.y+tbh+border.top+border.bottom;
- }
- }
- else {
- ulockfrm();
- return(DefWindowProc(hwnd, msg, wParam, lParam));
- }
-
- ulockfrm();
- }
-
- case WM_MOVE:
- {
- lockfrm();
- int framepos = id2pos(Frameid);
-
- if (framepos<0||framepos>=nFramescount){ulockfrm();break;}
- if (Frames[framepos].ContainerWnd == 0){ulockfrm();return 0;}
-
- RECT rect;
- GetWindowRect(Frames[framepos].ContainerWnd,&rect);
- Frames[framepos].FloatingPos.x = rect.left;
- Frames[framepos].FloatingPos.y = rect.top;
- Frames[framepos].FloatingSize.x = rect.right-rect.left;
- Frames[framepos].FloatingSize.y = rect.bottom-rect.top;
-
- CLUIFramesStoreFrameSettings(framepos);
- ulockfrm();
- }
- return 0;
-
- case WM_SIZE:
- {
- lockfrm();
- int framepos = id2pos(Frameid);
-
- if (framepos<0||framepos>=nFramescount){ulockfrm();break;}
- if (Frames[framepos].ContainerWnd == 0){ulockfrm();return 0;}
- CLUIFrameResizeFloatingFrame(framepos);
-
- RECT rect;
- GetWindowRect(Frames[framepos].ContainerWnd,&rect);
- Frames[framepos].FloatingPos.x = rect.left;
- Frames[framepos].FloatingPos.y = rect.top;
- Frames[framepos].FloatingSize.x = rect.right-rect.left;
- Frames[framepos].FloatingSize.y = rect.bottom-rect.top;
-
- CLUIFramesStoreFrameSettings(framepos);
- ulockfrm();
- }
- return 0;
-
- case WM_CLOSE:
- DestroyWindow(hwnd);
- break;
-
- case WM_DESTROY:
- return 0;
- }
- return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-static HWND CreateContainerWindow(HWND parent,int x,int y,int width,int height)
-{
- return(CreateWindowA("FramesContainer","aaaa",WS_POPUP|WS_THICKFRAME,x,y,width,height,parent,0,g_hInst,0));
-}
-
-INT_PTR CLUIFrameSetFloat(WPARAM wParam, LPARAM lParam)
-{
- HWND hwndtmp, hwndtooltiptmp;
- FRAMEWND *frame;
- int pos;
-
- lockfrm();
-
- pos = id2pos(wParam);
- if (pos < 0 || pos > nFramescount) {
- ulockfrm();
- return 0;
- }
-
- frame = &Frames[pos];
-
- //parent = GetParent(Frames[wParam].hWnd);
- if (frame->floating) {
- SetParent(frame->hWnd,pcli->hwndContactList);
- SetParent(frame->TitleBar.hwnd,pcli->hwndContactList);
- frame->floating = FALSE;
- DestroyWindow(frame->ContainerWnd);
- frame->ContainerWnd = NULL;
- }
- else {
- RECT recttb,rectw,border;
- LONG_PTR temp;
- int neww,newh;
- BOOLEAN locked;
-
- frame->oldstyles = GetWindowLongPtr(frame->hWnd,GWL_STYLE);
- frame->TitleBar.oldstyles = GetWindowLongPtr(frame->TitleBar.hwnd,GWL_STYLE);
- locked = frame->Locked;
- frame->Locked = FALSE;
- frame->minmaxenabled = FALSE;
-
- GetWindowRect(frame->hWnd,&rectw);
- GetWindowRect(frame->TitleBar.hwnd,&recttb);
- if ( !frame->TitleBar.ShowTitleBar)
- recttb.top = recttb.bottom = recttb.left = recttb.right = 0;
-
- frame->ContainerWnd = CreateContainerWindow(pcli->hwndContactList,frame->FloatingPos.x,frame->FloatingPos.y,10,10);
-
- SetParent(frame->hWnd,frame->ContainerWnd);
- SetParent(frame->TitleBar.hwnd,frame->ContainerWnd);
-
- GetBorderSize(frame->ContainerWnd,&border);
-
- SetWindowLongPtr(frame->ContainerWnd, GWLP_USERDATA, frame->id);
- if ((lParam == 1)) {
- if ((frame->FloatingPos.x != 0)&&(frame->FloatingPos.y != 0)) {
- if (frame->FloatingPos.x<20){frame->FloatingPos.x = 40;}
- if (frame->FloatingPos.y<20){frame->FloatingPos.y = 40;}
-
- SetWindowPos(frame->ContainerWnd,HWND_TOPMOST,frame->FloatingPos.x,frame->FloatingPos.y,frame->FloatingSize.x,frame->FloatingSize.y,SWP_HIDEWINDOW);
- }
- else SetWindowPos(frame->ContainerWnd,HWND_TOPMOST,120,120,140,140,SWP_HIDEWINDOW);
- }
- else {
- neww = rectw.right-rectw.left+border.left+border.right;
- newh = (rectw.bottom-rectw.top)+(recttb.bottom-recttb.top)+border.top+border.bottom;
- if (neww<20){neww = 40;}
- if (newh<20){newh = 40;}
- if (frame->FloatingPos.x<20){frame->FloatingPos.x = 40;}
- if (frame->FloatingPos.y<20){frame->FloatingPos.y = 40;}
-
- SetWindowPos(frame->ContainerWnd,HWND_TOPMOST,frame->FloatingPos.x,frame->FloatingPos.y,neww,newh,SWP_HIDEWINDOW);
- }
-
- SetWindowText(frame->ContainerWnd,frame->TitleBar.tbname);
-
- temp = GetWindowLongPtr(frame->ContainerWnd,GWL_EXSTYLE);
- temp |= WS_EX_TOOLWINDOW | WS_EX_TOPMOST ;
- SetWindowLongPtr(frame->ContainerWnd,GWL_EXSTYLE,temp);
-
- frame->floating = TRUE;
- frame->Locked = locked;
- }
-
- CLUIFramesStoreFrameSettings(pos);
- frame->minmaxenabled = TRUE;
- hwndtooltiptmp = frame->TitleBar.hwndTip;
-
- hwndtmp = frame->ContainerWnd;
- ulockfrm();
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList, 0);
- SendMessage(hwndtmp,WM_SIZE,0,0);
-
- SetWindowPos(hwndtooltiptmp, HWND_TOPMOST,0, 0, 0, 0,SWP_NOMOVE | SWP_NOSIZE );
- return 0;
-}
-
-static int CLUIFrameOnFontChange(WPARAM wParam, LPARAM lParam)
-{
- FontID fid = {0};
- fid.cbSize = sizeof(fid);
- memset(&TitleBarLogFont,0,sizeof(TitleBarLogFont));
-
- strcpy(fid.group,LPGEN("Frames"));
- strcpy(fid.name,LPGEN("TitleBarFont"));
- strcpy(fid.dbSettingsGroup,"CLUIFrames");
- strcpy(fid.prefix,"FramesTitleBarFont");
-
- CallService(MS_FONT_GET,(WPARAM)&fid,(LPARAM)&TitleBarLogFont);
- CLUIFramesOnClistResize(0,0);
- return 0;
-}
-
-static void CLUIRegisterFonts()
-{
- FontID fid = {0};
- fid.cbSize = sizeof(fid);
- strcpy(fid.group, LPGEN("Frames"));
- strcpy(fid.name, LPGEN("TitleBarFont"));
- strcpy(fid.dbSettingsGroup, "CLUIFrames");
- strcpy(fid.prefix, "FramesTitleBarFont");
- FontRegister(&fid);
-
- CLUIFrameOnFontChange(0,0);
-
- HookEvent(ME_FONT_RELOAD,CLUIFrameOnFontChange);
-}
-
-static int CLUIFrameOnModulesLoad(WPARAM wParam, LPARAM lParam)
-{
- CLUIFramesLoadMainMenu();
- CLUIFramesCreateMenuForFrame(-1,-1,000010000,Menu_AddContextFrameMenuItem);
- CLUIRegisterFonts();
- return 0;
-}
-
-static int CLUIFrameOnModulesUnload(WPARAM wParam, LPARAM lParam)
-{
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIVisible, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMITitle, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMITBVisible, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMILock, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIColl, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIFloating, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIAlignRoot, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIAlignTop, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIAlignClient, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIAlignBottom, 0 );
- CallService(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, ( LPARAM )contMIBorder, 0 );
- return 0;
-}
-
-int LoadCLUIFramesModule(void)
-{
- WNDCLASS wndclass;
- wndclass.style = CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW ;
- wndclass.lpfnWndProc = CLUIFrameTitleBarProc;
- wndclass.cbClsExtra = 0;
- wndclass.cbWndExtra = 0;
- wndclass.hInstance = g_hInst;
- wndclass.hIcon = NULL;
- wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
- wndclass.hbrBackground = NULL;
- wndclass.lpszMenuName = NULL;
- wndclass.lpszClassName = CLUIFrameTitleBarClassName;
- RegisterClass(&wndclass);
-
- //container helper
- WNDCLASS cntclass;
- cntclass.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW | CS_DROPSHADOW;
- cntclass.lpfnWndProc = CLUIFrameContainerWndProc;
- cntclass.cbClsExtra = 0;
- cntclass.cbWndExtra = 0;
- cntclass.hInstance = g_hInst;
- cntclass.hIcon = NULL;
- cntclass.hCursor = LoadCursor(NULL, IDC_ARROW);
- cntclass.hbrBackground = NULL;
- cntclass.lpszMenuName = NULL;
- cntclass.lpszClassName = _T("FramesContainer");
- RegisterClass(&cntclass);
- //end container helper
-
- GapBetweenFrames = db_get_dw(NULL,"CLUIFrames","GapBetweenFrames",1);
-
- nFramescount = 0;
- InitializeCriticalSection(&csFrameHook);
- InitFramesMenus();
-
- HookEvent(ME_SYSTEM_MODULESLOADED,CLUIFrameOnModulesLoad);
- HookEvent(ME_CLIST_PREBUILDFRAMEMENU,CLUIFramesModifyContextMenuForFrame);
- HookEvent(ME_CLIST_PREBUILDMAINMENU,CLUIFrameOnMainMenuBuild);
-
- CreateServiceFunction(MS_CLIST_FRAMES_ADDFRAME,CLUIFramesAddFrame);
- CreateServiceFunction(MS_CLIST_FRAMES_REMOVEFRAME,CLUIFramesRemoveFrame);
-
- CreateServiceFunction(MS_CLIST_FRAMES_SETFRAMEOPTIONS,CLUIFramesSetFrameOptions);
- CreateServiceFunction(MS_CLIST_FRAMES_GETFRAMEOPTIONS,CLUIFramesGetFrameOptions);
- CreateServiceFunction(MS_CLIST_FRAMES_UPDATEFRAME,CLUIFramesUpdateFrame);
-
- CreateServiceFunction(MS_CLIST_FRAMES_SHFRAMETITLEBAR,CLUIFramesShowHideFrameTitleBar);
- CreateServiceFunction(MS_CLIST_FRAMES_SHOWALLFRAMESTB,CLUIFramesShowAllTitleBars);
- CreateServiceFunction(MS_CLIST_FRAMES_HIDEALLFRAMESTB,CLUIFramesHideAllTitleBars);
- CreateServiceFunction(MS_CLIST_FRAMES_SHFRAME,CLUIFramesShowHideFrame);
- CreateServiceFunction(MS_CLIST_FRAMES_SHOWALLFRAMES,CLUIFramesShowAll);
-
- CreateServiceFunction(MS_CLIST_FRAMES_ULFRAME,CLUIFramesLockUnlockFrame);
- CreateServiceFunction(MS_CLIST_FRAMES_UCOLLFRAME,CLUIFramesCollapseUnCollapseFrame);
- CreateServiceFunction(MS_CLIST_FRAMES_SETUNBORDER,CLUIFramesSetUnSetBorder);
-
- CreateServiceFunction(CLUIFRAMESSETALIGN,CLUIFramesSetAlign);
- CreateServiceFunction(CLUIFRAMESMOVEUPDOWN,CLUIFramesMoveUpDown);
-
- CreateServiceFunction(CLUIFRAMESSETALIGNALTOP,CLUIFramesSetAlignalTop);
- CreateServiceFunction(CLUIFRAMESSETALIGNALCLIENT,CLUIFramesSetAlignalClient);
- CreateServiceFunction(CLUIFRAMESSETALIGNALBOTTOM,CLUIFramesSetAlignalBottom);
-
- CreateServiceFunction("Set_Floating",CLUIFrameSetFloat);
- hWndExplorerToolBar = FindWindowExA(0,0,"Shell_TrayWnd",NULL);
- OnFrameTitleBarBackgroundChange(0,0);
- FramesSysNotStarted = FALSE;
- HookEvent(ME_SYSTEM_PRESHUTDOWN, CLUIFrameOnModulesUnload);
- return 0;
-}
-
-int UnLoadCLUIFramesModule(void)
-{
- FramesSysNotStarted = TRUE;
-
- CLUIFramesOnClistResize((WPARAM)pcli->hwndContactList,0);
- CLUIFramesStoreAllFrames();
- lockfrm();
- for (int i=0; i < nFramescount; i++) {
- DestroyWindow(Frames[i].hWnd);
- Frames[i].hWnd = (HWND)-1;
- DestroyWindow(Frames[i].TitleBar.hwnd);
- Frames[i].TitleBar.hwnd = (HWND)-1;
- DestroyWindow(Frames[i].ContainerWnd);
- Frames[i].ContainerWnd = (HWND)-1;
- DestroyMenu(Frames[i].TitleBar.hmenu);
-
- mir_free(Frames[i].name);
- mir_free(Frames[i].TitleBar.tbname);
- mir_free(Frames[i].TitleBar.tooltip);
- }
-
- free(Frames);
- Frames = NULL;
- nFramescount = 0;
- UnregisterClass(CLUIFrameTitleBarClassName,g_hInst);
- DeleteObject(TitleBarFont);
- ulockfrm();
- DeleteCriticalSection(&csFrameHook);
- return 0;
-}
diff --git a/plugins/Clist_mw/src/CLUIFrames/cluiframes.h b/plugins/Clist_mw/src/CLUIFrames/cluiframes.h
deleted file mode 100644
index b38975ea8f..0000000000
--- a/plugins/Clist_mw/src/CLUIFrames/cluiframes.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-Miranda ICQ: the free icq client for MS Windows
-Copyright (C) 2000-2 Richard Hughes, Roland Rabien & Tristan Van de Vreede
-
-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.
-*/
-
-#pragma once
-
-#ifndef _CLUIFRAMES_H_
-#define _CLUIFRAMES_H_
-
-int LoadCLUIFramesModule(void);
-int UnLoadCLUIFramesModule(void);
-int CLUIFramesGetMinHeight();
-int CLUIFramesOnClistResize(WPARAM wParam, LPARAM lParam);
-
-typedef struct tagProtocolData {
- char *RealName;
- int protopos;
- boolean show;
-} ProtocolData;
-
-typedef struct
-{
- int order;
- int realpos;
-} SortData;
-
-
-
-
-//============
-#define CLUIFRAMESSETALIGN "CLUIFramesSetAlign"
-
-#define CLUIFRAMESSETALIGNALTOP "CLUIFramesSetAlignalTop"
-#define CLUIFRAMESSETALIGNALCLIENT "CLUIFramesSetAlignalClient"
-#define CLUIFRAMESSETALIGNALBOTTOM "CLUIFramesSetAlignalBottom"
-
-#define CLUIFRAMESMOVEUPDOWN "CLUIFramesMoveUpDown"
-
-struct FrameMenuHandles
-{
- HGENMENU MainMenuItem;
- HGENMENU MIVisible, MITitle, MITBVisible, MILock, MIColl, MIFloating, MIAlignRoot;
- HGENMENU MIAlignTop, MIAlignClient, MIAlignBottom, MIBorder;
-};
-
-struct FrameTitleBar
-{
- HWND hwnd;
- HWND TitleBarbutt;
- HWND hwndTip;
-
- LPTSTR tbname;
- LPTSTR tooltip;
- HMENU hmenu;
- HICON hicon;
-
- BOOLEAN ShowTitleBar;
- BOOLEAN ShowTitleBarTip;
- COLORREF BackColour;
- int oldstyles;
- POINT oldpos;
- RECT wndSize;
-};
-
-struct DockOpt
-{
- HWND hwndLeft;
- HWND hwndRight;
-};
-
-struct FRAMEWND
-{
- int id;
- HWND hWnd;
- RECT wndSize;
- LPTSTR name;
- int align;
- int height;
- int dwFlags;
- BOOLEAN Locked;
- BOOLEAN visible;
- BOOLEAN needhide;
- BOOLEAN collapsed;
- int prevvisframe;
- int HeightWhenCollapsed;
- FrameTitleBar TitleBar;
- FrameMenuHandles MenuHandles;
- int oldstyles;
- BOOLEAN floating;
- HWND ContainerWnd;
- POINT FloatingPos;
- POINT FloatingSize;
- BOOLEAN minmaxenabled;
- BOOLEAN UseBorder;
- int order;
- DockOpt dockOpt;
-};
-
-#define OFFSET_PROTOPOS 200
-#define OFFSET_VISIBLE 400
-
-#define CLUIFrameTitleBarClassName _T("CLUIFrameTitleBar")
-#define CLUIFrameModule "CLUIFrames"
-
-#endif
diff --git a/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp b/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp
deleted file mode 100644
index d414bdc2f2..0000000000
--- a/plugins/Clist_mw/src/CLUIFrames/framesmenu.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "../commonheaders.h"
-
-//========================== Frames
-HANDLE hFrameMenuObject;
-static HANDLE hPreBuildFrameMenuEvent;
-
-//contactmenu exec param(ownerdata)
-//also used in checkservice
-typedef struct{
- char *szServiceName;
- int Frameid;
- INT_PTR param1;
-} FrameMenuExecParam, *lpFrameMenuExecParam;
-
-INT_PTR FreeOwnerDataFrameMenu(WPARAM wParam, LPARAM lParam)
-{
- lpFrameMenuExecParam cmep = (lpFrameMenuExecParam)lParam;
- if (cmep != NULL){
- mir_free(cmep->szServiceName);
- mir_free(cmep);
- }
- return 0;
-}
-
-static INT_PTR AddContextFrameMenuItem(WPARAM wParam, LPARAM lParam)
-{
- CLISTMENUITEM *mi = (CLISTMENUITEM *)lParam;
-
- TMO_MenuItem tmi;
- if (!pcli->pfnConvertMenu(mi, &tmi))
- return NULL;
-
- tmi.root = (mi->flags & CMIF_ROOTHANDLE) ? mi->hParentMenu : NULL;
-
- lpFrameMenuExecParam fmep = (lpFrameMenuExecParam)mir_alloc(sizeof(FrameMenuExecParam));
- if (fmep == NULL)
- return 0;
-
- fmep->szServiceName = mir_strdup(mi->pszService);
- fmep->Frameid = mi->popupPosition;
- fmep->param1 = (INT_PTR)mi->pszContactOwner;
- tmi.ownerdata = fmep;
-
- return CallService(MO_ADDNEWMENUITEM, (WPARAM)hFrameMenuObject, (LPARAM)&tmi);
-}
-
-static INT_PTR RemoveContextFrameMenuItem(WPARAM wParam, LPARAM lParam)
-{
- CallService(MO_REMOVEMENUITEM,wParam,0);
- return 0;
-}
-
-//called with:
-//wparam - ownerdata
-//lparam - lparam from winproc
-INT_PTR FrameMenuExecService(WPARAM wParam, LPARAM lParam)
-{
- lpFrameMenuExecParam fmep = (lpFrameMenuExecParam)wParam;
- if (fmep == NULL)
- return -1;
-
- CallService(fmep->szServiceName, lParam, fmep->param1);
- return 0;
-}
-
-//true - ok,false ignore
-INT_PTR FrameMenuCheckService(WPARAM wParam, LPARAM lParam)
-{
- PCheckProcParam pcpp = (PCheckProcParam)wParam;
- if (pcpp == NULL)
- return FALSE;
-
- TMO_MenuItem mi;
- if (CallService(MO_GETMENUITEM, (WPARAM)pcpp->MenuItemHandle, (LPARAM)&mi) == 0) {
- lpFrameMenuExecParam fmep = (lpFrameMenuExecParam)mi.ownerdata;
- if (fmep != NULL) {
- //pcpp->wParam - frameid
- if (((WPARAM)fmep->Frameid == pcpp->wParam) || fmep->Frameid == -1)
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static INT_PTR ContextFrameMenuNotify(WPARAM wParam, LPARAM lParam)
-{
- NotifyEventHooks(hPreBuildFrameMenuEvent, wParam, lParam);
- return 0;
-}
-
-static INT_PTR BuildContextFrameMenu(WPARAM wParam, LPARAM lParam)
-{
- ListParam param = {0};
- param.MenuObjectHandle = hFrameMenuObject;
- param.wParam = wParam;
- param.lParam = lParam;
-
- HMENU hMenu = CreatePopupMenu();
- ContextFrameMenuNotify(wParam, -1);
- CallService(MO_BUILDMENU, (WPARAM)hMenu, (LPARAM)&param);
- return (INT_PTR)hMenu;
-}
-
-//========================== Frames end
-
-int InitFramesMenus(void)
-{
- CreateServiceFunction("FrameMenuExecService", FrameMenuExecService);
- CreateServiceFunction("FrameMenuCheckService", FrameMenuCheckService);
- CreateServiceFunction("FrameMenuFreeService", FreeOwnerDataFrameMenu);
-
- CreateServiceFunction(MS_CLIST_REMOVECONTEXTFRAMEMENUITEM, RemoveContextFrameMenuItem);
- CreateServiceFunction("CList/AddContextFrameMenuItem", AddContextFrameMenuItem);
- CreateServiceFunction(MS_CLIST_MENUBUILDFRAMECONTEXT, BuildContextFrameMenu);
- CreateServiceFunction(MS_CLIST_FRAMEMENUNOTIFY, ContextFrameMenuNotify);
- hPreBuildFrameMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDFRAMEMENU);
-
- // frame menu object
- hFrameMenuObject = MO_CreateMenuObject("FrameMenu", LPGEN("Frame menu"), "FrameMenuCheckService", "FrameMenuExecService");
- MO_SetMenuObjectParam(hFrameMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "FrameMenuFreeService");
- return 0;
-}
diff --git a/plugins/Clist_mw/src/CLUIFrames/statusbar.cpp b/plugins/Clist_mw/src/CLUIFrames/statusbar.cpp
deleted file mode 100644
index 9df66c7368..0000000000
--- a/plugins/Clist_mw/src/CLUIFrames/statusbar.cpp
+++ /dev/null
@@ -1,497 +0,0 @@
-#include "../commonheaders.h"
-
-extern HINSTANCE g_hInst;
-HANDLE hStatusBarShowToolTipEvent,hStatusBarHideToolTipEvent;
-boolean canloadstatusbar = FALSE;
-HWND helperhwnd = 0;
-HANDLE hFrameHelperStatusBar;
-
-void CluiProtocolStatusChanged(int parStatus, const char* szProto);
-
-INT_PTR GetConnectingIconService (WPARAM wParam, LPARAM lParam);
-
-int RecreateStatusBar(HWND);
-int UseOwnerDrawStatusBar;
-
-#define TM_STATUSBAR 23435234
-#define TM_STATUSBARHIDE 23435235
-boolean tooltipshoing;
-WNDPROC OldWindowProc = NULL;
-
-
-POINT lastpnt;
-RECT OldRc = {0};
-static HBITMAP hBmpBackground;
-static int backgroundBmpUse;
-static COLORREF bkColour;
-extern BYTE showOpts;
-int extraspace;
-
-int OnStatusBarBackgroundChange()
-{
- showOpts = db_get_b(NULL,"CLUI","SBarShow",1);
- bkColour = db_get_dw(NULL,"StatusBar","BkColour",CLCDEFAULT_BKCOLOUR);
- if (hBmpBackground)
- DeleteObject(hBmpBackground), hBmpBackground = NULL;
-
- if ( db_get_b(NULL,"StatusBar","UseBitmap",CLCDEFAULT_USEBITMAP)) {
- DBVARIANT dbv;
- if ( !db_get_ts(NULL, "StatusBar", "BkBitmap", &dbv)) {
- hBmpBackground = (HBITMAP)CallService(MS_UTILS_LOADBITMAPT, 0, (LPARAM)dbv.ptszVal);
- db_free(&dbv);
- }
- }
-
- backgroundBmpUse = db_get_w(NULL,"StatusBar","BkBmpUse",CLCDEFAULT_BKBMPUSE);
- extraspace = db_get_dw(NULL,"StatusBar","BkExtraSpace",0);
-
- RecreateStatusBar(pcli->hwndContactList);
- if (pcli->hwndStatus) InvalidateRect(pcli->hwndStatus,NULL,TRUE);
- return 0;
-}
-
-
-void DrawDataForStatusBar(LPDRAWITEMSTRUCT dis)
-{
- ProtocolData *PD = (ProtocolData *)dis->itemData;
- SIZE textSize;
- boolean NeedDestroy = FALSE;
-
- if (PD == NULL || dis->hDC == NULL)
- return;
-
- //clip it
- HRGN hrgn = CreateRectRgn(dis->rcItem.left, dis->rcItem.top, dis->rcItem.right, dis->rcItem.bottom);
- SelectClipRgn(dis->hDC, hrgn);
-
- char *szProto = PD->RealName;
- int status = CallProtoService(szProto,PS_GETSTATUS,0,0);
- SetBkMode(dis->hDC,TRANSPARENT);
- int x = dis->rcItem.left+extraspace;
-
- if (showOpts & 1) {
- HICON hIcon;
- if ( db_get_b(NULL, "CLUI", "UseConnectingIcon", 1) == 1 && status < ID_STATUS_OFFLINE) {
- hIcon = (HICON)GetConnectingIconService((WPARAM)szProto, 0);
- if (hIcon)
- NeedDestroy = TRUE;
- else
- hIcon = LoadSkinnedProtoIcon(szProto,status);
- }
- else hIcon = LoadSkinnedProtoIcon(szProto,status);
-
- DrawIconEx(dis->hDC,x,(dis->rcItem.top+dis->rcItem.bottom-GetSystemMetrics(SM_CYSMICON))>>1,hIcon,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0,NULL,DI_NORMAL);
- if (NeedDestroy) DestroyIcon(hIcon);
- x += GetSystemMetrics(SM_CXSMICON)+2;
- }
- else x += 2;
-
- if (showOpts & 2) {
- PROTOACCOUNT *pa = ProtoGetAccount(szProto);
- TCHAR szName[64];
- mir_sntprintf(szName, SIZEOF(szName), _T("%s%s"), pa->tszAccountName, showOpts&4 ? _T(" ") : _T(""));
- GetTextExtentPoint32(dis->hDC, szName, (int)_tcslen(szName), &textSize);
-
- TextOut(dis->hDC,x,(dis->rcItem.top+dis->rcItem.bottom-textSize.cy)>>1,szName,lstrlen(szName));
- x += textSize.cx;
- }
-
- if (showOpts & 4) {
- TCHAR *szStatus = pcli->pfnGetStatusModeDescription(status, 0);
- if ( !szStatus)
- szStatus = _T("");
- GetTextExtentPoint32(dis->hDC,szStatus,lstrlen(szStatus),&textSize);
- TextOut(dis->hDC,x,(dis->rcItem.top+dis->rcItem.bottom-textSize.cy)>>1,szStatus,lstrlen(szStatus));
- }
- SelectClipRgn(dis->hDC, NULL);
- DeleteObject(hrgn);
-}
-
-void DrawBackGround(HWND hwnd,HDC mhdc)
-{
- HDC hdcMem,hdc;
- RECT clRect,*rcPaint;
-
- int yScroll = 0;
- int y;
- PAINTSTRUCT paintst = {0};
- HBITMAP hBmpOsb,holdbmp;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
- int grey = 0;
- HFONT oFont;
- HBRUSH hBrushAlternateGrey = NULL;
-
- HFONT hFont = (HFONT)SendMessage(hwnd,WM_GETFONT,0,0);
- if (mhdc) {
- hdc = mhdc;
- rcPaint = NULL;
- }
- else {
- hdc = BeginPaint(hwnd,&paintst);
- rcPaint = &(paintst.rcPaint);
- }
-
- GetClientRect(hwnd,&clRect);
- if (rcPaint == NULL) rcPaint = &clRect;
- if (rcPaint->right-rcPaint->left == 0||rcPaint->top-rcPaint->bottom == 0) rcPaint = &clRect;
- y = -yScroll;
- hdcMem = CreateCompatibleDC(hdc);
- hBmpOsb = CreateBitmap(clRect.right,clRect.bottom,1,GetDeviceCaps(hdc,BITSPIXEL),NULL);
- holdbmp = (HBITMAP)SelectObject(hdcMem,hBmpOsb);
- oFont = (HFONT)SelectObject(hdcMem,hFont);
- SetBkMode(hdcMem,TRANSPARENT);
- {
- HBRUSH hBrush = CreateSolidBrush(bkColour);
- HBRUSH hoBrush = (HBRUSH)SelectObject(hdcMem,hBrush);
- FillRect(hdcMem,rcPaint,hBrush);
- SelectObject(hdcMem,hoBrush);
- DeleteObject(hBrush);
- if (hBmpBackground) {
- BITMAP bmp;
- int x,y;
- int maxx,maxy;
- int destw,desth;
-
- GetObject(hBmpBackground,sizeof(bmp),&bmp);
- HDC hdcBmp = CreateCompatibleDC(hdcMem);
- HDC holdbackbmp = (HDC)SelectObject(hdcBmp,hBmpBackground);
- y = backgroundBmpUse&CLBF_SCROLL?-yScroll:0;
- maxx = backgroundBmpUse&CLBF_TILEH?clRect.right:1;
- maxy = backgroundBmpUse&CLBF_TILEV?maxy = rcPaint->bottom:y+1;
- switch(backgroundBmpUse&CLBM_TYPE) {
- case CLB_STRETCH:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- if (clRect.right*bmp.bmHeight<clRect.bottom*bmp.bmWidth) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- }
- else {
- destw = clRect.right;
- desth = clRect.bottom;
- }
- break;
-
- case CLB_STRETCHH:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- else {
- destw = clRect.right;
- desth = bmp.bmHeight;
- }
- break;
-
- case CLB_STRETCHV:
- if (backgroundBmpUse&CLBF_PROPORTIONAL) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = bmp.bmWidth;
- desth = clRect.bottom;
- }
- break;
-
- default: //clb_topleft
- destw = bmp.bmWidth;
- desth = bmp.bmHeight;
- break;
- }
- desth = clRect.bottom -clRect.top;
- for (;y<maxy;y += desth) {
- if (y<rcPaint->top-desth) continue;
- for (x = 0;x<maxx;x += destw)
- StretchBlt(hdcMem,x,y,destw,desth,hdcBmp,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
- }
- SelectObject(hdcBmp,holdbackbmp);
- DeleteDC(hdcBmp);
- }
- }
-
- //call to draw icons
- {
- DRAWITEMSTRUCT ds = { 0 };
- ds.hwndItem = hwnd;
- ds.hDC = hdcMem;
-
- int startoffset = db_get_dw(NULL,"StatusBar","FirstIconOffset",0);
- extraspace = db_get_dw(NULL,"StatusBar","BkExtraSpace",0);
- int nParts = SendMessage(hwnd,SB_GETPARTS,0,0);
-
- RECT rc = { 0 }, clrc;
- GetClientRect(hwnd,&clrc);
- clrc.right -= clrc.left;
- clrc.right -= startoffset;
- int sectwidth = clrc.right/nParts;
-
- for (int nPanel = 0; nPanel < nParts; nPanel++) {
- ProtocolData *PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,0);
- if (PD == NULL)
- continue;
-
- SendMessage(hwnd,SB_GETRECT,(WPARAM)nPanel,(LPARAM)&rc);
-
- rc.top = 0;
- rc.left = nPanel*sectwidth+startoffset;
- rc.right = rc.left+sectwidth-1;
- ds.rcItem = rc;
- ds.itemData = (ULONG_PTR)PD;
- ds.itemID = nPanel;
-
- DrawDataForStatusBar(&ds);
- } }
-
- BitBlt(hdc,rcPaint->left,rcPaint->top,rcPaint->right-rcPaint->left,rcPaint->bottom-rcPaint->top,hdcMem,rcPaint->left,rcPaint->top,SRCCOPY);
-
- SelectObject(hdcMem,holdbmp);
- SelectObject(hdcMem,oFont);
- DeleteObject(hBmpOsb);
- DeleteDC(hdcMem);
- paintst.fErase = FALSE;
- if ( !mhdc)
- EndPaint(hwnd,&paintst);
-}
-
-static LRESULT CALLBACK StatusBarOwnerDrawProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- if (UseOwnerDrawStatusBar) {
- switch(uMsg) {
- case WM_ERASEBKGND:
- return 0;
-
- case WM_PRINT:
- DrawBackGround(hwnd,(HDC)wParam);
- return 0;
-
- case WM_PAINT:
- DrawBackGround(hwnd,0);
- return 0;
- }
- }
- return mir_callNextSubclass(hwnd, StatusBarOwnerDrawProc, uMsg, wParam, lParam);
-}
-
-LRESULT CALLBACK StatusHelperProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch(msg) {
- case WM_CREATE:
- tooltipshoing = FALSE;
- return FALSE;
-
- case WM_GETMINMAXINFO:
- if (pcli->hwndStatus) {
- RECT rct;
- GetWindowRect(pcli->hwndStatus,&rct);
- memset((LPMINMAXINFO)lParam, 0, sizeof(MINMAXINFO));
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x = 5;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y = rct.bottom-rct.top;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.x = 1600;
- ((LPMINMAXINFO)lParam)->ptMaxTrackSize.y = rct.bottom-rct.top;
- return 0;
- }
- break;
-
- case WM_NCHITTEST:
- case WM_SHOWWINDOW:
- if (hFrameHelperStatusBar) {
- int res = CallService(MS_CLIST_FRAMES_GETFRAMEOPTIONS, MAKEWPARAM(FO_FLAGS,hFrameHelperStatusBar),0);
- db_set_b(0, "CLUI", "ShowSBar", (res & F_VISIBLE) != 0);
- }
-
- if (tooltipshoing){
- NotifyEventHooks(hStatusBarHideToolTipEvent, 0, 0);
- tooltipshoing = FALSE;
- }
- return 0;
-
- case WM_TIMER:
- if (wParam == TM_STATUSBARHIDE) {
- KillTimer(hwnd,TM_STATUSBARHIDE);
-
- if (tooltipshoing){
- NotifyEventHooks(hStatusBarHideToolTipEvent,0,0);
- tooltipshoing = FALSE;
- }
- }
-
- if (wParam == TM_STATUSBAR) {
- KillTimer(hwnd,TM_STATUSBAR);
-
- POINT pt;
- GetCursorPos(&pt);
- if (pt.x == lastpnt.x&&pt.y == lastpnt.y) {
- RECT rc;
- ScreenToClient(pcli->hwndStatus, &pt);
- int nParts = SendMessage(pcli->hwndStatus,SB_GETPARTS,0,0);
- for (int i = 0;i<nParts;i++) {
- SendMessage(pcli->hwndStatus,SB_GETRECT,i,(LPARAM)&rc);
- if (PtInRect(&rc,pt)) {
- ProtocolData *PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,i,0);
- if (PD == NULL)
- return 0;
-
- NotifyEventHooks(hStatusBarShowToolTipEvent,(WPARAM)PD->RealName,0);
- SetTimer(hwnd,TM_STATUSBARHIDE,db_get_w(NULL,"CLUIFrames","HideToolTipTime",5000),0);
- tooltipshoing = TRUE;
- break;
- }
- }
- }
- }
- return 0;
-
- case WM_SETCURSOR:
- {
- POINT pt;
- GetCursorPos(&pt);
- if (pt.x == lastpnt.x&&pt.y == lastpnt.y)
- return 0;
-
- lastpnt = pt;
- if (tooltipshoing){
- KillTimer(hwnd,TM_STATUSBARHIDE);
- NotifyEventHooks(hStatusBarHideToolTipEvent,0,0);
- tooltipshoing = FALSE;
- }
- KillTimer(hwnd,TM_STATUSBAR);
- SetTimer(hwnd,TM_STATUSBAR,db_get_w(NULL,"CLC","InfoTipHoverTime",750),0);
- }
- return 0;
-
- case WM_NOTIFY:
- if (lParam == 0)
- return 0;
-
- if (((LPNMHDR)lParam)->hwndFrom == pcli->hwndStatus)
- if (((LPNMHDR)lParam)->code == WM_NCHITTEST)
- LPNMMOUSE lpnmmouse = (LPNMMOUSE) lParam;
-
- case WM_CONTEXTMENU:
- KillTimer(hwnd,TM_STATUSBARHIDE);
-
- if (tooltipshoing)
- NotifyEventHooks(hStatusBarHideToolTipEvent,0,0);
-
- tooltipshoing = FALSE;
-
- case WM_MEASUREITEM:
- case WM_DRAWITEM:
- //parent do all work for us
- return(SendMessage(pcli->hwndContactList,msg,wParam,lParam));
-
- case WM_MOVE:
- PostMessage(pcli->hwndStatus,WM_MOVE,wParam,lParam);
-
- case WM_SIZE:
- {
- RECT rc;
- int b;
- if (pcli->hwndStatus != 0) {
- GetClientRect(hwnd,&rc);
-
- b = LOWORD(lParam);
- if (b != 0&&(rc.right-rc.left) != (OldRc.right-OldRc.left)) {
- OldRc = rc;
- if (canloadstatusbar)
- if ( db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",0)||db_get_b(NULL,"CLUI","EqualSections",1))
- CluiProtocolStatusChanged(0,0);
- }
- if (msg == WM_SIZE) PostMessage(pcli->hwndStatus,WM_SIZE,wParam,lParam);
- if (pcli->hwndStatus != 0) InvalidateRect(pcli->hwndStatus,NULL,TRUE);
- return 0;
- }
- }
-
- default:
- return DefWindowProc(hwnd, msg, wParam, lParam);
-
- }
- return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-HWND CreateStatusHelper(HWND parent)
-{
- WNDCLASS wndclass = {0};
- TCHAR pluginname[] = _T("Statushelper");
-
- if (GetClassInfo(g_hInst,pluginname,&wndclass) == 0 ) {
- wndclass.style = 0;
- wndclass.lpfnWndProc = StatusHelperProc;
- wndclass.cbClsExtra = 0;
- wndclass.cbWndExtra = 0;
- wndclass.hInstance = g_hInst;
- wndclass.hIcon = NULL;
- wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
- wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
- wndclass.lpszMenuName = NULL;
- wndclass.lpszClassName = pluginname;
- RegisterClass(&wndclass);
- }
-
- return(CreateWindow(pluginname,pluginname,
- /*WS_THICKFRAME|*/WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN,
- 0,0,0,0,parent,NULL,g_hInst,NULL));
-}
-
-HANDLE CreateStatusBarFrame()
-{
- RECT rc;
- GetWindowRect(helperhwnd,&rc);
- int h = rc.bottom-rc.top;
-
- CLISTFrame Frame = { 0 };
- Frame.cbSize = sizeof(CLISTFrame);
- Frame.hWnd = helperhwnd;
- Frame.align = alBottom;
- Frame.hIcon = LoadSkinnedIcon(SKINICON_OTHER_FRAME);
- Frame.Flags = ( db_get_b(NULL,"CLUI","ShowSBar",1)?F_VISIBLE:0)|F_LOCKED|F_NOBORDER|F_TCHAR;
- Frame.height = (h == 0) ? 20 : h;
- Frame.tname = _T("Status");
- Frame.TBtname = TranslateT("Status bar");
- hFrameHelperStatusBar = (HANDLE)CallService(MS_CLIST_FRAMES_ADDFRAME,(WPARAM)&Frame,0);
-
- return hFrameHelperStatusBar;
-}
-
-int RecreateStatusBar(HWND parent)
-{
- if (pcli->hwndStatus) {
- FreeProtocolData();
- DestroyWindow(pcli->hwndStatus);
- }
- pcli->hwndStatus = 0;
- if (hFrameHelperStatusBar) CallService(MS_CLIST_FRAMES_REMOVEFRAME,(WPARAM)hFrameHelperStatusBar,0);
-
- helperhwnd = CreateStatusHelper(parent);
- UseOwnerDrawStatusBar = db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",0);
-
- //create the status wnd
- pcli->hwndStatus = CreateStatusWindow(
- ( db_get_b(0,"CLUI","SBarUseSizeGrip",TRUE) && (!UseOwnerDrawStatusBar)?SBARS_SIZEGRIP:0)|
- WS_CHILD | ( db_get_b(NULL,"CLUI","ShowSBar",1)?WS_VISIBLE:0), _T(""), helperhwnd, 0);
-
- OldWindowProc = (WNDPROC)GetWindowLongPtr(pcli->hwndStatus,GWLP_WNDPROC);
- mir_subclassWindow(pcli->hwndStatus, StatusBarOwnerDrawProc);
- CreateStatusBarFrame();
-
- SetWindowPos(helperhwnd,NULL,1,1,1,1,SWP_NOZORDER);
- CluiProtocolStatusChanged(0,0);
- CallService(MS_CLIST_FRAMES_UPDATEFRAME,-1,0);
- return 0;
-}
-
-HWND CreateStatusBarhWnd(HWND parent)
-{
- RecreateStatusBar(parent);
- OnStatusBarBackgroundChange();
-
- hStatusBarShowToolTipEvent = CreateHookableEvent(ME_CLIST_FRAMES_SB_SHOW_TOOLTIP);
- hStatusBarHideToolTipEvent = CreateHookableEvent(ME_CLIST_FRAMES_SB_HIDE_TOOLTIP);
- return pcli->hwndStatus;
-}
diff --git a/plugins/Clist_mw/src/Version.h b/plugins/Clist_mw/src/Version.h
deleted file mode 100644
index 961c80eef1..0000000000
--- a/plugins/Clist_mw/src/Version.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#define __MAJOR_VERSION 0
-#define __MINOR_VERSION 9
-#define __RELEASE_NUM 0
-#define __BUILD_NUM 0
-
-#include <stdver.h>
-
-#define __PLUGIN_NAME "MultiWindow contact list"
-#define __FILENAME "Clist_mw.dll"
-#define __DESCRIPTION "Displays contacts, event notifications, protocol status with MW modifications."
-#define __AUTHOR "Bethoven"
-#define __AUTHOREMAIL "bethoven@mailgate.ru"
-#define __AUTHORWEB "http://miranda-ng.org/p/Clist_mw/"
-#define __COPYRIGHT "Copyright 2000-2010 Miranda IM project, 2012 Miranda NG project."
diff --git a/plugins/Clist_mw/src/clc.cpp b/plugins/Clist_mw/src/clc.cpp
deleted file mode 100644
index a3c382c1cc..0000000000
--- a/plugins/Clist_mw/src/clc.cpp
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-#include "commonheaders.h"
-
-int DefaultImageListColorDepth = ILC_COLOR32;
-
-HIMAGELIST himlCListClc;
-
-static HANDLE hSettingChanged1;
-
-int BgStatusBarChange(WPARAM wParam, LPARAM lParam);
-
-int BgClcChange(WPARAM wParam, LPARAM lParam);
-int OnFrameTitleBarBackgroundChange(WPARAM wParam, LPARAM lParam);
-
-void InitDisplayNameCache(SortedList *list);
-void FreeDisplayNameCache(SortedList *list);
-
-void UnloadCLUIModule( void );
-
-extern int sortByStatus;
-struct ClcContact * hitcontact = NULL;
-
-extern LRESULT ( CALLBACK *saveContactListControlWndProc )(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-static int stopStatusUpdater = 0;
-void StatusUpdaterThread(void*)
-{
- int i,curdelay,lastcheck = 0;
- MCONTACT hContact = db_find_first();
-
- SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_LOWEST);
-
- while (!stopStatusUpdater) {
- curdelay = db_get_b(hContact,"CList","StatusMsgAutoDelay",15000);
- if (curdelay<5000) curdelay = 5000;
-
- if ((int)(GetTickCount()-lastcheck)>curdelay)
- {
- lastcheck = GetTickCount();
- if ( db_get_b(hContact,"CList","StatusMsgAuto",0)) {
- for (i = 0; i<5; i++) {
- if (hContact != NULL) {
- ClcCacheEntry *pdnce = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (pdnce && !pdnce->protoNotExists && pdnce->szProto)
- CallContactService(hContact, PSS_GETAWAYMSG, 0, 0);
-
- hContact = db_find_next(hContact);
- }
- if (hContact == NULL) {
- hContact = db_find_first();
- if (hContact == NULL)
- break;
- }
- Sleep(500);
- }
- }
- }
- //Sleep( db_get_b(hContact,"CList","StatusMsgAutoDelay",100));
- Sleep(200);
- }
-}
-
-HMENU BuildGroupPopupMenu( ClcGroup* group )
-{
- return (HMENU)CallService(MS_CLIST_MENUBUILDSUBGROUP,(WPARAM)group,0);
-}
-
-void SortClcByTimer (HWND hwnd)
-{
- KillTimer(hwnd,TIMERID_DELAYEDRESORTCLC);
- SetTimer(hwnd,TIMERID_DELAYEDRESORTCLC,db_get_b(NULL,"CLUI","DELAYEDTIMER",200),NULL);
-}
-
-static int ClcSettingChanged(WPARAM hContact, LPARAM lParam)
-{
- DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING*)lParam;
-
- if (hContact != NULL && !strcmp(cws->szModule, META_PROTO) && !strcmp(cws->szSetting, "ParentMeta"))
- pcli->pfnClcBroadcast(INTM_NAMEORDERCHANGED, 0, 0);
-
- if (hContact != NULL && !strcmp(cws->szModule, "CList")) {
- if (!strcmp(cws->szSetting, "noOffline"))
- pcli->pfnClcBroadcast(INTM_NAMEORDERCHANGED, hContact, lParam);
- else if (!strcmp(cws->szSetting, "StatusMsg"))
- pcli->pfnClcBroadcast(INTM_STATUSMSGCHANGED, hContact, lParam);
- }
- return 0;
-}
-
-static int ClcModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("Status bar background")"/StatusBar"), 0);
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("List background")"/CLC"), 0);
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("Frames title bar background")"/FrameTitleBar"), 0);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, BgClcChange);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, BgStatusBarChange);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, OnFrameTitleBarBackgroundChange);
- return 0;
-}
-
-static int ClcShutdown(WPARAM wParam, LPARAM lParam)
-{
- UnhookEvent(hSettingChanged1);
- UnloadCLUIModule();
- return 0;
-}
-
-LRESULT CALLBACK ContactListControlWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- struct ClcData *dat = (struct ClcData*)GetWindowLongPtr(hwnd, 0);
- if (msg >= CLM_FIRST && msg < CLM_LAST)
- return pcli->pfnProcessExternalMessages(hwnd, dat, msg, wParam, lParam);
-
- switch (msg) {
- case WM_CREATE:
- dat = (struct ClcData*)mir_calloc(sizeof(struct ClcData));
- SetWindowLongPtr(hwnd, 0, (LONG_PTR)dat);
- InitDisplayNameCache(&dat->lCLCContactsCache);
- break;
-
- case INTM_ICONCHANGED:
- {
- int recalcScrollBar = 0, shouldShow;
- MCONTACT hSelItem = NULL;
- struct ClcContact *selcontact = NULL;
- ClcCacheEntry *cacheEntry = GetContactFullCacheEntry(wParam);
-
- WORD status;
- int needsResort = 0;
-
- char *szProto = cacheEntry->szProto;
- if (szProto == NULL)
- status = ID_STATUS_OFFLINE;
- else
- status = cacheEntry->status;
-
- // this means an offline msg is flashing, so the contact should be shown
- shouldShow = (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !cacheEntry->bIsHidden) &&
- (!pcli->pfnIsHiddenMode(dat, status) || cacheEntry->noHiddenOffline || pcli->pfnGetContactIcon(wParam) != LOWORD(lParam));
-
- ClcContact *contact;
- ClcGroup *group;
- if (!FindItem(hwnd, dat, wParam, &contact, &group, NULL)) {
- if (shouldShow && CallService(MS_DB_CONTACT_IS, wParam, 0)) {
- if (dat->selection >= 0 && GetRowByIndex(dat, dat->selection, &selcontact, NULL) != -1)
- hSelItem = (MCONTACT)pcli->pfnContactToHItem(selcontact);
- AddContactToTree(hwnd, dat, wParam, 0, 0);
- needsResort = 1;
- recalcScrollBar = 1;
- FindItem(hwnd, dat, wParam, &contact, NULL, NULL);
- if (contact) {
- contact->iImage = (WORD)lParam;
- pcli->pfnNotifyNewContact(hwnd, wParam);
- dat->needsResort = 1;
- }
- }
- }
- else {
- //item in list already
- DWORD style = GetWindowLongPtr(hwnd, GWL_STYLE);
- if (contact->iImage == (WORD)lParam) break;
- if (sortByStatus) dat->needsResort = 1;
-
- if (!shouldShow && !(style & CLS_NOHIDEOFFLINE) && (style & CLS_HIDEOFFLINE || group->hideOffline)) {
- if (dat->selection >= 0 && GetRowByIndex(dat, dat->selection, &selcontact, NULL) != -1)
- hSelItem = (MCONTACT)pcli->pfnContactToHItem(selcontact);
- RemoveItemFromGroup(hwnd, group, contact, 0);
- recalcScrollBar = 1;
- dat->needsResort = 1;
- }
- else {
- int oldflags;
- contact->iImage = (WORD)lParam;
- oldflags = contact->flags;
- if (!pcli->pfnIsHiddenMode(dat, status) || cacheEntry->noHiddenOffline) contact->flags |= CONTACTF_ONLINE;
- else contact->flags &= ~CONTACTF_ONLINE;
- if (oldflags != contact->flags)
- dat->needsResort = 1;
- }
- }
- if (hSelItem) {
- ClcGroup *selgroup;
- if (FindItem(hwnd, dat, hSelItem, &selcontact, &selgroup, NULL))
- dat->selection = GetRowsPriorTo(&dat->list, selgroup, List_IndexOf((SortedList*)&selgroup->cl, selcontact));
- else
- dat->selection = -1;
- }
-
- SortClcByTimer(hwnd);
- if (recalcScrollBar) RecalcScrollBar(hwnd, dat);
- goto LBL_Exit;
- }
- case INTM_STATUSMSGCHANGED:
- {
- DBVARIANT dbv;
-
- if (!(dat->style & CLS_SHOWSTATUSMESSAGES))
- break;
-
- ClcContact *contact;
- ClcGroup *group;
- if (FindItem(hwnd, dat, wParam, &contact, &group, NULL) && contact != NULL) {
- contact->flags &= ~CONTACTF_STATUSMSG;
- if (!db_get_ts(wParam, "CList", "StatusMsg", &dbv)) {
- int j;
- if (dbv.ptszVal == NULL || _tcslen(dbv.ptszVal) == 0) break;
- lstrcpyn(contact->szStatusMsg, dbv.ptszVal, SIZEOF(contact->szStatusMsg));
- for (j = (int)_tcslen(contact->szStatusMsg) - 1; j >= 0; j--) {
- if (contact->szStatusMsg[j] == '\r' || contact->szStatusMsg[j] == '\n' || contact->szStatusMsg[j] == '\t') {
- contact->szStatusMsg[j] = ' ';
- }
- }
- db_free(&dbv);
- if (contact->szStatusMsg[0] != 0) {
- contact->flags |= CONTACTF_STATUSMSG;
- dat->needsResort = TRUE;
- }
- }
- }
-
- InvalidateRect(hwnd, NULL, TRUE);
-
- SortClcByTimer(hwnd);
- RecalcScrollBar(hwnd, dat);
- goto LBL_Exit;
- }
-
- case WM_TIMER:
- if (wParam == TIMERID_DELAYEDREPAINT) {
- KillTimer(hwnd, TIMERID_DELAYEDREPAINT);
- InvalidateRect(hwnd, NULL, FALSE);
- break;
- }
-
- if (wParam == TIMERID_SUBEXPAND) {
- KillTimer(hwnd, TIMERID_SUBEXPAND);
- if (hitcontact) {
- if (hitcontact->SubExpanded) hitcontact->SubExpanded = 0; else hitcontact->SubExpanded = 1;
- db_set_b(hitcontact->hContact, "CList", "Expanded", hitcontact->SubExpanded);
- }
- hitcontact = NULL;
- dat->needsResort = 1;
- SortCLC(hwnd, dat, 1);
- RecalcScrollBar(hwnd, dat);
- break;
- }
- break;
-
- case WM_DESTROY:
- FreeDisplayNameCache(&dat->lCLCContactsCache);
- stopStatusUpdater = 1;
- break;
- }
-
- LRESULT res = saveContactListControlWndProc(hwnd, msg, wParam, lParam);
- switch (msg) {
- case WM_CREATE:
- mir_forkthread(StatusUpdaterThread, 0);
- break;
- }
- return res;
-
-LBL_Exit:
- return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-int LoadCLCModule(void)
-{
- LoadCLUIFramesModule();
-
- himlCListClc = (HIMAGELIST)CallService(MS_CLIST_GETICONSIMAGELIST, 0, 0);
-
- HookEvent(ME_SYSTEM_MODULESLOADED, ClcModulesLoaded);
- hSettingChanged1 = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, ClcSettingChanged);
- HookEvent(ME_OPT_INITIALISE, ClcOptInit);
- HookEvent(ME_SYSTEM_SHUTDOWN, ClcShutdown);
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static INT_PTR CLUIGetCapsService(WPARAM wParam, LPARAM lParam)
-{
- switch (wParam) {
- case CLUICAPS_FLAGS1:
- return CLUIF_HIDEEMPTYGROUPS | CLUIF_DISABLEGROUPS | CLUIF_HASONTOPOPTION | CLUIF_HASAUTOHIDEOPTION;
- case CLUICAPS_FLAGS2:
- return MAKELONG(EXTRA_ICON_COUNT, 1);
- }
- return 0;
-}
-
-int PreloadCLCModule()
-{
- CreateServiceFunction(MS_CLUI_GETCAPS, CLUIGetCapsService);
- return 0;
-}
diff --git a/plugins/Clist_mw/src/clc.h b/plugins/Clist_mw/src/clc.h
deleted file mode 100644
index efc13fd87d..0000000000
--- a/plugins/Clist_mw/src/clc.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-#ifndef _CLC_H_
-#define _CLC_H_
-
-#define CLB_TOPLEFT 0
-#define CLB_STRETCHV 1
-#define CLB_STRETCHH 2 //and tile vertically
-#define CLB_STRETCH 3
-
-#define CLBM_TYPE 0x00FF
-
-#define CLBF_TILEH 0x1000
-#define CLBF_TILEV 0x2000
-#define CLBF_PROPORTIONAL 0x4000
-#define CLBF_SCROLL 0x8000
-#define CLBF_TILEVTOROWHEIGHT 0x0100
-
-#define FONTID_CONTACTS 0
-#define FONTID_INVIS 1
-#define FONTID_OFFLINE 2
-#define FONTID_NOTONLIST 3
-#define FONTID_GROUPS 4
-#define FONTID_GROUPCOUNTS 5
-#define FONTID_DIVIDERS 6
-#define FONTID_OFFINVIS 7
-#define FONTID_STATUSMSG 8
-#define FONTID_GROUPSCLOSED 9
-#define FONTID_CONTACTSHOVER 10
-
-#define TIMERID_DELAYEDREPAINT 16
-#define TIMERID_SUBEXPAND 21
-
-#define CONTACTF_STATUSMSG 64
-
-#define INTM_STATUSMSGCHANGED (WM_USER+26)
-
-#define CLS_SHOWSTATUSMESSAGES 0x800
-
-#define CLS_EX_MULTICOLUMNALIGNLEFT 0x00001000
-
-#define MAXSTATUSMSGLEN 256
-
-struct ClcContact : public ClcContactBase
-{
- ClcContact *subcontacts;
- BYTE SubAllocated;
- BYTE SubExpanded;
- BYTE isSubcontact;
- TCHAR szStatusMsg[MAXSTATUSMSGLEN];
-};
-
-struct ClcData : public ClcDataBase
-{
- DWORD style;
- SortedList lCLCContactsCache;
- BYTE doubleClickExpand;
- int MetaIgnoreEmptyExtra;
-};
-
-//clcidents.c
-int GetRowsPriorTo(ClcGroup *group,ClcGroup *subgroup,int contactIndex);
-int FindItem(HWND hwnd, struct ClcData *dat, DWORD dwItem, struct ClcContact **contact, ClcGroup **subgroup, int *isVisible);
-int GetRowByIndex(struct ClcData *dat,int testindex,struct ClcContact **contact,ClcGroup **subgroup);
-void ClearRowByIndexCache();
-
-//clcitems.c
-ClcGroup *AddGroup(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers);
-void FreeGroup(ClcGroup *group);
-int AddInfoItemToGroup(ClcGroup *group,int flags,const TCHAR *pszText);
-void FreeContact(struct ClcContact *p);
-void RebuildEntireList(HWND hwnd,struct ClcData *dat);
-ClcGroup *RemoveItemFromGroup(HWND hwnd,ClcGroup *group,struct ClcContact *contact,int updateTotalCount);
-void DeleteItemFromTree(HWND hwnd, MCONTACT hItem);
-void AddContactToTree(HWND hwnd, struct ClcData *dat, MCONTACT hContact, int updateTotalCount, int checkHideOffline);
-void SortCLC(HWND hwnd,struct ClcData *dat,int useInsertionSort);
-int GetGroupContentsCount(ClcGroup *group,int visibleOnly);
-int GetNewSelection(ClcGroup *group,int selection, int direction);
-void SaveStateAndRebuildList(HWND hwnd,struct ClcData *dat);
-
-//clcmsgs.c
-LRESULT ProcessExternalMessages(HWND hwnd,struct ClcData *dat,UINT msg,WPARAM wParam, LPARAM lParam);
-
-//clcutils.c
-void RecalcScrollBar(HWND hwnd,struct ClcData *dat);
-void BeginRenameSelection(HWND hwnd,struct ClcData *dat);
-int HitTest(HWND hwnd,struct ClcData *dat,int testx,int testy,struct ClcContact **contact,ClcGroup **group,DWORD *flags);
-void ScrollTo(HWND hwnd,struct ClcData *dat,int desty,int noSmooth);
-void LoadClcOptions(HWND hwnd,struct ClcData *dat);
-
-//clcpaint.c
-void PaintClc(HWND hwnd,struct ClcData *dat,HDC hdc,RECT *rcPaint);
-
-//clcopts.c
-int ClcOptInit(WPARAM wParam, LPARAM lParam);
-
-//clcfiledrop.c
-void InitFileDropping(void);
-void FreeFileDropping(void);
-void RegisterFileDropping(HWND hwnd);
-void UnregisterFileDropping(HWND hwnd);
-
-//cluiservices.c
-void FreeProtocolData( void );
-
-int GetContactCachedStatus(MCONTACT hContact);
-char *GetContactCachedProtocol(MCONTACT hContact);
-
-#define CLUI_SetDrawerService "CLUI/SETDRAWERSERVICE"
-typedef struct {
- int cbSize;
- char *PluginName;
- char *Comments;
- char *GetDrawFuncsServiceName;
-
-} DrawerServiceStruct,*pDrawerServiceStruct ;
-
-#define CLUI_EXT_FUNC_PAINTCLC 1
-
-typedef struct {
- int cbSize;
- void (*PaintClc)(HWND,struct ClcData *,HDC,RECT *,int ,ClcProtoStatus *,HIMAGELIST);
-} ExternDrawer,*pExternDrawer ;
-
-extern ExternDrawer SED;
-
-#endif /* _CLC_H_ */
diff --git a/plugins/Clist_mw/src/clcfonts.cpp b/plugins/Clist_mw/src/clcfonts.cpp
deleted file mode 100644
index de73ee3600..0000000000
--- a/plugins/Clist_mw/src/clcfonts.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-10 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-struct
-{
- const TCHAR *tszName;
- int iMask;
-}
-static clistFontDescr[] =
-{
- { LPGENT("Standard contacts"), FIDF_CLASSGENERAL },
- { LPGENT("Online contacts to whom you have a different visibility"), FIDF_CLASSGENERAL },
- { LPGENT("Offline contacts"), FIDF_CLASSGENERAL },
- { LPGENT("Contacts which are 'not on list'"), FIDF_CLASSGENERAL },
- { LPGENT("Groups"), FIDF_CLASSHEADER },
- { LPGENT("Group member counts"), FIDF_CLASSHEADER },
- { LPGENT("Dividers"), FIDF_CLASSSMALL },
- { LPGENT("Offline contacts to whom you have a different visibility"), FIDF_CLASSGENERAL },
- { LPGENT("Status messages"), FIDF_CLASSGENERAL },
- { LPGENT("Group closed"), FIDF_CLASSGENERAL },
- { LPGENT("Hovered contacts"), FIDF_CLASSGENERAL }
-};
-
-#define CLCDEFAULT_BKCOLOUR GetSysColor(COLOR_3DFACE)
-#define CLCDEFAULT_SELTEXTCOLOUR GetSysColor(COLOR_HIGHLIGHTTEXT)
-
-static int FS_FontsChanged(WPARAM wParam, LPARAM lParam)
-{
- pcli->pfnClcOptionsChanged();
- return 0;
-}
-
-void RegisterCListFonts()
-{
- FontIDT fontid = { sizeof(fontid) };
- fontid.flags = FIDF_DEFAULTVALID | FIDF_ALLOWREREGISTER | FIDF_APPENDNAME | FIDF_NOAS | FIDF_SAVEPOINTSIZE | FIDF_ALLOWEFFECTS;
- strncpy(fontid.dbSettingsGroup, "CLC", sizeof(fontid.dbSettingsGroup));
- _tcsncpy(fontid.group, _T("Contact list"), SIZEOF(fontid.group));
-
- HDC hdc = GetDC(NULL);
- for (int i = 0; i < SIZEOF(clistFontDescr); i++) {
- LOGFONT lf;
- pcli->pfnGetFontSetting(i, &lf, &fontid.deffontsettings.colour);
- lf.lfHeight = -MulDiv(lf.lfHeight, GetDeviceCaps(hdc, LOGPIXELSY), 72);
-
- _tcsncpy_s(fontid.deffontsettings.szFace, lf.lfFaceName, _TRUNCATE);
- fontid.deffontsettings.charset = lf.lfCharSet;
- fontid.deffontsettings.size = (char)lf.lfHeight;
- fontid.deffontsettings.style = (lf.lfWeight >= FW_BOLD ? DBFONTF_BOLD : 0) | (lf.lfItalic ? DBFONTF_ITALIC : 0);
-
- fontid.flags &= ~FIDF_CLASSMASK;
- fontid.flags |= clistFontDescr[i].iMask;
-
- _tcsncpy(fontid.name, clistFontDescr[i].tszName, SIZEOF(fontid.name));
-
- char idstr[10];
- mir_snprintf(idstr, SIZEOF(idstr), "Font%d", i);
- strncpy(fontid.prefix, idstr, SIZEOF(fontid.prefix));
- fontid.order = i;
- FontRegisterT(&fontid);
- }
- ReleaseDC(NULL, hdc);
-
- // and colours
- ColourIDT colourid = { sizeof(colourid) };
- colourid.order = 0;
- strncpy(colourid.dbSettingsGroup, "CLC", sizeof(colourid.dbSettingsGroup));
-
- strncpy(colourid.setting, "BkColour", sizeof(colourid.setting));
- _tcsncpy(colourid.name, LPGENT("Background"), SIZEOF(colourid.name));
- _tcsncpy(colourid.group, LPGENT("Contact list"), SIZEOF(colourid.group));
- colourid.defcolour = CLCDEFAULT_BKCOLOUR;
- ColourRegisterT(&colourid);
-
- strncpy(colourid.setting, "SelTextColour", sizeof(colourid.setting));
- _tcsncpy(colourid.name, LPGENT("Selected text"), SIZEOF(colourid.name));
- colourid.order = 1;
- colourid.defcolour = CLCDEFAULT_SELTEXTCOLOUR;
- ColourRegisterT(&colourid);
-
- strncpy(colourid.setting, "HotTextColour", sizeof(colourid.setting));
- _tcsncpy(colourid.name, LPGENT("Hottrack text"), SIZEOF(colourid.name));
- colourid.order = 1;
- colourid.defcolour = CLCDEFAULT_HOTTEXTCOLOUR;
- ColourRegisterT(&colourid);
-
- strncpy(colourid.setting, "QuickSearchColour", sizeof(colourid.setting));
- _tcsncpy(colourid.name, LPGENT("Quicksearch text"), SIZEOF(colourid.name));
- colourid.order = 1;
- colourid.defcolour = CLCDEFAULT_QUICKSEARCHCOLOUR;
- ColourRegisterT(&colourid);
-
- HookEvent(ME_FONT_RELOAD, FS_FontsChanged);
-}
diff --git a/plugins/Clist_mw/src/clcidents.cpp b/plugins/Clist_mw/src/clcidents.cpp
deleted file mode 100644
index c74a2d8bfb..0000000000
--- a/plugins/Clist_mw/src/clcidents.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-#include "commonheaders.h"
-#include "clc.h"
-
-/* the CLC uses 3 different ways to identify elements in its list, this file
-contains routines to convert between them.
-
-1) struct ClcContact/ClcGroup pair. Only ever used within the duration
-of a single operation, but used at some point in nearly everything
-2) index integer. The 0-based number of the item from the top. Only visible
-items are counted (ie not closed groups). Used for saving selection and drag
-highlight
-3) hItem handle. Either the hContact or (hGroup|HCONTACT_ISGROUP). Used
-exclusively externally
-
-1->2: GetRowsPriorTo()
-1->3: ContactToHItem()
-3->1: FindItem()
-2->1: GetRowByIndex()
-*/
-
-int GetRowsPriorTo(ClcGroup *group,ClcGroup *subgroup,int contactIndex)
-{
- int count = 0;
-
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL)
- break;
- group->scanIndex++;
- continue;
- }
-
- if (group == subgroup && contactIndex == group->scanIndex)
- return count;
-
- count++;
- if ((group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) && (group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG))
- count++;
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
- if (group->cl.items[group->scanIndex]->group == subgroup && contactIndex == -1)
- return count-1;
- if (group->cl.items[group->scanIndex]->group->expanded) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- continue;
- }
- }
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT)
- count += group->cl.items[group->scanIndex]->SubAllocated*group->cl.items[group->scanIndex]->SubExpanded;
-
- group->scanIndex++;
- }
- return -1;
-}
-
-ClcCacheEntry *GetCLCFullCacheEntry(struct ClcData *dat,MCONTACT hContact)
-{
- if (hContact == 0)
- return NULL;
-
- ClcCacheEntry dnce;
- dnce.hContact = hContact;
- ClcCacheEntry *pdnce = (ClcCacheEntry*)List_Find(&dat->lCLCContactsCache,&dnce);
- if (pdnce == NULL) {
- pdnce = (ClcCacheEntry*)mir_calloc(sizeof(ClcCacheEntry));
- pdnce->hContact = hContact;
-
- int idx;
- List_GetIndex(&dat->lCLCContactsCache,pdnce,&idx);
- List_Insert(&dat->lCLCContactsCache,pdnce,idx);
-
- ClcCacheEntry *pdnce2 = (ClcCacheEntry*)List_Find(&dat->lCLCContactsCache,&dnce);//for check
- if (pdnce2->hContact != pdnce->hContact)
- return NULL;
-
- if (pdnce2 != pdnce)
- return NULL;
- }
-
- return (pdnce);
-}
-
-void ClearClcContactCache(struct ClcData *dat,MCONTACT hContact)
-{
- ClcCacheEntry *cacheEntry;
-
- if (hContact == INVALID_CONTACT_ID) {
- int i,tick;
- tick = GetTickCount();
-
- for (i = 0;i<(dat->lCLCContactsCache.realCount);i++) {
- ClcCacheEntry *pdnce = (ClcCacheEntry *)dat->lCLCContactsCache.items[i];
- pdnce->ClcContact = NULL;
- }
- tick = GetTickCount()-tick;
- {
- char buf[256];
- mir_snprintf(buf, SIZEOF(buf), "Clear full cache %d ms\r\n", tick);
- OutputDebugStringA(buf);
- }
- }
- if ( !IsHContactGroup(hContact) && !IsHContactInfo(hContact)) {
- cacheEntry = GetCLCFullCacheEntry(dat,hContact);
- if (cacheEntry != NULL)
- cacheEntry->ClcContact = NULL;
- }
-}
-
-void SetClcContactCacheItem(struct ClcData *dat, MCONTACT hContact, void *contact)
-{
- ClcCacheEntry *cacheEntry;
- if ( !IsHContactGroup(hContact) && !IsHContactInfo(hContact)) {
- cacheEntry = GetCLCFullCacheEntry(dat,hContact);
- if (cacheEntry != NULL)
- cacheEntry->ClcContact = contact;
- }
-}
-
-int FindItem(HWND hwnd, struct ClcData *dat, DWORD dwItem, struct ClcContact **contact, ClcGroup **subgroup, int *isVisible)
-{
- int index = 0, i;
- int nowVisible = 1;
- ClcGroup *group = &dat->list;
-
- group->scanIndex = 0;
-
- if (isVisible == NULL && dwItem != NULL && subgroup == NULL && !IsHContactGroup(dwItem) && !IsHContactInfo(dwItem)) {
- //try use cache
- ClcCacheEntry *cacheEntry = GetCLCFullCacheEntry(dat, dwItem);
- if (cacheEntry != NULL) {
- if (cacheEntry->ClcContact == NULL) {
- int *isv = {0};
- void *z = {0};
- int ret;
- ret = FindItem(hwnd,dat,dwItem,(struct ClcContact ** )&z,(struct ClcGroup** )&isv,NULL);
- if (ret == 0) {return 0;}
- cacheEntry->ClcContact = (void *)z;
- }
-
- if (cacheEntry->ClcContact != NULL) {
- if (contact != NULL)
- *contact = (struct ClcContact *)cacheEntry->ClcContact;
-
- return 1;
- }
- }
- }
-
- group = &dat->list;
-
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- ClcGroup *tgroup;
- group = group->parent;
- if (group == NULL)
- break;
-
- nowVisible = 1;
- for (tgroup = group;tgroup;tgroup = tgroup->parent)
- if ( !group->expanded) {
- nowVisible = 0;
- break;
- }
-
- group->scanIndex++;
- continue;
- }
- if (nowVisible) index++;
- if ((IsHContactGroup(dwItem) && group->cl.items[group->scanIndex]->type == CLCIT_GROUP && (dwItem & ~HCONTACT_ISGROUP) == group->cl.items[group->scanIndex]->groupId) ||
- (IsHContactContact(dwItem) && group->cl.items[group->scanIndex]->type == CLCIT_CONTACT && group->cl.items[group->scanIndex]->hContact == dwItem) ||
- (IsHContactInfo(dwItem) && group->cl.items[group->scanIndex]->type == CLCIT_INFO && group->cl.items[group->scanIndex]->hContact == (dwItem & ~HCONTACT_ISINFO)))
- {
- if (isVisible) {
- if ( !nowVisible) *isVisible = 0;
- else {
- if ((index+1)*dat->rowHeight<dat->yScroll) *isVisible = 0;
- else {
- RECT clRect;
- GetClientRect(hwnd,&clRect);
- if (index*dat->rowHeight>=dat->yScroll+clRect.bottom) *isVisible = 0;
- else *isVisible = 1;
- } } }
-
- if (contact) *contact = group->cl.items[group->scanIndex];
- if (subgroup) *subgroup = group;
- return 1;
- }
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT &&
- group->cl.items[group->scanIndex]->SubAllocated>0)
- for (i = 1; i<=group->cl.items[group->scanIndex]->SubAllocated; i++)
- if (IsHContactContact(dwItem) && group->cl.items[group->scanIndex]->subcontacts[i-1].hContact == dwItem) {
- if (contact) *contact = &group->cl.items[group->scanIndex]->subcontacts[i-1];
- if (subgroup) *subgroup = group;
- return 1;
- }
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
- ClcGroup* save = group;
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- nowVisible &= group->expanded;
- continue;
- }
- group->scanIndex++;
- }
-
- if (isVisible) *isVisible = FALSE;
- if (contact) *contact = NULL;
- if (subgroup) *subgroup = NULL;
- return 0;
-}
-#define CacheArrSize 255
-ClcGroup *CacheIndex[CacheArrSize] = {NULL};
-boolean CacheIndexClear = TRUE;
-void ClearRowByIndexCache()
-{
- if ( !CacheIndexClear) {
- memset(CacheIndex,0,sizeof(CacheIndex));
- CacheIndexClear = TRUE;
- }
-}
-
-int GetRowByIndex(struct ClcData *dat,int testindex,struct ClcContact **contact,ClcGroup **subgroup)
-{
- int index = 0,i;
- ClcGroup *group = &dat->list;
-
- if (testindex < 0) return -1;
-
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL) break;
- group->scanIndex++;
- continue;
- }
- if ((index>0) && (index<CacheArrSize))
- {
- CacheIndex[index] = group;
- CacheIndexClear = FALSE;
- }
-
- if (testindex == index) {
- if (contact) *contact = group->cl.items[group->scanIndex];
- if (subgroup) *subgroup = group;
- return index;
- }
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT)
- if (group->cl.items[group->scanIndex]->SubAllocated)
- if (group->cl.items[group->scanIndex]->SubExpanded) {
- for (i = 0;i<group->cl.items[group->scanIndex]->SubAllocated;i++) {
- if ((index>0) && (index<CacheArrSize)) {
- CacheIndex[index] = group;
- CacheIndexClear = FALSE;
- }
- index++;
- if (testindex == index) {
- if (contact) *contact = &group->cl.items[group->scanIndex]->subcontacts[i];
- if (subgroup) *subgroup = group;
- return index;
- }
- }
- }
-
- index++;
- if ((group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) && (group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG))
- index++;
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP && group->cl.items[group->scanIndex]->group->expanded) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- continue;
- }
- group->scanIndex++;
- }
- return -1;
-}
diff --git a/plugins/Clist_mw/src/clcitems.cpp b/plugins/Clist_mw/src/clcitems.cpp
deleted file mode 100644
index 0e67a18318..0000000000
--- a/plugins/Clist_mw/src/clcitems.cpp
+++ /dev/null
@@ -1,685 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clc.h"
-#include "clist.h"
-#include "m_metacontacts.h"
-
-
-extern int ( *saveAddItemToGroup )( ClcGroup *group, int iAboveItem );
-extern int ( *saveAddInfoItemToGroup )(ClcGroup *group,int flags,const TCHAR *pszText);
-extern ClcGroup* ( *saveAddGroup )(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers);
-extern void (*saveFreeContact)(struct ClcContact *p);
-extern void (*saveFreeGroup)(ClcGroup *p);
-
-//routines for managing adding/removal of items in the list, including sorting
-
-extern void ClearClcContactCache(struct ClcData *dat,MCONTACT hContact);
-
-void AddSubcontacts(struct ClcContact * cont)
-{
- int subcount,i,j;
- ClcCacheEntry *cacheEntry;
- cacheEntry = GetContactFullCacheEntry(cont->hContact);
- OutputDebugStringA("Proceed AddSubcontacts\r\n");
- subcount = db_mc_getSubCount(cont->hContact);
- cont->SubExpanded = db_get_b(cont->hContact,"CList","Expanded",0);
- cont->isSubcontact = 0;
- cont->subcontacts = (struct ClcContact *) mir_realloc(cont->subcontacts, sizeof(struct ClcContact)*subcount);
- cont->SubAllocated = subcount;
- i = 0;
- for (j = 0; j<subcount; j++) {
- MCONTACT hsub = db_mc_getSub(cont->hContact, j);
- cacheEntry = GetContactFullCacheEntry(hsub);
- if ( !(db_get_b(NULL,"CLC","MetaHideOfflineSub",1) && db_get_b(NULL, "CList", "HideOffline", SETTING_HIDEOFFLINE_DEFAULT)) ||
- cacheEntry->status != ID_STATUS_OFFLINE )
- {
- cont->subcontacts[i].hContact = cacheEntry->hContact;
- cont->subcontacts[i].iImage = pcli->pfnGetContactIcon(cacheEntry->hContact);
- memset(cont->subcontacts[i].iExtraImage, 0xFF, sizeof(cont->subcontacts[i].iExtraImage));
- cont->subcontacts[i].proto = cacheEntry->szProto;
- lstrcpyn(cont->subcontacts[i].szText,cacheEntry->tszName,SIZEOF(cont->subcontacts[i].szText));
- cont->subcontacts[i].type = CLCIT_CONTACT;
- //cont->flags = 0;//CONTACTF_ONLINE;
- cont->subcontacts[i].isSubcontact = 1;
- i++;
- }
- }
- cont->SubAllocated = i;
- if (i == 0)
- mir_free(cont->subcontacts);
-}
-
-void FreeContact(struct ClcContact *p)
-{
- if ( p->SubAllocated && !p->isSubcontact)
- mir_free(p->subcontacts);
-
- saveFreeContact( p );
-}
-
-int AddItemToGroup(ClcGroup *group,int iAboveItem)
-{
- iAboveItem = saveAddItemToGroup( group, iAboveItem );
- ClearRowByIndexCache();
- return iAboveItem;
-}
-
-ClcGroup *AddGroup(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers)
-{
- ClearRowByIndexCache();
- dat->needsResort = 1;
- ClcGroup *result = saveAddGroup( hwnd, dat, szName, flags, groupId, calcTotalMembers);
- ClearRowByIndexCache();
- return result;
-}
-
-void FreeGroup(ClcGroup *group)
-{
- saveFreeGroup( group );
- ClearRowByIndexCache();
-}
-
-int AddInfoItemToGroup(ClcGroup *group,int flags,const TCHAR *pszText)
-{
- int i = saveAddInfoItemToGroup( group, flags, pszText );
- ClearRowByIndexCache();
- return i;
-}
-
-static struct ClcContact* AddContactToGroup(struct ClcData *dat,ClcGroup *group,ClcCacheEntry *cacheEntry)
-{
- char *szProto;
- WORD apparentMode;
- DWORD idleMode;
- MCONTACT hContact;
- DBVARIANT dbv;
- int i;
- int img = -1;
- int basicIcon = 0;
-
- if (cacheEntry == NULL || group == NULL || dat == NULL)
- return NULL;
-
- hContact = cacheEntry->hContact;
-
- dat->needsResort = 1;
- for (i = group->cl.count-1;i>=0;i--)
- if (group->cl.items[i]->type != CLCIT_INFO || !(group->cl.items[i]->flags&CLCIIF_BELOWCONTACTS)) break;
- i = AddItemToGroup(group,i+1);
- group->cl.items[i]->type = CLCIT_CONTACT;
- group->cl.items[i]->SubAllocated = 0;
- group->cl.items[i]->isSubcontact = 0;
- group->cl.items[i]->subcontacts = NULL;
-
- if (ProtoServiceExists(cacheEntry->szProto, PS_GETADVANCEDSTATUSICON))
- img = ProtoCallService(cacheEntry->szProto, PS_GETADVANCEDSTATUSICON, hContact, 0);
-
- if (img == -1 || !(LOWORD(img)))
- img = pcli->pfnGetContactIcon(hContact);
-
- group->cl.items[i]->iImage = img;
-
- cacheEntry = GetContactFullCacheEntry(hContact);
- group->cl.items[i]->hContact = hContact;
-
- //cacheEntry->ClcContact = &(group->cl.items[i]);
- //SetClcContactCacheItem(dat,hContact,&(group->cl.items[i]));
-
- szProto = cacheEntry->szProto;
- if (szProto != NULL && !pcli->pfnIsHiddenMode(dat,cacheEntry->status))
- group->cl.items[i]->flags |= CONTACTF_ONLINE;
- apparentMode = szProto != NULL?cacheEntry->ApparentMode:0;
- if (apparentMode == ID_STATUS_OFFLINE) group->cl.items[i]->flags |= CONTACTF_INVISTO;
- else if (apparentMode == ID_STATUS_ONLINE) group->cl.items[i]->flags |= CONTACTF_VISTO;
- else if (apparentMode) group->cl.items[i]->flags |= CONTACTF_VISTO|CONTACTF_INVISTO;
- if (cacheEntry->NotOnList) group->cl.items[i]->flags |= CONTACTF_NOTONLIST;
- idleMode = szProto != NULL?cacheEntry->IdleTS:0;
- if (idleMode) group->cl.items[i]->flags |= CONTACTF_IDLE;
-
- lstrcpyn(group->cl.items[i]->szText,cacheEntry->tszName, SIZEOF(group->cl.items[i]->szText));
- group->cl.items[i]->proto = szProto;
-
- if (dat->style & CLS_SHOWSTATUSMESSAGES) {
- if ( !db_get_ts(hContact, "CList", "StatusMsg", &dbv)) {
- int j;
- lstrcpyn(group->cl.items[i]->szStatusMsg, dbv.ptszVal, SIZEOF(group->cl.items[i]->szStatusMsg));
- for (j = (int)_tcslen(group->cl.items[i]->szStatusMsg)-1;j>=0;j--) {
- if (group->cl.items[i]->szStatusMsg[j] == '\r' || group->cl.items[i]->szStatusMsg[j] == '\n' || group->cl.items[i]->szStatusMsg[j] == '\t') {
- group->cl.items[i]->szStatusMsg[j] = ' ';
- }
- }
- db_free(&dbv);
- if (group->cl.items[i]->szStatusMsg[0] != 0) {
- group->cl.items[i]->flags |= CONTACTF_STATUSMSG;
- }
- }
- }
-
- ClearRowByIndexCache();
- return group->cl.items[i];
-}
-
-void AddContactToTree(HWND hwnd, ClcData *dat, MCONTACT hContact, int updateTotalCount, int checkHideOffline)
-{
- if (FindItem(hwnd, dat, hContact, NULL, NULL, NULL) == 1)
- return;
-
- ClcCacheEntry *cacheEntry = GetContactFullCacheEntry(hContact);
- if (cacheEntry == NULL)
- return;
-
- char *szProto = cacheEntry->szProto;
-
- dat->needsResort = 1;
- ClearRowByIndexCache();
- ClearClcContactCache(dat,hContact);
-
- WORD status;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
- if (style & CLS_NOHIDEOFFLINE) checkHideOffline = 0;
- if (checkHideOffline) {
- if (szProto == NULL) status = ID_STATUS_OFFLINE;
- else status = cacheEntry->status;
- }
-
- ClcGroup *group;
- if (lstrlen(cacheEntry->tszGroup) == 0)
- group = &dat->list;
- else {
- group = AddGroup(hwnd,dat,cacheEntry->tszGroup,(DWORD)-1,0,0);
- if (group == NULL) {
- DWORD groupFlags;
- int i;
- if ( !(style & CLS_HIDEEMPTYGROUPS))
- return;
-
- if (checkHideOffline && pcli->pfnIsHiddenMode(dat,status)) {
- for (i = 1;;i++) {
- TCHAR *szGroupName = pcli->pfnGetGroupName(i, &groupFlags);
- if (szGroupName == NULL)
- return; //never happens
- if ( !lstrcmp(szGroupName,cacheEntry->tszGroup))
- break;
- }
- if (groupFlags & GROUPF_HIDEOFFLINE)
- return;
- }
- for (i = 1;; i++) {
- TCHAR *szGroupName = pcli->pfnGetGroupName(i, &groupFlags);
- if (szGroupName == NULL)
- return; //never happens
- if ( !lstrcmp(szGroupName,cacheEntry->tszGroup))
- break;
- size_t len = lstrlen(szGroupName);
- if ( !_tcsncmp(szGroupName,cacheEntry->tszGroup,len) && cacheEntry->tszGroup[len] == '\\')
- AddGroup(hwnd,dat,szGroupName,groupFlags,i,1);
- }
- group = AddGroup(hwnd,dat,cacheEntry->tszGroup,groupFlags,i,1);
- }
- }
-
- if (checkHideOffline) {
- if (pcli->pfnIsHiddenMode(dat,status) && (style & CLS_HIDEOFFLINE || group->hideOffline)) {
- if (updateTotalCount) group->totalMembers++;
- return;
- }
- }
-
- ClcContact *cont = AddContactToGroup(dat, group, cacheEntry);
- if (cont && cont->proto) {
- cont->SubAllocated = 0;
- if (strcmp(cont->proto, META_PROTO) == 0)
- AddSubcontacts(cont);
- }
- if (updateTotalCount)
- group->totalMembers++;
- ClearRowByIndexCache();
-}
-
-extern ClcGroup* ( *saveRemoveItemFromGroup )(HWND hwnd,ClcGroup *group,struct ClcContact *contact,int updateTotalCount);
-
-ClcGroup *RemoveItemFromGroup(HWND hwnd,ClcGroup *group,struct ClcContact *contact,int updateTotalCount)
-{
- ClearRowByIndexCache();
- if (contact->type == CLCIT_CONTACT) {
- struct ClcData* dat = (struct ClcData*)GetWindowLongPtr(hwnd,0);
- ClearClcContactCache(dat,contact->hContact);
- }
-
- group = saveRemoveItemFromGroup(hwnd, group, contact, updateTotalCount);
-
- ClearRowByIndexCache();
- return group;
-}
-
-void DeleteItemFromTree(HWND hwnd, MCONTACT hItem)
-{
- struct ClcContact *contact;
- ClcGroup *group;
- struct ClcData *dat = (struct ClcData*)GetWindowLongPtr(hwnd,0);
-
- ClearRowByIndexCache();
- dat->needsResort = 1;
-
- if (!FindItem(hwnd, dat, hItem, &contact, &group, NULL)) {
- DBVARIANT dbv;
- int i,nameOffset;
- if ( !IsHContactContact(hItem)) return;
- ClearClcContactCache(dat,hItem);
-
- if (db_get_ts(hItem,"CList","Group",&dbv)) return;
-
- //decrease member counts of all parent groups too
- group = &dat->list;
- nameOffset = 0;
- for (i = 0;;i++) {
- if (group->scanIndex == group->cl.count)
- break;
-
- if (group->cl.items[i]->type == CLCIT_GROUP) {
- int len = lstrlen(group->cl.items[i]->szText);
- if ( !_tcsncmp(group->cl.items[i]->szText,dbv.ptszVal+nameOffset,len) && (dbv.ptszVal[nameOffset+len] == '\\' || dbv.pszVal[nameOffset+len] == '\0')) {
- group->totalMembers--;
- if (dbv.pszVal[nameOffset+len] == '\0')
- break;
- }
- }
- }
- mir_free(dbv.pszVal);
- }
- else RemoveItemFromGroup(hwnd,group,contact,1);
-
- ClearRowByIndexCache();
-}
-
-
-
-void RebuildEntireList(HWND hwnd,struct ClcData *dat)
-{
-// char *szProto;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
- struct ClcContact * cont;
- ClcGroup *group;
- //DBVARIANT dbv;
- int tick = GetTickCount();
-
- ClearRowByIndexCache();
- ClearClcContactCache(dat, INVALID_CONTACT_ID);
-
- dat->list.expanded = 1;
- dat->list.hideOffline = db_get_b(NULL,"CLC","HideOfflineRoot",0);
- memset( &dat->list.cl, 0, sizeof( dat->list.cl ));
- dat->list.cl.increment = 30;
- dat->needsResort = 1;
- dat->selection = -1;
- {
- int i;
- TCHAR *szGroupName;
- DWORD groupFlags;
-
- for (i = 1;;i++) {
- szGroupName = pcli->pfnGetGroupName(i,&groupFlags);
- if (szGroupName == NULL)
- break;
-
- AddGroup(hwnd,dat,szGroupName,groupFlags,i,0);
- }
- }
-
- for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
- ClcCacheEntry *cacheEntry;
- cont = NULL;
- cacheEntry = GetContactFullCacheEntry(hContact);
- //cacheEntry->ClcContact = NULL;
- ClearClcContactCache(dat,hContact);
- if (cacheEntry == NULL)
- MessageBoxA(0,"Fail To Get CacheEntry for hContact","!!!!!!!!",0);
-
- if (style&CLS_SHOWHIDDEN || !cacheEntry->bIsHidden) {
- if (lstrlen(cacheEntry->tszGroup) == 0)
- group = &dat->list;
- else {
- group = AddGroup(hwnd,dat,cacheEntry->tszGroup,(DWORD)-1,0,0);
- //mir_free(dbv.pszVal);
- }
-
- if (group != NULL) {
- group->totalMembers++;
- if ( !(style & CLS_NOHIDEOFFLINE) && (style & CLS_HIDEOFFLINE || group->hideOffline)) {
- if (cacheEntry->szProto == NULL) {
- if ( !pcli->pfnIsHiddenMode(dat,ID_STATUS_OFFLINE)||cacheEntry->noHiddenOffline)
- cont = AddContactToGroup(dat,group,cacheEntry);
- }
- else if ( !pcli->pfnIsHiddenMode(dat,cacheEntry->status)||cacheEntry->noHiddenOffline)
- cont = AddContactToGroup(dat,group,cacheEntry);
- }
- else cont = AddContactToGroup(dat,group,cacheEntry);
- }
- }
- if (cont && cont->proto) {
- cont->SubAllocated = 0;
- if (strcmp(cont->proto, META_PROTO) == 0)
- AddSubcontacts(cont);
- }
- }
-
- if (style&CLS_HIDEEMPTYGROUPS) {
- group = &dat->list;
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL)
- break;
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
- if (group->cl.items[group->scanIndex]->group->cl.count == 0) {
- group = RemoveItemFromGroup(hwnd,group,group->cl.items[group->scanIndex],0);
- }
- else {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- }
- continue;
- }
- group->scanIndex++;
- }
- }
-
- SortCLC(hwnd,dat,0);
- tick = GetTickCount()-tick;
- {
- char buf[255];
- //sprintf(buf,"%s %s took %i ms",__FILE__,__LINE__,tick);
- mir_snprintf(buf, SIZEOF(buf), "RebuildEntireList %d \r\n", tick);
-
- OutputDebugStringA(buf);
- db_set_dw(0,"CLUI","PF:Last RebuildEntireList Time:",tick);
- }
-}
-
-
-int GetNewSelection(ClcGroup *group, int selection, int direction)
-{
- int lastcount = 0, count = 0;//group->cl.count;
- ClcGroup *topgroup = group;
- if (selection<0) {
- return 0;
- }
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL)
- break;
-
- group->scanIndex++;
- continue;
- }
- if (count>=selection) return count;
- lastcount = count;
- count++;
- if ((group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) && (group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG)) {
- count++;
- }
- if ( !direction) {
- if (count>selection) return lastcount;
- }
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP && (group->cl.items[group->scanIndex]->group->expanded)) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- continue;
- }
- group->scanIndex++;
- }
- return lastcount;
- }
-
-int GetGroupContentsCount(ClcGroup *group,int visibleOnly)
-{
- int count = 0;//group->cl.count;
- ClcGroup *topgroup = group;
-
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- if (group == topgroup) break;
- group = group->parent;
- group->scanIndex++;
- continue;
- }
-
- count++;
- if ((group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) && (group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG))
- count++;
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP && (!visibleOnly || group->cl.items[group->scanIndex]->group->expanded)) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- continue;
- }
- group->scanIndex++;
- }
- return count;
-}
-
-extern void ( *saveSortCLC )(HWND hwnd,struct ClcData *dat,int useInsertionSort);
-
-void SortCLC(HWND hwnd,struct ClcData *dat,int useInsertionSort)
-{
-#ifdef _DEBUG
- DWORD tick = GetTickCount();
-#endif
- int oldSort = dat->needsResort;
- saveSortCLC(hwnd, dat, useInsertionSort);
- if ( oldSort )
- ClearRowByIndexCache();
-
-#ifdef _DEBUG
- {
- char buf[255];
- //sprintf(buf,"%s %s took %i ms",__FILE__,__LINE__,tick);
- tick = GetTickCount()-tick;
- if (tick > 5) {
- mir_snprintf(buf, SIZEOF(buf), "SortCLC %d \r\n", tick);
- OutputDebugStringA(buf);
- db_set_dw(0,"CLUI","PF:Last SortCLC Time:",tick);
- }
- }
-#endif
-}
-
-struct SavedContactState_t
-{
- MCONTACT hContact;
- WORD iExtraImage[EXTRA_ICON_COUNT];
- int checked;
-};
-
-struct SavedGroupState_t
-{
- int groupId, expanded;
-};
-
-struct SavedInfoState_t
-{
- int parentId;
- struct ClcContact contact;
-};
-
-void SaveStateAndRebuildList(HWND hwnd,struct ClcData *dat)
-{
- NMCLISTCONTROL nm;
- int i,j;
- struct SavedGroupState_t *savedGroup = NULL;
- int savedGroupCount = 0,savedGroupAlloced = 0;
- struct SavedContactState_t *savedContact = NULL;
- int savedContactCount = 0,savedContactAlloced = 0;
- struct SavedInfoState_t *savedInfo = NULL;
- int savedInfoCount = 0,savedInfoAlloced = 0;
- ClcGroup *group;
- struct ClcContact *contact;
-
- int tick = GetTickCount();
- int allocstep = 1024;
- pcli->pfnHideInfoTip(hwnd,dat);
- KillTimer(hwnd,TIMERID_INFOTIP);
- KillTimer(hwnd,TIMERID_RENAME);
- pcli->pfnEndRename(hwnd,dat,1);
-
- group = &dat->list;
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL)
- break;
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- if (++savedGroupCount>savedGroupAlloced) {
- savedGroupAlloced += allocstep;
- savedGroup = (struct SavedGroupState_t*)mir_realloc(savedGroup,sizeof(struct SavedGroupState_t)*savedGroupAlloced);
- }
- savedGroup[savedGroupCount-1].groupId = group->groupId;
- savedGroup[savedGroupCount-1].expanded = group->expanded;
- continue;
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) {
- if (++savedContactCount>savedContactAlloced) {
- savedContactAlloced += allocstep;
- savedContact = (struct SavedContactState_t*)mir_realloc(savedContact,sizeof(struct SavedContactState_t)*savedContactAlloced);
- }
- savedContact[savedContactCount-1].hContact = group->cl.items[group->scanIndex]->hContact;
- memcpy(savedContact[savedContactCount-1].iExtraImage, group->cl.items[group->scanIndex]->iExtraImage, sizeof(contact->iExtraImage));
- savedContact[savedContactCount-1].checked = group->cl.items[group->scanIndex]->flags & CONTACTF_CHECKED;
- if (group->cl.items[group->scanIndex]->SubAllocated>0)
- {
- int l;
- for (l = 0; l<group->cl.items[group->scanIndex]->SubAllocated; l++)
- {
- if (++savedContactCount>savedContactAlloced) {
- savedContactAlloced += allocstep;
- savedContact = (struct SavedContactState_t*)mir_realloc(savedContact,sizeof(struct SavedContactState_t)*savedContactAlloced);
- }
- savedContact[savedContactCount-1].hContact = group->cl.items[group->scanIndex]->subcontacts[l].hContact;
- memcpy(savedContact[savedContactCount-1].iExtraImage, group->cl.items[group->scanIndex]->subcontacts[l].iExtraImage, sizeof(contact->iExtraImage));
- savedContact[savedContactCount-1].checked = group->cl.items[group->scanIndex]->subcontacts[l].flags&CONTACTF_CHECKED;
- }
- }
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_INFO) {
- if (++savedInfoCount>savedInfoAlloced) {
- savedInfoAlloced += allocstep;
- savedInfo = (struct SavedInfoState_t*)mir_realloc(savedInfo,sizeof(struct SavedInfoState_t)*savedInfoAlloced);
- }
- if (group->parent == NULL)
- savedInfo[savedInfoCount-1].parentId = -1;
- else
- savedInfo[savedInfoCount-1].parentId = group->groupId;
- savedInfo[savedInfoCount-1].contact = *group->cl.items[group->scanIndex];
- }
- group->scanIndex++;
- }
-
- pcli->pfnFreeGroup(&dat->list);
- RebuildEntireList(hwnd,dat);
-
- group = &dat->list;
- group->scanIndex = 0;
- for (;;) {
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- if (group == NULL)
- break;
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP) {
- group = group->cl.items[group->scanIndex]->group;
- group->scanIndex = 0;
- for (i = 0;i<savedGroupCount;i++)
- if (savedGroup[i].groupId == group->groupId) {
- group->expanded = savedGroup[i].expanded;
- break;
- }
- continue;
- }
- else if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT) {
- for (i = 0;i<savedContactCount;i++)
- if (savedContact[i].hContact == group->cl.items[group->scanIndex]->hContact) {
- memcpy(group->cl.items[group->scanIndex]->iExtraImage, savedContact[i].iExtraImage, sizeof(contact->iExtraImage));
- if (savedContact[i].checked)
- group->cl.items[group->scanIndex]->flags |= CONTACTF_CHECKED;
- break;
- }
- if (group->cl.items[group->scanIndex]->SubAllocated>0)
- {
- for (int l = 0; l<group->cl.items[group->scanIndex]->SubAllocated; l++)
- for (i = 0;i<savedContactCount;i++)
- if (savedContact[i].hContact == group->cl.items[group->scanIndex]->subcontacts[l].hContact) {
- memcpy(group->cl.items[group->scanIndex]->subcontacts[l].iExtraImage, savedContact[i].iExtraImage, sizeof(contact->iExtraImage));
- if (savedContact[i].checked)
- group->cl.items[group->scanIndex]->subcontacts[l].flags |= CONTACTF_CHECKED;
- break;
- }
- }
- }
- group->scanIndex++;
- }
- if (savedGroup) mir_free(savedGroup);
- if (savedContact) mir_free(savedContact);
- for (i = 0;i<savedInfoCount;i++) {
- if (savedInfo[i].parentId == -1) group = &dat->list;
- else {
- if (!FindItem(hwnd, dat, savedInfo[i].parentId | HCONTACT_ISGROUP, &contact, NULL, NULL))
- continue;
- group = contact->group;
- }
- j = AddInfoItemToGroup(group,savedInfo[i].contact.flags,_T(""));
- *group->cl.items[j] = savedInfo[i].contact;
- }
- if (savedInfo) mir_free(savedInfo);
- pcli->pfnRecalculateGroupCheckboxes(hwnd,dat);
-
- RecalcScrollBar(hwnd,dat);
- nm.hdr.code = CLN_LISTREBUILT;
- nm.hdr.hwndFrom = hwnd;
- nm.hdr.idFrom = GetDlgCtrlID(hwnd);
-
-
- //srand(GetTickCount());
-
- tick = GetTickCount()-tick;
- {
- char buf[255];
- //sprintf(buf,"%s %s took %i ms",__FILE__,__LINE__,tick);
- mir_snprintf(buf, SIZEOF(buf), "SaveStateAndRebuildList %d \r\n", tick);
-
- OutputDebugStringA(buf);
- }
- ClearRowByIndexCache();
- SendMessage(GetParent(hwnd),WM_NOTIFY,0,(LPARAM)&nm);
-}
diff --git a/plugins/Clist_mw/src/clcopts.cpp b/plugins/Clist_mw/src/clcopts.cpp
deleted file mode 100644
index 2ce7736a7a..0000000000
--- a/plugins/Clist_mw/src/clcopts.cpp
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clc.h"
-
-#define DBFONTF_BOLD 1
-#define DBFONTF_ITALIC 2
-#define DBFONTF_UNDERLINE 4
-
-static INT_PTR CALLBACK DlgProcClcMainOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-static INT_PTR CALLBACK DlgProcClcMetaOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-
-static INT_PTR CALLBACK DlgProcStatusBarBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-int OnStatusBarBackgroundChange();
-
-int BgClcChange(WPARAM wParam, LPARAM lParam)
-{
- pcli->pfnClcOptionsChanged();
- return 0;
-}
-
-int BgStatusBarChange(WPARAM wParam, LPARAM lParam)
-{
- pcli->pfnClcOptionsChanged();
- OnStatusBarBackgroundChange();
- return 0;
-}
-
-int ClcOptInit(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = { sizeof(odp) };
- odp.hInstance = g_hInst;
- odp.pszGroup = LPGEN("Contact list");
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLC);
- odp.pszTitle = LPGEN("List");
- odp.pfnDlgProc = DlgProcClcMainOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
-
- if (!ServiceExists(MS_BACKGROUNDCONFIG_REGISTER)) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLCBKG);
- odp.pszTitle = LPGEN("List background");
- odp.pfnDlgProc = DlgProcClcBkgOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
- }
-
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_META_CLC);
- odp.pszTitle = LPGEN("List metacontacts");
- odp.pfnDlgProc = DlgProcClcMetaOpts;
- Options_AddPage(wParam, &odp);
-
- if (!ServiceExists(MS_BACKGROUNDCONFIG_REGISTER)) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLCBKG);
- odp.pszTitle = LPGEN("Status bar background");
- odp.pfnDlgProc = DlgProcStatusBarBkgOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
- }
-
- return 0;
-}
-
-struct CheckBoxToStyleEx_t {
- int id;
- DWORD flag;
- int not;
-} static const checkBoxToStyleEx[] = {
- {IDC_DISABLEDRAGDROP,CLS_EX_DISABLEDRAGDROP,0},
- {IDC_NOTEDITLABELS,CLS_EX_EDITLABELS,1},
- {IDC_SHOWSELALWAYS,CLS_EX_SHOWSELALWAYS,0},
- {IDC_TRACKSELECT,CLS_EX_TRACKSELECT,0},
- {IDC_SHOWGROUPCOUNTS,CLS_EX_SHOWGROUPCOUNTS,0},
- {IDC_HIDECOUNTSWHENEMPTY,CLS_EX_HIDECOUNTSWHENEMPTY,0},
- {IDC_DIVIDERONOFF,CLS_EX_DIVIDERONOFF,0},
- {IDC_NOTNOTRANSLUCENTSEL,CLS_EX_NOTRANSLUCENTSEL,1},
- {IDC_LINEWITHGROUPS,CLS_EX_LINEWITHGROUPS,0},
- {IDC_QUICKSEARCHVISONLY,CLS_EX_QUICKSEARCHVISONLY,0},
- {IDC_SORTGROUPSALPHA,CLS_EX_SORTGROUPSALPHA,0},
- {IDC_NOTNOSMOOTHSCROLLING,CLS_EX_NOSMOOTHSCROLLING,1}};
-
-struct CheckBoxValues_t {
- DWORD style;
- TCHAR *szDescr;
-};
-static const struct CheckBoxValues_t greyoutValues[] =
-{
- {GREYF_UNFOCUS, LPGENT("Not focused") },
- {MODEF_OFFLINE, LPGENT("Offline") },
- {PF2_ONLINE, LPGENT("Online") },
- {PF2_SHORTAWAY, LPGENT("Away") },
- {PF2_LONGAWAY, LPGENT("NA") },
- {PF2_LIGHTDND, LPGENT("Occupied") },
- {PF2_HEAVYDND, LPGENT("DND") },
- {PF2_FREECHAT, LPGENT("Free for chat") },
- {PF2_INVISIBLE, LPGENT("Invisible") },
- {PF2_OUTTOLUNCH, LPGENT("Out to lunch") },
- {PF2_ONTHEPHONE, LPGENT("On the phone") }
-};
-
-static const struct CheckBoxValues_t offlineValues[] =
-{
- {MODEF_OFFLINE, LPGENT("Offline") },
- {PF2_ONLINE, LPGENT("Online") },
- {PF2_SHORTAWAY, LPGENT("Away") },
- {PF2_LONGAWAY, LPGENT("NA") },
- {PF2_LIGHTDND, LPGENT("Occupied") },
- {PF2_HEAVYDND, LPGENT("DND") },
- {PF2_FREECHAT, LPGENT("Free for chat") },
- {PF2_INVISIBLE, LPGENT("Invisible") },
- {PF2_OUTTOLUNCH, LPGENT("Out to lunch") },
- {PF2_ONTHEPHONE, LPGENT("On the phone") }
-};
-
-static void FillCheckBoxTree(HWND hwndTree,const struct CheckBoxValues_t *values,int nValues,DWORD style)
-{
- TVINSERTSTRUCT tvis;
- int i;
-
- tvis.hParent = NULL;
- tvis.hInsertAfter = TVI_LAST;
- tvis.item.mask = TVIF_PARAM|TVIF_TEXT|TVIF_STATE;
- for (i = 0;i<nValues;i++) {
- tvis.item.lParam = values[i].style;
- tvis.item.pszText = TranslateTS(values[i].szDescr);
- tvis.item.stateMask = TVIS_STATEIMAGEMASK;
- tvis.item.state = INDEXTOSTATEIMAGEMASK((style&tvis.item.lParam) != 0?2:1);
- TreeView_InsertItem(hwndTree,&tvis);
- }
-}
-
-static DWORD MakeCheckBoxTreeFlags(HWND hwndTree)
-{
- DWORD flags = 0;
- TVITEM tvi;
-
- tvi.mask = TVIF_HANDLE|TVIF_PARAM|TVIF_STATE;
- tvi.hItem = TreeView_GetRoot(hwndTree);
- while(tvi.hItem) {
- TreeView_GetItem(hwndTree,&tvi);
- if (((tvi.state&TVIS_STATEIMAGEMASK)>>12 == 2)) flags |= tvi.lParam;
- tvi.hItem = TreeView_GetNextSibling(hwndTree,tvi.hItem);
- }
- return flags;
-}
-
-static INT_PTR CALLBACK DlgProcClcMetaOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- LPNMHDR t;
- t = ((LPNMHDR)lParam);
- switch (msg)
- {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
-
- CheckDlgButton(hwndDlg, IDC_META, db_get_b(NULL,"CLC","Meta",0) ? BST_CHECKED : BST_UNCHECKED); /// by FYR
- CheckDlgButton(hwndDlg, IDC_METADBLCLK, db_get_b(NULL,"CLC","MetaDoubleClick",0) ? BST_CHECKED : BST_UNCHECKED); /// by FYR
- CheckDlgButton(hwndDlg, IDC_METASUBEXTRA, db_get_b(NULL,"CLC","MetaHideExtra",0) ? BST_CHECKED : BST_UNCHECKED); /// by FYR
- CheckDlgButton(hwndDlg, IDC_METASUBEXTRA_IGN, db_get_b(NULL,"CLC","MetaIgnoreEmptyExtra",1) ? BST_CHECKED : BST_UNCHECKED); /// by FYR
- CheckDlgButton(hwndDlg, IDC_METASUB_HIDEOFFLINE, db_get_b(NULL,"CLC","MetaHideOfflineSub",1) ? BST_CHECKED : BST_UNCHECKED); /// by FYR
- return TRUE;
- case WM_COMMAND:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- return TRUE;
- case WM_NOTIFY:
-
- switch(t->idFrom)
- {
- case 0:
- switch (t->code)
- {
- case PSN_APPLY:
- db_set_b(NULL,"CLC","Meta",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_META)); // by FYR
- db_set_b(NULL,"CLC","MetaDoubleClick",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_METADBLCLK)); // by FYR
- db_set_b(NULL,"CLC","MetaHideExtra",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_METASUBEXTRA)); // by FYR
- db_set_b(NULL,"CLC","MetaIgnoreEmptyExtra",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_METASUBEXTRA_IGN)); // by FYR
- db_set_b(NULL,"CLC","MetaHideOfflineSub",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_METASUB_HIDEOFFLINE)); // by FYR
- pcli->pfnClcOptionsChanged();
- return TRUE;
- }
- break;
- }
- break;
- }
- return FALSE;
-}
-
-static INT_PTR CALLBACK DlgProcClcMainOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- SetWindowLongPtr(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),GWL_STYLE,GetWindowLongPtr(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),GWL_STYLE)|TVS_NOHSCROLL|TVS_CHECKBOXES);
- SetWindowLongPtr(GetDlgItem(hwndDlg,IDC_HIDEOFFLINEOPTS),GWL_STYLE,GetWindowLongPtr(GetDlgItem(hwndDlg,IDC_HIDEOFFLINEOPTS),GWL_STYLE)|TVS_NOHSCROLL|TVS_CHECKBOXES);
- {
- DWORD exStyle = db_get_dw(NULL,"CLC","ExStyle",pcli->pfnGetDefaultExStyle());
- for (int i = 0;i < SIZEOF(checkBoxToStyleEx); i++)
- CheckDlgButton(hwndDlg,checkBoxToStyleEx[i].id,(exStyle&checkBoxToStyleEx[i].flag)^(checkBoxToStyleEx[i].flag*checkBoxToStyleEx[i].not)?BST_CHECKED:BST_UNCHECKED);
-
- UDACCEL accel[2] = {{0,10},{2,50}};
- SendDlgItemMessage(hwndDlg,IDC_SMOOTHTIMESPIN,UDM_SETRANGE,0,MAKELONG(999,0));
- SendDlgItemMessage(hwndDlg,IDC_SMOOTHTIMESPIN,UDM_SETACCEL,SIZEOF(accel), (LPARAM)&accel );
- SendDlgItemMessage(hwndDlg,IDC_SMOOTHTIMESPIN,UDM_SETPOS,0,MAKELONG(db_get_w(NULL,"CLC","ScrollTime",CLCDEFAULT_SCROLLTIME),0));
- }
- CheckDlgButton(hwndDlg,IDC_IDLE,db_get_b(NULL,"CLC","ShowIdle",CLCDEFAULT_SHOWIDLE)?BST_CHECKED:BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg,IDC_LEFTMARGINSPIN,UDM_SETRANGE,0,MAKELONG(64,0));
- SendDlgItemMessage(hwndDlg,IDC_LEFTMARGINSPIN,UDM_SETPOS,0,MAKELONG( db_get_b(NULL,"CLC","LeftMargin",CLCDEFAULT_LEFTMARGIN),0));
- SendDlgItemMessage(hwndDlg,IDC_GROUPINDENTSPIN,UDM_SETRANGE,0,MAKELONG(50,0));
- SendDlgItemMessage(hwndDlg,IDC_GROUPINDENTSPIN,UDM_SETPOS,0,MAKELONG( db_get_b(NULL,"CLC","GroupIndent",CLCDEFAULT_GROUPINDENT),0));
- CheckDlgButton(hwndDlg,IDC_GREYOUT,db_get_dw(NULL,"CLC","GreyoutFlags",CLCDEFAULT_GREYOUTFLAGS)?BST_CHECKED:BST_UNCHECKED);
-
-
- EnableWindow(GetDlgItem(hwndDlg,IDC_SMOOTHTIME),IsDlgButtonChecked(hwndDlg,IDC_NOTNOSMOOTHSCROLLING));
- EnableWindow(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),IsDlgButtonChecked(hwndDlg,IDC_GREYOUT));
- FillCheckBoxTree(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),greyoutValues,SIZEOF(greyoutValues),db_get_dw(NULL,"CLC","FullGreyoutFlags",CLCDEFAULT_FULLGREYOUTFLAGS));
- FillCheckBoxTree(GetDlgItem(hwndDlg,IDC_HIDEOFFLINEOPTS),offlineValues,SIZEOF(offlineValues),db_get_dw(NULL,"CLC","OfflineModes",CLCDEFAULT_OFFLINEMODES));
- CheckDlgButton(hwndDlg,IDC_NOSCROLLBAR,db_get_b(NULL,"CLC","NoVScrollBar",0)?BST_CHECKED:BST_UNCHECKED);
- return TRUE;
-
- case WM_VSCROLL:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_NOTNOSMOOTHSCROLLING)
- EnableWindow(GetDlgItem(hwndDlg,IDC_SMOOTHTIME),IsDlgButtonChecked(hwndDlg,IDC_NOTNOSMOOTHSCROLLING));
- if (LOWORD(wParam) == IDC_GREYOUT)
- EnableWindow(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),IsDlgButtonChecked(hwndDlg,IDC_GREYOUT));
- if ((LOWORD(wParam) == IDC_LEFTMARGIN || LOWORD(wParam) == IDC_SMOOTHTIME || LOWORD(wParam) == IDC_GROUPINDENT) && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()))
- return 0;
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom) {
- case IDC_GREYOUTOPTS:
- case IDC_HIDEOFFLINEOPTS:
- if (((LPNMHDR)lParam)->code == NM_CLICK) {
- TVHITTESTINFO hti;
- hti.pt.x = (short)LOWORD(GetMessagePos());
- hti.pt.y = (short)HIWORD(GetMessagePos());
- ScreenToClient(((LPNMHDR)lParam)->hwndFrom,&hti.pt);
- if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom,&hti))
- if (hti.flags&TVHT_ONITEMSTATEICON) {
- TVITEM tvi;
- tvi.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvi.hItem = hti.hItem;
- TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- tvi.iImage = tvi.iSelectedImage = (tvi.iImage == 1) ? 2 : 1;
- TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- }
- break;
- case 0:
- if (((LPNMHDR)lParam)->code == PSN_APPLY) {
- int i;
- DWORD exStyle = 0;
- for (i = 0;i < SIZEOF(checkBoxToStyleEx);i++)
- if ((IsDlgButtonChecked(hwndDlg,checkBoxToStyleEx[i].id) == 0) == checkBoxToStyleEx[i].not)
- exStyle |= checkBoxToStyleEx[i].flag;
- db_set_dw(NULL,"CLC","ExStyle",exStyle);
-
- DWORD fullGreyoutFlags = MakeCheckBoxTreeFlags(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS));
- db_set_dw(NULL,"CLC","FullGreyoutFlags",fullGreyoutFlags);
- if (IsDlgButtonChecked(hwndDlg,IDC_GREYOUT))
- db_set_dw(NULL,"CLC","GreyoutFlags",fullGreyoutFlags);
- else
- db_set_dw(NULL,"CLC","GreyoutFlags",0);
-
- db_set_b(NULL,"CLC","ShowIdle",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_IDLE)?1:0));
- db_set_dw(NULL,"CLC","OfflineModes",MakeCheckBoxTreeFlags(GetDlgItem(hwndDlg,IDC_HIDEOFFLINEOPTS)));
- db_set_b(NULL,"CLC","LeftMargin",(BYTE)SendDlgItemMessage(hwndDlg,IDC_LEFTMARGINSPIN,UDM_GETPOS,0,0));
- db_set_w(NULL,"CLC","ScrollTime",(WORD)SendDlgItemMessage(hwndDlg,IDC_SMOOTHTIMESPIN,UDM_GETPOS,0,0));
- db_set_b(NULL,"CLC","GroupIndent",(BYTE)SendDlgItemMessage(hwndDlg,IDC_GROUPINDENTSPIN,UDM_GETPOS,0,0));
- db_set_b(NULL,"CLC","NoVScrollBar",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_NOSCROLLBAR)?1:0));
-
- pcli->pfnClcOptionsChanged();
- return TRUE;
- }
- }
- break;
-
- case WM_DESTROY:
- ImageList_Destroy(TreeView_GetImageList(GetDlgItem(hwndDlg,IDC_GREYOUTOPTS),TVSIL_NORMAL));
- break;
- }
- return FALSE;
-}
-
-static INT_PTR CALLBACK DlgProcStatusBarBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- CheckDlgButton(hwndDlg,IDC_BITMAP,db_get_b(NULL,"StatusBar","UseBitmap",CLCDEFAULT_USEBITMAP)?BST_CHECKED:BST_UNCHECKED);
- SendMessage(hwndDlg,WM_USER+10,0,0);
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETDEFAULTCOLOUR,0,CLCDEFAULT_BKCOLOUR);
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETCOLOUR,0,db_get_dw(NULL,"StatusBar","BkColour",CLCDEFAULT_BKCOLOUR));
- SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_SETDEFAULTCOLOUR,0,CLCDEFAULT_SELBKCOLOUR);
- SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_SETCOLOUR,0,db_get_dw(NULL,"StatusBar","SelBkColour",CLCDEFAULT_SELBKCOLOUR));
- {
- DBVARIANT dbv;
- if ( !db_get_s(NULL,"StatusBar","BkBitmap",&dbv)) {
- SetDlgItemTextA(hwndDlg,IDC_FILENAME,dbv.pszVal);
-
- char szPath[MAX_PATH];
- if ( PathToAbsolute(dbv.pszVal, szPath))
- SetDlgItemTextA(hwndDlg, IDC_FILENAME, szPath);
-
- mir_free(dbv.pszVal);
- }
-
- WORD bmpUse = db_get_w(NULL,"StatusBar","BkBmpUse",CLCDEFAULT_BKBMPUSE);
- CheckDlgButton(hwndDlg,IDC_STRETCHH,bmpUse&CLB_STRETCHH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_STRETCHV,bmpUse&CLB_STRETCHV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEH,bmpUse&CLBF_TILEH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEV,bmpUse&CLBF_TILEV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_SCROLL,bmpUse&CLBF_SCROLL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_PROPORTIONAL,bmpUse&CLBF_PROPORTIONAL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEVROWH,bmpUse&CLBF_TILEVTOROWHEIGHT?BST_CHECKED:BST_UNCHECKED);
-
- SHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1);
- }
- return TRUE;
-
- case WM_USER+10:
- EnableWindow(GetDlgItem(hwndDlg,IDC_FILENAME),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_BROWSE),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STRETCHH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STRETCHV),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEV),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SCROLL),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_PROPORTIONAL),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEVROWH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- break;
-
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_BROWSE) {
- char str[MAX_PATH];
- OPENFILENAMEA ofn = {0};
- char filter[512];
-
- GetDlgItemTextA(hwndDlg,IDC_FILENAME,str,SIZEOF(str));
- ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = NULL;
- CallService(MS_UTILS_GETBITMAPFILTERSTRINGS,SIZEOF(filter),(LPARAM)filter);
- ofn.lpstrFilter = filter;
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = SIZEOF(str);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = "bmp";
- if ( !GetOpenFileNameA(&ofn)) break;
- SetDlgItemTextA(hwndDlg,IDC_FILENAME,str);
- }
- else if (LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) != EN_CHANGE) break;
- if (LOWORD(wParam) == IDC_BITMAP) SendMessage(hwndDlg,WM_USER+10,0,0);
- if (LOWORD(wParam) == IDC_FILENAME && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) return 0;
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom) {
- case 0:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- db_set_b(NULL,"StatusBar","UseBitmap",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- {
- COLORREF col;
- col = SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_GETCOLOUR,0,0);
- if (col == CLCDEFAULT_BKCOLOUR) db_unset(NULL,"StatusBar","BkColour");
- else db_set_dw(NULL,"StatusBar","BkColour",col);
- col = SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_GETCOLOUR,0,0);
- if (col == CLCDEFAULT_SELBKCOLOUR) db_unset(NULL,"StatusBar","SelBkColour");
- else db_set_dw(NULL,"StatusBar","SelBkColour",col);
-
- char str[MAX_PATH],strrel[MAX_PATH];
- GetDlgItemTextA(hwndDlg,IDC_FILENAME,str,SIZEOF(str));
- if ( PathToRelative(str, strrel))
- db_set_s(NULL,"StatusBar","BkBitmap",strrel);
- else
- db_set_s(NULL,"StatusBar","BkBitmap",str);
-
- WORD flags = 0;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHH)) flags |= CLB_STRETCHH;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHV)) flags |= CLB_STRETCHV;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEH)) flags |= CLBF_TILEH;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEV)) flags |= CLBF_TILEV;
- if (IsDlgButtonChecked(hwndDlg,IDC_SCROLL)) flags |= CLBF_SCROLL;
- if (IsDlgButtonChecked(hwndDlg,IDC_PROPORTIONAL)) flags |= CLBF_PROPORTIONAL;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEVROWH)) flags |= CLBF_TILEVTOROWHEIGHT;
-
- db_set_w(NULL,"StatusBar","BkBmpUse",flags);
- }
-
- pcli->pfnClcOptionsChanged();
- OnStatusBarBackgroundChange();
- return TRUE;
- }
- break;
- }
- break;
- }
- return FALSE;
-}
-
-static INT_PTR CALLBACK DlgProcClcBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- CheckDlgButton(hwndDlg,IDC_BITMAP,db_get_b(NULL,"CLC","UseBitmap",CLCDEFAULT_USEBITMAP)?BST_CHECKED:BST_UNCHECKED);
- SendMessage(hwndDlg,WM_USER+10,0,0);
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETDEFAULTCOLOUR,0,CLCDEFAULT_BKCOLOUR);
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETCOLOUR,0,db_get_dw(NULL,"CLC","BkColour",CLCDEFAULT_BKCOLOUR));
- SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_SETDEFAULTCOLOUR,0,CLCDEFAULT_SELBKCOLOUR);
- SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_SETCOLOUR,0,db_get_dw(NULL,"CLC","SelBkColour",CLCDEFAULT_SELBKCOLOUR));
- {
- DBVARIANT dbv;
- if ( !db_get_s(NULL,"CLC","BkBitmap",&dbv)) {
- SetDlgItemTextA(hwndDlg,IDC_FILENAME,dbv.pszVal);
-
- char szPath[MAX_PATH];
- if ( PathToAbsolute(dbv.pszVal, szPath))
- SetDlgItemTextA(hwndDlg,IDC_FILENAME,szPath);
-
- mir_free(dbv.pszVal);
- }
- }
-
- { WORD bmpUse = db_get_w(NULL,"CLC","BkBmpUse",CLCDEFAULT_BKBMPUSE);
- CheckDlgButton(hwndDlg,IDC_STRETCHH,bmpUse&CLB_STRETCHH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_STRETCHV,bmpUse&CLB_STRETCHV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEH,bmpUse&CLBF_TILEH?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEV,bmpUse&CLBF_TILEV?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_SCROLL,bmpUse&CLBF_SCROLL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_PROPORTIONAL,bmpUse&CLBF_PROPORTIONAL?BST_CHECKED:BST_UNCHECKED);
- CheckDlgButton(hwndDlg,IDC_TILEVROWH,bmpUse&CLBF_TILEVTOROWHEIGHT?BST_CHECKED:BST_UNCHECKED);
-
- }
- SHAutoComplete(GetDlgItem(hwndDlg,IDC_FILENAME),1);
- return TRUE;
- case WM_USER+10:
- EnableWindow(GetDlgItem(hwndDlg,IDC_FILENAME),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_BROWSE),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STRETCHH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STRETCHV),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEV),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SCROLL),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_PROPORTIONAL),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TILEVROWH),IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- break;
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_BROWSE) {
- char str[MAX_PATH];
- OPENFILENAMEA ofn = {0};
- char filter[512];
-
- GetDlgItemTextA(hwndDlg,IDC_FILENAME,str,SIZEOF(str));
- ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
- ofn.hwndOwner = hwndDlg;
- ofn.hInstance = NULL;
- CallService(MS_UTILS_GETBITMAPFILTERSTRINGS,SIZEOF(filter),(LPARAM)filter);
- ofn.lpstrFilter = filter;
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = SIZEOF(str);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = "bmp";
- if ( !GetOpenFileNameA(&ofn)) break;
- SetDlgItemTextA(hwndDlg,IDC_FILENAME,str);
- }
- else if (LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) != EN_CHANGE) break;
- if (LOWORD(wParam) == IDC_BITMAP) SendMessage(hwndDlg,WM_USER+10,0,0);
- if (LOWORD(wParam) == IDC_FILENAME && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) return 0;
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom) {
- case 0:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- db_set_b(NULL,"CLC","UseBitmap",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_BITMAP));
- { COLORREF col;
- col = SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_GETCOLOUR,0,0);
- if (col == CLCDEFAULT_BKCOLOUR) db_unset(NULL,"CLC","BkColour");
- else db_set_dw(NULL,"CLC","BkColour",col);
- col = SendDlgItemMessage(hwndDlg,IDC_SELCOLOUR,CPM_GETCOLOUR,0,0);
- if (col == CLCDEFAULT_SELBKCOLOUR) db_unset(NULL,"CLC","SelBkColour");
- else db_set_dw(NULL,"CLC","SelBkColour",col);
- }
- {
- char str[MAX_PATH],strrel[MAX_PATH];
- GetDlgItemTextA(hwndDlg,IDC_FILENAME,str,SIZEOF(str));
- if ( PathToRelative(str, strrel))
- db_set_s(NULL,"CLC","BkBitmap",strrel);
- else
- db_set_s(NULL,"CLC","BkBitmap",str);
- }
- { WORD flags = 0;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHH)) flags |= CLB_STRETCHH;
- if (IsDlgButtonChecked(hwndDlg,IDC_STRETCHV)) flags |= CLB_STRETCHV;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEH)) flags |= CLBF_TILEH;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEV)) flags |= CLBF_TILEV;
- if (IsDlgButtonChecked(hwndDlg,IDC_SCROLL)) flags |= CLBF_SCROLL;
- if (IsDlgButtonChecked(hwndDlg,IDC_PROPORTIONAL)) flags |= CLBF_PROPORTIONAL;
- if (IsDlgButtonChecked(hwndDlg,IDC_TILEVROWH)) flags |= CLBF_TILEVTOROWHEIGHT;
-
- db_set_w(NULL,"CLC","BkBmpUse",flags);
- }
-
- pcli->pfnClcOptionsChanged();
- return TRUE;
- }
- break;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/Clist_mw/src/clcpaint.cpp b/plugins/Clist_mw/src/clcpaint.cpp
deleted file mode 100644
index fef2359bd5..0000000000
--- a/plugins/Clist_mw/src/clcpaint.cpp
+++ /dev/null
@@ -1,662 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clc.h"
-
-extern HIMAGELIST himlCListClc;
-static BYTE divide3[765] = {255};
-int MetaIgnoreEmptyExtra;
-ExternDrawer SED;
-
-static void ChangeToFont(HDC hdc,struct ClcData *dat,int id,int *fontHeight)
-{
- SelectObject(hdc,dat->fontInfo[id].hFont);
- SetTextColor(hdc,dat->fontInfo[id].colour);
- if (fontHeight) *fontHeight = dat->fontInfo[id].fontHeight;
-}
-
-static void __inline SetHotTrackColour(HDC hdc,struct ClcData *dat)
-{
- if (dat->gammaCorrection) {
- COLORREF oldCol,newCol;
- int oldLum,newLum;
-
- oldCol = GetTextColor(hdc);
- oldLum = (GetRValue(oldCol)*30+GetGValue(oldCol)*59+GetBValue(oldCol)*11)/100;
- newLum = (GetRValue(dat->hotTextColour)*30+GetGValue(dat->hotTextColour)*59+GetBValue(dat->hotTextColour)*11)/100;
- if (newLum == 0) {
- SetTextColor(hdc,dat->hotTextColour);
- return;
- }
- if (newLum>=oldLum+20) {
- oldLum += 20;
- newCol = RGB(GetRValue(dat->hotTextColour)*oldLum/newLum,GetGValue(dat->hotTextColour)*oldLum/newLum,GetBValue(dat->hotTextColour)*oldLum/newLum);
- }
- else if (newLum<=oldLum) {
- int r,g,b;
- r = GetRValue(dat->hotTextColour)*oldLum/newLum;
- g = GetGValue(dat->hotTextColour)*oldLum/newLum;
- b = GetBValue(dat->hotTextColour)*oldLum/newLum;
- if (r>255) {
- g += (r-255)*3/7;
- b += (r-255)*3/7;
- r = 255;
- }
- if (g>255) {
- r += (g-255)*59/41;
- if (r>255) r = 255;
- b += (g-255)*59/41;
- g = 255;
- }
- if (b>255) {
- r += (b-255)*11/89;
- if (r>255) r = 255;
- g += (b-255)*11/89;
- if (g>255) g = 255;
- b = 255;
- }
- newCol = RGB(r,g,b);
- }
- else newCol = dat->hotTextColour;
- SetTextColor(hdc,newCol);
- }
- else
- SetTextColor(hdc,dat->hotTextColour);
-}
-
-static int GetStatusOnlineness(int status)
-{
- switch(status) {
- case ID_STATUS_FREECHAT: return 110;
- case ID_STATUS_ONLINE: return 100;
- case ID_STATUS_OCCUPIED: return 60;
- case ID_STATUS_ONTHEPHONE: return 50;
- case ID_STATUS_DND: return 40;
- case ID_STATUS_AWAY: return 30;
- case ID_STATUS_OUTTOLUNCH: return 20;
- case ID_STATUS_NA: return 10;
- case ID_STATUS_INVISIBLE: return 5;
- }
- return 0;
-}
-
-static int GetGeneralisedStatus(void)
-{
- int i,status,thisStatus,statusOnlineness,thisOnlineness;
-
- status = ID_STATUS_OFFLINE;
- statusOnlineness = 0;
-
- for (i = 0;i<pcli->hClcProtoCount;i++) {
- thisStatus = pcli->clcProto[i].dwStatus;
- if (thisStatus == ID_STATUS_INVISIBLE)
- return ID_STATUS_INVISIBLE;
-
- thisOnlineness = GetStatusOnlineness(thisStatus);
- if (thisOnlineness > statusOnlineness) {
- status = thisStatus;
- statusOnlineness = thisOnlineness;
- }
- }
- return status;
-}
-
-static int GetRealStatus(struct ClcContact * contact, int status)
-{
- int i;
- char *szProto = contact->proto;
- if ( !szProto) return status;
- for (i = 0;i<pcli->hClcProtoCount;i++) {
- if ( !lstrcmpA(pcli->clcProto[i].szProto,szProto)) {
- return pcli->clcProto[i].dwStatus;
- }
- }
- return status;
-}
-
-void InternalPaintClc(HWND hwnd,struct ClcData *dat,HDC hdc,RECT *rcPaint)
-{
- HDC hdcMem;
- HBITMAP oldbmp;
- HBITMAP oldbm;
- HFONT oldfont;
- RECT clRect;
- int y,indent,index,fontHeight, subindex, subident;
- struct ClcContact *Drawing;
- ClcGroup *group;
- HBITMAP hBmpOsb;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
- int status = GetGeneralisedStatus();
- int grey = 0,groupCountsFontTopShift;
- HBRUSH hBrushAlternateGrey = NULL;
- POINT pt;
- RECT testrc;
-
- // yes I know about GetSysColorBrush()
- COLORREF tmpbkcolour = dat->bkColour;
-
- if (dat->greyoutFlags & pcli->pfnClcStatusToPf2(status) || style&WS_DISABLED) grey = 1;
- else if (GetFocus() != hwnd && dat->greyoutFlags&GREYF_UNFOCUS) grey = 1;
- GetClientRect(hwnd,&clRect);
-
- if (rcPaint == NULL) rcPaint = &clRect;
- //rcPaint = &clRect;
-
- if (IsRectEmpty(rcPaint)) return;
- GetCursorPos(&pt);
- ScreenToClient(hwnd,&pt);
-
-
- y = -dat->yScroll;
- hdcMem = CreateCompatibleDC(hdc);
- hBmpOsb = CreateBitmap(clRect.right,clRect.bottom,1,GetDeviceCaps(hdc,BITSPIXEL),NULL);
- oldbmp = (HBITMAP)SelectObject(hdcMem,hBmpOsb);
- {
- oldfont = (HFONT)SelectObject(hdcMem,dat->fontInfo[FONTID_GROUPS].hFont);
-
- TEXTMETRIC tm;
- GetTextMetrics(hdcMem,&tm);
- groupCountsFontTopShift = tm.tmAscent;
- SelectObject(hdcMem,dat->fontInfo[FONTID_GROUPCOUNTS].hFont);
- GetTextMetrics(hdcMem,&tm);
- groupCountsFontTopShift -= tm.tmAscent;
- SelectObject(hdcMem,oldfont);
- }
-
- if (style&CLS_GREYALTERNATE)
- hBrushAlternateGrey = CreateSolidBrush(GetNearestColor(hdcMem,RGB(GetRValue(tmpbkcolour)-10,GetGValue(tmpbkcolour)-10,GetBValue(tmpbkcolour)-10)));
-
- ChangeToFont(hdcMem,dat,FONTID_CONTACTS,&fontHeight);
- SetBkMode(hdcMem,TRANSPARENT);
-
- HBRUSH hBrush,hoBrush;
-
- hBrush = CreateSolidBrush(tmpbkcolour);
- hoBrush = (HBRUSH)SelectObject(hdcMem,hBrush);
- FillRect(hdcMem,rcPaint,hBrush);
- SelectObject(hdcMem,hoBrush);
- DeleteObject(hBrush);
- if (dat->hBmpBackground) {
- BITMAP bmp;
- HDC hdcBmp;
- int x,y;
- int maxx,maxy;
- int destw,desth;
-
- // XXX: Halftone isnt supported on 9x, however the scretch problems dont happen on 98.
- SetStretchBltMode(hdcMem, HALFTONE);
-
- GetObject(dat->hBmpBackground,sizeof(bmp),&bmp);
- hdcBmp = CreateCompatibleDC(hdcMem);
- oldbm = (HBITMAP)SelectObject(hdcBmp,dat->hBmpBackground);
- y = dat->backgroundBmpUse&CLBF_SCROLL?-dat->yScroll:0;
- maxx = dat->backgroundBmpUse&CLBF_TILEH?clRect.right:1;
- maxy = dat->backgroundBmpUse&CLBF_TILEV?maxy = rcPaint->bottom:y+1;
- switch(dat->backgroundBmpUse&CLBM_TYPE) {
- case CLB_STRETCH:
- if (dat->backgroundBmpUse&CLBF_PROPORTIONAL) {
- if (clRect.right*bmp.bmHeight<clRect.bottom*bmp.bmWidth) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- }
- else {
- destw = clRect.right;
- desth = clRect.bottom;
- }
- break;
-
- case CLB_STRETCHH:
- if (dat->backgroundBmpUse&CLBF_PROPORTIONAL) {
- destw = clRect.right;
- desth = destw*bmp.bmHeight/bmp.bmWidth;
- }
- else {
- destw = clRect.right;
- desth = bmp.bmHeight;
- if (dat->backgroundBmpUse&CLBF_TILEVTOROWHEIGHT)
- desth = dat->rowHeight;
- }
- break;
-
- case CLB_STRETCHV:
- if (dat->backgroundBmpUse&CLBF_PROPORTIONAL) {
- desth = clRect.bottom;
- destw = desth*bmp.bmWidth/bmp.bmHeight;
- }
- else {
- destw = bmp.bmWidth;
- desth = clRect.bottom;
- }
- break;
-
- default: //clb_topleft
- destw = bmp.bmWidth;
- desth = bmp.bmHeight;
- if (dat->backgroundBmpUse&CLBF_TILEVTOROWHEIGHT)
- desth = dat->rowHeight;
- break;
- }
-
- for (;y<maxy;y += desth) {
- if (y<rcPaint->top-desth) continue;
- for (x = 0;x<maxx;x += destw)
- StretchBlt(hdcMem,x,y,destw,desth,hdcBmp,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
- }
- SelectObject(hdcBmp,oldbm);
- DeleteDC(hdcBmp);
- }
- group = &dat->list;
- group->scanIndex = 0;
- indent = 0;
- subindex = -1;
- for (index = 0;y<rcPaint->bottom;) {
- if (subindex == -1)
- if (group->scanIndex == group->cl.count) {
- group = group->parent;
- indent--;
- if (group == NULL) break;
- group->scanIndex++;
- continue;
- }
-
- if (y>rcPaint->top-dat->rowHeight ) {
- int iImage = -1;
- int selected;
- int hottrack;
- SIZE textSize,countsSize,spaceSize;
- int width,checkboxWidth;
- char *szCounts;
-
- if (subindex == -1) {
- Drawing = group->cl.items[group->scanIndex];
- subident = 0;
- }
- else {
- Drawing = &(group->cl.items[group->scanIndex]->subcontacts[subindex]);
- subident = dat->rowHeight/2;
- }
- //alternating grey
-
- selected = index == dat->selection && (dat->showSelAlways || dat->exStyle&CLS_EX_SHOWSELALWAYS || GetFocus() == hwnd) && Drawing->type != CLCIT_DIVIDER;
- hottrack = dat->exStyle&CLS_EX_TRACKSELECT && Drawing->type != CLCIT_DIVIDER && dat->iHotTrack == index;
-
- if (style&CLS_GREYALTERNATE && index&1) {
- RECT rc;
- rc.top = y; rc.bottom = rc.top+dat->rowHeight;
- rc.left = 0; rc.right = clRect.right;
- FillRect(hdcMem,&rc,hBrushAlternateGrey);
- }
-
- //setup
- if (Drawing->type == CLCIT_GROUP) {
- if (Drawing->group->expanded)
- ChangeToFont(hdcMem,dat,FONTID_GROUPS,&fontHeight);
- else
- ChangeToFont(hdcMem,dat,FONTID_GROUPSCLOSED,&fontHeight);
- }
- else if (Drawing->type == CLCIT_INFO) {
- if (Drawing->flags&CLCIIF_GROUPFONT) ChangeToFont(hdcMem,dat,FONTID_GROUPS,&fontHeight);
- else ChangeToFont(hdcMem,dat,FONTID_CONTACTS,&fontHeight);
- }
- else if (Drawing->type == CLCIT_DIVIDER)
- ChangeToFont(hdcMem,dat,FONTID_DIVIDERS,&fontHeight);
- else if (Drawing->type == CLCIT_CONTACT && (Drawing->flags&CONTACTF_NOTONLIST) && (!Drawing->isSubcontact))
- ChangeToFont(hdcMem,dat,FONTID_NOTONLIST,&fontHeight);
- else if ( Drawing->type == CLCIT_CONTACT &&
- (
- (Drawing->flags&CONTACTF_INVISTO && (!Drawing->isSubcontact) && GetRealStatus(group->cl.items[group->scanIndex], status) != ID_STATUS_INVISIBLE )
- ||
- (Drawing->flags&CONTACTF_VISTO && (!Drawing->isSubcontact) && GetRealStatus(group->cl.items[group->scanIndex], status) == ID_STATUS_INVISIBLE)
- )
- )
- {
- // the contact is in the always visible list and the proto is invisible
- // the contact is in the always invisible and the proto is in any other mode
- ChangeToFont(hdcMem,dat, Drawing->flags&CONTACTF_ONLINE ? FONTID_INVIS:FONTID_OFFINVIS ,&fontHeight);
- }
- else if (Drawing->type == CLCIT_CONTACT && (!(Drawing->flags&CONTACTF_ONLINE) && (!Drawing->isSubcontact)))
- ChangeToFont(hdcMem,dat,FONTID_OFFLINE,&fontHeight);
- else
- ChangeToFont(hdcMem,dat,FONTID_CONTACTS,&fontHeight);
- GetTextExtentPoint32(hdcMem,Drawing->szText,lstrlen(Drawing->szText),&textSize);
- width = textSize.cx;
- if (Drawing->type == CLCIT_GROUP) {
- szCounts = pcli->pfnGetGroupCountsText(dat,group->cl.items[group->scanIndex]);
- if (szCounts[0]) {
- GetTextExtentPoint32A(hdcMem," ",1,&spaceSize);
- ChangeToFont(hdcMem,dat,FONTID_GROUPCOUNTS,&fontHeight);
- GetTextExtentPoint32A(hdcMem,szCounts,lstrlenA(szCounts),&countsSize);
- width += spaceSize.cx+countsSize.cx;
- }
- }
-
- if ((style&CLS_CHECKBOXES && Drawing->type == CLCIT_CONTACT) ||
- (style&CLS_GROUPCHECKBOXES && Drawing->type == CLCIT_GROUP) ||
- (Drawing->type == CLCIT_INFO && Drawing->flags&CLCIIF_CHECKBOX))
- checkboxWidth = dat->checkboxSize+2;
- else checkboxWidth = 0;
-
- //background
- if (selected) {
- // default value - paint on text
- int x=dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace-2+subident;
- ImageList_DrawEx(dat->himlHighlight,0,hdcMem,x,y,min(width+5,clRect.right-x),dat->rowHeight,CLR_NONE,CLR_NONE,dat->exStyle&CLS_EX_NOTRANSLUCENTSEL?ILD_NORMAL:ILD_BLEND25);
- SetTextColor(hdcMem,dat->selTextColour);
- }
- else if (hottrack)
- SetHotTrackColour(hdcMem,dat);
-
- //checkboxes
- if (checkboxWidth) {
- RECT rc;
- HANDLE hTheme = OpenThemeData(hwnd,L"BUTTON");
-
- rc.left = dat->leftMargin+indent*dat->groupIndent+subident;
- rc.right = rc.left+dat->checkboxSize;
- rc.top = y+((dat->rowHeight-dat->checkboxSize)>>1);
- rc.bottom = rc.top+dat->checkboxSize;
- DrawThemeBackground(hTheme, hdcMem, BP_CHECKBOX, Drawing->flags&CONTACTF_CHECKED?(hottrack?CBS_CHECKEDHOT:CBS_CHECKEDNORMAL):(hottrack?CBS_UNCHECKEDHOT:CBS_UNCHECKEDNORMAL), &rc, &rc);
- CloseThemeData(hTheme);
- }
-
- //icon
- if (Drawing->type == CLCIT_GROUP)
- iImage = Drawing->group->expanded?IMAGE_GROUPOPEN:IMAGE_GROUPSHUT;
- else if (Drawing->type == CLCIT_CONTACT)
- iImage = Drawing->iImage;
- if (iImage != -1) {
- /*COLORREF colourFg = dat->selBkColour;
- int mode = ILD_NORMAL;
- if (selected) mode = ILD_SELECTED;
- else if (hottrack) {mode = ILD_FOCUS; colourFg = dat->hotTextColour;}
- else if (Drawing->type == CLCIT_CONTACT && Drawing->flags&CONTACTF_NOTONLIST) {colourFg = dat->fontInfo[FONTID_NOTONLIST].colour; mode = ILD_BLEND50;}
- ImageList_DrawEx(himlCListClc,iImage,hdcMem,dat->leftMargin+indent*dat->groupIndent+checkboxWidth,y+((dat->rowHeight-16)>>1),0,0,CLR_NONE,colourFg,mode);
- */
- COLORREF colourFg = dat->selBkColour;
- int mode = ILD_NORMAL;
- if (hottrack) {colourFg = dat->hotTextColour;}
- else if (Drawing->type == CLCIT_CONTACT && Drawing->flags&CONTACTF_NOTONLIST && (!Drawing->isSubcontact)) {colourFg = dat->fontInfo[FONTID_NOTONLIST].colour; mode = ILD_BLEND50;}
- if (Drawing->type == CLCIT_CONTACT && dat->showIdle && (Drawing->flags&CONTACTF_IDLE)&& (!Drawing->isSubcontact) && GetRealStatus(group->cl.items[group->scanIndex],ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE)
- mode = ILD_SELECTED;
- ImageList_DrawEx(himlCListClc,iImage,hdcMem,dat->leftMargin+subident+indent*dat->groupIndent+checkboxWidth,y+((dat->rowHeight-16)>>1),0,0,CLR_NONE,colourFg,mode);
- }
-
- //text
- if (Drawing->type == CLCIT_DIVIDER) {
- RECT rc;
- rc.top = y+(dat->rowHeight>>1); rc.bottom = rc.top+2;
- rc.left = dat->leftMargin+indent*dat->groupIndent;
- rc.right = rc.left+((clRect.right-rc.left-textSize.cx)>>1)-3;
- DrawEdge(hdcMem,&rc,BDR_SUNKENOUTER,BF_RECT);
- TextOut(hdcMem,rc.right+3,y+((dat->rowHeight-fontHeight)>>1),Drawing->szText,lstrlen(Drawing->szText));
- rc.left = rc.right+6+textSize.cx;
- rc.right = clRect.right;
- DrawEdge(hdcMem,&rc,BDR_SUNKENOUTER,BF_RECT);
- }
- else if (Drawing->type == CLCIT_GROUP) {
- RECT rc;
- if (szCounts[0]) {
- ClcGroup *clcg;
-
- clcg = (ClcGroup *)Drawing;
-
- fontHeight = dat->fontInfo[FONTID_GROUPS].fontHeight;
-
- rc.left = dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace;
- rc.right = min(clRect.right-countsSize.cx,rc.left+textSize.cx+spaceSize.cx);
- rc.top = y+((dat->rowHeight-fontHeight)>>1);
- rc.bottom = rc.top+textSize.cy;
- if (rc.right<rc.left+4) rc.right = clRect.right+1;
- else TextOutA(hdcMem,rc.right,rc.top+groupCountsFontTopShift,szCounts,lstrlenA(szCounts));
-
- //ChangeToFont(hdcMem,dat,FONTID_GROUPS,&fontHeight);
- if (Drawing->group->expanded)
- {
- ChangeToFont(hdcMem,dat,FONTID_GROUPS,&fontHeight);
- }
- else
- {
- ChangeToFont(hdcMem,dat,FONTID_GROUPSCLOSED,&fontHeight);
- }
-
- if (selected)
- SetTextColor(hdcMem,dat->selTextColour);
- else if (hottrack)
- SetHotTrackColour(hdcMem,dat);
- rc.right--;
- ExtTextOut(hdcMem,rc.left,rc.top,ETO_CLIPPED,&rc,Drawing->szText,lstrlen(Drawing->szText),NULL);
- }
- else TextOut(hdcMem,dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace,y+((dat->rowHeight-fontHeight)>>1),Drawing->szText,lstrlen(Drawing->szText));
- if (dat->exStyle&CLS_EX_LINEWITHGROUPS) {
- //calc if extra icons present
- int enabledextraicons = 0;
- for (iImage = 0;iImage<dat->extraColumnsCount;iImage++) {
- if (Drawing->iExtraImage[iImage] == EMPTY_EXTRA_ICON)
- continue;
- enabledextraicons++;
- }
- rc.top = y+(dat->rowHeight>>1); rc.bottom = rc.top+2;
- rc.left = dat->leftMargin+subident+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace+width+3;
- rc.right = clRect.right-1-dat->extraColumnSpacing*enabledextraicons;
- if (rc.right-rc.left>1) DrawEdge(hdcMem,&rc,BDR_SUNKENOUTER,BF_RECT);
- }
- }
- else {
- RECT rc;
- rc.left = dat->leftMargin+subident+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace;
- rc.top = y+((dat->rowHeight-fontHeight)>>1);
- rc.bottom = rc.top+dat->rowHeight;
- rc.right = clRect.right;
- if (Drawing->type == CLCIT_CONTACT)
- if (hottrack)
- ChangeToFont(hdcMem,dat,FONTID_CONTACTSHOVER,&fontHeight);
-
- DrawText(hdcMem,Drawing->szText,lstrlen(Drawing->szText),&rc,DT_END_ELLIPSIS);
-
- }
-
- if (selected) {
- if (Drawing->type != CLCIT_DIVIDER) {
- SetTextColor(hdcMem,dat->quickSearchColour);
- TextOut(hdcMem,dat->leftMargin+subident+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace,y+((dat->rowHeight-fontHeight)>>1),Drawing->szText,lstrlen(dat->szQuickSearch));
- }
- }
-
- if (dat->style&CLS_SHOWSTATUSMESSAGES)
- {
- // status message
- if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT && group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG) {
- TCHAR * szText = group->cl.items[group->scanIndex]->szStatusMsg;
- RECT rc;
- rc.left = dat->leftMargin + indent * dat->groupIndent + checkboxWidth + dat->iconXSpace;
- rc.top = y+dat->rowHeight+((dat->rowHeight-fontHeight)>>1);
- rc.right = (clRect.right - clRect.left);
- rc.bottom = rc.top+dat->rowHeight;
- ChangeToFont(hdcMem,dat,FONTID_STATUSMSG,&fontHeight);
- //ExtTextOut(hdcMem,rc.left,rc.top,ETO_CLIPPED,&rc,szText,lstrlen(szText),NULL);
- DrawText(hdcMem, szText, lstrlen(szText), &rc, DT_SINGLELINE | DT_EDITCONTROL | DT_NOPREFIX | DT_NOCLIP | DT_WORD_ELLIPSIS);
- }
- }
-
- if ( !Drawing->isSubcontact || ( db_get_b(NULL,"CLC","MetaHideExtra",0) == 0)) {
-
- //extra icons
- if ( !(style & CLS_EX_MULTICOLUMNALIGNLEFT)) {
- int c = dat->extraColumnsCount;
- for (iImage = dat->extraColumnsCount-1;iImage>=0;iImage--) {
- COLORREF colourFg = dat->selBkColour;
- int mode = ILD_NORMAL;
-
- if (Drawing->iExtraImage[iImage] == EMPTY_EXTRA_ICON)
- continue;
-
- if (selected) mode = ILD_SELECTED;
- else if (hottrack) {mode = ILD_FOCUS; colourFg = dat->hotTextColour;}
- else if (Drawing->type == CLCIT_CONTACT && Drawing->flags&CONTACTF_NOTONLIST) {colourFg = dat->fontInfo[FONTID_NOTONLIST].colour; mode = ILD_BLEND50;}
- {
-
- }
- if (dat->MetaIgnoreEmptyExtra) c--; else c = iImage;
-
- testrc.left = clRect.right-dat->extraColumnSpacing*(dat->extraColumnsCount-c);
- testrc.top = (y+((dat->rowHeight-16)>>1));
- testrc.right = testrc.left+16;
- testrc.bottom = testrc.top+16;
- if ( !PtInRect(&testrc,pt))
- mode = ILD_NORMAL;
-
- ImageList_DrawEx(dat->himlExtraColumns,Drawing->iExtraImage[iImage],hdcMem,clRect.right-dat->extraColumnSpacing*(dat->extraColumnsCount-c),y+((dat->rowHeight-16)>>1),0,0,CLR_NONE,colourFg,mode);
- }
- }
- else {
- int ic = 0;
- for (iImage = 0;iImage<dat->extraColumnsCount;iImage++) {
- COLORREF colourFg = dat->selBkColour;
- int mode = ILD_NORMAL;
- int x;
-
- if (Drawing->iExtraImage[iImage] == EMPTY_EXTRA_ICON)
- continue;
-
- if (hottrack) {
- mode = ILD_FOCUS;
- colourFg = dat->hotTextColour;
- }
- else if (Drawing->type == CLCIT_CONTACT && (Drawing->flags & CONTACTF_NOTONLIST)) {
- colourFg = dat->fontInfo[FONTID_NOTONLIST].colour;
- mode = ILD_BLEND50;
- }
-
- x = (dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace-2+width);
- x += 16;
- x = x+dat->extraColumnSpacing*(ic);
- if (iImage == dat->extraColumnsCount-1) {x = clRect.right-18;}
- ImageList_DrawEx(dat->himlExtraColumns,Drawing->iExtraImage[iImage],hdcMem,
- x,
- y+((dat->rowHeight-16)>>1),0,0,CLR_NONE,colourFg,mode);
-
- ic++;
- }
- }
- }
- }
- index++;
- y += dat->rowHeight;
-
- if (group->cl.items[group->scanIndex]->type == CLCIT_CONTACT && group->cl.items[group->scanIndex]->flags & CONTACTF_STATUSMSG) {
- y += dat->rowHeight;
- index++;
- }
-
- //increment by subcontacts
- if (group->cl.items[group->scanIndex]->subcontacts != NULL && group->cl.items[group->scanIndex]->type != CLCIT_GROUP)
- if (group->cl.items[group->scanIndex]->SubExpanded)
- if (subindex<group->cl.items[group->scanIndex]->SubAllocated-1)
- subindex++;
- else subindex = -1;
-
- if (subindex == -1) {
- if (group->cl.items[group->scanIndex]->type == CLCIT_GROUP && group->cl.items[group->scanIndex]->group->expanded) {
- group = group->cl.items[group->scanIndex]->group;
- indent++;
- group->scanIndex = 0;
- subindex = -1;
- continue;
- }
- group->scanIndex++;
- }
- }
- if (dat->iInsertionMark != -1) { //insertion mark
- HBRUSH hBrush,hoBrush;
- POINT pts[8];
- HRGN hRgn;
-
- pts[0].x = dat->leftMargin; pts[0].y = dat->iInsertionMark*dat->rowHeight-dat->yScroll-4;
- pts[1].x = pts[0].x+2; pts[1].y = pts[0].y+3;
- pts[2].x = clRect.right-4; pts[2].y = pts[1].y;
- pts[3].x = clRect.right-1; pts[3].y = pts[0].y-1;
- pts[4].x = pts[3].x; pts[4].y = pts[0].y+7;
- pts[5].x = pts[2].x+1; pts[5].y = pts[1].y+2;
- pts[6].x = pts[1].x; pts[6].y = pts[5].y;
- pts[7].x = pts[0].x; pts[7].y = pts[4].y;
- hRgn = CreatePolygonRgn(pts,SIZEOF(pts),ALTERNATE);
- hBrush = CreateSolidBrush(dat->fontInfo[FONTID_CONTACTS].colour);
- hoBrush = (HBRUSH)SelectObject(hdcMem,hBrush);
- FillRgn(hdcMem,hRgn,hBrush);
- SelectObject(hdcMem,hoBrush);
- DeleteObject(hBrush);
- }
- if ( !grey)
- BitBlt(hdc,rcPaint->left,rcPaint->top,rcPaint->right-rcPaint->left,rcPaint->bottom-rcPaint->top,hdcMem,rcPaint->left,rcPaint->top,SRCCOPY);
- //DeleteDC(hdcMem);
- if (hBrushAlternateGrey) DeleteObject(hBrushAlternateGrey);
- if (grey) {
- PBYTE bits;
- BITMAPINFOHEADER bmih = {0};
- int i;
- int greyRed,greyGreen,greyBlue;
- COLORREF greyColour;
- bmih.biBitCount = 32;
- bmih.biSize = sizeof(bmih);
- bmih.biCompression = BI_RGB;
- bmih.biHeight = -clRect.bottom;
- bmih.biPlanes = 1;
- bmih.biWidth = clRect.right;
- bits = (PBYTE)mir_alloc(4*bmih.biWidth*-bmih.biHeight);
- GetDIBits(hdc,hBmpOsb,0,clRect.bottom,bits,(BITMAPINFO*)&bmih,DIB_RGB_COLORS);
- greyColour = GetSysColor(COLOR_3DFACE);
- greyRed = GetRValue(greyColour)*2;
- greyGreen = GetGValue(greyColour)*2;
- greyBlue = GetBValue(greyColour)*2;
- if (divide3[0] == 255) {
- for (i = 0; i < SIZEOF(divide3); i++) divide3[i] = (i+1)/3;
- }
- for (i = 4*clRect.right*clRect.bottom-4;i>=0;i -= 4) {
- bits[i] = divide3[bits[i]+greyBlue];
- bits[i+1] = divide3[bits[i+1]+greyGreen];
- bits[i+2] = divide3[bits[i+2]+greyRed];
- }
- SetDIBitsToDevice(hdc,0,0,clRect.right,clRect.bottom,0,0,0,clRect.bottom,bits,(BITMAPINFO*)&bmih,DIB_RGB_COLORS);
- mir_free(bits);
- }
- SelectObject(hdcMem,oldfont);
- SelectObject(hdcMem,oldbmp);
- DeleteObject(hBmpOsb);
- DeleteDC(hdcMem);
-}
-
-void PaintClc(HWND hwnd,struct ClcData *dat,HDC hdc,RECT *rcPaint)
-{
- if (SED.cbSize == sizeof(SED)&&SED.PaintClc != NULL) {
- SED.PaintClc(hwnd,dat,hdc,rcPaint,pcli->hClcProtoCount,pcli->clcProto,himlCListClc);
- return;
- }
- InternalPaintClc(hwnd,dat,hdc,rcPaint);
-}
diff --git a/plugins/Clist_mw/src/clcutils.cpp b/plugins/Clist_mw/src/clcutils.cpp
deleted file mode 100644
index 0edfda16ed..0000000000
--- a/plugins/Clist_mw/src/clcutils.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clc.h"
-
-//loads of stuff that didn't really fit anywhere else
-
-int HitTest(HWND hwnd,struct ClcData *dat,int testx,int testy,struct ClcContact **contact,ClcGroup **group,DWORD *flags)
-{
- struct ClcContact *hitcontact;
- ClcGroup *hitgroup;
- int hit,indent,width,i,cxSmIcon;
- int checkboxWidth, subident,ic = 0;
- SIZE textSize;
- HDC hdc;
- HFONT oldfont;
- RECT clRect;
- DWORD style = GetWindowLongPtr(hwnd,GWL_STYLE);
-
- if (flags) *flags = 0;
- GetClientRect(hwnd,&clRect);
- if (testx<0 || testy<0 || testy>=clRect.bottom || testx>=clRect.right) {
- if (flags) {
- if (testx<0) *flags |= CLCHT_TOLEFT;
- else if (testx>=clRect.right) *flags |= CLCHT_TORIGHT;
- if (testy<0) *flags |= CLCHT_ABOVE;
- else if (testy>=clRect.bottom) *flags |= CLCHT_BELOW;
- }
- return -1;
- }
- if (testx<dat->leftMargin) {
- if (flags) *flags |= CLCHT_INLEFTMARGIN|CLCHT_NOWHERE;
- return -1;
- }
- hit = GetRowByIndex(dat ,(testy+dat->yScroll)/dat->rowHeight,&hitcontact,&hitgroup);
- if (hit == -1) {
- if (flags) *flags |= CLCHT_NOWHERE|CLCHT_BELOWITEMS;
- return -1;
- }
- if (contact) *contact = hitcontact;
- if (group) *group = hitgroup;
- /////////
- if (hitcontact->type == CLCIT_CONTACT && hitcontact->isSubcontact)
- subident = dat->rowHeight/2;
- else
- subident = 0;
-
- for (indent = 0;hitgroup->parent;indent++,hitgroup = hitgroup->parent);
- if (testx<dat->leftMargin+indent*dat->groupIndent+subident) {
- if (flags) *flags |= CLCHT_ONITEMINDENT;
- return hit;
- }
- checkboxWidth = 0;
- if (style&CLS_CHECKBOXES && hitcontact->type == CLCIT_CONTACT) checkboxWidth = dat->checkboxSize+2;
- if (style&CLS_GROUPCHECKBOXES && hitcontact->type == CLCIT_GROUP) checkboxWidth = dat->checkboxSize+2;
- if (hitcontact->type == CLCIT_INFO && hitcontact->flags&CLCIIF_CHECKBOX) checkboxWidth = dat->checkboxSize+2;
- if (testx<dat->leftMargin+indent*dat->groupIndent+checkboxWidth+subident) {
- if (flags) *flags |= CLCHT_ONITEMCHECK;
- return hit;
- }
- if (testx<dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace+subident) {
- if (flags) *flags |= CLCHT_ONITEMICON;
- return hit;
- }
-
- hdc = GetDC(hwnd);
- GetTextExtentPoint32(hdc,hitcontact->szText,lstrlen(hitcontact->szText),&textSize);
- width = textSize.cx;
-
- cxSmIcon = GetSystemMetrics(SM_CXSMICON);
-
- for (i=0; i < dat->extraColumnsCount; i++) {
- int x;
- if (hitcontact->iExtraImage[i] == EMPTY_EXTRA_ICON)
- continue;
-
- if ((style & CLS_EX_MULTICOLUMNALIGNLEFT)) {
- x = (dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace-2+width);
- x += 16;
- x = x+dat->extraColumnSpacing*(ic);
- if (i == dat->extraColumnsCount-1) {x = clRect.right-18;}
- }
- else {
- int ir;
- if (dat->MetaIgnoreEmptyExtra) {
- ir = 0;
- for (int j = i;j<dat->extraColumnsCount;j++)
- if (hitcontact->iExtraImage[j] != EMPTY_EXTRA_ICON)
- ir++;
- }
- else ir = dat->extraColumnsCount-i;
-
- x = clRect.right-dat->extraColumnSpacing*ir;
- }
- ic++;
-
- if (testx >= x && testx < x + cxSmIcon) {
- if (flags)
- *flags |= CLCHT_ONITEMEXTRA|(i<<24);
-
- ReleaseDC(hwnd,hdc);
- return hit;
- }
- }
-
- if (hitcontact->type == CLCIT_GROUP)
- oldfont = (HFONT)SelectObject(hdc,dat->fontInfo[FONTID_GROUPS].hFont);
- else
- oldfont = (HFONT)SelectObject(hdc,dat->fontInfo[FONTID_CONTACTS].hFont);
-
- GetTextExtentPoint32(hdc,hitcontact->szText,lstrlen(hitcontact->szText),&textSize);
- width = textSize.cx;
- if (hitcontact->type == CLCIT_GROUP) {
- char *szCounts = pcli->pfnGetGroupCountsText(dat,hitcontact);
- if (szCounts[0]) {
- GetTextExtentPoint32A(hdc," ",1,&textSize);
- width += textSize.cx;
- SelectObject(hdc,dat->fontInfo[FONTID_GROUPCOUNTS].hFont);
- GetTextExtentPoint32A(hdc,szCounts,lstrlenA(szCounts),&textSize);
- width += textSize.cx;
- }
- }
- SelectObject(hdc,oldfont);
- ReleaseDC(hwnd,hdc);
- if (testx<dat->leftMargin+indent*dat->groupIndent+checkboxWidth+dat->iconXSpace+width+4+subident) {
- if (flags) *flags |= CLCHT_ONITEMLABEL;
- return hit;
- }
- if (flags) *flags |= CLCHT_NOWHERE;
- return -1;
-}
-
-void ScrollTo(HWND hwnd,struct ClcData *dat,int desty,int noSmooth)
-{
- DWORD startTick,nowTick;
- int oldy = dat->yScroll;
- RECT clRect,rcInvalidate;
- int maxy,previousy;
-
- if (dat->iHotTrack != -1 && dat->yScroll != desty) {
- pcli->pfnInvalidateItem(hwnd,dat,dat->iHotTrack);
- dat->iHotTrack = -1;
- ReleaseCapture();
- }
- GetClientRect(hwnd,&clRect);
- rcInvalidate = clRect;
- maxy = dat->rowHeight*GetGroupContentsCount(&dat->list,2)-clRect.bottom;
- if (desty>maxy) desty = maxy;
- if (desty<0) desty = 0;
- if (abs(desty-dat->yScroll)<4) noSmooth = 1;
- if ( !noSmooth && dat->exStyle&CLS_EX_NOSMOOTHSCROLLING) noSmooth = 1;
- previousy = dat->yScroll;
- if ( !noSmooth) {
- startTick = GetTickCount();
- for (;;) {
- nowTick = GetTickCount();
- if (nowTick>=startTick+dat->scrollTime) break;
- dat->yScroll = oldy+(desty-oldy)*(int)(nowTick-startTick)/dat->scrollTime;
- if (dat->backgroundBmpUse&CLBF_SCROLL || dat->hBmpBackground == NULL)
- ScrollWindowEx(hwnd,0,previousy-dat->yScroll,NULL,NULL,NULL,NULL,SW_INVALIDATE);
- else
- InvalidateRect(hwnd,NULL,FALSE);
- previousy = dat->yScroll;
- SetScrollPos(hwnd,SB_VERT,dat->yScroll,TRUE);
- UpdateWindow(hwnd);
- }
- }
- dat->yScroll = desty;
- if (dat->backgroundBmpUse&CLBF_SCROLL || dat->hBmpBackground == NULL)
- ScrollWindowEx(hwnd,0,previousy-dat->yScroll,NULL,NULL,NULL,NULL,SW_INVALIDATE);
- else
- InvalidateRect(hwnd,NULL,FALSE);
- SetScrollPos(hwnd,SB_VERT,dat->yScroll,TRUE);
-}
-
-void RecalcScrollBar(HWND hwnd,struct ClcData *dat)
-{
- SCROLLINFO si = {0};
- RECT clRect;
- NMCLISTCONTROL nm;
- boolean sbar = FALSE;
-
- GetClientRect(hwnd,&clRect);
-
- si.cbSize = sizeof(si);
- si.fMask = SIF_ALL;
- si.nMin = 0;
- si.nMax = dat->rowHeight*GetGroupContentsCount(&dat->list,2)-1;
- si.nPage = clRect.bottom;
- si.nPos = dat->yScroll;
-
- nm.hdr.code = CLN_LISTSIZECHANGE;
- nm.hdr.hwndFrom = hwnd;
- nm.hdr.idFrom = GetDlgCtrlID(hwnd);
- nm.pt.y = si.nMax;
- SendMessage(GetParent(hwnd),WM_NOTIFY,0,(LPARAM)&nm);
-
- GetClientRect(hwnd,&clRect);
- si.cbSize = sizeof(si);
- si.fMask = SIF_ALL;
- si.nMin = 0;
- si.nMax = dat->rowHeight*GetGroupContentsCount(&dat->list,2)-1;
- si.nPage = clRect.bottom;
- si.nPos = dat->yScroll;
-
- sbar = (dat->noVScrollbar == 1||(int)si.nPage>si.nMax);
-
- ShowScrollBar(hwnd,SB_VERT,sbar? FALSE : TRUE);
- if ( !sbar) {
- if ( GetWindowLongPtr(hwnd,GWL_STYLE)&CLS_CONTACTLIST ) {
- if ( dat->noVScrollbar == 0 ) SetScrollInfo(hwnd,SB_VERT,&si,TRUE);
- else SetScrollInfo(hwnd,SB_VERT,&si,FALSE);
- }
- else SetScrollInfo(hwnd,SB_VERT,&si,TRUE);
- }
- ScrollTo(hwnd,dat,dat->yScroll,1);
-}
-
-void CalcEipPosition( struct ClcData *dat, struct ClcContact *contact, ClcGroup *group, POINT *result)
-{
- int indent;
- for (indent = 0; group->parent; indent++, group = group->parent);
- result->x = indent * dat->groupIndent + dat->iconXSpace - 2;
- result->y = dat->selection * dat->rowHeight - dat->yScroll;
-
- if (contact->type == CLCIT_CONTACT && contact->isSubcontact)
- result->x += dat->rowHeight/2;
-}
-
-void GetDefaultFontSetting(int i,LOGFONT *lf,COLORREF *colour)
-{
- SystemParametersInfo(SPI_GETICONTITLELOGFONT,sizeof(LOGFONT),lf,FALSE);
- *colour = GetSysColor(COLOR_WINDOWTEXT);
- switch(i) {
- case FONTID_GROUPS:
- lf->lfWeight = FW_BOLD;
- break;
- case FONTID_GROUPCOUNTS:
- lf->lfHeight = (int)(lf->lfHeight*.75);
- *colour = GetSysColor(COLOR_3DSHADOW);
- break;
- case FONTID_OFFINVIS:
- case FONTID_INVIS:
- lf->lfItalic = !lf->lfItalic;
- break;
- case FONTID_DIVIDERS:
- lf->lfHeight = (int)(lf->lfHeight*.75);
- break;
- case FONTID_NOTONLIST:
- *colour = GetSysColor(COLOR_3DSHADOW);
- break;
-} }
-
-extern void ( *saveLoadClcOptions )(HWND hwnd,struct ClcData *dat);
-
-void LoadClcOptions(HWND hwnd,struct ClcData *dat)
-{
- int i;
-
- dat->style = GetWindowLongPtr(hwnd,GWL_STYLE);
- dat->MetaIgnoreEmptyExtra = db_get_b(NULL,"CLC","MetaIgnoreEmptyExtra",1);
- saveLoadClcOptions( hwnd, dat );
-
- for (i = 0; i <= FONTID_MAX; i++)
- if (dat->fontInfo[i].fontHeight > dat->rowHeight)
- dat->rowHeight = dat->fontInfo[i].fontHeight;
-}
diff --git a/plugins/Clist_mw/src/clist.h b/plugins/Clist_mw/src/clist.h
deleted file mode 100644
index dad33fa285..0000000000
--- a/plugins/Clist_mw/src/clist.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#ifndef _CLIST_H_
-#define _CLIST_H_
-
-void LoadContactTree(void);
-int ExtIconFromStatusMode(MCONTACT hContact, const char *szProto,int status);
-HTREEITEM GetTreeItemByHContact(MCONTACT hContact);
-void TrayIconUpdateWithImageList(int iImage,const char *szNewTip,char *szPreferredProto);
-void SortContacts(void);
-void ChangeContactIcon(MCONTACT hContact,int iIcon,int add);
-int GetContactInfosForSort(MCONTACT hContact,char **Proto,TCHAR **Name,int *Status);
-
-struct ClcCacheEntry : public ClcCacheEntryBase
-{
- int noHiddenOffline;
-
- char *szProto;
- boolean protoNotExists;
- int status;
-
- int i;
- int ApparentMode;
- int NotOnList;
- int IdleTS;
- void *ClcContact;
- BYTE IsExpanded;
- boolean isUnknown;
-};
-
-ClcCacheEntry* GetContactFullCacheEntry(MCONTACT hContact);
-
-#endif \ No newline at end of file
diff --git a/plugins/Clist_mw/src/clistmenus.cpp b/plugins/Clist_mw/src/clistmenus.cpp
deleted file mode 100644
index 8a9f96d06f..0000000000
--- a/plugins/Clist_mw/src/clistmenus.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-06 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#pragma hdrstop
-
-static HMENU hMainMenu, hMainStatusMenu;
-
-void DestroyTrayMenu(HMENU hMenu)
-{
- int i, cnt;
-
- cnt = GetMenuItemCount(hMenu);
- for (i = 0; i < cnt; ++i) {
- HMENU hSubMenu = GetSubMenu(hMenu, i);
- if (hSubMenu == hMainStatusMenu || hSubMenu == hMainMenu)
- RemoveMenu(hMenu, i--, MF_BYPOSITION);
- }
- DestroyMenu(hMenu);
-}
-
-INT_PTR CloseAction(WPARAM wParam, LPARAM lParam)
-{
- if (CallService(MS_SYSTEM_OKTOEXIT, 0, 0))
- DestroyWindow(pcli->hwndContactList);
-
- return 0;
-}
-
-int InitCustomMenus(void)
-{
- CreateServiceFunction("CloseAction", CloseAction);
- hMainStatusMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS, 0, 0);
- hMainMenu = (HMENU)CallService(MS_CLIST_MENUGETMAIN, 0, 0);
-
- return 0;
-}
-
-void UninitCustomMenus(void)
-{
-}
diff --git a/plugins/Clist_mw/src/clistmod.cpp b/plugins/Clist_mw/src/clistmod.cpp
deleted file mode 100644
index 869fcfc56c..0000000000
--- a/plugins/Clist_mw/src/clistmod.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-extern int DefaultImageListColorDepth;
-
-int InitCustomMenus(void);
-void UninitCustomMenus(void);
-int ContactSettingChanged(WPARAM wParam, LPARAM lParam);
-int CListOptInit(WPARAM wParam, LPARAM lParam);
-INT_PTR ContactChangeGroup(WPARAM wParam, LPARAM lParam);
-INT_PTR HotkeysProcessMessage(WPARAM wParam, LPARAM lParam) { return pcli->pfnHotkeysProcessMessage(wParam, lParam); }
-void InitTrayMenus(void);
-
-HIMAGELIST hCListImages;
-
-HANDLE hContactIconChangedEvent;
-extern BYTE nameOrder[];
-
-static HANDLE hSettingChanged, hProtoAckHook;
-
-int cli_IconFromStatusMode(const char *szProto,int nStatus, MCONTACT hContact)
-{
- int result = -1;
- if (hContact && szProto) {
- char * szActProto = (char*)szProto;
- int nActStatus = nStatus;
- MCONTACT hActContact = hContact;
- if (!db_get_b(NULL, "CLC", "Meta", 0) && !strcmp(szActProto, META_PROTO)) {
- // substitute params by mostonline contact datas
- MCONTACT hMostOnlineContact = db_mc_getMostOnline(hActContact);
- if (hMostOnlineContact && hMostOnlineContact != (MCONTACT)CALLSERVICE_NOTFOUND) {
- ClcCacheEntry *cacheEntry = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hMostOnlineContact);
- if (cacheEntry && cacheEntry->szProto) {
- szActProto = cacheEntry->szProto;
- nActStatus = cacheEntry->status;
- hActContact = hMostOnlineContact;
- }
- }
- }
-
- if (ProtoServiceExists(szActProto, PS_GETADVANCEDSTATUSICON))
- result = ProtoCallService(szActProto, PS_GETADVANCEDSTATUSICON, (WPARAM)hActContact, 0);
-
- // result == -1 means no Advanced icon. LOWORD(result) == 0 happens when Advanced icon returned by ICQ (i.e. no transpot)
- if (result == -1 || !(LOWORD(result)))
- result = saveIconFromStatusMode(szActProto, nActStatus, NULL);
- }
- else result = saveIconFromStatusMode(szProto, nStatus, NULL);
- return result;
-}
-
-int ExtIconFromStatusMode(MCONTACT hContact, const char *szProto,int status)
-{
- return pcli->pfnIconFromStatusMode(szProto,status,hContact);
-}
-
-/////////// End by FYR ////////
-
-static int ProtocolAck(WPARAM wParam, LPARAM lParam)
-{
- ACKDATA *ack = (ACKDATA*)lParam;
- if (ack->type == ACKTYPE_AWAYMSG && ack->lParam) {
- DBVARIANT dbv;
- if ( !db_get_ts(ack->hContact, "CList", "StatusMsg", &dbv)) {
- if ( !_tcscmp(dbv.ptszVal, (TCHAR *)ack->lParam)) {
- db_free(&dbv);
- return 0;
- }
- db_free(&dbv);
- }
- if ( db_get_b(NULL,"CList","ShowStatusMsg",0) || db_get_b(ack->hContact,"CList","StatusMsgAuto",0))
- db_set_ts(ack->hContact, "CList", "StatusMsg", (TCHAR *)ack->lParam);
- }
-
- return 0;
-}
-
-static INT_PTR GetStatusMode(WPARAM wParam, LPARAM lParam)
-{
- return pcli->currentDesiredStatusMode;
-}
-
-static int ContactListShutdownProc(WPARAM wParam, LPARAM lParam)
-{
- UnhookEvent(hProtoAckHook);
- UninitCustomMenus();
- return 0;
-}
-
-int LoadContactListModule(void)
-{
- for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact))
- db_set_s(hContact, "CList", "StatusMsg", "");
-
- hCListImages = (HIMAGELIST)CallService(MS_CLIST_GETICONSIMAGELIST, 0, 0);
- DefaultImageListColorDepth = db_get_dw(NULL,"CList","DefaultImageListColorDepth",ILC_COLOR32);
-
- hProtoAckHook = (HANDLE) HookEvent(ME_PROTO_ACK, ProtocolAck);
- HookEvent(ME_OPT_INITIALISE,CListOptInit);
- HookEvent(ME_SYSTEM_SHUTDOWN,ContactListShutdownProc);
- hSettingChanged = HookEvent(ME_DB_CONTACT_SETTINGCHANGED,ContactSettingChanged);
- hContactIconChangedEvent = CreateHookableEvent(ME_CLIST_CONTACTICONCHANGED);
- CreateServiceFunction(MS_CLIST_CONTACTCHANGEGROUP,ContactChangeGroup);
- CreateServiceFunction(MS_CLIST_HOTKEYSPROCESSMESSAGE,HotkeysProcessMessage);
- CreateServiceFunction(MS_CLIST_GETSTATUSMODE, GetStatusMode);
-
- InitCustomMenus();
- InitTrayMenus();
- return 0;
-}
diff --git a/plugins/Clist_mw/src/clistopts.cpp b/plugins/Clist_mw/src/clistopts.cpp
deleted file mode 100644
index 490e184230..0000000000
--- a/plugins/Clist_mw/src/clistopts.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clist.h"
-
-int HotKeysRegister(HWND hwnd);
-void HotKeysUnregister(HWND hwnd);
-void LoadContactTree(void);
-void SortContacts(void);
-
-static INT_PTR CALLBACK DlgProcGenOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-
-int CListOptInit(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = { sizeof(odp) };
- odp.position = -1000000000;
- odp.hInstance = g_hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLIST);
- odp.pszTitle = LPGEN("Contact list");
- odp.pfnDlgProc = DlgProcGenOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
- return 0;
-}
-
-static INT_PTR CALLBACK DlgProcGenOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg)
- {
- case WM_USER+1:
- {
- MCONTACT hContact = wParam;
- DBCONTACTWRITESETTING * ws = (DBCONTACTWRITESETTING *)lParam;
- if ( hContact == NULL && ws != NULL && ws->szModule != NULL && ws->szSetting != NULL
- && lstrcmpiA(ws->szModule,"CList") == 0 && lstrcmpiA(ws->szSetting,"UseGroups") == 0
- && IsWindowVisible(hwndDlg)) {
- CheckDlgButton(hwndDlg,IDC_DISABLEGROUPS,ws->value.bVal == 0);
- }
- break;
- }
- case WM_DESTROY:
- {
- UnhookEvent( (HANDLE)GetWindowLongPtr(hwndDlg,GWLP_USERDATA));
- break;
- }
-
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)HookEventMessage(ME_DB_CONTACT_SETTINGCHANGED,hwndDlg,WM_USER+1));
-
- CheckDlgButton(hwndDlg,IDC_GAMMACORRECT,db_get_b(NULL,"CLC","GammaCorrect",CLCDEFAULT_GAMMACORRECT)?BST_CHECKED:BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg,IDC_ROWHEIGHTSPIN,UDM_SETBUDDY,(WPARAM)GetDlgItem(hwndDlg,IDC_ROWHEIGHT),0);
- SendDlgItemMessage(hwndDlg,IDC_ROWHEIGHTSPIN,UDM_SETRANGE,0,MAKELONG(255,0));
- SendDlgItemMessage(hwndDlg,IDC_ROWHEIGHTSPIN,UDM_SETPOS,0,MAKELONG( db_get_b(NULL,"CLC","RowHeight",CLCDEFAULT_ROWHEIGHT),0));
-
- CheckDlgButton(hwndDlg, IDC_ONTOP, db_get_b(NULL,"CList","OnTop",SETTING_ONTOP_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_HIDEOFFLINE, db_get_b(NULL,"CList","HideOffline",SETTING_HIDEOFFLINE_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_HIDEEMPTYGROUPS, db_get_b(NULL,"CList","HideEmptyGroups",SETTING_HIDEEMPTYGROUPS_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DISABLEGROUPS, db_get_b(NULL,"CList","UseGroups",SETTING_USEGROUPS_DEFAULT) ? BST_UNCHECKED : BST_CHECKED);
- CheckDlgButton(hwndDlg, IDC_SORTBYNAME,
- !db_get_b(NULL,"CList","SortByStatus",SETTING_SORTBYSTATUS_DEFAULT) &&
- !db_get_b(NULL,"CList","SortByProto",SETTING_SORTBYPROTO_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
-
- CheckDlgButton(hwndDlg, IDC_SORTBYSTATUS, db_get_b(NULL,"CList","SortByStatus",SETTING_SORTBYSTATUS_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_NOOFFLINEMOVE, db_get_b(NULL,"CList","NoOfflineBottom",SETTING_NOOFFLINEBOTTOM_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
-
- CheckDlgButton(hwndDlg, IDC_SORTBYPROTO, db_get_b(NULL,"CList","SortByProto",SETTING_SORTBYPROTO_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_CONFIRMDELETE, db_get_b(NULL,"CList","ConfirmDelete",SETTING_CONFIRMDELETE_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_AUTOHIDE, db_get_b(NULL,"CList","AutoHide",SETTING_AUTOHIDE_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIME),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIMESPIN),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- {
- DWORD caps = CallService(MS_CLUI_GETCAPS,CLUICAPS_FLAGS1,0);
- if ( !(caps&CLUIF_HIDEEMPTYGROUPS)) ShowWindow(GetDlgItem(hwndDlg,IDC_HIDEEMPTYGROUPS),SW_HIDE);
- if ( !(caps&CLUIF_DISABLEGROUPS)) ShowWindow(GetDlgItem(hwndDlg,IDC_DISABLEGROUPS),SW_HIDE);
- if (caps&CLUIF_HASONTOPOPTION) ShowWindow(GetDlgItem(hwndDlg,IDC_ONTOP),SW_HIDE);
- if (caps&CLUIF_HASAUTOHIDEOPTION) {
- ShowWindow(GetDlgItem(hwndDlg,IDC_AUTOHIDE),SW_HIDE);
- ShowWindow(GetDlgItem(hwndDlg,IDC_HIDETIME),SW_HIDE);
- ShowWindow(GetDlgItem(hwndDlg,IDC_HIDETIMESPIN),SW_HIDE);
- ShowWindow(GetDlgItem(hwndDlg,IDC_STAUTOHIDESECS),SW_HIDE);
- }
- }
- SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_SETRANGE,0,MAKELONG(900,1));
- SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_SETPOS,0,MAKELONG(db_get_w(NULL,"CList","HideTime",SETTING_HIDETIME_DEFAULT),0));
- CheckDlgButton(hwndDlg, IDC_ONECLK, db_get_b(NULL,"CList","Tray1Click",SETTING_TRAY1CLICK_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ALWAYSSTATUS, db_get_b(NULL,"CList","AlwaysStatus",SETTING_ALWAYSSTATUS_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ALWAYSMULTI, !db_get_b(NULL,"CList","AlwaysMulti",SETTING_ALWAYSMULTI_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DONTCYCLE, db_get_b(NULL,"CList","TrayIcon",SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_SINGLE ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_CYCLE, db_get_b(NULL,"CList","TrayIcon",SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_CYCLE ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_MULTITRAY, db_get_b(NULL,"CList","TrayIcon",SETTING_TRAYICON_DEFAULT) == SETTING_TRAYICON_MULTI ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DISABLEBLINK, db_get_b(NULL,"CList","DisableTrayFlash",0) == 1 ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ICONBLINK, db_get_b(NULL,"CList","NoIconBlink",0) == 1 ? BST_CHECKED : BST_UNCHECKED );
-
- if (IsDlgButtonChecked(hwndDlg,IDC_DONTCYCLE)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIMESPIN),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIME),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_ALWAYSMULTI),FALSE);
- }
- if (IsDlgButtonChecked(hwndDlg,IDC_CYCLE)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_PRIMARYSTATUS),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_ALWAYSMULTI),FALSE);
- }
- if (IsDlgButtonChecked(hwndDlg,IDC_MULTITRAY)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIMESPIN),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIME),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_PRIMARYSTATUS),FALSE);
- }
- SendDlgItemMessage(hwndDlg,IDC_CYCLETIMESPIN,UDM_SETRANGE,0,MAKELONG(120,1));
- SendDlgItemMessage(hwndDlg,IDC_CYCLETIMESPIN,UDM_SETPOS,0,MAKELONG(db_get_w(NULL,"CList","CycleTime",SETTING_CYCLETIME_DEFAULT),0));
- { int i,count,item;
- PROTOACCOUNT **accs;
- DBVARIANT dbv = {DBVT_DELETED};
- db_get_s(NULL,"CList","PrimaryStatus",&dbv);
- ProtoEnumAccounts( &count, &accs );
- item = SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_ADDSTRING,0,(LPARAM)TranslateT("Global"));
- SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_SETITEMDATA,item,0);
- for ( i = 0; i < count; i++ ) {
- if ( !IsAccountEnabled(accs[i]) || CallProtoService(accs[i]->szModuleName, PS_GETCAPS, PFLAGNUM_2, 0) == 0)
- continue;
-
- item = SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_ADDSTRING,0,(LPARAM)accs[i]->tszAccountName);
- SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_SETITEMDATA,item,(LPARAM)accs[i] );
- if ( dbv.type == DBVT_ASCIIZ && !lstrcmpA( dbv.pszVal, accs[i]->szModuleName ))
- SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_SETCURSEL,item,0);
- }
- }
- if (-1 == (int)SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_GETCURSEL,0,0))
- SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_SETCURSEL,0,0);
- SendDlgItemMessage(hwndDlg,IDC_BLINKSPIN,UDM_SETBUDDY,(WPARAM)GetDlgItem(hwndDlg,IDC_BLINKTIME),0); // set buddy
- SendDlgItemMessage(hwndDlg,IDC_BLINKSPIN,UDM_SETRANGE,0,MAKELONG(0x3FFF,250));
- SendDlgItemMessage(hwndDlg,IDC_BLINKSPIN,UDM_SETPOS,0,MAKELONG(db_get_w(NULL,"CList","IconFlashTime",550),0));
- return TRUE;
- case WM_VSCROLL:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_AUTOHIDE:
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIME),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIMESPIN),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- break;
- case IDC_DONTCYCLE:
- case IDC_CYCLE:
- case IDC_MULTITRAY:
- EnableWindow(GetDlgItem(hwndDlg,IDC_PRIMARYSTATUS),IsDlgButtonChecked(hwndDlg,IDC_DONTCYCLE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIME),IsDlgButtonChecked(hwndDlg,IDC_CYCLE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_CYCLETIMESPIN),IsDlgButtonChecked(hwndDlg,IDC_CYCLE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_ALWAYSMULTI),IsDlgButtonChecked(hwndDlg,IDC_MULTITRAY));
- break;
- case IDC_ROWHEIGHT:
- if (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()) return 0;
- break;
- }
- if ((LOWORD(wParam) == IDC_HIDETIME || LOWORD(wParam) == IDC_CYCLETIME) && HIWORD(wParam) != EN_CHANGE) break;
- if (LOWORD(wParam) == IDC_PRIMARYSTATUS && HIWORD(wParam) != CBN_SELCHANGE) break;
- if ((LOWORD(wParam) == IDC_HIDETIME || LOWORD(wParam) == IDC_CYCLETIME) && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) return 0;
- if (LOWORD(wParam) == IDC_BLINKTIME && HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()) return 0; // dont make apply enabled during buddy set crap
-
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->idFrom) {
- case 0:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- db_set_b(NULL,"CList","HideOffline",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_HIDEOFFLINE));
- {
- DWORD caps = CallService(MS_CLUI_GETCAPS,CLUICAPS_FLAGS1,0);
- if (caps & CLUIF_HIDEEMPTYGROUPS) db_set_b(NULL,"CList","HideEmptyGroups",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_HIDEEMPTYGROUPS));
- if (caps & CLUIF_DISABLEGROUPS) db_set_b(NULL,"CList","UseGroups",(BYTE)!IsDlgButtonChecked(hwndDlg,IDC_DISABLEGROUPS));
- if ( !(caps & CLUIF_HASONTOPOPTION)) {
- db_set_b(NULL,"CList","OnTop",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ONTOP));
- SetWindowPos(pcli->hwndContactList,IsDlgButtonChecked(hwndDlg,IDC_ONTOP)?HWND_TOPMOST:HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
- }
- if ( !(caps & CLUIF_HASAUTOHIDEOPTION)) {
- db_set_b(NULL,"CList","AutoHide",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- db_set_w(NULL,"CList","HideTime",(WORD)SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_GETPOS,0,0));
- }
- }
- db_set_b(NULL,"CList","SortByStatus",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SORTBYSTATUS));
- db_set_b(NULL,"CList","SortByProto",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SORTBYPROTO));
- db_set_b(NULL,"CList","NoOfflineBottom",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_NOOFFLINEMOVE));
- db_set_b(NULL,"CLC","RowHeight",(BYTE)SendDlgItemMessage(hwndDlg,IDC_ROWHEIGHTSPIN,UDM_GETPOS,0,0));
- db_set_b(NULL,"CLC","GammaCorrect",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_GAMMACORRECT));
-
- db_set_b(NULL,"CList","ConfirmDelete",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_CONFIRMDELETE));
- db_set_b(NULL,"CList","Tray1Click",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ONECLK));
- db_set_b(NULL,"CList","AlwaysStatus",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ALWAYSSTATUS));
- db_set_b(NULL,"CList","AlwaysMulti",(BYTE)!IsDlgButtonChecked(hwndDlg,IDC_ALWAYSMULTI));
- db_set_b(NULL,"CList","TrayIcon",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_DONTCYCLE)?SETTING_TRAYICON_SINGLE:(IsDlgButtonChecked(hwndDlg,IDC_CYCLE)?SETTING_TRAYICON_CYCLE:SETTING_TRAYICON_MULTI)));
- db_set_w(NULL,"CList","CycleTime",(WORD)SendDlgItemMessage(hwndDlg,IDC_CYCLETIMESPIN,UDM_GETPOS,0,0));
- db_set_w(NULL,"CList","IconFlashTime",(WORD)SendDlgItemMessage(hwndDlg,IDC_BLINKSPIN,UDM_GETPOS,0,0));
- db_set_b(NULL,"CList","DisableTrayFlash",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DISABLEBLINK));
- db_set_b(NULL,"CList","NoIconBlink", (BYTE)IsDlgButtonChecked(hwndDlg,IDC_ICONBLINK));
- {
- int cursel = SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_GETCURSEL,0,0);
- PROTOACCOUNT *pa = (PROTOACCOUNT*)SendDlgItemMessage(hwndDlg,IDC_PRIMARYSTATUS,CB_GETITEMDATA,cursel,0);
- if ( pa == NULL )
- db_unset(NULL, "CList","PrimaryStatus");
- else
- db_set_s(NULL,"CList","PrimaryStatus", pa->szModuleName);
- }
- pcli->pfnTrayIconIconsChanged();
- LoadContactTree(); /* this won't do job properly since it only really works when changes happen */
- pcli->pfnInitAutoRebuild(pcli->hwndContactTree); /* force reshuffle */
- return TRUE;
- }
- break;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/Clist_mw/src/clistsettings.cpp b/plugins/Clist_mw/src/clistsettings.cpp
deleted file mode 100644
index 01b42ebf6f..0000000000
--- a/plugins/Clist_mw/src/clistsettings.cpp
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "clist.h"
-
-TCHAR *GetNameForContact(MCONTACT hContact,int flag,boolean *isUnknown);
-char *GetProtoForContact(MCONTACT hContact);
-int GetStatusForContact(MCONTACT hContact,char *szProto);
-TCHAR *UnknownConctactTranslatedName;
-extern boolean OnModulesLoadedCalled;
-void InvalidateDisplayNameCacheEntryByPDNE(MCONTACT hContact,ClcCacheEntry *pdnce,int SettingType);
-
-static int handleCompare( ClcCacheEntry* c1, ClcCacheEntry* c2 )
-{
- return (char*)c1->hContact - (char*)c2->hContact;
-}
-
-void InitDisplayNameCache(SortedList *list)
-{
- int i, idx;
-
- memset(list,0,sizeof(SortedList));
- list->sortFunc = (FSortFunc)handleCompare;
- list->increment = CallService(MS_DB_CONTACT_GETCOUNT,0,0)+1;
-
- i = 0;
- for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
- ClcCacheEntry *pdnce = (ClcCacheEntry *)mir_calloc(sizeof(ClcCacheEntry));
- pdnce->hContact = hContact;
- InvalidateDisplayNameCacheEntryByPDNE(hContact,pdnce,0);
- List_GetIndex(list,pdnce,&idx);
- List_Insert(list,pdnce,idx);
- i++;
-} }
-
-void FreeDisplayNameCacheItem(ClcCacheEntry *p)
-{
- if ( p->tszName) { mir_free(p->tszName); p->tszName = NULL; }
- if ( p->szProto) { mir_free(p->szProto); p->szProto = NULL; }
- if ( p->tszGroup) { mir_free(p->tszGroup); p->tszGroup = NULL; }
-}
-
-void FreeDisplayNameCache(SortedList *list)
-{
- for (int i = 0; i < list->realCount; i++) {
- FreeDisplayNameCacheItem((ClcCacheEntry*)list->items[i] );
- mir_free(list->items[i]);
- }
-
- List_Destroy(list);
-}
-
-void CheckPDNCE(ClcCacheEntry *_pdnce)
-{
- ClcCacheEntry *pdnce = (ClcCacheEntry *)_pdnce;
- if (pdnce == NULL)
- return;
-
- if (pdnce->szProto == NULL && pdnce->protoNotExists == FALSE) {
- pdnce->szProto = GetProtoForContact(pdnce->hContact);
- if (pdnce->szProto == NULL)
- pdnce->protoNotExists = FALSE;
- else {
- if (CallService(MS_PROTO_ISPROTOCOLLOADED,0,(LPARAM)pdnce->szProto) == 0)
- pdnce->protoNotExists = TRUE;
- else {
- if ( pdnce->szProto && pdnce->tszName ) {
- mir_free(pdnce->tszName);
- pdnce->tszName = NULL;
- } } } }
-
- if (pdnce->tszName == NULL)
- {
- if (pdnce->protoNotExists)
- pdnce->tszName = mir_tstrdup(TranslateT("_NoProtocol_"));
- else {
- if (OnModulesLoadedCalled)
- pdnce->tszName = GetNameForContact(pdnce->hContact,0,&pdnce->isUnknown);
- else
- pdnce->tszName = GetNameForContact(pdnce->hContact,0,NULL);
- }
- }
- else {
- if (pdnce->isUnknown&&pdnce->szProto&&pdnce->protoNotExists == TRUE&&OnModulesLoadedCalled) {
- pdnce->protoNotExists = FALSE;
- mir_free(pdnce->tszName);
- pdnce->tszName = GetNameForContact(pdnce->hContact,0,&pdnce->isUnknown);
- } }
-
- if (pdnce->status == 0)
- pdnce->status = GetStatusForContact(pdnce->hContact,pdnce->szProto);
-
- if (pdnce->tszGroup == NULL)
- {
- DBVARIANT dbv;
-
- if ( !db_get_ts(pdnce->hContact,"CList","Group",&dbv))
- {
- pdnce->tszGroup = mir_tstrdup(dbv.ptszVal);
- mir_free(dbv.pszVal);
- }
- else pdnce->tszGroup = mir_tstrdup( _T(""));
- }
-
- if (pdnce->bIsHidden == -1)
- pdnce->bIsHidden = db_get_b(pdnce->hContact,"CList","Hidden",0);
-
- if (pdnce->noHiddenOffline == -1)
- pdnce->noHiddenOffline = db_get_b(pdnce->hContact,"CList","noOffline",0);
-
- if ( pdnce->IdleTS == -1 )
- pdnce->IdleTS = db_get_dw(pdnce->hContact,pdnce->szProto,"IdleTS",0);
-
- if (pdnce->ApparentMode == -1)
- pdnce->ApparentMode = db_get_w(pdnce->hContact,pdnce->szProto,"ApparentMode",0);
-
- if (pdnce->NotOnList == -1)
- pdnce->NotOnList = db_get_b(pdnce->hContact,"CList","NotOnList",0);
-
- if (pdnce->IsExpanded == -1)
- pdnce->IsExpanded = db_get_b(pdnce->hContact,"CList","Expanded",0);
-}
-
-void InvalidateDisplayNameCacheEntryByPDNE(MCONTACT hContact,ClcCacheEntry *pdnce,int SettingType)
-{
- if ( hContact == NULL || pdnce == NULL )
- return;
-
- if ( SettingType == -1 || SettingType == DBVT_DELETED )
- {
- mir_free(pdnce->tszName);
- pdnce->tszName = NULL;
- mir_free(pdnce->tszGroup);
- pdnce->tszGroup = NULL;
-
- pdnce->bIsHidden = -1;
- pdnce->protoNotExists = FALSE;
- mir_free(pdnce->szProto);
- pdnce->szProto = NULL;
- pdnce->status = 0;
- pdnce->IdleTS = -1;
- pdnce->ApparentMode = -1;
- pdnce->NotOnList = -1;
- pdnce->isUnknown = FALSE;
- pdnce->noHiddenOffline = -1;
- pdnce->IsExpanded = -1;
- return;
- }
-
- if (SettingType >= DBVT_WCHAR)
- {
- mir_free(pdnce->tszName);
- pdnce->tszName = NULL;
- mir_free(pdnce->tszGroup);
- pdnce->tszGroup = NULL;
- mir_free(pdnce->szProto);
- pdnce->szProto = NULL;
- return;
- }
-
- // in other cases clear all binary cache
- pdnce->bIsHidden = -1;
- pdnce->protoNotExists = FALSE;
- pdnce->status = 0;
- pdnce->IdleTS = -1;
- pdnce->ApparentMode = -1;
- pdnce->NotOnList = -1;
- pdnce->isUnknown = FALSE;
- pdnce->noHiddenOffline = -1;
- pdnce->IsExpanded = -1;
-}
-
-char *GetContactCachedProtocol(MCONTACT hContact)
-{
- ClcCacheEntry *cacheEntry = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (cacheEntry&&cacheEntry->szProto)
- return cacheEntry->szProto;
-
- return NULL;
-}
-
-char *GetProtoForContact(MCONTACT hContact)
-{
- return mir_strdup(GetContactProto(hContact));
-}
-
-int GetStatusForContact(MCONTACT hContact,char *szProto)
-{
- int status = ID_STATUS_OFFLINE;
- if (szProto)
- status = db_get_w((MCONTACT)hContact, szProto, "Status", ID_STATUS_OFFLINE);
-
- return (status);
-}
-
-TCHAR* GetNameForContact(MCONTACT hContact,int flag,boolean *isUnknown)
-{
- TCHAR* result = pcli->pfnGetContactDisplayName(hContact, flag | GCDNF_NOCACHE);
-
- if (isUnknown) {
- if (UnknownConctactTranslatedName == NULL)
- UnknownConctactTranslatedName = TranslateT("(Unknown Contact)");
-
- *isUnknown = lstrcmp(result ,UnknownConctactTranslatedName) == 0;
- }
-
- return result;
-}
-
-ClcCacheEntry *GetContactFullCacheEntry(MCONTACT hContact)
-{
- ClcCacheEntry *cacheEntry = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (cacheEntry != NULL)
- return(cacheEntry);
-
- return NULL;
-}
-
-int GetContactInfosForSort(MCONTACT hContact,char **Proto,TCHAR **Name,int *Status)
-{
- ClcCacheEntry *cacheEntry = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (cacheEntry != NULL)
- {
- if (Proto != NULL) *Proto = cacheEntry->szProto;
- if (Name != NULL) *Name = cacheEntry->tszName;
- if (Status != NULL) *Status = cacheEntry->status;
- }
- return 0;
-}
-
-int GetContactCachedStatus(MCONTACT hContact)
-{
- ClcCacheEntry *cacheEntry = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (cacheEntry&&cacheEntry->status != 0) return cacheEntry->status;
- return 0;
-}
-
-int ContactSettingChanged(WPARAM hContact, LPARAM lParam)
-{
- DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING*)lParam;
-
- // Early exit
- if (hContact == NULL)
- return 0;
-
- __try
- {
- ClcCacheEntry *pdnce = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (pdnce == NULL) {
- OutputDebugStringA("!!! Very bad pdnce not found.");
- return 0;
- }
-
- if (pdnce && pdnce->protoNotExists == FALSE && pdnce->szProto) {
- if ( !strcmp(cws->szModule,pdnce->szProto)) {
- InvalidateDisplayNameCacheEntryByPDNE(hContact,pdnce,cws->value.type);
-
- if (cws->value.type == DBVT_WORD && !strcmp(cws->szSetting, "Status")) {
- if ( !(pdnce->bIsHidden == 1)) {
-
- if ( db_get_b(NULL,"CList","ShowStatusMsg",0)||db_get_b(hContact,"CList","StatusMsgAuto",0))
- db_set_s(hContact, "CList", "StatusMsg", "");
-
- if ( db_get_b(NULL, "CList", "HideOffline", SETTING_HIDEOFFLINE_DEFAULT)) {
- // User's state is changing, and we are hideOffline-ing
- if (cws->value.wVal == ID_STATUS_OFFLINE) {
- ChangeContactIcon(hContact, ExtIconFromStatusMode(hContact,cws->szModule, cws->value.wVal), 0); //by FYR
- return 0;
- }
- ChangeContactIcon(hContact, ExtIconFromStatusMode(hContact,cws->szModule, cws->value.wVal), 0); //by FYR
- }
- else ChangeContactIcon(hContact, ExtIconFromStatusMode(hContact,cws->szModule, cws->value.wVal), 0); //by FYR
- }
- }
- else if (!strcmp(cws->szModule, META_PROTO)) {
- pcli->pfnInitAutoRebuild(pcli->hwndContactTree);
- return 0;
- }
- else return 0;
-
- SortContacts();
- }
- }
-
- if ( !strcmp(cws->szModule,"CList")) {
- if (pdnce->tszName == NULL || !strcmp(cws->szSetting,"MyHandle"))
- InvalidateDisplayNameCacheEntryByPDNE(hContact,pdnce,cws->value.type);
-
- if ((!strcmp(cws->szSetting,"Group")))
- InvalidateDisplayNameCacheEntryByPDNE(hContact,pdnce,cws->value.type);
-
- if ( !strcmp(cws->szSetting,"Hidden")) {
- InvalidateDisplayNameCacheEntryByPDNE(hContact,pdnce,cws->value.type);
- if (cws->value.type == DBVT_DELETED || cws->value.bVal == 0) {
- char *szProto = GetContactProto(hContact);
- ChangeContactIcon(hContact,ExtIconFromStatusMode(hContact, szProto, szProto == NULL ? ID_STATUS_OFFLINE : db_get_w(hContact, szProto, "Status", ID_STATUS_OFFLINE)), 1); //by FYR
- }
- }
-
- if ( !strcmp(cws->szSetting, "noOffline"))
- InvalidateDisplayNameCacheEntryByPDNE(hContact, pdnce, cws->value.type);
- }
-
- if ( !strcmp(cws->szModule, "Protocol")) {
- if ( !strcmp(cws->szSetting,"p")) {
- OutputDebugStringA("CHANGE: proto\r\n");
- InvalidateDisplayNameCacheEntryByPDNE(hContact, pdnce, cws->value.type);
- char *szProto = (cws->value.type == DBVT_DELETED) ? NULL : cws->value.pszVal;
- ChangeContactIcon(hContact, ExtIconFromStatusMode(hContact, szProto, szProto == NULL?ID_STATUS_OFFLINE:db_get_w(hContact,szProto,"Status",ID_STATUS_OFFLINE)),0); //by FYR
- }
- }
- }
- __except (exceptFunction(GetExceptionInformation()))
- {
- }
-
- return 0;
-}
diff --git a/plugins/Clist_mw/src/clisttray.cpp b/plugins/Clist_mw/src/clisttray.cpp
deleted file mode 100644
index aa89abe500..0000000000
--- a/plugins/Clist_mw/src/clisttray.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "m_clui.h"
-
-#define TIM_CALLBACK (WM_USER+1857)
-#define TIM_CREATE (WM_USER+1858)
-
-extern INT_PTR ( *saveTrayIconProcessMessage )(WPARAM wParam, LPARAM lParam);
-void DestroyTrayMenu(HMENU hMenu);
-
-INT_PTR TrayIconProcessMessage(WPARAM wParam, LPARAM lParam)
-{
- MSG *msg = (MSG*)wParam;
- switch(msg->message) {
- case WM_DRAWITEM:
- return CallService(MS_CLIST_MENUDRAWITEM,msg->wParam,msg->lParam);
- break;
-
- case WM_MEASUREITEM:
- return CallService(MS_CLIST_MENUMEASUREITEM,msg->wParam,msg->lParam);
- break;
-
- case TIM_CALLBACK:
- if (msg->lParam == WM_RBUTTONUP) {
- POINT pt;
- HMENU hMenu = (HMENU)CallService(MS_CLIST_MENUBUILDTRAY,0,0);
-
- SetForegroundWindow(msg->hwnd);
- SetFocus(msg->hwnd);
- GetCursorPos(&pt);
- TrackPopupMenu(hMenu, TPM_TOPALIGN | TPM_LEFTALIGN, pt.x, pt.y, 0, msg->hwnd, NULL);
- DestroyTrayMenu(hMenu);
- }
- else break;
-
- *((LRESULT*)lParam) = 0;
- return TRUE;
- }
-
- return saveTrayIconProcessMessage( wParam, lParam );
-}
-
-//////////////////////////////TRAY MENU/////////////////////////
-HANDLE hTrayMenuObject;
-
-HANDLE hTrayMainMenuItemProxy;
-HANDLE hHideShowMainMenuItem;
-HANDLE hTrayStatusMenuItemProxy;
-HANDLE hPreBuildTrayMenuEvent;
-
-//traymenu exec param(ownerdata)
-typedef struct
-{
- char *szServiceName;
- INT_PTR Param1;
-}
- TrayMenuExecParam,*lpTrayMenuExecParam;
-
-/*
-wparam = handle to the menu item returned by MS_CLIST_ADDCONTACTMENUITEM
-return 0 on success.
-*/
-static INT_PTR RemoveTrayMenuItem(WPARAM wParam, LPARAM lParam)
-{
- CallService(MO_REMOVEMENUITEM,wParam,0);
- return 0;
-}
-
-static INT_PTR BuildTrayMenu(WPARAM wParam, LPARAM lParam)
-{
- int tick;
- HMENU hMenu;
- ListParam param = { 0 };
- param.MenuObjectHandle = hTrayMenuObject;
-
- //hMenu = hMainMenu;
- hMenu = CreatePopupMenu();
- //hMenu = wParam;
- tick = GetTickCount();
-
- NotifyEventHooks(hPreBuildTrayMenuEvent,0,0);
-
- CallService(MO_BUILDMENU,(WPARAM)hMenu,(LPARAM)&param);
- //DrawMenuBar((HWND)CallService("CLUI/GetHwnd",0,0));
- tick = GetTickCount()-tick;
- return (INT_PTR)hMenu;
-}
-
-static INT_PTR AddTrayMenuItem(WPARAM wParam, LPARAM lParam)
-{
- TMO_MenuItem tmi;
- CLISTMENUITEM *mi = (CLISTMENUITEM*)lParam;
- if ( !pcli->pfnConvertMenu(mi, &tmi))
- return NULL;
-
- lpTrayMenuExecParam mmep = (lpTrayMenuExecParam)mir_alloc(sizeof(TrayMenuExecParam));
- if (mmep == NULL)
- return 0;
-
- mmep->szServiceName = mir_strdup(mi->pszService);
- mmep->Param1 = mi->popupPosition;
- tmi.ownerdata = mmep;
-
- OptParam op;
- op.Handle = (HANDLE)CallService(MO_ADDNEWMENUITEM,(WPARAM)hTrayMenuObject,(LPARAM)&tmi);
- op.Setting = OPT_MENUITEMSETUNIQNAME;
- op.Value = (INT_PTR)mi->pszService;
- CallService(MO_SETOPTIONSMENUITEM,0,(LPARAM)&op);
- return (INT_PTR)op.Handle;
-}
-
-INT_PTR TrayMenuCheckService(WPARAM wParam, LPARAM lParam)
-{
- return 0;
-}
-
-INT_PTR TrayMenuonAddService(WPARAM wParam, LPARAM lParam)
-{
- MENUITEMINFO *mii = (MENUITEMINFO* )wParam;
- if (mii == NULL) return 0;
-
- if (hHideShowMainMenuItem == (HANDLE)lParam) {
- mii->fMask |= MIIM_STATE;
- mii->fState |= MFS_DEFAULT;
- }
-
- if (hTrayMainMenuItemProxy == (HANDLE)lParam) {
- mii->fMask |= MIIM_SUBMENU;
- mii->hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETMAIN,0,0);
- }
-
- if (hTrayStatusMenuItemProxy == (HANDLE)lParam) {
- mii->fMask |= MIIM_SUBMENU;
- mii->hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS,0,0);
- }
-
- return(TRUE);
-}
-
-
-//called with:
-//wparam - ownerdata
-//lparam - lparam from winproc
-INT_PTR TrayMenuExecService(WPARAM wParam, LPARAM lParam)
-{
- if (wParam != 0)
- {
- lpTrayMenuExecParam mmep = (lpTrayMenuExecParam)wParam;
- if ( !strcmp(mmep->szServiceName,"Help/AboutCommand"))
- {
- //bug in help.c,it used wparam as parent window handle without reason.
- mmep->Param1 = 0;
- }
- CallService(mmep->szServiceName,mmep->Param1,lParam);
- }
- return(1);
-}
-
-INT_PTR FreeOwnerDataTrayMenu (WPARAM wParam, LPARAM lParam)
-{
-
- lpTrayMenuExecParam mmep;
- mmep = (lpTrayMenuExecParam)lParam;
- if (mmep != NULL){
- mir_free(mmep->szServiceName);
- mir_free(mmep);
- }
-
- return 0;
-}
-
-void InitTrayMenus(void)
-{
- //Tray menu
- hTrayMenuObject = MO_CreateMenuObject("TrayMenu", LPGEN("Tray menu"), 0, "CLISTMENUSTRAY/ExecService");
- MO_SetMenuObjectParam(hTrayMenuObject, OPT_USERDEFINEDITEMS, TRUE);
- MO_SetMenuObjectParam(hTrayMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSTRAY/FreeOwnerDataTrayMenu");
- MO_SetMenuObjectParam(hTrayMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSTRAY/TrayMenuonAddService");
-
- CreateServiceFunction("CLISTMENUSTRAY/ExecService",TrayMenuExecService);
- CreateServiceFunction("CLISTMENUSTRAY/FreeOwnerDataTrayMenu",FreeOwnerDataTrayMenu);
- CreateServiceFunction("CLISTMENUSTRAY/TrayMenuonAddService",TrayMenuonAddService);
-
- CreateServiceFunction("CList/AddTrayMenuItem",AddTrayMenuItem);
- CreateServiceFunction(MS_CLIST_REMOVETRAYMENUITEM,RemoveTrayMenuItem);
- CreateServiceFunction(MS_CLIST_MENUBUILDTRAY,BuildTrayMenu);
- hPreBuildTrayMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDTRAYMENU);
-
- //add exit command to menu
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.position = 900000;
- mi.pszService = "CloseAction";
- mi.pszName = LPGEN("E&xit");
- AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100000;
- mi.pszService = MS_CLIST_SHOWHIDE;
- mi.pszName = LPGEN("&Hide/Show");
- hHideShowMainMenuItem = (HANDLE)AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 200000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FINDUSER));
- mi.pszService = "FindAdd/FindAddCommand";
- mi.pszName = LPGEN("&Find/Add contacts...");
- AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 300000;
- mi.pszService = "";
- mi.pszName = LPGEN("&Main menu");
- hTrayMainMenuItemProxy = (HANDLE)AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 300100;
- mi.pszService = "";
- mi.pszName = LPGEN("&Status");
- hTrayStatusMenuItemProxy = (HANDLE)AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 400000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_OPTIONS));
- mi.pszService = "Options/OptionsCommand";
- mi.pszName = LPGEN("&Options...");
- AddTrayMenuItem(0,(LPARAM)&mi);
-
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 500000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_CLIENTMIRANDA));
- mi.pszService = "Help/AboutCommand";
- mi.pszName = LPGEN("&About");
- AddTrayMenuItem(0,(LPARAM)&mi);
-}
diff --git a/plugins/Clist_mw/src/clui.cpp b/plugins/Clist_mw/src/clui.cpp
deleted file mode 100644
index 69ea15f8e1..0000000000
--- a/plugins/Clist_mw/src/clui.cpp
+++ /dev/null
@@ -1,765 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-#define TM_AUTOALPHA 1
-#define TM_STATUSBARUPDATE 200
-#define MENU_MIRANDAMENU 0xFFFF1234
-
-extern int DefaultImageListColorDepth;
-
-HMENU hMenuMain;
-static HANDLE hContactDraggingEvent,hContactDroppedEvent,hContactDragStopEvent;
-UINT hMsgGetProfile = 0;
-
-extern boolean canloadstatusbar;
-boolean OnModulesLoadedCalled = FALSE;
-
-static int transparentFocus = 1;
-static byte oldhideoffline;
-static int lastreqh = 0,requr = 0,disableautoupd = 1;
-HANDLE hFrameContactTree;
-BYTE showOpts;//for statusbar
-
-typedef struct
-{
- int IconsCount;
- int CycleStartTick;
- char *szProto;
- int n;
- int TimerCreated;
-}
- ProtoTicks,*pProtoTicks;
-
-ProtoTicks CycleStartTick[64];//max 64 protocols
-
-int CycleTimeInterval = 2000;
-int CycleIconCount = 8;
-int DefaultStep = 100;
-
-int CluiOptInit(WPARAM wParam, LPARAM lParam);
-int SortList(WPARAM wParam, LPARAM lParam);
-
-void CluiProtocolStatusChanged(int parStatus, const char* szProto);
-
-extern void ReloadExtraIcons();
-extern HWND CreateStatusBarhWnd(HWND parent);
-extern HANDLE CreateStatusBarFrame();
-extern int CLUIFramesUpdateFrame(WPARAM wParam, LPARAM lParam);
-extern void DrawDataForStatusBar(LPDRAWITEMSTRUCT dis);
-extern void InitGroupMenus();
-extern int UseOwnerDrawStatusBar;
-
-HICON GetConnectingIconForProto(char *szProto,int b);
-HICON GetConnectingIconForProto_DLL(char *szProto,int b);
-
-void RegisterProtoIconsForAllProtoIconLib();
-
-static int CluiModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- MENUITEMINFO mii = { sizeof(mii) };
- mii.fMask = MIIM_SUBMENU;
- mii.hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETMAIN,0,0);
- SetMenuItemInfo(hMenuMain,0,TRUE,&mii);
- mii.hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS,0,0);
- SetMenuItemInfo(hMenuMain,1,TRUE,&mii);
-
- canloadstatusbar = TRUE;
- SendMessage(pcli->hwndContactList,WM_SIZE,0,0);
- CluiProtocolStatusChanged(0,0);
- Sleep(0);
- PostMessage(pcli->hwndContactList,M_CREATECLC,0,0);
-
- OnModulesLoadedCalled = TRUE;
- pcli->pfnInvalidateDisplayNameCacheEntry(INVALID_CONTACT_ID);
- InitGroupMenus();
- RegisterProtoIconsForAllProtoIconLib();
- return 0;
-}
-
-pProtoTicks GetProtoTicksByProto(char * szProto)
-{
- int i;
-
- for (i = 0;i<64;i++)
- {
- if (CycleStartTick[i].szProto == NULL) break;
- if (strcmp(CycleStartTick[i].szProto,szProto)) continue;
- return(&CycleStartTick[i]);
- }
- for (i = 0;i<64;i++)
- {
- if (CycleStartTick[i].szProto == NULL)
- {
- CycleStartTick[i].szProto = mir_strdup(szProto);
- CycleStartTick[i].CycleStartTick = 0;
- CycleStartTick[i].n = i;
- return(&CycleStartTick[i]);
- }
- }
- return NULL;
-}
-
-int GetConnectingIconForProtoCount(char *szProto)
-{
- char file[MAX_PATH],fileFull[MAX_PATH],szFullPath[MAX_PATH];
- char szPath[MAX_PATH];
- char *str;
- int ret;
-
- GetModuleFileNameA(GetModuleHandle(NULL), szPath, MAX_PATH);
- str = strrchr(szPath,'\\');
- if (str != NULL) *str = 0;
- mir_snprintf(szFullPath, SIZEOF(szFullPath), "%s\\Icons\\proto_conn_%s.dll", szPath, szProto);
-
- lstrcpynA(file,szFullPath,SIZEOF(file));
- PathToAbsolute(file, fileFull);
- ret = ExtractIconExA(fileFull,-1,NULL,NULL,1);
- if (ret == 0&&!strcmp(szProto,"ICQ")) ret = 8;
- return ret;
-}
-
-static HICON ExtractIconFromPath(const char *path)
-{
- char *comma;
- char file[MAX_PATH],fileFull[MAX_PATH];
- int n;
- HICON hIcon;
- lstrcpynA(file,path,SIZEOF(file));
- comma = strrchr(file,',');
- if (comma == NULL) n = 0;
- else {n = atoi(comma+1); *comma = 0;}
- PathToAbsolute(file, fileFull);
-
- hIcon = NULL;
- ExtractIconExA(fileFull,n,NULL,&hIcon,1);
- return hIcon;
-}
-
-HICON LoadIconFromExternalFile(char *filename,int i,boolean UseLibrary,boolean registerit,char *IconName,char *SectName,char *Description,int internalidx,HICON DefIcon)
-{
- char szPath[MAX_PATH],szMyPath[MAX_PATH], szFullPath[MAX_PATH],*str;
- HICON hIcon = NULL;
-
- memset(szMyPath,0,SIZEOF(szMyPath));
- memset(szFullPath,0,SIZEOF(szFullPath));
-
- if (filename != NULL)
- {
- GetModuleFileNameA(GetModuleHandle(NULL), szPath, MAX_PATH);
- GetModuleFileNameA(g_hInst, szMyPath, MAX_PATH);
- str = strrchr(szPath,'\\');
- if (str != NULL) *str = 0;
- mir_snprintf(szFullPath, SIZEOF(szFullPath), "%s\\Icons\\%s,%d", szPath, filename, i);
- }
-
- if ( !UseLibrary) {
- hIcon = ExtractIconFromPath(szFullPath);
- if (hIcon) return hIcon;
- }
- else {
- if (registerit && IconName != NULL && SectName != NULL) {
- SKINICONDESC sid = { sizeof(sid) };
- sid.pszSection = SectName;
- sid.pszName = IconName;
- sid.pszDescription = Description;
- if (szMyPath[0] != 0)
- sid.pszDefaultFile = szMyPath;
-
- sid.iDefaultIndex = internalidx;
- sid.hDefaultIcon = DefIcon;
-
- Skin_AddIcon(&sid);
- }
- return Skin_GetIcon(IconName);
- }
-
- return (HICON)0;
-}
-
-void RegisterProtoIcons (char *protoname)
-{
- if ( db_get_b(NULL,"CList","UseProtoIconFromIcoLib",1))
- {
- int i;
- char buf[256];
- char buf2[256];
- for (i = 0;i<8;i++)
- {
- mir_snprintf(buf, SIZEOF(buf), "%s #%d", protoname, i);
- mir_snprintf(buf2, SIZEOF(buf2), "Contact list/Connection Icons %s", protoname);
-
- LoadIconFromExternalFile(NULL,i,TRUE,TRUE,buf,buf2,buf,0,GetConnectingIconForProto_DLL(protoname,i));
- }
- }
-}
-
-void RegisterProtoIconsForAllProtoIconLib()
-{
- int protoCount,i;
- PROTOACCOUNT **accs;
-
- ProtoEnumAccounts( &protoCount, &accs );
- for ( i = 0; i < protoCount; i++ )
- if ( IsAccountEnabled( accs[i] ) && CallProtoService( accs[i]->szModuleName, PS_GETCAPS, PFLAGNUM_2, 0 ))
- RegisterProtoIcons( accs[i]->szModuleName );
-}
-
-HICON GetConnectingIconForProto_DLL(char *szProto,int b)
-{
- char szFullPath[MAX_PATH];
- HICON hIcon = NULL;
-
- b = b-1;
- mir_snprintf(szFullPath, SIZEOF(szFullPath), "proto_conn_%s.dll", szProto);
- // hIcon = ExtractIconFromPath(szFullPath);
- // if (hIcon) return hIcon;
-
- hIcon = LoadIconFromExternalFile(szFullPath,b+1,FALSE,FALSE,NULL,NULL,NULL,0,0);
- if (hIcon) return hIcon;
-
-#ifdef _DEBUG
- {
- char buf [256];
- mir_snprintf(buf, SIZEOF(buf), "IconNotFound %s %d\r\n", szProto, b);
- // OutputDebugStringA(buf);
- }
-#endif
-
- if ( !strcmp(szProto,"ICQ"))
- {
-
-#ifdef _DEBUG
- char buf [256];
- mir_snprintf(buf, SIZEOF(buf), "Icon %d %d\r\n", GetTickCount(), b);
- //OutputDebugStringA(buf);
-#endif
- return(LoadIconA(g_hInst,(LPCSTR)(IDI_ICQC1+b)));
- }
-
- return(hIcon);
-}
-
-HICON GetConnectingIconForProto(char *szProto,int b)
-{
- if ( db_get_b(NULL,"CList","UseProtoIconFromIcoLib",1)) {
- HICON hIcon = 0;
- char buf[256];
- mir_snprintf(buf, SIZEOF(buf), "%s #%d", szProto, b);
-
- hIcon = LoadIconFromExternalFile(NULL,b,TRUE,FALSE,buf,"Contact list/Connection icons",buf,0,NULL);
- if (hIcon == NULL) return (GetConnectingIconForProto_DLL(szProto,b));
- return (CopyIcon(hIcon));
- }
-
- return GetConnectingIconForProto_DLL(szProto, b);
-}
-
-//wParam == szProto
-INT_PTR GetConnectingIconService(WPARAM wParam, LPARAM lParam)
-{
- int b;
- ProtoTicks *pt = NULL;
- HICON hIcon = NULL;
-
- char *szProto = (char *)wParam;
- if ( !szProto) return 0;
-
- pt = GetProtoTicksByProto(szProto);
-
- if (pt != NULL) {
- if (pt->CycleStartTick != 0&&pt->IconsCount != 0) {
- b = ((GetTickCount()-pt->CycleStartTick)/(DefaultStep))%pt->IconsCount;
- hIcon = GetConnectingIconForProto(szProto,b);
- }
- }
-
- return (INT_PTR)hIcon;
-}
-
-int CreateTimerForConnectingIcon(WPARAM wParam, LPARAM lParam)
-{
- int status = (int)wParam;
- char *szProto = (char *)lParam;
- if ( !szProto) return 0;
- if ( !status) return 0;
-
- if (( db_get_b(NULL,"CLUI","UseConnectingIcon",1) == 1) && status >= ID_STATUS_CONNECTING && status <= ID_STATUS_CONNECTING + MAX_CONNECT_RETRIES) {
- ProtoTicks *pt = NULL;
- int cnt;
-
- pt = GetProtoTicksByProto(szProto);
- if (pt != NULL) {
- if (pt->CycleStartTick == 0) {
- KillTimer(pcli->hwndContactList,TM_STATUSBARUPDATE+pt->n);
- cnt = GetConnectingIconForProtoCount(szProto);
- if ( db_get_b(NULL,"Clist","UseProtoIconFromIcoLib",1))
- cnt = 8;
-
- if (cnt != 0) {
- DefaultStep = db_get_w(NULL,"CLUI","DefaultStepConnectingIcon",100);
- pt->IconsCount = cnt;
- SetTimer(pcli->hwndContactList,TM_STATUSBARUPDATE+pt->n,(int)(DefaultStep)/1,0);
- pt->TimerCreated = 1;
- pt->CycleStartTick = GetTickCount();
- }
- }
- }
- }
- return 0;
-}
-
-// Restore protocols to the last global status.
-// Used to reconnect on restore after standby.
-
-int OnSettingChanging(WPARAM hContact, LPARAM lParam)
-{
- DBCONTACTWRITESETTING *dbcws = (DBCONTACTWRITESETTING *)lParam;
- if (hContact == 0) {
- if ((dbcws->value.type == DBVT_BYTE) && !strcmp(dbcws->szModule,"CLUI")) {
- if (!strcmp(dbcws->szSetting,"SBarShow")) {
- showOpts = dbcws->value.bVal;
- return 0;
- }
- }
- }
- return 0;
-}
-
-HWND PreCreateCLC(HWND parent)
-{
- pcli->hwndContactTree = CreateWindow( _T(CLISTCONTROL_CLASS),_T(""),
- WS_CHILD|WS_CLIPCHILDREN|CLS_CONTACTLIST
- |( db_get_b(NULL,"CList","UseGroups",SETTING_USEGROUPS_DEFAULT)?CLS_USEGROUPS:0)
- | CLS_HIDEOFFLINE
- //|( db_get_b(NULL,"CList","HideOffline",SETTING_HIDEOFFLINE_DEFAULT)?CLS_HIDEOFFLINE:0)
- |( db_get_b(NULL,"CList","HideEmptyGroups",SETTING_HIDEEMPTYGROUPS_DEFAULT)?CLS_HIDEEMPTYGROUPS:0)
- |( db_get_b(NULL,"CList","ShowStatusMessages",1)?CLS_SHOWSTATUSMESSAGES:0)
- |CLS_MULTICOLUMN
- //|db_get_b(NULL,"CLUI","ExtraIconsAlignToLeft",1)?CLS_EX_MULTICOLUMNALIGNLEFT:0
- ,0,0,0,0,parent,NULL,g_hInst,NULL);
-
- return pcli->hwndContactTree;
-}
-
-int CreateCLC(HWND parent)
-{
- Sleep(0);
- {
- // create contact list frame
- CLISTFrame Frame;
- memset(&Frame,0,sizeof(Frame));
- Frame.cbSize = sizeof(CLISTFrame);
- Frame.hWnd = pcli->hwndContactTree;
- Frame.align = alClient;
- Frame.hIcon = LoadSkinnedIcon(SKINICON_OTHER_FRAME);
- //LoadIcon(hInst,MAKEINTRESOURCE(IDI_MIRANDA));
- Frame.Flags = F_VISIBLE|F_SHOWTB|F_SHOWTBTIP|F_TCHAR;
- Frame.tname = _T("My contacts");
- Frame.TBtname = TranslateT("My contacts");
- hFrameContactTree = (HWND)CallService(MS_CLIST_FRAMES_ADDFRAME,(WPARAM)&Frame,0);
- //free(Frame.name);
- CallService(MS_CLIST_FRAMES_SETFRAMEOPTIONS,MAKEWPARAM(FO_TBTIPNAME,hFrameContactTree),(LPARAM)TranslateT("My Contacts"));
- }
-
- lastreqh = 0;
- CallService(MS_CLIST_SETHIDEOFFLINE,(WPARAM)oldhideoffline,0);
-
- int state = db_get_b(NULL,"CList","State",SETTING_STATE_NORMAL);
- if (state == SETTING_STATE_NORMAL) ShowWindow(pcli->hwndContactList, SW_SHOW);
- else if (state == SETTING_STATE_MINIMIZED) ShowWindow(pcli->hwndContactList, SW_SHOWMINIMIZED);
-
- lastreqh = 0;
- disableautoupd = 0;
-
- HookEvent(ME_DB_CONTACT_SETTINGCHANGED,OnSettingChanging);
- return 0;
-}
-
-int GetStatsuBarProtoRect(HWND hwnd,char *szProto,RECT *rc)
-{
- int nParts,nPanel;
- ProtocolData *PD;
- int startoffset = db_get_dw(NULL,"StatusBar","FirstIconOffset",0);
-
- if ( !UseOwnerDrawStatusBar) startoffset = 0;
-
- nParts = SendMessage(hwnd,SB_GETPARTS,0,0);
- FillMemory(rc,sizeof(RECT),0);
-
- for (nPanel = 0;nPanel<nParts;nPanel++)
- {
- PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,0);
- if ( PD == NULL )
- return 0;
-
- if ( !strcmp(szProto,PD->RealName))
- {
- SendMessage(hwnd,SB_GETRECT,(WPARAM)nPanel,(LPARAM)rc);
- rc->left += startoffset;
- rc->right += startoffset;
- return 0;
- }
- }
- return 0;
-}
-
-extern LRESULT ( CALLBACK *saveContactListWndProc )(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-LRESULT CALLBACK ContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- /*
- This registers a window message with RegisterWindowMessage() and then waits for such a message,
- if it gets it, it tries to open a file mapping object and then maps it to this process space,
- it expects 256 bytes of data (incl. NULL) it will then write back the profile it is using the DB to fill in the answer.
-
- The caller is expected to create this mapping object and tell us the ID we need to open ours.
- */
-
- if (msg == hMsgGetProfile && wParam != 0) { /* got IPC message */
- HANDLE hMap;
- char szName[MAX_PATH];
- int rc = 0;
- mir_snprintf(szName, SIZEOF(szName), "Miranda::%u", wParam); // caller will tell us the ID of the map
- hMap = OpenFileMappingA(FILE_MAP_ALL_ACCESS,FALSE,szName);
- if (hMap != NULL) {
- void *hView = NULL;
- hView = MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, MAX_PATH);
- if (hView) {
- char szFilePath[MAX_PATH], szProfile[MAX_PATH];
- CallService(MS_DB_GETPROFILEPATH,MAX_PATH,(LPARAM)&szFilePath);
- CallService(MS_DB_GETPROFILENAME,MAX_PATH,(LPARAM)&szProfile);
- mir_snprintf((char*)hView, MAX_PATH, "%s\\%s", szFilePath, szProfile);
- UnmapViewOfFile(hView);
- rc = 1;
- }
- CloseHandle(hMap);
- }
- return rc;
- }
-
- switch (msg) {
- case WM_CREATE:
- TranslateMenu(GetMenu(hwnd));
- DrawMenuBar(hwnd);
- showOpts = db_get_b(NULL,"CLUI","SBarShow",1);
-
- //create the status wnd
- //pcli->hwndStatus == CreateStatusWindow(WS_CHILD | ( db_get_b(NULL,"CLUI","ShowSBar",1)?WS_VISIBLE:0), "", hwnd, 0);
- CluiProtocolStatusChanged(0,0);
-
- hMsgGetProfile = RegisterWindowMessageA( "Miranda::GetProfile" ); // don't localise
-
- if ( db_get_b( NULL, "CList", "Transparent", 0 )) {
- SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
- SetLayeredWindowAttributes(hwnd, RGB(0,0,0), (BYTE)db_get_b(NULL,"CList","Alpha",SETTING_ALPHA_DEFAULT), LWA_ALPHA);
- }
- transparentFocus = 1;
- return FALSE;
-
- case M_SETALLEXTRAICONS:
- return TRUE;
-
- case M_CREATECLC:
- CreateCLC(hwnd);
- return TRUE;
-
- case WM_SIZE:
- {
- RECT rc;
- if ( wParam != SIZE_MINIMIZED ) {
- if ( pcli->hwndContactList != NULL )
- CLUIFramesOnClistResize((WPARAM)hwnd,0);
-
- GetWindowRect(hwnd, &rc);
- if ( !CallService(MS_CLIST_DOCKINGISDOCKED,0,0)) {
- //if docked, dont remember pos (except for width)
- db_set_dw(NULL,"CList","Height",(DWORD)(rc.bottom - rc.top));
- db_set_dw(NULL,"CList","x",(DWORD)rc.left);
- db_set_dw(NULL,"CList","y",(DWORD)rc.top);
- }
- db_set_dw(NULL,"CList","Width",(DWORD)(rc.right - rc.left));
- }
- if ( wParam == SIZE_MINIMIZED ) {
- if ( db_get_b(NULL,"CList","Min2Tray",SETTING_MIN2TRAY_DEFAULT )) {
- ShowWindow(hwnd, SW_HIDE);
- db_set_b(NULL,"CList","State",SETTING_STATE_HIDDEN);
- }
- else db_set_b(NULL,"CList","State",SETTING_STATE_MINIMIZED);
- }
- return 0;
- }
-
- case WM_SETFOCUS:
- {
- boolean isfloating;
- if ( hFrameContactTree ) {
- isfloating = CallService(MS_CLIST_FRAMES_GETFRAMEOPTIONS,MAKEWPARAM(FO_FLOATING,hFrameContactTree),0);
- if ( isfloating == FALSE)
- SetFocus(pcli->hwndContactTree);
- }
- return 0;
- }
- case WM_TIMER:
- if ((int)wParam>=TM_STATUSBARUPDATE&&(int)wParam<=TM_STATUSBARUPDATE+64) {
- int status,i;
-
- ProtoTicks *pt = NULL;
- for (i = 0;i<64;i++) {
- pt = &CycleStartTick[i];
- if (pt->szProto != NULL&&pt->TimerCreated == 1) {
- status = CallProtoService(pt->szProto,PS_GETSTATUS,0,0);
- if ( !(status>=ID_STATUS_CONNECTING&&status<=ID_STATUS_CONNECTING+MAX_CONNECT_RETRIES))
- {
- pt->CycleStartTick = 0;
- KillTimer(hwnd,TM_STATUSBARUPDATE+pt->n);
- pt->TimerCreated = 0;
- } } }
-
- pt = &CycleStartTick[wParam-TM_STATUSBARUPDATE];
- {
- RECT rc;
- GetStatsuBarProtoRect(pcli->hwndStatus,pt->szProto,&rc);
- rc.right = rc.left+GetSystemMetrics(SM_CXSMICON)+1;
- rc.top = 0;
-
- if (IsWindowVisible(pcli->hwndStatus)) InvalidateRect(pcli->hwndStatus,&rc,TRUE);
- pcli->pfnTrayIconUpdateBase(pt->szProto);
- }
- //SendMessage(pcli->hwndStatus,WM_PAINT,0,0);
- UpdateWindow(pcli->hwndStatus);
- return TRUE;
- }
- break;
-
- case WM_DRAWITEM:
- {
- LPDRAWITEMSTRUCT dis = (LPDRAWITEMSTRUCT)lParam;
- if (dis->hwndItem == pcli->hwndStatus) {
- DrawDataForStatusBar(dis);
- return 0;
- }
- if (dis->CtlType != ODT_MENU)
- return 0;
- }
- break;
-
- case WM_KEYDOWN:
- CallService(MS_CLIST_MENUPROCESSHOTKEY, wParam, MPCF_MAINMENU | MPCF_CONTACTMENU);
- if (wParam == VK_F5)
- pcli->pfnInitAutoRebuild(pcli->hwndContactTree);
- return TRUE;
-
- case WM_GETMINMAXINFO:
- DefWindowProc(hwnd,msg,wParam,lParam);
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x = 18;
- if (requr == 0){((LPMINMAXINFO)lParam)->ptMinTrackSize.y = CLUIFramesGetMinHeight();}
- return 0;
-
- //MSG FROM CHILD CONTROL
- case WM_NOTIFY:
- if (((LPNMHDR)lParam)->hwndFrom == pcli->hwndContactTree) {
- switch (((LPNMHDR)lParam)->code) {
- case CLN_LISTSIZECHANGE:
- {
- NMCLISTCONTROL *nmc = (NMCLISTCONTROL*)lParam;
- RECT rcWindow,rcTree,rcWorkArea;
- int maxHeight,newHeight;
- int winstyle;
-
- if ( !disableautoupd && db_get_b( NULL, "CLUI", "AutoSize", 0 )) {
- if ( !CallService(MS_CLIST_DOCKINGISDOCKED,0,0) && hFrameContactTree != 0 ) {
- maxHeight = db_get_b(NULL,"CLUI","MaxSizeHeight",75);
- GetWindowRect(hwnd,&rcWindow);
- GetWindowRect(pcli->hwndContactTree,&rcTree);
- winstyle = GetWindowLongPtr(pcli->hwndContactTree,GWL_STYLE);
-
- SystemParametersInfo(SPI_GETWORKAREA,0,&rcWorkArea,FALSE);
- lastreqh = nmc->pt.y;
- newHeight = max(nmc->pt.y,3)+1+((winstyle&WS_BORDER)?2:0)+(rcWindow.bottom-rcWindow.top)-(rcTree.bottom-rcTree.top);
- if (newHeight != rcWindow.bottom - rcWindow.top ) {
- if (newHeight>(rcWorkArea.bottom-rcWorkArea.top)*maxHeight/100)
- newHeight = (rcWorkArea.bottom-rcWorkArea.top)*maxHeight/100;
- if ( db_get_b(NULL,"CLUI","AutoSizeUpward",0)) {
- rcWindow.top = rcWindow.bottom-newHeight;
- if (rcWindow.top<rcWorkArea.top) rcWindow.top = rcWorkArea.top;
- }
- else {
- rcWindow.bottom = rcWindow.top+newHeight;
- if (rcWindow.bottom>rcWorkArea.bottom) rcWindow.bottom = rcWorkArea.bottom;
- }
-
- if (requr == 0) {
- requr = 1;
- SetWindowPos(hwnd,0,rcWindow.left,rcWindow.top,rcWindow.right-rcWindow.left,rcWindow.bottom-rcWindow.top,SWP_NOZORDER|SWP_NOACTIVATE);
- GetWindowRect(hwnd,&rcWindow);
- requr = 0;
- } } } }
- return TRUE;
- }
- }
- }
- else if (((LPNMHDR)lParam)->hwndFrom == pcli->hwndStatus) {
- if (((LPNMHDR)lParam)->code == NM_CLICK ) {
- int nParts = 0, nPanel = 0;
- NMMOUSE *nm = (NMMOUSE*)lParam;
- HMENU hMenu;
- RECT rc;
- POINT pt;
- int totcount;
- ProtocolData *PD;
- int menuid;
- int startoffset = db_get_dw(NULL,"StatusBar","FirstIconOffset",0);
- int extraspace = db_get_dw(NULL,"StatusBar","BkExtraSpace",0);
- boolean UseOwnerDrawStatusBar = db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",0);
-
- hMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS,0,0);
- nParts = SendMessage(pcli->hwndStatus,SB_GETPARTS,0,0);
-
- if (nm->dwItemSpec == 0xFFFFFFFE) {
- nPanel = nParts-1;
- SendMessage(pcli->hwndStatus,SB_GETRECT,nPanel,(LPARAM)&rc);
- if (nm->pt.x < rc.left) return FALSE;
- }
- else {
- if ( !((startoffset) != 0 && UseOwnerDrawStatusBar)) {
- nPanel = nm->dwItemSpec;
- SendMessage(pcli->hwndStatus,SB_GETRECT,nPanel,(LPARAM)&rc);
- }
- else {
- RECT clrc = { 0 };
- GetClientRect(pcli->hwndStatus,&clrc);
- clrc.right -= clrc.left;
- clrc.right -= startoffset;
- int sectwidth = clrc.right/nParts;
-
- for (nPanel = 0;nPanel<nParts;nPanel++) {
- PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,0);
- if (PD == NULL)
- continue;
-
- rc.top = 0;
- rc.bottom = clrc.bottom;
- rc.left = nPanel*sectwidth+startoffset;
- rc.right = rc.left+sectwidth-1;
-
- if (PtInRect(&rc,nm->pt))
- break;
- } } }
-
- totcount = db_get_dw(0,"Protocols","ProtoCount",0);
- PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,0);
- if (PD == NULL){return 0;}
- menuid = nPanel;
-
- if (menuid<0){break;}
- hMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS,0,0);
- {
- unsigned int cpnl = 0;
- int mcnt = GetMenuItemCount(hMenu);
- for (int i = 0; i<mcnt; ++i) {
- HMENU hMenus = GetSubMenu(hMenu, i);
- if (hMenus && cpnl++ == menuid) {
- hMenu = hMenus;
- break;
- }
- }
- }
-
- if (hMenu != NULL) {
- GetCursorPos(&pt);
- TrackPopupMenu(hMenu,TPM_BOTTOMALIGN|TPM_LEFTALIGN,pt.x,pt.y,0,hwnd,NULL);
- }
- }
- return TRUE;
- }
- break;
-
- case WM_DESTROY:
- //saving state
- int state = db_get_b(NULL,"CList","State",SETTING_STATE_NORMAL);
-
- FreeProtocolData();
- if (state == SETTING_STATE_NORMAL)
- ShowWindow(hwnd,SW_HIDE);
-
- CallService(MS_CLIST_FRAMES_REMOVEFRAME,(WPARAM)hFrameContactTree,0);
- DestroyWindow(pcli->hwndContactTree);
- pcli->hwndContactList = NULL;
-
- UnLoadCLUIFramesModule();
- db_set_b(NULL, "CList", "State", (BYTE)state);
- PostQuitMessage(0);
- break;
- }
-
- return saveContactListWndProc( hwnd, msg, wParam, lParam );
-}
-
-int LoadCLUIModule(void)
-{
- DBVARIANT dbv;
- TCHAR titleText[256];
- canloadstatusbar = FALSE;
- hFrameContactTree = 0;
-
- HookEvent(ME_SYSTEM_MODULESLOADED,CluiModulesLoaded);
- HookEvent(ME_OPT_INITIALISE,CluiOptInit);
- hContactDraggingEvent = CreateHookableEvent(ME_CLUI_CONTACTDRAGGING);
- hContactDroppedEvent = CreateHookableEvent(ME_CLUI_CONTACTDROPPED);
- hContactDragStopEvent = CreateHookableEvent(ME_CLUI_CONTACTDRAGSTOP);
-
- CreateServiceFunction("CLUI/GetConnectingIconForProtocol",GetConnectingIconService);
-
- if (db_get_ts(NULL,"CList","TitleText",&dbv))
- lstrcpyn(titleText,_T(MIRANDANAME),SIZEOF(titleText));
- else {
- lstrcpyn(titleText,dbv.ptszVal,SIZEOF(titleText));
- db_free(&dbv);
- }
-
- oldhideoffline = db_get_b(NULL,"CList","HideOffline",SETTING_HIDEOFFLINE_DEFAULT);
-
- int laster = GetLastError();
- PreCreateCLC(pcli->hwndContactList);
-
- // create status bar frame
- CreateStatusBarhWnd(pcli->hwndContactList);
-
- hMenuMain = GetMenu(pcli->hwndContactList);
- if ( !db_get_b(NULL, "CLUI", "ShowMainMenu", SETTING_SHOWMAINMENU_DEFAULT))
- SetMenu(pcli->hwndContactList, NULL);
- SetWindowPos(pcli->hwndContactList, db_get_b(NULL,"CList","OnTop",SETTING_ONTOP_DEFAULT) ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
-
- lastreqh = 0;
- return 0;
-}
-
-void UnloadCLUIModule()
-{
- for (int i = 0; i < SIZEOF(CycleStartTick); i++)
- if ( CycleStartTick[i].szProto != NULL)
- mir_free(CycleStartTick[i].szProto);
-} \ No newline at end of file
diff --git a/plugins/Clist_mw/src/cluiopts.cpp b/plugins/Clist_mw/src/cluiopts.cpp
deleted file mode 100644
index 1287c5cab5..0000000000
--- a/plugins/Clist_mw/src/cluiopts.cpp
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-extern HMENU hMenuMain;
-static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-static INT_PTR CALLBACK DlgProcSBarOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-extern HANDLE hFrameHelperStatusBar;
-extern int UseOwnerDrawStatusBar;
-
-void CluiProtocolStatusChanged(int parStatus, const char* szProto);
-int OnStatusBarBackgroundChange();
-
-int CluiOptInit(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = { sizeof(odp) };
- odp.hInstance = g_hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_CLUI);
- odp.pszTitle = LPGEN("Window");
- odp.pszGroup = LPGEN("Contact list");
- odp.pfnDlgProc = DlgProcCluiOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
-
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_SBAR);
- odp.pszTitle = LPGEN("Status bar");
- odp.pfnDlgProc = DlgProcSBarOpts;
- odp.flags = ODPF_BOLDGROUPS;
- Options_AddPage(wParam, &odp);
- return 0;
-}
-
-static INT_PTR CALLBACK DlgProcCluiOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- CheckDlgButton(hwndDlg, IDC_BRINGTOFRONT, db_get_b(NULL,"CList","BringToFront",SETTING_BRINGTOFRONT_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ONTOP, db_get_b(NULL,"CList","OnTop",SETTING_ONTOP_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_TOOLWND, db_get_b(NULL,"CList","ToolWindow",SETTING_TOOLWINDOW_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_MIN2TRAY, db_get_b(NULL,"CList","Min2Tray",SETTING_MIN2TRAY_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- if (IsDlgButtonChecked(hwndDlg,IDC_TOOLWND)) EnableWindow(GetDlgItem(hwndDlg,IDC_MIN2TRAY),FALSE);
- CheckDlgButton(hwndDlg, IDC_SHOWCAPTION, db_get_b(NULL,"CLUI","ShowCaption",SETTING_SHOWCAPTION_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SHOWMAINMENU, db_get_b(NULL,"CLUI","ShowMainMenu",SETTING_SHOWMAINMENU_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_CLIENTDRAG, db_get_b(NULL,"CLUI","ClientAreaDrag",SETTING_CLIENTDRAG_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- if ( !IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_MIN2TRAY),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TOOLWND),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TITLETEXT),FALSE);
- }
- CheckDlgButton(hwndDlg, IDC_FADEINOUT, db_get_b(NULL,"CLUI","FadeInOut",0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_AUTOSIZE, db_get_b(NULL,"CLUI","AutoSize",0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_DROPSHADOW, db_get_b(NULL,"CList","WindowShadow",0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_ONDESKTOP, db_get_b(NULL,"CList","OnDesktop", 0) ? BST_CHECKED : BST_UNCHECKED);
- SendDlgItemMessage(hwndDlg,IDC_MAXSIZESPIN,UDM_SETRANGE,0,MAKELONG(100,0));
- SendDlgItemMessage(hwndDlg,IDC_MAXSIZESPIN,UDM_SETPOS,0,db_get_b(NULL,"CLUI","MaxSizeHeight",75));
- CheckDlgButton(hwndDlg, IDC_AUTOSIZEUPWARD, db_get_b(NULL,"CLUI","AutoSizeUpward",0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_AUTOHIDE, db_get_b(NULL,"CList","AutoHide",SETTING_AUTOHIDE_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_SETRANGE,0,MAKELONG(900,1));
- SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_SETPOS,0,MAKELONG(db_get_w(NULL,"CList","HideTime",SETTING_HIDETIME_DEFAULT),0));
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIME),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIMESPIN),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC01),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- if ( !IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC21),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC22),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_MAXSIZEHEIGHT),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_MAXSIZESPIN),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_AUTOSIZEUPWARD),FALSE);
- }
-
- { DBVARIANT dbv;
- char *s;
- char szUin[20];
-
- if (db_get_s(NULL,"CList","TitleText",&dbv) == 0&&(dbv.pszVal))
- {
- s = mir_strdup(dbv.pszVal);
- mir_free(dbv.pszVal);
- }
- else
- {
- s = mir_strdup(MIRANDANAME);
- }
-
- if (s)
- {
- SetDlgItemTextA(hwndDlg,IDC_TITLETEXT,s);
- mir_free(s);
- }
-
- SendDlgItemMessage(hwndDlg,IDC_TITLETEXT,CB_ADDSTRING,0,(LPARAM)MIRANDANAME);
- mir_snprintf(szUin, SIZEOF(szUin), "%u", db_get_dw(NULL, "ICQ", "UIN", 0));
- SendDlgItemMessage(hwndDlg,IDC_TITLETEXT,CB_ADDSTRING,0,(LPARAM)szUin);
-
- if ( !db_get_s(NULL,"ICQ","Nick",&dbv)) {
- SendDlgItemMessage(hwndDlg,IDC_TITLETEXT,CB_ADDSTRING,0,(LPARAM)dbv.pszVal);
- mir_free(dbv.pszVal);
- dbv.pszVal = NULL;
- }
- if ( !db_get_s(NULL,"ICQ","FirstName",&dbv)) {
- SendDlgItemMessage(hwndDlg,IDC_TITLETEXT,CB_ADDSTRING,0,(LPARAM)dbv.pszVal);
- mir_free(dbv.pszVal);
- dbv.pszVal = NULL;
- }
- if ( !db_get_s(NULL,"ICQ","e-mail",&dbv)) {
- SendDlgItemMessage(hwndDlg,IDC_TITLETEXT,CB_ADDSTRING,0,(LPARAM)dbv.pszVal);
- mir_free(dbv.pszVal);
- dbv.pszVal = NULL;
- }
- }
- CheckDlgButton(hwndDlg, IDC_TRANSPARENT, db_get_b(NULL, "CList", "Transparent", SETTING_TRANSPARENT_DEFAULT) ? BST_CHECKED : BST_UNCHECKED);
- if ( !IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC11),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC12),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TRANSACTIVE),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TRANSINACTIVE),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_ACTIVEPERC),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_INACTIVEPERC),FALSE);
- }
- SendDlgItemMessage(hwndDlg,IDC_TRANSACTIVE,TBM_SETRANGE,FALSE,MAKELONG(1,255));
- SendDlgItemMessage(hwndDlg,IDC_TRANSINACTIVE,TBM_SETRANGE,FALSE,MAKELONG(1,255));
- SendDlgItemMessage(hwndDlg,IDC_TRANSACTIVE,TBM_SETPOS,TRUE,db_get_b(NULL,"CList","Alpha",SETTING_ALPHA_DEFAULT));
- SendDlgItemMessage(hwndDlg,IDC_TRANSINACTIVE,TBM_SETPOS,TRUE,db_get_b(NULL,"CList","AutoAlpha",SETTING_AUTOALPHA_DEFAULT));
- SendMessage(hwndDlg,WM_HSCROLL,0x12345678,0);
- return TRUE;
-
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_AUTOHIDE) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIME),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_HIDETIMESPIN),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC01),IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- }
- else if (LOWORD(wParam) == IDC_TRANSPARENT) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC11),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC12),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TRANSACTIVE),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TRANSINACTIVE),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- EnableWindow(GetDlgItem(hwndDlg,IDC_ACTIVEPERC),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- EnableWindow(GetDlgItem(hwndDlg,IDC_INACTIVEPERC),IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- }
- else if (LOWORD(wParam) == IDC_AUTOSIZE) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC21),IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_STATIC22),IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_MAXSIZEHEIGHT),IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_MAXSIZESPIN),IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- EnableWindow(GetDlgItem(hwndDlg,IDC_AUTOSIZEUPWARD),IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- }
- else if (LOWORD(wParam) == IDC_TOOLWND) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_MIN2TRAY),!IsDlgButtonChecked(hwndDlg,IDC_TOOLWND));
- }
- else if (LOWORD(wParam) == IDC_SHOWCAPTION) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_TOOLWND),IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION));
- EnableWindow(GetDlgItem(hwndDlg,IDC_MIN2TRAY),!IsDlgButtonChecked(hwndDlg,IDC_TOOLWND) && IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION));
- EnableWindow(GetDlgItem(hwndDlg,IDC_TITLETEXT),IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION));
- }
-
- if ((LOWORD(wParam) == IDC_HIDETIME || LOWORD(wParam) == IDC_TITLETEXT || LOWORD(wParam) == IDC_MAXSIZEHEIGHT) &&
- (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()))
- return 0;
-
- // Enable apply button
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case WM_HSCROLL:
- { char str[10];
- mir_snprintf(str, SIZEOF(str), "%d%%", 100 * SendDlgItemMessage(hwndDlg, IDC_TRANSINACTIVE, TBM_GETPOS, 0, 0) / 255);
- SetDlgItemTextA(hwndDlg,IDC_INACTIVEPERC,str);
- mir_snprintf(str, SIZEOF(str), "%d%%", 100 * SendDlgItemMessage(hwndDlg, IDC_TRANSACTIVE, TBM_GETPOS, 0, 0) / 255);
- SetDlgItemTextA(hwndDlg,IDC_ACTIVEPERC,str);
- }
- if (wParam != 0x12345678) SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_APPLY:
- db_set_b(NULL,"CList","OnTop",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ONTOP));
- SetWindowPos(pcli->hwndContactList, IsDlgButtonChecked(hwndDlg,IDC_ONTOP)?HWND_TOPMOST:HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
-
- db_set_b(NULL,"CList","ToolWindow",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_TOOLWND));
- db_set_b(NULL,"CList","BringToFront",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_BRINGTOFRONT));
- if (IsDlgButtonChecked(hwndDlg,IDC_TOOLWND)) {
- // Window must be hidden to dynamically remove the taskbar button.
- // See http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_programming/taskbar.asp
- WINDOWPLACEMENT p;
- p.length = sizeof(p);
- GetWindowPlacement(pcli->hwndContactList,&p);
- ShowWindow(pcli->hwndContactList,SW_HIDE);
- SetWindowLongPtr(pcli->hwndContactList,GWL_EXSTYLE,GetWindowLongPtr(pcli->hwndContactList,GWL_EXSTYLE)|WS_EX_TOOLWINDOW|WS_EX_WINDOWEDGE);
- SetWindowPlacement(pcli->hwndContactList,&p);
- }
- else
- SetWindowLongPtr(pcli->hwndContactList,GWL_EXSTYLE,GetWindowLongPtr(pcli->hwndContactList,GWL_EXSTYLE)&~WS_EX_TOOLWINDOW);
-
- if (IsDlgButtonChecked(hwndDlg,IDC_ONDESKTOP)) {
- HWND hProgMan = FindWindowA("Progman",NULL);
- if (IsWindow(hProgMan)) SetParent(pcli->hwndContactList,hProgMan);
- } else {
- SetParent(pcli->hwndContactList,NULL);
- }
-
- db_set_b(NULL,"CLUI","ShowCaption",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION));
- db_set_b(NULL,"CLUI","ShowMainMenu",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SHOWMAINMENU));
- db_set_b(NULL,"CLUI","ClientAreaDrag",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_CLIENTDRAG));
-
- if (IsDlgButtonChecked(hwndDlg,IDC_SHOWCAPTION))
- SetWindowLongPtr(pcli->hwndContactList,GWL_STYLE,GetWindowLongPtr(pcli->hwndContactList,GWL_STYLE)|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX);
- else
- SetWindowLongPtr(pcli->hwndContactList,GWL_STYLE,GetWindowLongPtr(pcli->hwndContactList,GWL_STYLE)&~(WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX));
-
- if ( !IsDlgButtonChecked(hwndDlg,IDC_SHOWMAINMENU)) SetMenu(pcli->hwndContactList,NULL);
- else SetMenu(pcli->hwndContactList,hMenuMain);
-
- SetWindowPos(pcli->hwndContactList,0,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
- RedrawWindow(pcli->hwndContactList,NULL,NULL,RDW_FRAME|RDW_INVALIDATE);
-
- db_set_b(NULL,"CList","Min2Tray",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_MIN2TRAY));
- if (IsIconic(pcli->hwndContactList) && !IsDlgButtonChecked(hwndDlg,IDC_TOOLWND))
- ShowWindow(pcli->hwndContactList,IsDlgButtonChecked(hwndDlg,IDC_MIN2TRAY)?SW_HIDE:SW_SHOW);
-
- { TCHAR title[256];
- GetDlgItemText(hwndDlg,IDC_TITLETEXT,title,SIZEOF(title));
- db_set_ts(NULL,"CList","TitleText",title);
- SetWindowText(pcli->hwndContactList,title);
- }
- db_set_b(NULL,"CLUI","FadeInOut",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_FADEINOUT));
- db_set_b(NULL,"CLUI","AutoSize",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZE));
- db_set_b(NULL,"CLUI","MaxSizeHeight",(BYTE)GetDlgItemInt(hwndDlg,IDC_MAXSIZEHEIGHT,NULL,FALSE));
- db_set_b(NULL,"CLUI","AutoSizeUpward",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_AUTOSIZEUPWARD));
- db_set_b(NULL,"CList","AutoHide",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_AUTOHIDE));
- db_set_w(NULL,"CList","HideTime",(WORD)SendDlgItemMessage(hwndDlg,IDC_HIDETIMESPIN,UDM_GETPOS,0,0));
-
- db_set_b(NULL,"CList","Transparent",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT));
- db_set_b(NULL,"CList","Alpha",(BYTE)SendDlgItemMessage(hwndDlg,IDC_TRANSACTIVE,TBM_GETPOS,0,0));
- db_set_b(NULL,"CList","AutoAlpha",(BYTE)SendDlgItemMessage(hwndDlg,IDC_TRANSINACTIVE,TBM_GETPOS,0,0));
- db_set_b(NULL,"CList","WindowShadow",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DROPSHADOW));
- db_set_b(NULL,"CList","OnDesktop",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ONDESKTOP));
- if (IsDlgButtonChecked(hwndDlg,IDC_TRANSPARENT)) {
- SetWindowLongPtr(pcli->hwndContactList, GWL_EXSTYLE, GetWindowLongPtr(pcli->hwndContactList, GWL_EXSTYLE) | WS_EX_LAYERED);
- SetLayeredWindowAttributes(pcli->hwndContactList, RGB(0,0,0), (BYTE)db_get_b(NULL,"CList","AutoAlpha",SETTING_AUTOALPHA_DEFAULT), LWA_ALPHA);
- }
- else SetWindowLongPtr(pcli->hwndContactList, GWL_EXSTYLE, GetWindowLongPtr(pcli->hwndContactList, GWL_EXSTYLE) & ~WS_EX_LAYERED);
-
- SendMessage(pcli->hwndContactTree,WM_SIZE,0,0); //forces it to send a cln_listsizechanged
- return TRUE;
- }
- break;
- }
- return FALSE;
-}
-
-static INT_PTR CALLBACK DlgProcSBarOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- CheckDlgButton(hwndDlg, IDC_SHOWSBAR, db_get_b(NULL,"CLUI","ShowSBar",1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_USECONNECTINGICON, db_get_b(NULL,"CLUI","UseConnectingIcon",1) ? BST_CHECKED : BST_UNCHECKED);
- { BYTE showOpts = db_get_b(NULL,"CLUI","SBarShow",1);
- CheckDlgButton(hwndDlg, IDC_SHOWICON, showOpts&1 ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SHOWPROTO, showOpts&2 ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SHOWSTATUS, showOpts&4 ? BST_CHECKED : BST_UNCHECKED);
- }
- CheckDlgButton(hwndDlg, IDC_RIGHTSTATUS, db_get_b(NULL,"CLUI","SBarRightClk",0) ? BST_UNCHECKED : BST_CHECKED);
- CheckDlgButton(hwndDlg, IDC_RIGHTMIRANDA, !IsDlgButtonChecked(hwndDlg,IDC_RIGHTSTATUS) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_EQUALSECTIONS, db_get_b(NULL,"CLUI","EqualSections",0) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SBPANELBEVEL, db_get_b(NULL,"CLUI","SBarBevel",1) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hwndDlg, IDC_SHOWSIZEGRIP, db_get_b(NULL,"CLUI","SBarUseSizeGrip",1) ? BST_CHECKED : BST_UNCHECKED);
-
- CheckDlgButton(hwndDlg, IDC_USEOWNERDRAW, db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",1) ? BST_CHECKED : BST_UNCHECKED);
-
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETCOLOUR,0,db_get_dw(NULL,"CLUI","SBarBKColor",CLR_DEFAULT));
-
- if ( !IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR)) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWICON),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWPROTO),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWSTATUS),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_RIGHTSTATUS),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_RIGHTMIRANDA),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_EQUALSECTIONS),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_SBPANELBEVEL),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWSIZEGRIP),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_USECONNECTINGICON),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_USEOWNERDRAW),FALSE);
-
- }
- return TRUE;
- case WM_COMMAND:
- if (LOWORD(wParam) == IDC_SHOWSBAR) {
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWICON),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWPROTO),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWSTATUS),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_RIGHTSTATUS),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_RIGHTMIRANDA),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_EQUALSECTIONS),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SBPANELBEVEL),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_SHOWSIZEGRIP),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_USECONNECTINGICON),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- EnableWindow(GetDlgItem(hwndDlg,IDC_USEOWNERDRAW),IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
-
- }
- if (LOWORD(wParam) == IDC_DEFBKCOLOR)
- {
- SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_SETCOLOUR,0,CLR_DEFAULT);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
-
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->code) {
- case PSN_APPLY:
- {
- COLORREF col = SendDlgItemMessage(hwndDlg,IDC_BKGCOLOUR,CPM_GETCOLOUR,0,0);
- db_set_dw(NULL,"CLUI","SBarBKColor",col);
-
- db_set_b(NULL,"CLUI","ShowSBar",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR));
- db_set_b(NULL,"CLUI","SBarShow",(BYTE)((IsDlgButtonChecked(hwndDlg,IDC_SHOWICON)?1:0)|(IsDlgButtonChecked(hwndDlg,IDC_SHOWPROTO)?2:0)|(IsDlgButtonChecked(hwndDlg,IDC_SHOWSTATUS)?4:0)));
- db_set_b(NULL,"CLUI","SBarRightClk",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_RIGHTMIRANDA));
- db_set_b(NULL,"CLUI","EqualSections",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_EQUALSECTIONS));
- db_set_b(NULL,"CLUI","SBarBevel",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SBPANELBEVEL));
- db_set_b(NULL,"CLUI","SBarUseSizeGrip",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_SHOWSIZEGRIP));
-
- db_set_b(NULL,"CLUI","UseConnectingIcon",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_USECONNECTINGICON));
- db_set_b(NULL,"CLUI","UseOwnerDrawStatusBar",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_USEOWNERDRAW));
- UseOwnerDrawStatusBar = db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",0);
-
- int frameopt = CallService(MS_CLIST_FRAMES_GETFRAMEOPTIONS,MAKEWPARAM(FO_FLAGS,hFrameHelperStatusBar),0);
- frameopt &= ~F_VISIBLE;
-
- if (IsDlgButtonChecked(hwndDlg,IDC_SHOWSBAR)) {
- ShowWindow(pcli->hwndStatus,SW_SHOW);
- frameopt |= F_VISIBLE;
- }
- else ShowWindow(pcli->hwndStatus,SW_HIDE);
-
- CallService(MS_CLIST_FRAMES_SETFRAMEOPTIONS,MAKEWPARAM(FO_FLAGS,hFrameHelperStatusBar),frameopt);
-
- SendMessage(pcli->hwndContactList,WM_SIZE,0,0);
-
- OnStatusBarBackgroundChange();
- CluiProtocolStatusChanged(0,0);
- return TRUE;
- }
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/Clist_mw/src/cluiservices.cpp b/plugins/Clist_mw/src/cluiservices.cpp
deleted file mode 100644
index 4fc0066b1e..0000000000
--- a/plugins/Clist_mw/src/cluiservices.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-extern int CreateTimerForConnectingIcon(WPARAM,LPARAM);
-
-void FreeProtocolData( void )
-{
- //free protocol data
- int nPanel;
- int nParts = SendMessage(pcli->hwndStatus,SB_GETPARTS,0,0);
- for (nPanel = 0;nPanel<nParts;nPanel++)
- {
- ProtocolData *PD;
- PD = (ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,0);
- if (PD != NULL && !IsBadCodePtr(( FARPROC )PD)) {
- SendMessage(pcli->hwndStatus,SB_SETTEXT,(WPARAM)nPanel|SBT_OWNERDRAW,0);
- if (PD->RealName) mir_free(PD->RealName);
- if (PD) mir_free(PD);
-} } }
-
-void CluiProtocolStatusChanged(int parStatus, const char* szProto)
-{
- int protoCount,i;
- PROTOACCOUNT **accs;
- int *partWidths,partCount;
- int borders[3];
- int flags;
- int FirstIconOffset;
-
- if ( pcli->hwndStatus == 0 )
- return;
-
- FirstIconOffset = db_get_dw(NULL,"CLUI","FirstIconOffset",0);
-
- ProtoEnumAccounts( &protoCount, &accs );
- if ( protoCount == 0 )
- return;
-
- OutputDebugStringA("CluiProtocolStatusChanged");
- OutputDebugStringA("\r\n");
- FreeProtocolData();
-
- SendMessage(pcli->hwndStatus,SB_GETBORDERS,0,(LPARAM)&borders);
-
- SendMessage(pcli->hwndStatus,SB_SETBKCOLOR,0,db_get_dw(0,"CLUI","SBarBKColor",CLR_DEFAULT));
- partWidths = (int*)alloca((protoCount+1)*sizeof(int));
- //partWidths[0] = FirstIconOffset;
- if ( db_get_b(NULL,"CLUI","UseOwnerDrawStatusBar",0)||db_get_b(NULL,"CLUI","EqualSections",1))
- {
- RECT rc;
- int toshow, part;
-
- SendMessage(pcli->hwndStatus,WM_SIZE,0,0);
- GetClientRect(pcli->hwndStatus,&rc);
- rc.right -= borders[0]*2;
- toshow = 0;
- for (i = 0;i<protoCount;i++)
- {
- if ( !pcli->pfnGetProtocolVisibility( accs[i]->szModuleName ))
- continue;
-
- toshow++;
- }
-
- if (toshow>0)
- {
- for (part = 0,i = 0;i<protoCount;i++)
- {
- if ( !pcli->pfnGetProtocolVisibility( accs[i]->szModuleName ))
- continue;
-
- partWidths[part] = ((part+1)*(rc.right/toshow))-(borders[2]>>1);
- //partWidths[part] = 40*part+40;
- part++;
- }
- //partCount = part;
- }
- partCount = toshow;
-
- }
- else {
- HDC hdc;
- SIZE textSize;
- BYTE showOpts = db_get_b(NULL,"CLUI","SBarShow",5);
- DWORD extraspace = db_get_dw(NULL,"StatusBar","BkExtraSpace",0);
- DWORD startoffset = db_get_dw(NULL,"StatusBar","FirstIconOffset",0);
- int x;
-
- hdc = GetDC(pcli->hwndStatus);
-
- for (partCount = 0,i = 0;i<protoCount;i++) { //count down since built in ones tend to go at the end
- int ind = pcli->pfnGetAccountIndexByPos(i);
- if (ind < 0)
- continue;
-
- if ( !pcli->pfnGetProtocolVisibility(accs[ind]->szModuleName))
- continue;
-
- x = 2;
- if (showOpts & 1) x += GetSystemMetrics(SM_CXSMICON);
- if (showOpts & 2) {
- TCHAR szName[64];
- mir_sntprintf(szName, SIZEOF(szName), _T("%s%s"), accs[ind]->tszAccountName, showOpts&4 ? _T(" ") : _T(""));
- GetTextExtentPoint32(hdc, szName, (int)_tcslen(szName), &textSize);
- x += textSize.cx;
- }
- if (showOpts & 4) {
- int status = CallProtoService(accs[ind]->szModuleName, PS_GETSTATUS, 0, 0);
- TCHAR *szStatus = pcli->pfnGetStatusModeDescription(status, 0);
- if ( !szStatus)
- szStatus = _T("");
- GetTextExtentPoint32(hdc, szStatus, (int)_tcslen(szStatus), &textSize);
- x += textSize.cx;
- }
- if (showOpts&6) x += 2;
- partWidths[partCount] = (partCount?partWidths[partCount-1]:startoffset)+x+extraspace;
- partCount++;
- }
- ReleaseDC(pcli->hwndStatus,hdc);
- }
- if (partCount == 0) {
- SendMessage(pcli->hwndStatus,SB_SIMPLE,TRUE,0);
- return;
- }
- SendMessage(pcli->hwndStatus,SB_SIMPLE,FALSE,0);
-
- partWidths[partCount-1] = -1;
-
- SendMessage(pcli->hwndStatus,SB_SETMINHEIGHT,GetSystemMetrics(SM_CYSMICON)+2,0);
- SendMessage(pcli->hwndStatus,SB_SETPARTS,partCount,(LPARAM)partWidths);
-
- flags = SBT_OWNERDRAW;
- if ( !db_get_b(NULL, "CLUI", "SBarBevel", 1))
- flags |= SBT_NOBORDERS;
-
- for (partCount = 0, i = 0; i<protoCount; i++) { //count down since built in ones tend to go at the end
- int ind = pcli->pfnGetAccountIndexByPos(i);
- if (ind < 0) continue;
-
- if ( !pcli->pfnGetProtocolVisibility(accs[ind]->szModuleName))
- continue;
-
- ProtocolData *PD = (ProtocolData*)mir_alloc(sizeof(ProtocolData));
- PD->RealName = mir_strdup(accs[ind]->szModuleName);
- PD->protopos = accs[ind]->iOrder;
-
- SendMessage(pcli->hwndStatus, SB_SETTEXT, partCount++ | flags, (LPARAM)PD);
- }
-
- CreateTimerForConnectingIcon(parStatus, (LPARAM)szProto);
- InvalidateRect(pcli->hwndStatus, NULL, FALSE);
- return;
-}
diff --git a/plugins/Clist_mw/src/commonheaders.cpp b/plugins/Clist_mw/src/commonheaders.cpp
deleted file mode 100644
index c76992e096..0000000000
--- a/plugins/Clist_mw/src/commonheaders.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "commonheaders.h"
-
-#define SAFE_PTR(a) a?(IsBadReadPtr(a,1)?a = NULL:a):a
-
-int __cdecl MyStrCmp (const char *a, const char *b)
-{
- SAFE_PTR(a);
- SAFE_PTR(b);
- if ( !(a && b)) return a != b;
- return (strcmp(a,b));
-}
-
-DWORD exceptFunction(LPEXCEPTION_POINTERS EP)
-{
- //printf("1 "); // printed first
- char buf[4096];
-
-
- mir_snprintf(buf, SIZEOF(buf), "\r\nExceptCode: %x\r\nExceptFlags: %x\r\nExceptAddress: %p\r\n",
- EP->ExceptionRecord->ExceptionCode,
- EP->ExceptionRecord->ExceptionFlags,
- EP->ExceptionRecord->ExceptionAddress
- );
- OutputDebugStringA(buf);
- MessageBoxA(0,buf,"clist_mw Exception",0);
-
-
- return EXCEPTION_EXECUTE_HANDLER;
-}
diff --git a/plugins/Clist_mw/src/commonheaders.h b/plugins/Clist_mw/src/commonheaders.h
deleted file mode 100644
index ed78d84707..0000000000
--- a/plugins/Clist_mw/src/commonheaders.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-04 Miranda ICQ/IM project,
-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.
-*/
-
-#define _CRT_SECURE_NO_WARNINGS
-#ifndef _COMMON_HEADERS_H_
-#define _COMMON_HEADERS_H_ 1
-
-#define _WIN32_WINNT 0x0501
-#define _WIN32_IE 0x0501
-
-#include <windows.h>
-#include <vssym32.h>
-#include <Uxtheme.h>
-#include <shlwapi.h>
-
-#include <malloc.h>
-#include <stddef.h>
-#include <time.h>
-
-#include <newpluginapi.h>
-#include <m_database.h>
-#include <m_langpack.h>
-#include <m_options.h>
-#include <m_protosvc.h>
-#include <m_clistint.h>
-#include <m_skin.h>
-#include <m_extraicons.h>
-#include <m_clui.h>
-#include <win2k.h>
-#include <m_icolib.h>
-#include <m_cluiframes.h>
-#include <m_fontservice.h>
-#include <m_xstatus.h>
-
-#include <m_metacontacts.h>
-
-#include "resource.h"
-#include "Version.h"
-#include "clc.h"
-#include "clist.h"
-#include "CLUIFrames/cluiframes.h"
-#include "BkgrCfg.h"
-
-// shared vars
-extern HINSTANCE g_hInst;
-
-/* most free()'s are invalid when the code is executed from a dll, so this changes
- all the bad free()'s to good ones, however it's still incorrect code. The reasons for not
- changing them include:
-
- * db_free has a CallService() lookup
- * free() is executed in some large loops to do with clist creation of group data
- * easy search and replace
-
-*/
-
-#ifndef CS_DROPSHADOW
-#define CS_DROPSHADOW 0x00020000
-#endif
-
-extern BOOL __cdecl strstri(const char *a, const char *b);
-extern BOOL __cdecl boolstrcmpi(const char *a, const char *b);
-extern int __cdecl MyStrCmp (const char *a, const char *b);
-extern int __cdecl MyStrLen (const char *a);
-extern int __cdecl MyStrCmpi(const char *a, const char *b);
-extern int __cdecl MyStrCmpiT(const TCHAR *a, const TCHAR *b);
-
-extern DWORD exceptFunction(LPEXCEPTION_POINTERS EP);
-
-extern int (*saveIconFromStatusMode)(const char *szProto, int nStatus, MCONTACT hContact);
-
-//from bkg options
-
-// Register of plugin's user
-//
-// wParam = (WPARAM)szSetting - string that describes a user
-// format: Category/ModuleName,
-// eg: "Contact list background/CLUI",
-// "Status bar background/StatusBar"
-// lParam = (LPARAM)dwFlags
-//
-#define MS_BACKGROUNDCONFIG_REGISTER "BkgrCfg/Register"
-
-//
-// Notification about changed background
-// wParam = ModuleName
-// lParam = 0
-#define ME_BACKGROUNDCONFIG_CHANGED "BkgrCfg/Changed"
-
-
-
-#define EXTRACOLUMNCOUNT 9
-
-
-#endif
diff --git a/plugins/Clist_mw/src/contact.cpp b/plugins/Clist_mw/src/contact.cpp
deleted file mode 100644
index 4f2fe4b3d7..0000000000
--- a/plugins/Clist_mw/src/contact.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "m_clui.h"
-#include "clist.h"
-
-extern HANDLE hContactIconChangedEvent;
-extern int GetContactCachedStatus(MCONTACT hContact);
-extern char *GetContactCachedProtocol(MCONTACT hContact);
-
-int sortByStatus;
-static int sortByProto;
-static int sortNoOfflineBottom;
-struct {
- int status,order;
-} statusModeOrder[] = {
- {ID_STATUS_OFFLINE,500},
- {ID_STATUS_ONLINE,0},
- {ID_STATUS_AWAY,200},
- {ID_STATUS_DND,400},
- {ID_STATUS_NA,450},
- {ID_STATUS_OCCUPIED,100},
- {ID_STATUS_FREECHAT,50},
- {ID_STATUS_INVISIBLE,20},
- {ID_STATUS_ONTHEPHONE,150},
- {ID_STATUS_OUTTOLUNCH,425}};
-
-static int GetContactStatus(MCONTACT hContact)
-{
- /*
-
- char *szProto;
-
- szProto = GetContactProto(hContact,0);
- if (szProto == NULL) return ID_STATUS_OFFLINE;
- return db_get_w(hContact,szProto,"Status",ID_STATUS_OFFLINE);
- */
- return (GetContactCachedStatus(hContact));
-}
-
-void ChangeContactIcon(MCONTACT hContact,int iIcon,int add)
-{
- //clui MS_CLUI_CONTACTADDED MS_CLUI_CONTACTSETICON this methods is null
- //CallService(add?MS_CLUI_CONTACTADDED:MS_CLUI_CONTACTSETICON,hContact,iIcon);
- NotifyEventHooks(hContactIconChangedEvent,hContact,iIcon);
-}
-
-static int GetStatusModeOrdering(int statusMode)
-{
- int i;
- for (i = 0; i< SIZEOF(statusModeOrder); i++)
- if (statusModeOrder[i].status == statusMode) return statusModeOrder[i].order;
- return 1000;
-}
-
-void LoadContactTree(void)
-{
- int tick = GetTickCount();
- CallService(MS_CLUI_LISTBEGINREBUILD,0,0);
- for (int i=1;; i++) {
- if ((char*)CallService(MS_CLIST_GROUPGETNAME2, i, 0) == NULL)
- break;
- CallService(MS_CLUI_GROUPADDED, i, 0);
- }
-
- int hideOffline = db_get_b(NULL,"CList","HideOffline",SETTING_HIDEOFFLINE_DEFAULT);
-
- for (MCONTACT hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
- ClcCacheEntry *cacheEntry = GetContactFullCacheEntry(hContact);
- if (cacheEntry == NULL) {
- MessageBoxA(0,"Fail To Get CacheEntry for hContact","!!!!!",0);
- break;
- }
- int status = cacheEntry->status;
- if ((!hideOffline || status != ID_STATUS_OFFLINE) && !cacheEntry->bIsHidden)
- ChangeContactIcon(hContact,ExtIconFromStatusMode(hContact,(char*)cacheEntry->szProto,status),1);
- }
- sortByStatus = db_get_b(NULL,"CList","SortByStatus",SETTING_SORTBYSTATUS_DEFAULT);
- sortByProto = db_get_b(NULL,"CList","SortByProto",SETTING_SORTBYPROTO_DEFAULT);
- sortNoOfflineBottom = db_get_b(NULL,"CList","NoOfflineBottom",SETTING_NOOFFLINEBOTTOM_DEFAULT);
-
- CallService(MS_CLUI_LISTENDREBUILD,0,0);
-
- tick = GetTickCount()-tick;
-
- char buf[255];
- mir_snprintf(buf, SIZEOF(buf), "LoadContactTree %d \r\n", tick);
- OutputDebugStringA(buf);
-}
-
-#define SAFESTRING(a) a?a:""
-
-int CompareContacts( const struct ClcContact *contact1, const struct ClcContact *contact2 )
-{
- MCONTACT a = contact1->hContact, b = contact2->hContact;
- TCHAR *namea,*nameb;
- int statusa,statusb;
- char *szProto1,*szProto2;
- int rc;
-
- GetContactInfosForSort(a,&szProto1,&namea,&statusa);
- GetContactInfosForSort(b,&szProto2,&nameb,&statusb);
-
- if (sortByProto) {
-
- /* deal with statuses, online contacts have to go above offline */
- if (sortNoOfflineBottom == 0)
- if ((statusa == ID_STATUS_OFFLINE) != (statusb == ID_STATUS_OFFLINE)) {
- return 2*(statusa == ID_STATUS_OFFLINE)-1;
- }
- /* both are online, now check protocols */
- rc = strcmp(SAFESTRING(szProto1),SAFESTRING(szProto2)); /* strcmp() doesn't like NULL so feed in "" as needed */
- if (rc != 0 && (szProto1 != NULL && szProto2 != NULL)) return rc;
- /* protocols are the same, order by display name */
- }
-
- if (sortByStatus) {
- int ordera,orderb;
- ordera = GetStatusModeOrdering(statusa);
- orderb = GetStatusModeOrdering(statusb);
- if (ordera != orderb) return ordera-orderb;
- }
- else {
- //one is offline: offline goes below online
- if (sortNoOfflineBottom == 0)
- {
- if ((statusa == ID_STATUS_OFFLINE) != (statusb == ID_STATUS_OFFLINE)) {
- return 2*(statusa == ID_STATUS_OFFLINE)-1;
- }
- }
- }
-
- //otherwise just compare names
- return _tcsicmp(namea,nameb);
-}
-
-#undef SAFESTRING
-
-void SortContacts(void)
-{
- //avoid doing lots of resorts in quick succession
- sortByStatus = db_get_b(NULL,"CList","SortByStatus",SETTING_SORTBYSTATUS_DEFAULT);
- sortByProto = db_get_b(NULL,"CList","SortByProto",SETTING_SORTBYPROTO_DEFAULT);
-}
-
-INT_PTR ContactChangeGroup(WPARAM hContact, LPARAM lParam)
-{
- CallService(MS_CLUI_CONTACTDELETED, hContact, 0);
- if ((HANDLE)lParam == NULL)
- db_unset(hContact, "CList", "Group");
- else
- db_set_s(hContact, "CList", "Group", (char*)CallService(MS_CLIST_GROUPGETNAME2, lParam, (LPARAM)(int*)NULL));
-
- CallService(MS_CLUI_CONTACTADDED, hContact, ExtIconFromStatusMode(hContact, GetContactProto(hContact), GetContactStatus(hContact)));
- return 0;
-}
diff --git a/plugins/Clist_mw/src/groupmenu.cpp b/plugins/Clist_mw/src/groupmenu.cpp
deleted file mode 100644
index 70932d494c..0000000000
--- a/plugins/Clist_mw/src/groupmenu.cpp
+++ /dev/null
@@ -1,566 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include "m_clui.h"
-#include "clist.h"
-#include "clc.h"
-
-//////////////////////////////Group MENU/////////////////////////
-
-extern HANDLE hHideShowMainMenuItem;
-HANDLE hGroupMenuObject;
-
-HANDLE hGroupMainMenuItemProxy;
-HANDLE hGroupStatusMenuItemProxy;
-HANDLE hPreBuildGroupMenuEvent;
-
-HGENMENU hHideOfflineUsersMenuItem, hHideOfflineUsersOutHereMenuItem, hHideEmptyGroupsMenuItem;
-HGENMENU hDisableGroupsMenuItem, hNewGroupMenuItem, hNewSubGroupMenuItem;
-
-int NewGroupIconidx;
-
-extern HIMAGELIST hCListImages;
-HICON LoadIconFromExternalFile(char *filename, int i, boolean UseLibrary, boolean registerit, char *IconName, char *SectName, char *Description, int internalidx, HICON DefIcon);
-
-void InitSubGroupMenus(void);
-
-//Groupmenu exec param(ownerdata)
-typedef struct{
- char *szServiceName;
- int Param1, Param2;
-} GroupMenuExecParam, *lpGroupMenuExecParam;
-
-/*
-wparam = handle to the menu item returned by MS_CLIST_ADDCONTACTMENUITEM
-return 0 on success.
-*/
-static INT_PTR RemoveGroupMenuItem(WPARAM wParam, LPARAM lParam)
-{
- CallService(MO_REMOVEMENUITEM, wParam, 0);
- return 0;
-}
-
-
-static INT_PTR BuildGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- int tick;
- HMENU hMenu;
- ListParam param = {0};
- param.MenuObjectHandle = hGroupMenuObject;
-
- //hMenu = hMainMenu;
- hMenu = CreatePopupMenu();
- //hMenu = wParam;
- tick = GetTickCount();
-
- NotifyEventHooks(hPreBuildGroupMenuEvent, 0, 0);
-
- CallService(MO_BUILDMENU, (WPARAM)hMenu, (LPARAM)&param);
- //DrawMenuBar((HWND)CallService("CLUI/GetHwnd",0,0));
- tick = GetTickCount() - tick;
- return (INT_PTR)hMenu;
-}
-
-static INT_PTR AddGroupMenuItem(WPARAM wParam, LPARAM lParam)
-{
- TMO_MenuItem tmi;
- CLISTMENUITEM *mi = (CLISTMENUITEM *)lParam;
- if (!pcli->pfnConvertMenu(mi, &tmi))
- return 0;
-
- lpGroupMenuExecParam mmep = (lpGroupMenuExecParam)mir_calloc(sizeof(GroupMenuExecParam));
- if (mmep == NULL)
- return 0;
-
- //we need just one parametr.
- mmep->szServiceName = mir_strdup(mi->pszService);
- mmep->Param1 = mi->popupPosition;
- lpGroupMenuParam gmp = (lpGroupMenuParam)wParam;
- if (gmp != NULL) {
- mmep->Param1 = gmp->wParam;
- mmep->Param2 = gmp->lParam;
- }
- tmi.ownerdata = mmep;
-
- char buf[1024];
- mir_snprintf(buf, SIZEOF(buf), "%s/%s", mi->pszService, mi->pszName);
-
- OptParam op;
- op.Handle = (HANDLE)CallService(MO_ADDNEWMENUITEM, (WPARAM)hGroupMenuObject, (LPARAM)&tmi);
- op.Setting = OPT_MENUITEMSETUNIQNAME;
- op.Value = (INT_PTR)buf;
- CallService(MO_SETOPTIONSMENUITEM, 0, (LPARAM)&op);
- return (INT_PTR)op.Handle;
-
-// mainItemCount++;
-// return MENU_CUSTOMITEMMAIN|(mainMenuItem[mainItemCount-1].id);
-}
-
-INT_PTR GroupMenuCheckService(WPARAM wParam, LPARAM lParam)
-{
-//not used
- return 0;
-}
-
-INT_PTR GroupMenuonAddService(WPARAM wParam, LPARAM lParam)
-{
- MENUITEMINFO *mii = (MENUITEMINFO *)wParam;
- if (mii == NULL) return 0;
-
- if (hHideShowMainMenuItem == (HANDLE)lParam) {
- mii->fMask |= MIIM_STATE;
- mii->fState |= MFS_DEFAULT;
- }
-
- if (hGroupMainMenuItemProxy == (HANDLE)lParam) {
- mii->fMask |= MIIM_SUBMENU;
- mii->hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETMAIN, 0, 0);
- }
-
- if (hGroupStatusMenuItemProxy == (HANDLE)lParam) {
- mii->fMask |= MIIM_SUBMENU;
- mii->hSubMenu = (HMENU)CallService(MS_CLIST_MENUGETSTATUS, 0, 0);
- }
-
- return TRUE;
-}
-
-//called with:
-//wparam - ownerdata
-//lparam - lparam from winproc
-INT_PTR GroupMenuExecService(WPARAM wParam, LPARAM lParam)
-{
- if (wParam != 0) {
- lpGroupMenuExecParam mmep = (lpGroupMenuExecParam)wParam;
- if (!strcmp(mmep->szServiceName, "Help/AboutCommand")) {
- //bug in help.c,it used wparam as parent window handle without reason.
- mmep->Param1 = 0;
- CallService(mmep->szServiceName, mmep->Param1, lParam);
- }
- else
- CallService(mmep->szServiceName, mmep->Param1, mmep->Param2);
-
- }
- return 1;
-}
-
-INT_PTR FreeOwnerDataGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- lpGroupMenuExecParam mmep = (lpGroupMenuExecParam)lParam;
- if (mmep != NULL) {
- mir_free(mmep->szServiceName);
- mir_free(mmep);
- }
- return 0;
-}
-
-INT_PTR HideGroupsHelper(WPARAM wParam, LPARAM lParam)
-{
- int newVal = !(GetWindowLongPtr(pcli->hwndContactTree, GWL_STYLE) & CLS_HIDEEMPTYGROUPS);
- db_set_b(NULL, "CList", "HideEmptyGroups", (BYTE)newVal);
- SendMessage(pcli->hwndContactTree, CLM_SETHIDEEMPTYGROUPS, newVal, 0);
- return 0;
-}
-
-INT_PTR UseGroupsHelper(WPARAM wParam, LPARAM lParam)
-{
- int newVal = !(GetWindowLongPtr(pcli->hwndContactTree, GWL_STYLE) & CLS_USEGROUPS);
- db_set_b(NULL, "CList", "UseGroups", (BYTE)newVal);
- SendMessage(pcli->hwndContactTree, CLM_SETUSEGROUPS, newVal, 0);
- return 0;
-}
-
-INT_PTR HideOfflineRootHelper(WPARAM wParam, LPARAM lParam)
-{
- SendMessage(pcli->hwndContactTree, CLM_SETHIDEOFFLINEROOT, !SendMessage(pcli->hwndContactTree, CLM_GETHIDEOFFLINEROOT, 0, 0), 0);
- return 0;
-}
-
-static int OnBuildGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.flags = CMIM_FLAGS | (db_get_b(NULL, "CList", "HideOffline", SETTING_HIDEOFFLINE_DEFAULT) ? CMIF_CHECKED : 0);
- Menu_ModifyItem(hHideOfflineUsersMenuItem, &mi);
-
- mi.flags = CMIM_FLAGS | (SendMessage(pcli->hwndContactTree, CLM_GETHIDEOFFLINEROOT, 0, 0) ? CMIF_CHECKED : 0);
- Menu_ModifyItem(hHideOfflineUsersOutHereMenuItem, &mi);
-
- mi.flags = CMIM_FLAGS | (GetWindowLongPtr(pcli->hwndContactTree, GWL_STYLE) & CLS_HIDEEMPTYGROUPS ? CMIF_CHECKED : 0);
- Menu_ModifyItem(hHideEmptyGroupsMenuItem, &mi);
-
- mi.flags = CMIM_FLAGS | (GetWindowLongPtr(pcli->hwndContactTree, GWL_STYLE) & CLS_USEGROUPS ? 0 : CMIF_CHECKED);
- Menu_ModifyItem(hDisableGroupsMenuItem, &mi);
- return 0;
-}
-
-int static OnIconLibIconChanged(WPARAM wParam, LPARAM lParam)
-{
- HICON hicon = LoadIconFromExternalFile("clisticons.dll", 2, TRUE, FALSE, "NewGroup", "Contact list", "New group", -IDI_NEWGROUP, 0);
- NewGroupIconidx = ImageList_ReplaceIcon(hCListImages, NewGroupIconidx, hicon);
-
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.flags = CMIM_ICON;
- mi.hIcon = ImageList_GetIcon(hCListImages, NewGroupIconidx, 0);
- Menu_ModifyItem(hNewSubGroupMenuItem, &mi);
- Menu_ModifyItem(hNewGroupMenuItem, &mi);
- return 0;
-}
-
-void InitGroupMenus(void)
-{
- HICON hicon = LoadIconFromExternalFile("clisticons.dll", 2, TRUE, TRUE, "NewGroup", "Contact list", "New group", -IDI_NEWGROUP2, 0);
- NewGroupIconidx = ImageList_AddIcon(hCListImages, hicon);
-
- CreateServiceFunction("CLISTMENUSGroup/ExecService", GroupMenuExecService);
- CreateServiceFunction("CLISTMENUSGroup/FreeOwnerDataGroupMenu", FreeOwnerDataGroupMenu);
- CreateServiceFunction("CLISTMENUSGroup/GroupMenuonAddService", GroupMenuonAddService);
- CreateServiceFunction("CLISTMENUSGroup/HideGroupsHelper", HideGroupsHelper);
- CreateServiceFunction("CLISTMENUSGroup/UseGroupsHelper", UseGroupsHelper);
- CreateServiceFunction("CLISTMENUSGroup/HideOfflineRootHelper", HideOfflineRootHelper);
-
- CreateServiceFunction("CList/AddGroupMenuItem", AddGroupMenuItem);
- CreateServiceFunction(MS_CLIST_REMOVEGROUPMENUITEM, RemoveGroupMenuItem);
- CreateServiceFunction(MS_CLIST_MENUBUILDGROUP, BuildGroupMenu);
- hPreBuildGroupMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDGROUPMENU);
- HookEvent(ME_CLIST_PREBUILDGROUPMENU, OnBuildGroupMenu);
-
- InitSubGroupMenus();
-
- // Group menu
- hGroupMenuObject = MO_CreateMenuObject("GroupMenu", LPGEN("Group menu"), 0, "CLISTMENUSGroup/ExecService");
- MO_SetMenuObjectParam(hGroupMenuObject, OPT_USERDEFINEDITEMS, TRUE);
- MO_SetMenuObjectParam(hGroupMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSGroup/FreeOwnerDataGroupMenu");
- MO_SetMenuObjectParam(hGroupMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSGroup/GroupMenuonAddService");
- {
- //add exit command to menu
- GroupMenuParam gmp;
-
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.position = 1900000;
- mi.pszService = "CloseAction";
- mi.pszName = LPGEN("E&xit");
- AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 500;
- mi.pszService = MS_CLIST_SHOWHIDE;
- mi.pszName = LPGEN("&Hide/Show");
- hHideShowMainMenuItem = (HANDLE)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 200000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FINDUSER));
- mi.pszService = "FindAdd/FindAddCommand";
- mi.pszName = LPGEN("&Find/Add contacts...");
- AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 300000;
- mi.pszService = "";
- mi.pszName = LPGEN("&Main menu");
- hGroupMainMenuItemProxy = (HANDLE)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 300100;
- mi.pszService = "";
- mi.pszName = LPGEN("&Status");
- hGroupStatusMenuItemProxy = (HANDLE)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 400000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_OPTIONS));
- mi.pszService = "Options/OptionsCommand";
- mi.pszName = LPGEN("&Options...");
-
- AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 500000;
- mi.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_CLIENTMIRANDA));
- mi.pszService = "Help/AboutCommand";
- mi.pszName = LPGEN("&About");
-
- //AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100000;
- mi.hIcon = ImageList_GetIcon(hCListImages, NewGroupIconidx, 0);
- mi.pszService = MS_CLIST_GROUPCREATE;
- mi.pszName = LPGEN("&New group");
- hNewGroupMenuItem = (HGENMENU)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100001;
- mi.hIcon = NULL;
- mi.pszService = MS_CLIST_SETHIDEOFFLINE;
- mi.pszName = LPGEN("&Hide offline users");
- gmp.lParam = 0;
- gmp.wParam = -1;
- hHideOfflineUsersMenuItem = (HGENMENU)AddGroupMenuItem((WPARAM)&gmp, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100002;
- mi.hIcon = NULL;
- mi.pszService = "CLISTMENUSGroup/HideOfflineRootHelper";
- mi.pszName = LPGEN("Hide &offline users out here");
- hHideOfflineUsersOutHereMenuItem = (HGENMENU)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100003;
- mi.hIcon = NULL;
- mi.pszService = "CLISTMENUSGroup/HideGroupsHelper";
- mi.pszName = LPGEN("Hide &empty groups");
- hHideEmptyGroupsMenuItem = (HGENMENU)AddGroupMenuItem(0, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 100004;
- mi.hIcon = NULL;
- mi.pszService = "CLISTMENUSGroup/UseGroupsHelper";
- mi.pszName = LPGEN("Disable &groups");
- hDisableGroupsMenuItem = (HGENMENU)AddGroupMenuItem(0, (LPARAM)&mi);
-
- HookEvent(ME_SKIN2_ICONSCHANGED, OnIconLibIconChanged);
- }
-}
-
-//////////////////////////////END Group MENU/////////////////////////
-
-
-
-
-//////////////////////////////SubGroup MENU/////////////////////////
-HANDLE hSubGroupMenuObject;
-
-HANDLE hSubGroupMainMenuItemProxy;
-HANDLE hSubGroupStatusMenuItemProxy;
-HANDLE hPreBuildSubGroupMenuEvent;
-
-HGENMENU hHideOfflineUsersHereMenuItem;
-
-//SubGroupmenu exec param(ownerdata)
-typedef struct{
- char *szServiceName;
- int Param1, Param2;
-} SubGroupMenuExecParam, *lpSubGroupMenuExecParam;
-
-/*
-wparam = handle to the menu item returned by MS_CLIST_ADDCONTACTMENUITEM
-return 0 on success.
-*/
-static INT_PTR RemoveSubGroupMenuItem(WPARAM wParam, LPARAM lParam)
-{
- CallService(MO_REMOVEMENUITEM, wParam, 0);
- return 0;
-}
-
-static int OnBuildSubGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- ClcGroup *group = (ClcGroup *)wParam;
- if (wParam == 0) return 0;
-
- //contact->group
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.flags = CMIM_FLAGS | (group->hideOffline ? CMIF_CHECKED : 0);
- Menu_ModifyItem(hHideOfflineUsersHereMenuItem, &mi);
- return 0;
-}
-
-static INT_PTR BuildSubGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- int tick;
- HMENU hMenu;
- ListParam param = { 0 };
- param.MenuObjectHandle = hSubGroupMenuObject;
- param.wParam = wParam;
-
- //hMenu = hMainMenu;
- hMenu = CreatePopupMenu();
- //hMenu = wParam;
- tick = GetTickCount();
-
- NotifyEventHooks(hPreBuildSubGroupMenuEvent, wParam, 0);
-
- CallService(MO_BUILDMENU, (WPARAM)hMenu, (LPARAM)&param);
- //DrawMenuBar((HWND)CallService("CLUI/GetHwnd",0,0));
- tick = GetTickCount() - tick;
- return (INT_PTR)hMenu;
-}
-
-static INT_PTR AddSubGroupMenuItem(WPARAM wParam, LPARAM lParam)
-{
- TMO_MenuItem tmi;
- CLISTMENUITEM *mi = (CLISTMENUITEM *)lParam;
- if (!pcli->pfnConvertMenu(mi, &tmi))
- return 0;
-
- lpSubGroupMenuExecParam mmep = (lpSubGroupMenuExecParam)mir_calloc(sizeof(SubGroupMenuExecParam));
- if (mmep == NULL)
- return 0;
-
- //we need just one parametr.
- mmep->szServiceName = mir_strdup(mi->pszService);
- mmep->Param1 = mi->popupPosition;
- lpGroupMenuParam gmp = (lpGroupMenuParam)wParam;
- if (gmp != NULL ) {
- mmep->Param1 = gmp->wParam;
- mmep->Param2 = gmp->lParam;
- }
- tmi.ownerdata = mmep;
-
- char buf[1024];
- mir_snprintf(buf, SIZEOF(buf), "%s/%s", mi->pszService, mi->pszName);
-
- OptParam op;
- op.Handle = (HANDLE)CallService(MO_ADDNEWMENUITEM, (WPARAM)hSubGroupMenuObject, (LPARAM)&tmi);
- op.Setting = OPT_MENUITEMSETUNIQNAME;
- op.Value = (INT_PTR)buf;
- CallService(MO_SETOPTIONSMENUITEM, 0, (LPARAM)&op);
- return (INT_PTR)op.Handle;
-}
-
-INT_PTR SubGroupMenuCheckService(WPARAM wParam, LPARAM lParam)
-{
- return 0;
-}
-
-INT_PTR SubGroupMenuonAddService(WPARAM wParam, LPARAM lParam)
-{
- MENUITEMINFO *mii = (MENUITEMINFO *)wParam;
- if (mii == NULL)
- return 0;
-
- return TRUE;
-}
-
-//called with:
-//wparam - ownerdata
-//lparam - lparam from winproc
-INT_PTR SubGroupMenuExecService(WPARAM wParam, LPARAM lParam)
-{
- if (wParam != 0) {
- lpSubGroupMenuExecParam mmep = (lpSubGroupMenuExecParam)wParam;
- if (!strcmp(mmep->szServiceName, "Help/AboutCommand")) {
- //bug in help.c,it used wparam as parent window handle without reason.
- mmep->Param1 = 0;
- CallService(mmep->szServiceName, mmep->Param1, lParam);
- }
- else
- CallService(mmep->szServiceName, mmep->Param1, mmep->Param2);
- }
-
- return 1;
-}
-
-INT_PTR FreeOwnerDataSubGroupMenu(WPARAM wParam, LPARAM lParam)
-{
- lpSubGroupMenuExecParam mmep = (lpSubGroupMenuExecParam)lParam;
- if (mmep != NULL) {
- mir_free(mmep->szServiceName);
- mir_free(mmep);
- }
- return 0;
-}
-
-//wparam menu handle to pass to clc.c
-INT_PTR GroupMenuExecProxy(WPARAM wParam, LPARAM lParam)
-{
- SendMessage(pcli->hwndContactTree, WM_COMMAND, wParam, 0);
- return 0;
-}
-
-void InitSubGroupMenus(void)
-{
- CreateServiceFunction("CLISTMENUSSubGroup/ExecService", SubGroupMenuExecService);
- CreateServiceFunction("CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu", FreeOwnerDataSubGroupMenu);
- CreateServiceFunction("CLISTMENUSSubGroup/SubGroupMenuonAddService", SubGroupMenuonAddService);
- CreateServiceFunction("CLISTMENUSSubGroup/GroupMenuExecProxy", GroupMenuExecProxy);
-
- CreateServiceFunction("CList/AddSubGroupMenuItem", AddSubGroupMenuItem);
- CreateServiceFunction(MS_CLIST_REMOVESUBGROUPMENUITEM, RemoveSubGroupMenuItem);
- CreateServiceFunction(MS_CLIST_MENUBUILDSUBGROUP, BuildSubGroupMenu);
- hPreBuildSubGroupMenuEvent = CreateHookableEvent(ME_CLIST_PREBUILDSUBGROUPMENU);
- HookEvent(ME_CLIST_PREBUILDSUBGROUPMENU, OnBuildSubGroupMenu);
-
- //SubGroup menu
- hSubGroupMenuObject = MO_CreateMenuObject("SubGroupMenu", LPGEN("Subgroup menu"), 0, "CLISTMENUSSubGroup/ExecService");
- MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_USERDEFINEDITEMS, TRUE);
- MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_MENUOBJECT_SET_FREE_SERVICE, "CLISTMENUSSubGroup/FreeOwnerDataSubGroupMenu");
- MO_SetMenuObjectParam(hSubGroupMenuObject, OPT_MENUOBJECT_SET_ONADD_SERVICE, "CLISTMENUSSubGroup/SubGroupMenuonAddService");
-
- //add exit command to menu
- GroupMenuParam gmp;
-
- CLISTMENUITEM mi = { sizeof(mi) };
- mi.position = 1000;
- mi.hIcon = ImageList_GetIcon(hCListImages, NewGroupIconidx, 0);
- mi.pszService = "CLISTMENUSSubGroup/GroupMenuExecProxy";
- mi.pszName = LPGEN("&New subgroup");
- gmp.lParam = 0;
- gmp.wParam = POPUP_NEWSUBGROUP;
- hNewSubGroupMenuItem = (HGENMENU)AddSubGroupMenuItem((WPARAM)&gmp, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 1001;
- mi.hIcon = NULL;
- mi.pszService = "CLISTMENUSSubGroup/GroupMenuExecProxy";
- mi.pszName = LPGEN("&Hide offline users in here");
- gmp.lParam = 0;
- gmp.wParam = POPUP_GROUPHIDEOFFLINE;
- hHideOfflineUsersHereMenuItem = (HGENMENU)AddSubGroupMenuItem((WPARAM)&gmp, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 900001;
- mi.icolibItem = LoadSkinnedIconHandle(SKINICON_OTHER_RENAME); //LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_RENAME));
- mi.pszService = "CLISTMENUSSubGroup/GroupMenuExecProxy";
- mi.pszName = LPGEN("&Rename group");
- gmp.lParam = 0;
- gmp.wParam = POPUP_RENAMEGROUP;
- AddSubGroupMenuItem((WPARAM)&gmp, (LPARAM)&mi);
-
- memset(&mi, 0, sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.position = 900002;
- mi.icolibItem = LoadSkinnedIconHandle(SKINICON_OTHER_DELETE); //LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_DELETE));
- mi.pszService = "CLISTMENUSSubGroup/GroupMenuExecProxy";
- mi.pszName = LPGEN("&Delete group");
- gmp.lParam = 0;
- gmp.wParam = POPUP_DELETEGROUP;
- AddSubGroupMenuItem((WPARAM)&gmp, (LPARAM)&mi);
-}
-
-//////////////////////////////END SubGroup MENU/////////////////////////
diff --git a/plugins/Clist_mw/src/init.cpp b/plugins/Clist_mw/src/init.cpp
deleted file mode 100644
index dd509257b9..0000000000
--- a/plugins/Clist_mw/src/init.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-04 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-
-HINSTANCE g_hInst = 0;
-CLIST_INTERFACE* pcli = NULL;
-int hLangpack;
-
-static HANDLE hCListShutdown = 0;
-
-HMENU BuildGroupPopupMenu( ClcGroup* group );
-
-void CalcEipPosition( struct ClcData *dat, struct ClcContact *contact, ClcGroup *group, POINT *result);
-void CheckPDNCE(ClcCacheEntry*);
-void CluiProtocolStatusChanged( int, const char* );
-int CompareContacts( const struct ClcContact *contact1, const struct ClcContact *contact2 );
-void FreeDisplayNameCacheItem(ClcCacheEntry*);
-void GetDefaultFontSetting(int i,LOGFONT *lf,COLORREF *colour);
-void RebuildEntireList(HWND hwnd,struct ClcData *dat);
-void RecalcScrollBar(HWND hwnd,struct ClcData *dat);
-
-ClcGroup* ( *saveAddGroup )(HWND hwnd,struct ClcData *dat,const TCHAR *szName,DWORD flags,int groupId,int calcTotalMembers);
-ClcGroup* ( *saveRemoveItemFromGroup )(HWND hwnd,ClcGroup *group,struct ClcContact *contact,int updateTotalCount);
-
-void (*saveFreeContact)(struct ClcContact *p);
-void (*saveFreeGroup)(ClcGroup *p);
-
-LRESULT ( CALLBACK *saveContactListControlWndProc )( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
-LRESULT CALLBACK ContactListControlWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-LRESULT ( CALLBACK *saveContactListWndProc )(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-LRESULT CALLBACK ContactListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-void ( *saveLoadClcOptions )(HWND hwnd,struct ClcData *dat);
-
-int ( *saveAddItemToGroup )( ClcGroup *group, int iAboveItem );
-int AddItemToGroup(ClcGroup *group, int iAboveItem);
-
-int ( *saveAddInfoItemToGroup)(ClcGroup *group,int flags,const TCHAR *pszText);
-int AddInfoItemToGroup(ClcGroup *group,int flags,const TCHAR *pszText);
-
-void ( *saveSortCLC )(HWND hwnd,struct ClcData *dat,int useInsertionSort);
-void SortCLC(HWND hwnd,struct ClcData *dat,int useInsertionSort);
-
-INT_PTR ( *saveTrayIconProcessMessage )(WPARAM wParam, LPARAM lParam);
-INT_PTR TrayIconProcessMessage(WPARAM wParam, LPARAM lParam);
-
-int (*saveIconFromStatusMode)(const char *szProto,int nStatus, MCONTACT hContact);
-int cli_IconFromStatusMode(const char *szProto,int nStatus, MCONTACT hContact);
-
-//from clcfonts
-void RegisterCListFonts( void );
-//from bgrcfg
-extern int BGModuleLoad();
-extern int BGModuleUnload();
-
-PLUGININFOEX pluginInfo = {
- sizeof(PLUGININFOEX),
- __PLUGIN_NAME,
- PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
- __DESCRIPTION,
- __AUTHOR,
- __AUTHOREMAIL,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE,
- // {2A417AB9-16F2-472D-9AE3-415103C78A64}
- {0x2a417ab9, 0x16f2, 0x472d, {0x9a, 0xe3, 0x41, 0x51, 0x3, 0xc7, 0x8a, 0x64}}
-};
-
-BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID reserved)
-{
- g_hInst = hInstDLL;
- DisableThreadLibraryCalls(g_hInst);
- return TRUE;
-}
-
-extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
-{
- return &pluginInfo;
-}
-
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_CLIST, MIID_LAST};
-
-int LoadContactListModule(void);
-int PreloadCLCModule(void);
-int LoadCLCModule(void);
-int LoadCLUIModule();
-int InitSkinHotKeys();
-
-static int OnModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- if ( LoadCLUIModule())
- return 1;
-
- InitSkinHotKeys();
- RegisterCListFonts();
- return 0;
-}
-
-INT_PTR SetDrawer(WPARAM wParam, LPARAM lParam)
-{
- pDrawerServiceStruct DSS = (pDrawerServiceStruct)wParam;
- if (DSS->cbSize != sizeof(*DSS)) return -1;
- if (DSS->PluginName == NULL) return -1;
- if (DSS->GetDrawFuncsServiceName == NULL) return -1;
- if ( !ServiceExists(DSS->GetDrawFuncsServiceName)) return -1;
-
-
- SED.cbSize = sizeof(SED);
- SED.PaintClc = (void (__cdecl *)(HWND,struct ClcData *,HDC,RECT *,int ,ClcProtoStatus *,HIMAGELIST))CallService(DSS->GetDrawFuncsServiceName,CLUI_EXT_FUNC_PAINTCLC,0);
- if ( !SED.PaintClc) return -1;
- return 0;
-}
-
-static struct ClcContact* fnCreateClcContact( void )
-{
- return (struct ClcContact*)mir_calloc( sizeof( struct ClcContact ));
-}
-
-static ClcCacheEntry *fnCreateCacheItem(MCONTACT hContact )
-{
- ClcCacheEntry *p = (ClcCacheEntry *)mir_calloc( sizeof( ClcCacheEntry ));
- if ( p )
- p->hContact = hContact;
- return p;
-}
-
-extern "C" int __declspec(dllexport) CListInitialise()
-{
- int rc = 0;
-
- OutputDebugStringA("CListInitialise ClistMW\r\n");
- mir_getLP( &pluginInfo );
- mir_getCLI();
-
- PreloadCLCModule();
-
- pcli->hInst = g_hInst;
- pcli->pfnBuildGroupPopupMenu = BuildGroupPopupMenu;
- pcli->pfnCalcEipPosition = CalcEipPosition;
- pcli->pfnCheckCacheItem = CheckPDNCE;
- pcli->pfnCluiProtocolStatusChanged = CluiProtocolStatusChanged;
- pcli->pfnCompareContacts = CompareContacts;
- pcli->pfnCreateClcContact = fnCreateClcContact;
- pcli->pfnCreateCacheItem = fnCreateCacheItem;
- pcli->pfnFindItem = FindItem;
- pcli->pfnFreeCacheItem = FreeDisplayNameCacheItem;
- pcli->pfnGetDefaultFontSetting = GetDefaultFontSetting;
- pcli->pfnGetRowsPriorTo = GetRowsPriorTo;
- pcli->pfnGetRowByIndex = GetRowByIndex;
- pcli->pfnHitTest = HitTest;
- pcli->pfnPaintClc = PaintClc;
- pcli->pfnRebuildEntireList = RebuildEntireList;
- pcli->pfnRecalcScrollBar = RecalcScrollBar;
- pcli->pfnScrollTo = ScrollTo;
-
- saveIconFromStatusMode = pcli->pfnIconFromStatusMode;
- pcli->pfnIconFromStatusMode = cli_IconFromStatusMode;
-
- saveAddGroup = pcli->pfnAddGroup; pcli->pfnAddGroup = AddGroup;
- saveAddInfoItemToGroup = pcli->pfnAddInfoItemToGroup; pcli->pfnAddInfoItemToGroup = AddInfoItemToGroup;
- saveAddItemToGroup = pcli->pfnAddItemToGroup; pcli->pfnAddItemToGroup = AddItemToGroup;
- saveRemoveItemFromGroup = pcli->pfnRemoveItemFromGroup; pcli->pfnRemoveItemFromGroup = RemoveItemFromGroup;
- saveFreeContact = pcli->pfnFreeContact; pcli->pfnFreeContact = FreeContact;
- saveFreeGroup = pcli->pfnFreeGroup; pcli->pfnFreeGroup = FreeGroup;
- saveContactListControlWndProc = pcli->pfnContactListControlWndProc; pcli->pfnContactListControlWndProc = ContactListControlWndProc;
- saveTrayIconProcessMessage = pcli->pfnTrayIconProcessMessage; pcli->pfnTrayIconProcessMessage = TrayIconProcessMessage;
- saveContactListWndProc = pcli->pfnContactListWndProc; pcli->pfnContactListWndProc = ContactListWndProc;
- saveLoadClcOptions = pcli->pfnLoadClcOptions; pcli->pfnLoadClcOptions = LoadClcOptions;
- saveSortCLC = pcli->pfnSortCLC; pcli->pfnSortCLC = SortCLC;
-
- memset(&SED,0,sizeof(SED));
- CreateServiceFunction(CLUI_SetDrawerService,SetDrawer);
-
- rc = LoadContactListModule();
- if (rc == 0)
- rc = LoadCLCModule();
-
- HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
- BGModuleLoad();
-
- OutputDebugStringA("CListInitialise ClistMW...Done\r\n");
-
- return rc;
-}
-
-// never called by a newer plugin loader.
-extern "C" int __declspec(dllexport) Load(void)
-{
- OutputDebugStringA("Load ClistMW\r\n");
- CListInitialise();
- return 1;
-}
-
-extern "C" int __declspec(dllexport) Unload(void)
-{
- OutputDebugStringA("Unloading ClistMW\r\n");
- if (IsWindow(pcli->hwndContactList)) DestroyWindow(pcli->hwndContactList);
- BGModuleUnload();
- pcli->hwndContactList = 0;
- return 0;
-}
diff --git a/plugins/Clist_mw/src/keyboard.cpp b/plugins/Clist_mw/src/keyboard.cpp
deleted file mode 100644
index bd8a438231..0000000000
--- a/plugins/Clist_mw/src/keyboard.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 Miranda ICQ/IM project,
-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.
-*/
-
-#include "commonheaders.h"
-#include <m_hotkeys.h>
-
-INT_PTR hkCloseMiranda(WPARAM wParam, LPARAM lParam)
-{
- CallService("CloseAction", 0, 0);
- return 0;
-}
-
-INT_PTR hkRestoreStatus(WPARAM wParam, LPARAM lParam)
-{
- int nStatus = db_get_w(NULL, "CList", "Status", ID_STATUS_OFFLINE);
- CallService(MS_CLIST_SETSTATUSMODE, nStatus, 0);
-
- return 0;
-}
-
-int InitSkinHotKeys(void)
-{
- CreateServiceFunction("CLIST/HK/CloseMiranda",hkCloseMiranda);
- CreateServiceFunction("CLIST/HK/RestoreStatus",hkRestoreStatus);
-
- HOTKEYDESC shk = {0};
- shk.cbSize = sizeof(shk);
-
- shk.pszDescription = LPGEN("Close Miranda");
- shk.pszName = "CloseMiranda";
- shk.pszSection = "Main";
- shk.pszService = "CLIST/HK/CloseMiranda";
- Hotkey_Register(&shk);
-
- shk.pszDescription = LPGEN("Restore last status");
- shk.pszName = "RestoreLastStatus";
- shk.pszSection = "Status";
- shk.pszService = "CLIST/HK/RestoreStatus";
- Hotkey_Register(&shk);
-
- return 0;
-}
-
-void UninitSkinHotKeys(void)
-{
-}
diff --git a/plugins/Clist_mw/src/resource.h b/plugins/Clist_mw/src/resource.h
deleted file mode 100644
index a726d14957..0000000000
--- a/plugins/Clist_mw/src/resource.h
+++ /dev/null
@@ -1,642 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Âêëþ÷àåìûé ôàéë, ñîçäàííûé â Microsoft Visual C++.
-// Èñïîëüçóåòñÿ d:\MNG_orig\plugins\Clist_mw\res\resource.rc
-//
-#define IDC_AUTHICON 1
-#define IDC_NOTOALL 3
-#define IDC_APPLY 3
-#define MIM_V1 10
-#define IDI_GLOBUS 11
-#define MIM_V2 20
-#define MIM_V3 30
-#define MIM_V4 30
-#define IDD_ABOUT 103
-#define IDI_SMS 103
-#define IDI_ONLINE 104
-#define IDI_OFFLINE 105
-#define IDD_GNUPL 110
-#define IDD_ADDED 115
-#define IDD_URLSEND 119
-#define IDD_URLRECV 120
-#define IDD_AUTHREQ 121
-#define IDD_DETAILS 125
-#define IDD_OPT_CLIST 126
-#define IDD_HISTORY 127
-#define IDI_AWAY 128
-#define IDI_FREE4CHAT 129
-#define IDI_INVISIBLE 130
-#define IDI_NA 131
-#define IDD_OPT_SOUND 134
-#define IDD_OPT_HOTKEYS 134
-#define IDI_SENDURL 135
-#define IDI_RECVMSG 136
-#define IDI_SENDMSG 137
-#define IDI_URL 138
-#define IDI_DND 158
-#define IDI_OCCUPIED 159
-#define IDI_USERDETAILS 160
-#define IDI_FINDUSER 161
-#define IDI_HELP 162
-#define IDI_OPTIONS 163
-#define IDI_MIRANDAWEBSITE 172
-#define IDI_RENAME 173
-#define IDI_HISTORY 174
-#define IDI_DELETE 175
-#define IDR_CONTEXT 180
-#define IDC_DROP 183
-#define IDD_OPT_HOTKEY 184
-#define IDD_HISTORY_FIND 192
-#define IDI_SENDEMAIL 193
-#define IDD_FILERECV 194
-#define IDD_PROFILEMANAGER 197
-#define IDD_NEWPROFILE 198
-#define IDR_CLISTMENU 199
-#define IDI_BLANK 200
-#define IDD_FINDADD 201
-#define IDI_USERONLINE 201
-#define IDD_OPT_AUTOAWAY 202
-#define IDI_GROUPSHUT 202
-#define IDD_OPTIONS 203
-#define IDI_GROUPOPEN 203
-#define IDD_PLUGINCONFLICT 204
-#define IDD_FILESEND 205
-#define IDI_NOTICK 205
-#define IDD_OPT_PLUGINS 206
-#define IDI_TICK 206
-#define IDD_OPT_ICONS 207
-#define IDI_FILE 207
-#define IDI_TIMESTAMP 208
-#define IDI_CHANGEFONT 209
-#define IDI_ADDCONTACT 210
-#define IDI_SMALLDOT 211
-#define IDI_FILLEDBLOB 212
-#define IDD_READAWAYMSG 213
-#define IDI_EMPTYBLOB 213
-#define IDD_OPT_IGNORE 214
-#define IDC_HYPERLINKHAND 214
-#define IDD_OPT_VISIBILITY 215
-#define IDC_DROPUSER 215
-#define IDD_SETAWAYMSG 216
-#define IDI_DETAILSLOGO 216
-#define IDD_OPT_AWAYMSG 217
-#define IDD_OPT_CLUI 218
-#define IDD_INFO_SUMMARY 220
-#define IDD_INFO_CONTACT 221
-#define IDD_INFO_BACKGROUND 222
-#define IDD_INFO_NOTES 223
-#define IDD_ADDEMAIL 226
-#define IDD_ICONINDEX 227
-#define IDD_OPT_CLC 228
-#define IDD_OPT_CLCBKG 230
-#define IDD_INFO_LOCATION 231
-#define IDD_INFO_WORK 232
-#define IDD_ADDPHONE 233
-#define IDD_OPT_SBAR 234
-#define IDD_INSTALLINI 235
-#define IDD_WARNINICHANGE 236
-#define IDD_INIIMPORTDONE 237
-#define IDB_SORTCOLUP 239
-#define IDB_SORTCOLDOWN 240
-#define IDD_OPT_NETLIB 246
-#define IDD_NETLIBLOGOPTS 247
-#define IDD_FILETRANSFERINFO 249
-#define IDD_OPT_FILETRANSFER 250
-#define IDD_FILEEXISTS 251
-#define IDD_DELETECONTACT 254
-#define IDD_DENYREASON 256
-#define IDD_ADDCONTACT 257
-#define IDD_OPT_CONTACT 261
-#define IDD_OPT_PROTOCOLORDER 262
-#define IDI_MULTISEND 263
-#define IDI_DOWNARROW 264
-#define IDD_CREDITS 265
-#define IDD_OPT_IDLE 268
-#define IDI_ICQC1 269
-#define IDI_ICQC2 270
-#define IDI_ICQC3 271
-#define IDI_ICQC4 272
-#define IDI_ICQC5 273
-#define IDI_ICQC6 274
-#define IDI_ICQC7 275
-#define IDI_ICQC8 276
-#define IDI_EMAIL 277
-#define IDD_OPT_META_CLC 279
-#define IDI_NEWGROUP 282
-#define IDI_NEWGROUP2 282
-#define IDI_CLIENTTRILLIAN 298
-#define IDI_CLIENTMIRANDA 299
-#define IDI_CLIENTRQ 300
-#define IDI_CLIENTGAIM 301
-#define IDI_CLIENTIM2 302
-#define IDI_CLIENTKOPETE 303
-#define IDI_CLIENTLICQ 304
-#define IDI_CLIENTQIP 305
-#define IDI_CLIENTSIM 306
-#define IDI_MIRANDA2 307
-#define IDD_OPT_CLCBKG2 308
-#define IDI_CLIENTICQL5 315
-#define IDI_CLIENTAGILE 318
-#define IDI_CLIENTGNOMEICU 319
-#define IDI_ICON1 320
-#define IDI_CLIENTMOBICQ 320
-#define IDI_CLIENTSPAMBOT 321
-#define IDI_CLIENTICQMAC 322
-#define IDI_CLIENTIMPLUS 323
-#define IDI_CLIENTYSM 324
-#define IDI_CLIENTYAMIGO 325
-#define IDI_CLIENTWEBICQ 326
-#define IDI_CLIENTVICQ 327
-#define IDI_CLIENTSTRICQ 328
-#define IDI_CLIENTSTICQ 329
-#define IDI_CLIENTNICQ2 330
-#define IDI_CLIENTPSI 331
-#define IDI_CLIENTMOB2ICQ 333
-#define IDI_CLIENTMICQ 334
-#define IDI_CLIENTLIBICQ2000 335
-#define IDI_CLIENTCENTERICQ 336
-#define IDI_CLIENTALICQ 337
-#define IDI_CLIENTICQ2000 339
-#define IDI_CLIENTICQ2001 340
-#define IDI_CLIENTICQ2003 341
-#define IDI_CLIENTICQLITE 342
-#define IDI_CLIENTICQLITE4 343
-#define IDI_CLIENTICQLITE5 344
-#define IDI_CLIENTICQGOF 345
-#define IDI_CLIENTICQGOJ 346
-#define IDC_RESETPROTOCOLDATA 1000
-#define IDC_SAVE 1001
-#define IDC_DEFBKCOLOR 1001
-#define IDI_ONTHEPHONE 1002
-#define IDC_MESSAGE 1002
-#define IDI_OUTTOLUNCH 1003
-#define IDC_AUTOCLOSE 1004
-#define IDC_FROM 1005
-#define IDC_AUTOMIN 1005
-#define IDC_DATE 1006
-#define IDC_DUMPRECV 1006
-#define IDC_MSG 1008
-#define IDC_PROXYDNS 1008
-#define IDC_NAME 1009
-#define IDC_PROXYTYPE 1009
-#define IDC_STATIC23 1010
-#define IDC_NAMEVAL 1010
-#define IDC_SPECIFYPORTS 1013
-#define IDC_ST_ENTERMSG 1013
-#define IDC_ST_ENTERURL 1014
-#define IDC_SPECIFYPORTSO 1014
-#define IDC_TEXT 1019
-#define IDC_SHOWNAMES 1024
-#define IDC_ABOUT 1032
-#define IDC_MYNOTES 1033
-#define IDC_URLS 1037
-#define IDC_REPLY 1039
-#define IDC_URL 1041
-#define IDC_REASON 1046
-#define IDC_EMAIL 1048
-#define IDC_NAMENICK 1049
-#define IDC_NAMEFIRST 1050
-#define IDC_NAMELAST 1051
-#define IDC_NICK 1053
-#define IDC_GENDER 1060
-#define IDC_CITY 1061
-#define IDC_STATE 1062
-#define IDC_COUNTRY 1063
-#define IDC_AGE 1064
-#define IDC_ZIP 1064
-#define IDC_PHONE 1065
-#define IDC_STREET 1065
-#define IDC_COMPANY 1066
-#define IDC_LANGUAGE1 1066
-#define IDC_TIMEZONE 1067
-#define IDC_DEPARTMENT 1067
-#define IDC_LOCALTIME 1068
-#define IDC_DETAILS 1069
-#define IDC_POSITION 1069
-#define IDC_LANGUAGE2 1069
-#define IDC_ADD 1070
-#define IDC_LANGUAGE3 1070
-#define IDC_MOREOPTIONS 1071
-#define IDC_USERMENU 1071
-#define IDC_MIN2TRAY 1073
-#define IDC_ONTOP 1074
-#define IDC_SHOWMAINMENU 1075
-#define IDC_CLIENTDRAG 1076
-#define IDC_EDIT 1078
-#define IDC_LIST 1079
-#define IDC_HISTORY 1080
-#define IDC_USESOUND 1085
-#define IDC_TOOLWND 1097
-#define IDC_ONECLK 1098
-#define IDC_SHOWCAPTION 1098
-#define IDC_HIDEOFFLINE 1099
-#define IDC_SHOWHIDE 1100
-#define IDC_HIDEEMPTYGROUPS 1100
-#define IDC_SORTBYSTATUS 1101
-#define IDC_FADEINOUT 1101
-#define IDC_READMSG 1102
-#define IDC_AUTOSIZE 1102
-#define IDC_DISABLEGROUPS 1102
-#define IDC_AUTOSIZEUPWARD 1103
-#define IDC_ALWAYSSTATUS 1103
-#define IDC_NETSEARCH 1104
-#define IDC_CONFIRMDELETE 1104
-#define IDC_SORTBYPROTO 1105
-#define IDC_SHOWOPTIONS 1105
-#define IDC_SEARCHURL 1106
-#define IDC_BUILDTIME 1108
-#define IDC_NUMBER 1113
-#define IDC_UIN 1123
-#define IDC_TRANSPARENT 1124
-#define IDC_TRANSINACTIVE 1126
-#define IDC_TRANSACTIVE 1128
-#define IDC_FINDWHAT 1131
-#define IDC_FIND 1132
-#define IDC_FILE 1133
-#define IDC_PROFILELIST 1134
-#define IDC_NEWPROFILE 1135
-#define IDC_NEWPROFILENAME 1136
-#define IDC_TABS 1141
-#define IDC_RESULTS 1142
-#define IDC_STATUS 1144
-#define IDC_SCREENSAVE 1145
-#define IDC_TIMED 1146
-#define IDC_AWAYTIME 1147
-#define IDC_USEPROXY 1148
-#define IDC_SETNA 1148
-#define IDC_PROXYAUTH 1149
-#define IDC_NATIME 1149
-#define IDC_PROXYHOST 1150
-#define IDC_PROXYPORT 1151
-#define IDC_PROXYUSER 1152
-#define IDC_PROXYPASS 1153
-#define IDC_STATIC11 1154
-#define IDC_STATIC12 1155
-#define IDC_STATIC21 1156
-#define IDC_STATIC22 1157
-#define IDC_STATIC31 1158
-#define IDC_STATIC32 1159
-#define IDC_PROXYAUTHNTLM 1160
-#define IDC_HKSHOWHIDE 1162
-#define IDC_HKREADMSG 1163
-#define IDC_SOUNDLIST 1163
-#define IDC_HKSEARCH 1164
-#define IDC_CHANGE 1164
-#define IDC_PREVIEW 1165
-#define IDC_HKSHOWOPTIONS 1165
-#define IDC_PLUGINLIST 1167
-#define IDC_FEATURENAME 1168
-#define IDC_CHOOSE 1169
-#define IDC_TO 1170
-#define IDC_ABOUTGROUP 1175
-#define IDC_DESCRIPTION 1176
-#define IDC_AUTHOR 1177
-#define IDC_COPYRIGHT 1178
-#define IDC_VERSION 1179
-#define IDC_HOMEPAGE 1181
-#define IDC_RESTARTREQD 1182
-#define IDC_ICONSET 1183
-#define IDC_BROWSE 1184
-#define IDC_RUNATSTARTBROWSE 1185
-#define IDC_PAGETREE 1186
-#define IDC_RUNNOW 1186
-#define IDC_INACTIVEPERC 1187
-#define IDC_ACTIVEPERC 1188
-#define IDC_SEARCHNEWWND 1188
-#define IDC_RETRIEVING 1193
-#define IDC_TITLETEXT 1196
-#define IDC_GETMORE 1200
-#define IDC_VISIBLEICON 1204
-#define IDC_INVISIBLEICON 1205
-#define IDC_FILEICON 1206
-#define IDC_ONLINEICON 1207
-#define IDC_FILENAMES 1208
-#define IDC_ALLICON 1208
-#define IDC_DONTREPLY 1209
-#define IDC_NONEICON 1209
-#define IDC_USEPREVIOUS 1210
-#define IDC_NODIALOG 1211
-#define IDC_USESPECIFIC 1212
-#define IDC_FILEDIR 1213
-#define IDC_ALLFILESPROGRESS 1217
-#define IDC_CURRENTSPEED 1219
-#define IDC_STAWAYTYPE 1220
-#define IDC_WHITERECT 1221
-#define IDC_ALLSPEED 1221
-#define IDC_CURRENTFILEPROGRESS 1222
-#define IDC_CURRENTFILEGROUP 1223
-#define IDC_FIRSTNAME 1224
-#define IDC_LASTNAME 1225
-#define IDC_CURRENTTRANSFERRED 1225
-#define IDC_DOBDAY 1226
-#define IDC_DOBMONTH 1227
-#define IDC_WEBPAGE 1228
-#define IDC_DOBYEAR 1228
-#define IDC_UPDATING 1231
-#define IDC_NAMEORDER 1234
-#define IDC_AUTOHIDE 1235
-#define IDC_HIDETIME 1236
-#define IDC_RECONNECTREQD 1239
-#define IDC_IMPORT 1241
-#define IDC_TOMAIN 1243
-#define IDC_TOPROTO 1244
-#define IDC_PROTOLIST 1245
-#define IDC_TODEFICON 1246
-#define IDC_IMPORTMULTI 1247
-#define IDC_MAXSIZEHEIGHT 1254
-#define IDC_MAXSIZESPIN 1255
-#define IDC_FONTID 1256
-#define IDC_SAMETYPE 1257
-#define IDC_SAMESTYLE 1258
-#define IDC_SAMECOLOUR 1259
-#define IDC_SAMEAS 1260
-#define IDC_TYPEFACE 1261
-#define IDC_BOLD 1262
-#define IDC_ITALIC 1263
-#define IDC_COLOUR 1264
-#define IDC_UNDERLINE 1265
-#define IDC_HOTCOLOUR 1267
-#define IDC_SAMESIZE 1268
-#define IDC_BKGCOLOUR 1269
-#define IDC_FILENAME 1271
-#define IDC_SCROLL 1277
-#define IDC_PROPORTIONAL 1278
-#define IDC_SELCOLOUR 1281
-#define IDC_QUICKCOLOUR 1282
-#define IDC_SMOOTHTIME 1283
-#define IDC_SMOOTHTIMESPIN 1284
-#define IDC_GREYOUT 1285
-#define IDC_ROWHEIGHT 1285
-#define IDC_ROWHEIGHTSPIN 1286
-#define IDC_GREYOUTOPTS 1288
-#define IDC_GROUPINDENT 1289
-#define IDC_GROUPINDENTSPIN 1290
-#define IDC_LEFTMARGIN 1291
-#define IDC_SAMPLE 1292
-#define IDC_LEFTMARGINSPIN 1292
-#define IDC_FONTSIZE 1293
-#define IDC_STRETCHH 1298
-#define IDC_STRETCHV 1299
-#define IDC_TILEH 1300
-#define IDC_SCRIPT 1300
-#define IDC_TILEV 1301
-#define IDC_GAMMACORRECT 1302
-#define IDC_TILEVROWH 1302
-#define IDC_INTERESTS 1305
-#define IDC_EMAILS 1306
-#define IDC_PAST 1307
-#define IDC_HIDEOFFLINEOPTS 1308
-#define IDC_PHONES 1308
-#define IDC_SMS 1310
-#define IDC_AREA 1312
-#define IDC_UPDATE 1313
-#define IDC_DONTCYCLE 1315
-#define IDC_PRIMARYSTATUS 1316
-#define IDC_CYCLE 1317
-#define IDC_CYCLETIME 1318
-#define IDC_CYCLETIMESPIN 1319
-#define IDC_HIDETIMESPIN 1320
-#define IDC_MULTITRAY 1321
-#define IDC_ALWAYSMULTI 1322
-#define IDC_SHOWICON 1323
-#define IDC_SHOWPROTO 1324
-#define IDC_SHOWSTATUS 1325
-#define IDC_EQUALSECTIONS 1326
-#define IDC_SHOWSIZEGRIP 1327
-#define IDC_USEOWNERDRAW 1328
-#define IDC_SHOWSBAR 1329
-#define IDC_RIGHTMIRANDA 1330
-#define IDC_RIGHTSTATUS 1331
-#define IDC_ININAME 1333
-#define IDC_VIEWINI 1334
-#define IDC_SECURITYINFO 1335
-#define IDC_SETTINGNAME 1336
-#define IDC_NEWVALUE 1337
-#define IDC_WARNNOMORE 1338
-#define IDC_DELETE 1339
-#define IDC_RECYCLE 1340
-#define IDC_NEWNAME 1341
-#define IDC_MOVE 1342
-#define IDC_LEAVE 1343
-#define IDC_EXPERT 1346
-#define IDC_SORTBYNAME 1347
-#define IDC_STAUTOHIDESECS 1349
-#define IDC_STCLISTGROUP 1350
-#define IDC_DISABLEDRAGDROP 1351
-#define IDC_NOTEDITLABELS 1352
-#define IDC_SHOWSELALWAYS 1353
-#define IDC_TRACKSELECT 1354
-#define IDC_SHOWGROUPCOUNTS 1355
-#define IDC_HIDECOUNTSWHENEMPTY 1356
-#define IDC_DIVIDERONOFF 1357
-#define IDC_NOTNOTRANSLUCENTSEL 1358
-#define IDC_LINEWITHGROUPS 1359
-#define IDC_QUICKSEARCHVISONLY 1360
-#define IDC_SORTGROUPSALPHA 1361
-#define IDC_NOTNOSMOOTHSCROLLING 1362
-#define IDC_BITMAP 1363
-#define IDC_STWINDOWGROUP 1364
-#define IDC_STATIC01 1365
-#define IDC_CATEGORYLIST 1366
-#define IDC_LOADICONS 1369
-#define IDC_STICONSGROUP 1371
-#define IDC_MSGICON 1375
-#define IDC_URLICON 1376
-#define IDC_STNOPAGE 1377
-#define IDC_STCHECKMARKS 1380
-#define IDC_STSAMETEXT 1382
-#define IDC_STASTEXT 1383
-#define IDC_STSIZETEXT 1384
-#define IDC_STCOLOURTEXT 1385
-#define IDC_STHORZBAR 1386
-#define IDC_MIRANDA 1388
-#define IDC_STATUSBAR 1389
-#define IDC_PROTOIDGROUP 1392
-#define IDC_BYPROTOID 1393
-#define IDC_PROTOID 1394
-#define IDC_EMAILGROUP 1395
-#define IDC_BYEMAIL 1396
-#define IDC_STNAMENICK 1397
-#define IDC_NAMEGROUP 1398
-#define IDC_BYNAME 1399
-#define IDC_STNAMEFIRST 1400
-#define IDC_STNAMELAST 1401
-#define IDC_ADVANCEDGROUP 1402
-#define IDC_BYADVANCED 1403
-#define IDC_ADVANCED 1404
-#define IDC_STSIMPLERIGHT 1440
-#define IDC_NETLIBUSERS 1443
-#define IDC_STOFTENPORT 1445
-#define IDC_STATIC51 1446
-#define IDC_STATIC52 1447
-#define IDC_STATIC43 1448
-#define IDC_LOGOPTIONS 1449
-#define IDC_PORTSRANGE 1450
-#define IDC_TOCONSOLE 1451
-#define IDC_STATIC53 1451
-#define IDC_SHOWCONSOLEATSTART 1452
-#define IDC_PORTSRANGEO 1452
-#define IDC_STATIC54 1453
-#define IDC_SHOWCONSOLE 1454
-#define IDC_TOOUTPUTDEBUGSTRING 1455
-#define IDC_TOFILE 1456
-#define IDC_CLEARCONSOLE 1457
-#define IDC_RUNATSTART 1458
-#define IDC_DUMPSENT 1464
-#define IDC_DUMPPROXY 1466
-#define IDC_TEXTDUMPS 1467
-#define IDC_AUTODETECTTEXT 1468
-#define IDC_TIMEFORMAT 1469
-#define IDC_FILENAMEBROWSE 1470
-#define IDC_SHOWTHISDLGATSTART 1471
-#define IDC_FILEDIRBROWSE 1475
-#define IDC_ALLFILESGROUP 1476
-#define IDC_SCANCMDLINEBROWSE 1476
-#define IDC_ALLTRANSFERRED 1477
-#define IDC_OPENFOLDER 1478
-#define IDC_OPENFILE 1479
-#define IDC_TOTALSIZE 1480
-#define IDC_APPENDNICKTODIR 1483
-#define IDC_AUTOACCEPT 1484
-#define IDC_SCANCMDLINE 1485
-#define IDC_WARNBEFOREOPENING 1488
-#define IDC_SCANDURINGDL 1489
-#define IDC_SCANAFTERDL 1490
-#define IDC_NOSCANNER 1491
-#define IDC_ST_CMDLINE 1492
-#define IDC_ST_CMDLINEHELP 1493
-#define IDC_PROPERTIES 1496
-#define IDC_RESUME 1497
-#define IDC_EXISTINGICON 1499
-#define IDC_RESUMEALL 1500
-#define IDC_OVERWRITE 1501
-#define IDC_OVERWRITEALL 1502
-#define IDC_SKIP 1503
-#define IDC_EXISTINGSIZE 1506
-#define IDC_EXISTINGDATE 1507
-#define IDC_EXISTINGTYPE 1508
-#define IDC_NEWICON 1509
-#define IDC_NEWSIZE 1510
-#define IDC_NEWDATE 1511
-#define IDC_NEWTYPE 1512
-#define IDC_SAVEAS 1513
-#define IDC_ASK 1516
-#define IDC_RENAME 1519
-#define IDC_VIRUSSCANNERGROUP 1520
-#define IDC_HIDE 1534
-#define IDC_TOPLINE 1535
-#define IDC_GPLBTN 1536
-#define IDC_MAIL 1536
-#define IDC_MYHANDLE 1540
-#define IDC_GROUP 1541
-#define IDC_ADDED 1542
-#define IDC_AUTH 1543
-#define IDC_PLUGINSTATIC1 1559
-#define IDC_DELETEHISTORY 1560
-#define IDC_HOTKEYURLSTR 1567
-#define IDC_SETNASTR 1568
-#define IDC_AAUTHOR 1569
-#define IDC_AHOMEPAGE 1570
-#define IDC_AVERSION 1571
-#define IDC_ACOPYRIGHT 1572
-#define IDC_ADESCRIPTION 1573
-#define IDC_PLUGINENABLE 1574
-#define IDC_AUTHREQ 1577
-#define IDC_AUTHGB 1578
-#define IDC_BRINGTOFRONT 1579
-#define IDC_PROTOCOL 1580
-#define IDC_CONTRIBLINK 1586
-#define IDC_HOMELINK 1587
-#define IDC_SUPPORTLINK 1588
-#define IDC_DEVS 1589
-#define IDC_GPL 1590
-#define IDC_LOGO 1591
-#define IDC_PROTOCOLORDER 1591
-#define IDC_PROTOCOLORDERWARNING 1592
-#define IDC_CREDITSTEXT 1595
-#define IDC_WSLOCK 1599
-#define IDC_BLINKTIME 1607
-#define IDC_BLINKSPIN 1608
-#define IDC_DISABLEBLINK 1609
-#define IDC_IDLE 1610
-#define IDC_SBPANELBEVEL 1611
-#define IDC_META 1611
-#define IDC_DROPSHADOW 1612
-#define IDC_METADBLCLK 1612
-#define IDC_NOSCROLLBAR 1613
-#define IDC_METASUBEXTRA 1614
-#define IDC_METASUBEXTRA_IGN 1615
-#define IDC_METASUB_HIDEOFFLINE 1616
-#define IDC_BUTTON1 1633
-#define IDC_IDLECHECK 1636
-#define IDC_IDLEONWINDOWS 1637
-#define IDC_IDLEONMIRANDA 1638
-#define IDC_IDLEUSEGLI 1639
-#define IDC_SCREENSAVER 1642
-#define IDC_LOCKED 1643
-#define IDC_IDLESHORT 1644
-#define IDC_IDLELONG 1645
-#define IDC_IDLE1STTIME 1646
-#define IDC_IDLE2NDTIME 1647
-#define IDC_IDLEPRIVATE 1649
-#define IDC_AASTATUS 1650
-#define IDC_AASHORTIDLE 1651
-#define IDC_AALONGSTATUS 1652
-#define IDC_AALONGIDLE 1656
-#define IDC_NOOFFLINEMOVE 1657
-#define IDC_HOTKEYTREE 1657
-#define IDC_LOCATION 1659
-#define IDC_SGROUP 1660
-#define IDC_SLOC 1661
-#define IDC_ONDESKTOP 1662
-#define IDC_SETHOTKEY 1759
-#define IDC_HKTITLE 1760
-#define IDC_CHECK1 1761
-#define IDC_USECONNECTINGICON 1761
-#define IDC_BKGRLIST 1762
-#define IDC_BC_STATIC 1763
-#define IDC_SC_STATIC 1764
-#define IDD_OPT_GENMENU 11267
-#define IDC_MENUITEMS 11710
-#define IDC_MENUOBJECTS 11711
-#define IDC_NOTSUPPORTWARNING 11712
-#define IDC_INSERTSEPARATOR 11715
-#define IDC_GENMENU_SERVICE 11716
-#define IDC_GENMENU_CUSTOMNAME 11717
-#define IDC_GENMENU_SET 11718
-#define IDC_GENMENU_SET2 11719
-#define IDC_GENMENU_DEFAULT 11719
-#define IDC_ICONBLINK 11720
-#define IDI_SEARCHALL 32548
-#define ID_ICQ_EXIT 40001
-#define IDM_COPY 40001
-#define ID_RESET 40002
-#define POPUP_HIDEEMPTYGROUPS 40003
-#define POPUP_NEWSUBGROUP 40004
-#define POPUP_HIDEOFFLINE 40005
-#define POPUP_GROUPHIDEOFFLINE 40006
-#define POPUP_HIDEOFFLINEROOT 40007
-#define POPUP_DISABLEGROUPS 40008
-#define IDC_SENDMESSAGE 40009
-#define IDM_COPYALL 40011
-#define IDM_SELECTALL 40012
-#define IDM_CLEAR 40013
-#define IDM_OPENNEW 40014
-#define IDM_OPENEXISTING 40015
-#define IDM_COPYLINK 40016
-#define POPUP_HIDEMIRANDA 40017
-#define ID_TRAY_HIDE 40038
-#define ID_TRAY_EXIT 40040
-#define POPUP_NEWGROUP 40050
-#define POPUP_RENAMEGROUP 40052
-#define POPUP_DELETEGROUP 40053
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 347
-#define _APS_NEXT_COMMAND_VALUE 40018
-#define _APS_NEXT_CONTROL_VALUE 1763
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/plugins/Clist_mw/src/stdafx.cpp b/plugins/Clist_mw/src/stdafx.cpp
deleted file mode 100644
index 0edf9e36e6..0000000000
--- a/plugins/Clist_mw/src/stdafx.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Copyright (C) 2012-14 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 <http://www.gnu.org/licenses/>.
-*/
-
-#include "commonheaders.h" \ No newline at end of file