summaryrefslogtreecommitdiff
path: root/plugins/IgnoreState
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
commit48540940b6c28bb4378abfeb500ec45a625b37b6 (patch)
tree2ef294c0763e802f91d868bdef4229b6868527de /plugins/IgnoreState
parent5c350913f011e119127baeb32a6aedeb4f0d33bc (diff)
initial commit
git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/IgnoreState')
-rw-r--r--plugins/IgnoreState/Version.h28
-rw-r--r--plugins/IgnoreState/Version.rc40
-rw-r--r--plugins/IgnoreState/commonheaders.h115
-rw-r--r--plugins/IgnoreState/docs/IgnoreState-readme.txt41
-rw-r--r--plugins/IgnoreState/docs/ignore_state.txt1
-rw-r--r--plugins/IgnoreState/icons/ignore_full.icobin0 -> 318 bytes
-rw-r--r--plugins/IgnoreState/icons/ignore_message.icobin0 -> 2806 bytes
-rw-r--r--plugins/IgnoreState/icons/ignore_partial.icobin0 -> 318 bytes
-rw-r--r--plugins/IgnoreState/ignore.rc140
-rw-r--r--plugins/IgnoreState/ignore_10.sln25
-rw-r--r--plugins/IgnoreState/ignore_10.vcxproj221
-rw-r--r--plugins/IgnoreState/ignore_10.vcxproj.filters64
-rw-r--r--plugins/IgnoreState/ignore_9.sln19
-rw-r--r--plugins/IgnoreState/ignore_9.vcproj445
-rw-r--r--plugins/IgnoreState/main.cpp330
-rw-r--r--plugins/IgnoreState/options.cpp281
-rw-r--r--plugins/IgnoreState/resource.h27
17 files changed, 1777 insertions, 0 deletions
diff --git a/plugins/IgnoreState/Version.h b/plugins/IgnoreState/Version.h
new file mode 100644
index 0000000000..414bfcbb0c
--- /dev/null
+++ b/plugins/IgnoreState/Version.h
@@ -0,0 +1,28 @@
+#define __MAJOR_VERSION 0
+#define __MINOR_VERSION 0
+#define __RELEASE_NUM 3
+#define __BUILD_NUM 0
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+#define __FILEVERSION_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
+
+#define __STRINGIFY_IMPL(x) #x
+#define __STRINGIFY(x) __STRINGIFY_IMPL(x)
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_DOTS)
+
+#ifdef _UNICODE
+#if defined(WIN64) || defined(_WIN64)
+ #define __PLUGIN_NAME "IgnoreState (Unicode x64)"
+#else
+ #define __PLUGIN_NAME "IgnoreState (Unicode)"
+#endif
+#else
+ #define __PLUGIN_NAME "IgnoreState"
+#endif
+#define __INTERNAL_NAME "IgnoreState"
+#define __FILENAME "IgnoreState.dll"
+#define __DESCRIPTION "Show ignore state of contact in contacts list."
+#define __AUTHOR "Kildor"
+#define __AUTHOREMAIL "kostia@ngs.ru"
+#define __AUTHORWEB "http://kildor.miranda.im/"
+#define __COPYRIGHT "© 2009-2010 Kostia Romanov"
diff --git a/plugins/IgnoreState/Version.rc b/plugins/IgnoreState/Version.rc
new file mode 100644
index 0000000000..2b1aaa9768
--- /dev/null
+++ b/plugins/IgnoreState/Version.rc
@@ -0,0 +1,40 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "afxres.h"
+#include "version.h"
+
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#endif //_WIN32
+
+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 "FileVersion", __FILEVERSION_DOTS
+ VALUE "InternalName", __PLUGIN_NAME
+ VALUE "LegalCopyright", __COPYRIGHT
+ VALUE "OriginalFilename", __FILENAME
+ VALUE "ProductName", __PLUGIN_NAME
+ VALUE "ProductVersion", __FILEVERSION_DOTS
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
diff --git a/plugins/IgnoreState/commonheaders.h b/plugins/IgnoreState/commonheaders.h
new file mode 100644
index 0000000000..e76a54ad55
--- /dev/null
+++ b/plugins/IgnoreState/commonheaders.h
@@ -0,0 +1,115 @@
+/*
+ IgnoreState plugin for Miranda-IM (www.miranda-im.org)
+ (c) 2010 by Kildor
+
+ 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 COMMHEADERS_H
+#define COMMHEADERS_H
+
+#define MIRANDA_VER 0x0900
+#define MIRANDA_CUSTOM_LP
+//#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+
+#define _WIN32_WINNT 0x0501
+
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x0501
+#endif
+
+
+//needed by m_utils.h
+#include <stdio.h>
+
+// needed by m_icolib.h > r9256
+#include <stddef.h>
+
+
+//Miranda API headers
+#include <windows.h>
+#include <win2k.h>
+#include <commctrl.h>
+#include <newpluginapi.h>
+#include <m_database.h>
+#include <m_system.h>
+//#include <m_protocols.h>
+#include <m_utils.h>
+#include <m_ignore.h>
+#include <m_clist.h>
+#include <m_skin.h>
+#include <m_options.h>
+#include <m_langpack.h>
+#include <m_icolib.h>
+#include "resource.h"
+#include "Version.h"
+
+//external SDK headers
+#include <m_cluiframes.h>
+#include <m_updater.h>
+#include <m_extraicons.h>
+
+static const int DefaultSlot = EXTRA_ICON_PROTO;
+#define MODULENAME "IgnoreState"
+
+/* 3f6acec5-df0e-4d33-a272-e3630addb6c8 */
+#define MIID_IGNORESRATE {0x3f6acec5, 0xdf0e, 0x4d33, {0xa2, 0x72, 0xe3, 0x63, 0x0a, 0xdd, 0xb6, 0xc8}}
+
+static struct
+{
+ TCHAR* szDescr;
+ char* szName;
+ int defIconID;
+ HANDLE hIconLibItem;
+} iconList[] =
+{
+ { LPGENT( "Full Ignore" ), "ignore_full", IDI_IFULL },
+ { LPGENT( "Partial Ignore" ), "ignore_part", IDI_IPART },
+ { LPGENT( "Message Ignore" ), "ignore_mess", IDI_IMESS },
+};
+
+typedef struct {
+ TCHAR* name;
+ int type;
+ int icon;
+ bool filtered;
+} IGNOREITEMS;
+
+static IGNOREITEMS ii[] = {
+ { LPGENT("All"), IGNOREEVENT_ALL, SKINICON_OTHER_FILLEDBLOB },
+ { LPGENT("Messages"), IGNOREEVENT_MESSAGE, SKINICON_EVENT_MESSAGE },
+ { LPGENT("URL"), IGNOREEVENT_URL, SKINICON_EVENT_URL },
+ { LPGENT("Files"), IGNOREEVENT_FILE, SKINICON_EVENT_FILE },
+ { LPGENT("User Online"), IGNOREEVENT_USERONLINE, SKINICON_OTHER_USERONLINE },
+ { LPGENT("Authorization"), IGNOREEVENT_AUTHORIZATION, SKINICON_OTHER_MIRANDA },
+ { LPGENT("You Were Added"), IGNOREEVENT_YOUWEREADDED, SKINICON_OTHER_ADDCONTACT },
+ { LPGENT("Typing Notify"), IGNOREEVENT_TYPINGNOTIFY, SKINICON_OTHER_TYPING }
+};
+
+static int isExtraiconsUsed = 0;
+static byte bUseMirandaSettings;
+
+extern HINSTANCE g_hInst;
+extern int onExtraImageApplying(WPARAM wParam, LPARAM lParam);
+extern int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam);
+extern int onOptInitialise(WPARAM wParam, LPARAM lParam);
+extern BOOL checkState(int type);
+extern VOID fill_filter();
+extern HANDLE hExtraIcon;
+extern IconExtraColumn g_IECAuth, g_IECGrant, g_IECAuthGrant, g_IECClear;
+extern INT clistIcon;
+
+#endif //COMMHEADERS_H
diff --git a/plugins/IgnoreState/docs/IgnoreState-readme.txt b/plugins/IgnoreState/docs/IgnoreState-readme.txt
new file mode 100644
index 0000000000..633e7d5c26
--- /dev/null
+++ b/plugins/IgnoreState/docs/IgnoreState-readme.txt
@@ -0,0 +1,41 @@
+IgnoreState plugin for Miranda IM (http://miranda-im.org)
+Version: 0.0.3.0 (c) 2009 Kildor, 2010 Mataes.
+
+
+This plugin intended to show an icon in front of contacts which are
+ignored. Supported different icons for full ignore, partial ignore, ignore
+messages. User can choose to ignore some types of ignore.
+
+
+
+I would like to say thanks to:
+Thief for his Authstate plugin that was base for this plugin.
+FYR for his clist_modern
+
+
+Changes:
+
+v0.0.3.0 (made by Mataes)
+- Unicode version of plugin
+- x64 support
+- clean-ups and fixes.
+
+v0.0.2.2
+- Translation fixes.
+- Options dialog fixes.
+
+v0.0.2.1
+- fix untranslatable strings in options.
+
+v0.0.2.0
+- add support for Extraicons plugin by pescuma.
+
+v0.0.1.1
+- add "Use Miranda ignore settings for All Contacts" setting.
+
+v0.0.1.0
+- public release
+
+
+Plugin is released under GPL licence.
+http://www.gnu.org/copyleft/gpl.html \ No newline at end of file
diff --git a/plugins/IgnoreState/docs/ignore_state.txt b/plugins/IgnoreState/docs/ignore_state.txt
new file mode 100644
index 0000000000..8f9b5ddc1b
--- /dev/null
+++ b/plugins/IgnoreState/docs/ignore_state.txt
@@ -0,0 +1 @@
+IgnoreState 0.0.3.0 \ No newline at end of file
diff --git a/plugins/IgnoreState/icons/ignore_full.ico b/plugins/IgnoreState/icons/ignore_full.ico
new file mode 100644
index 0000000000..52ebdde428
--- /dev/null
+++ b/plugins/IgnoreState/icons/ignore_full.ico
Binary files differ
diff --git a/plugins/IgnoreState/icons/ignore_message.ico b/plugins/IgnoreState/icons/ignore_message.ico
new file mode 100644
index 0000000000..3476ef41e9
--- /dev/null
+++ b/plugins/IgnoreState/icons/ignore_message.ico
Binary files differ
diff --git a/plugins/IgnoreState/icons/ignore_partial.ico b/plugins/IgnoreState/icons/ignore_partial.ico
new file mode 100644
index 0000000000..59677eec84
--- /dev/null
+++ b/plugins/IgnoreState/icons/ignore_partial.ico
Binary files differ
diff --git a/plugins/IgnoreState/ignore.rc b/plugins/IgnoreState/ignore.rc
new file mode 100644
index 0000000000..1e1ac77e05
--- /dev/null
+++ b/plugins/IgnoreState/ignore.rc
@@ -0,0 +1,140 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Russian resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
+#ifdef _WIN32
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+#pragma code_page(1251)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_IFULL ICON "icons\\ignore_full.ico"
+IDI_IPART ICON "icons\\ignore_partial.ico"
+IDI_IMESS ICON "icons\\ignore_message.ico"
+#endif // Russian resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_RATE_OPT DIALOGEX 0, 0, 314, 240
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ COMBOBOX IDC_ADVICON,84,33,102,81,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,WS_EX_CLIENTEDGE
+ GROUPBOX "Plugin settings",IDC_STATIC,17,17,278,207
+ RTEXT "Use",IDC_STATIC,28,33,49,8
+ LTEXT "slot to draw the icon",IDC_STATIC,192,33,92,8
+ LTEXT "Warning: classic contact list plugin doesn`t have ability to use extraicons",
+ IDC_NOTICE,54,51,230,20,NOT WS_VISIBLE
+ LTEXT "Filtered events:",IDC_STATIC,54,70,113,10
+ CONTROL "",IDC_FILTER,"SysTreeView32",TVS_DISABLEDRAGDROP |
+ TVS_NOTOOLTIPS | TVS_CHECKBOXES | WS_BORDER | WS_TABSTOP,
+ 84,85,102,90
+ CONTROL "Use Miranda ignore settings for All Contacts",
+ IDC_IGNORE_IGNOREALL,"Button",BS_AUTOCHECKBOX | BS_TOP |
+ BS_MULTILINE | WS_TABSTOP,84,182,200,25
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_RATE_OPT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 307
+ VERTGUIDE, 17
+ VERTGUIDE, 54
+ VERTGUIDE, 84
+ VERTGUIDE, 186
+ VERTGUIDE, 192
+ VERTGUIDE, 284
+ VERTGUIDE, 295
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 233
+ HORZGUIDE, 17
+ HORZGUIDE, 33
+ HORZGUIDE, 70
+ HORZGUIDE, 224
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/plugins/IgnoreState/ignore_10.sln b/plugins/IgnoreState/ignore_10.sln
new file mode 100644
index 0000000000..250a6ba7c0
--- /dev/null
+++ b/plugins/IgnoreState/ignore_10.sln
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IgnoreState", "ignore_10.vcxproj", "{214F211F-1A2B-4F79-8993-B8DEE2EF7441}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug Unicode|Win32 = Debug Unicode|Win32
+ Debug Unicode|x64 = Debug Unicode|x64
+ Release Unicode|Win32 = Release Unicode|Win32
+ Release Unicode|x64 = Release Unicode|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|x64.ActiveCfg = Debug Unicode|x64
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|x64.Build.0 = Debug Unicode|x64
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|Win32.ActiveCfg = Release Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|Win32.Build.0 = Release Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|x64.ActiveCfg = Release Unicode|x64
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|x64.Build.0 = Release Unicode|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/plugins/IgnoreState/ignore_10.vcxproj b/plugins/IgnoreState/ignore_10.vcxproj
new file mode 100644
index 0000000000..42b1bd95b8
--- /dev/null
+++ b/plugins/IgnoreState/ignore_10.vcxproj
@@ -0,0 +1,221 @@
+<?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 Unicode|Win32">
+ <Configuration>Debug Unicode</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug Unicode|x64">
+ <Configuration>Debug Unicode</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Unicode|Win32">
+ <Configuration>Release Unicode</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Unicode|x64">
+ <Configuration>Release Unicode</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>IgnoreState</ProjectName>
+ <ProjectGuid>{214F211F-1A2B-4F79-8993-B8DEE2EF7441}</ProjectGuid>
+ <RootNamespace>ignore_state</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|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 Unicode|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" />
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" />
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <BaseAddress>0x22620000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <BaseAddress>0x22620000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <AdditionalIncludeDirectories>../../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x22620000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Command>
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <AdditionalIncludeDirectories>../../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x22620000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ </Link>
+ <PostBuildEvent>
+ <Command>
+ </Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="main.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="options.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="commonheaders.h" />
+ <ClInclude Include="resource.h" />
+ <ClInclude Include="Version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="ignore.rc" />
+ <ResourceCompile Include="Version.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="icons\ignore_full.ico" />
+ <None Include="icons\ignore_message.ico" />
+ <None Include="icons\ignore_partial.ico" />
+ <None Include="docs\ignore_state.txt" />
+ <None Include="docs\IgnoreState-readme.txt" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/IgnoreState/ignore_10.vcxproj.filters b/plugins/IgnoreState/ignore_10.vcxproj.filters
new file mode 100644
index 0000000000..afeeae6572
--- /dev/null
+++ b/plugins/IgnoreState/ignore_10.vcxproj.filters
@@ -0,0 +1,64 @@
+<?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>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+ </Filter>
+ <Filter Include="Docs">
+ <UniqueIdentifier>{ff5fe82d-72b5-4a1c-b4a0-8741f7b22c5a}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="options.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="commonheaders.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="ignore.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="Version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="icons\ignore_full.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="icons\ignore_message.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="icons\ignore_partial.ico">
+ <Filter>Resource Files</Filter>
+ </None>
+ <None Include="docs\ignore_state.txt">
+ <Filter>Docs</Filter>
+ </None>
+ <None Include="docs\IgnoreState-readme.txt">
+ <Filter>Docs</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/IgnoreState/ignore_9.sln b/plugins/IgnoreState/ignore_9.sln
new file mode 100644
index 0000000000..da27d0ee93
--- /dev/null
+++ b/plugins/IgnoreState/ignore_9.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IgnoreState", "ignore_9.vcproj", "{214F211F-1A2B-4F79-8993-B8DEE2EF7441}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug Unicode|Win32 = Debug Unicode|Win32
+ Release Unicode|Win32 = Release Unicode|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|Win32.ActiveCfg = Release Unicode|Win32
+ {214F211F-1A2B-4F79-8993-B8DEE2EF7441}.Release Unicode|Win32.Build.0 = Release Unicode|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/plugins/IgnoreState/ignore_9.vcproj b/plugins/IgnoreState/ignore_9.vcproj
new file mode 100644
index 0000000000..c4202ecd83
--- /dev/null
+++ b/plugins/IgnoreState/ignore_9.vcproj
@@ -0,0 +1,445 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="IgnoreState"
+ ProjectGUID="{214F211F-1A2B-4F79-8993-B8DEE2EF7441}"
+ RootNamespace="ignore_state"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include;../ExternalAPI"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="Commonheaders.h"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ BaseAddress="0x22620000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../include;../ExternalAPI"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;_CRT_SECURE_NO_WARNINGS"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="Commonheaders.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x22620000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug Unicode|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../include;../ExternalAPI"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="Commonheaders.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ BaseAddress="0x22620000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../include;../ExternalAPI"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;AUTHSTATE_EXPORTS;_CRT_SECURE_NO_WARNINGS"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="Commonheaders.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x22620000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\main.cpp"
+ >
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\options.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\commonheaders.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Version.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\ignore.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ignore_full.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ignore_message.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\icons\ignore_partial.ico"
+ >
+ </File>
+ <File
+ RelativePath=".\Version.rc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Docs"
+ >
+ <File
+ RelativePath=".\docs\ignore_state.txt"
+ >
+ </File>
+ <File
+ RelativePath=".\docs\IgnoreState-readme.txt"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/IgnoreState/main.cpp b/plugins/IgnoreState/main.cpp
new file mode 100644
index 0000000000..ac75d51e8a
--- /dev/null
+++ b/plugins/IgnoreState/main.cpp
@@ -0,0 +1,330 @@
+/*
+ IgnoreState plugin for Miranda-IM (www.miranda-im.org)
+ (c) 2010 by Kildor
+
+ 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;
+PLUGINLINK *pluginLink;
+HANDLE hHookModulesLoaded = NULL, hSystemOKToExit = NULL, hOptInitialise = NULL, hIcoLibIconsChanged = NULL;
+HANDLE hHookExtraIconsRebuild = NULL, hHookExtraIconsApply = NULL, hContactSettingChanged = NULL;
+HANDLE hPrebuildContactMenu = NULL;
+HANDLE hExtraIcon = NULL;
+int hLangpack;
+struct MM_INTERFACE mmi;
+
+INT currentFilter = 0;
+//static int bUseMirandaSettings = 0;
+
+IconExtraColumn g_IECIgnoreFull = {0};
+IconExtraColumn g_IECIgnorePart = {0};
+IconExtraColumn g_IECIgnoreMess = {0};
+IconExtraColumn g_IECClear = {0};
+
+
+
+
+INT clistIcon = 0; //Icon slot to use
+//DWORD dMask = IGNOREEVENT_USERONLINE; // by default hide online notification
+
+//DWORD dIgnore = 0x0;
+
+PLUGININFOEX pluginInfo={
+ sizeof(PLUGININFOEX),
+ __PLUGIN_NAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESCRIPTION,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE,
+ 0,
+ {0xa6872bcd, 0xf2a1, 0x41b8, {0xb2, 0xf1, 0xdd, 0x7c, 0xec, 0x05, 0x57, 0x34}}
+ // a6872bcd-f2a1-41b8-b2f1-dd7cec055734
+};
+
+extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{
+ g_hInst = hinstDLL;
+ return TRUE;
+}
+
+// ïëàãèíèíôî
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ if (mirandaVersion < PLUGIN_MAKE_VERSION(0, 8, 0, 29))
+ {
+ MessageBox( NULL, TranslateT("The plugin requires Miranda IM 0.8.0.29 or later for correct applying its preferences."), TranslateT("IgnoreState"),
+ MB_OK|MB_ICONWARNING|MB_SETFOREGROUND|MB_TOPMOST );
+ }
+
+ return &pluginInfo;
+}
+
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ static const MUUID interfaces[] = {MIID_IGNORESRATE, MIID_LAST};
+ return interfaces;
+}
+
+int onSystemOKToExit(WPARAM wParam,LPARAM lParam)
+{
+ UnhookEvent(hHookModulesLoaded);
+ UnhookEvent(hHookExtraIconsRebuild);
+ UnhookEvent(hHookExtraIconsApply);
+ UnhookEvent(hOptInitialise);
+ UnhookEvent(hSystemOKToExit);
+ if (hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged);
+ if (hContactSettingChanged)
+ UnhookEvent(hContactSettingChanged);
+
+ return 0;
+}
+
+
+inline BOOL checkState(int type)
+{
+ return ((currentFilter>>(type-1))&1);
+}
+
+
+INT_PTR isIgnored(HANDLE hContact, int type)
+{
+ int i = 0, all = 0, filtered = 0;
+
+ if (type == IGNOREEVENT_ALL)
+ {
+ int cii = SIZEOF(ii);
+ for (i = 1; i < cii; i++)
+ {
+ if (isIgnored(hContact, ii[i].type))
+ {
+// checkState(ii[i].type) ? filtered++ : all++;
+ ii[i].filtered ? filtered++ : all++;
+ }
+ }
+ return (all+filtered == cii-1) ? 1 : (all > 0 ? -1 : 0) ;
+ }
+ else
+ return CallService(MS_IGNORE_ISIGNORED, (WPARAM)hContact, (LPARAM)type);
+}
+
+int onExtraImageApplying(WPARAM wParam, LPARAM lParam)
+{
+ HANDLE hContact = (HANDLE)wParam;
+ int ignore = isIgnored(hContact, IGNOREEVENT_ALL);
+ if (hExtraIcon != NULL)
+ {
+ if (ignore == 1)
+ {
+ ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_full");
+ }
+ else if (ignore == 0)
+ {
+ ExtraIcon_SetIcon(hExtraIcon, hContact, "");
+ }
+ else if (isIgnored((HANDLE)wParam, IGNOREEVENT_MESSAGE))
+ {
+ ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_mess");
+ }
+ else
+ {
+ ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_part");
+ }
+ }
+ else
+ {
+ if (ignore == 1)
+ {
+ CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnoreFull);
+ }
+ else if (ignore == 0)
+ {
+ CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECClear);
+ }
+ else if (isIgnored((HANDLE)wParam, IGNOREEVENT_MESSAGE))
+ {
+ CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnoreMess);
+ }
+ else
+ {
+ CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnorePart);
+ }
+ }
+ return 0;
+}
+
+
+int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam)
+{
+ g_IECIgnoreMess.cbSize = sizeof(IconExtraColumn);
+ g_IECIgnoreMess.ColumnType = clistIcon;
+ g_IECIgnorePart.cbSize = sizeof(IconExtraColumn);
+ g_IECIgnorePart.ColumnType = clistIcon;
+ g_IECIgnoreFull.cbSize = sizeof(IconExtraColumn);
+ g_IECIgnoreFull.ColumnType = clistIcon;
+
+ if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON))
+ {
+ g_IECIgnoreMess.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_mess"), (LPARAM)0);
+ g_IECIgnorePart.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_part"), (LPARAM)0);
+ g_IECIgnoreFull.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_full"), (LPARAM)0);
+ }
+ return 0;
+}
+
+static VOID init_icolib (void)
+{
+ SKINICONDESC sid = {0};
+ ZeroMemory(&sid, sizeof(sid));
+ TCHAR tszFile[MAX_PATH];
+ sid.cbSize = sizeof(sid);
+ sid.flags = SIDF_ALL_TCHAR;
+ int i = 0;
+
+ sid.ptszSection = _T(MODULENAME);
+ GetModuleFileName(g_hInst, tszFile, MAX_PATH);
+ sid.ptszDefaultFile = tszFile;
+
+ for ( i = 0; i < SIZEOF(iconList); i++ ) {
+ sid.pszName = iconList[i].szName;
+ sid.ptszDescription = iconList[i].szDescr;
+ sid.iDefaultIndex = -iconList[i].defIconID;
+ iconList[i].hIconLibItem = (HANDLE) CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);
+ }
+// hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, onExtraImageListRebuild);
+}
+
+VOID fill_filter(void)
+{
+ bUseMirandaSettings = DBGetContactSettingByte(NULL, MODULENAME, "UseMirandaSettings", 0);
+
+ currentFilter = bUseMirandaSettings ? DBGetContactSettingDword(NULL, "Ignore", "Default1", 0) : DBGetContactSettingDword(NULL, MODULENAME, "Filter", 0x8);
+
+ int i = 0, cii = SIZEOF(ii);
+
+ for (; i< cii; i++)
+ {
+ if (checkState((ii[i].type)))
+ ii[i].filtered = true;
+ else
+ ii[i].filtered = false;
+ }
+}
+
+int onModulesLoaded(WPARAM wParam,LPARAM lParam)
+{
+ hOptInitialise = HookEvent(ME_OPT_INITIALISE, onOptInitialise);
+
+ //IcoLib support
+ init_icolib();
+ fill_filter();
+
+ hExtraIcon = ExtraIcon_Register("ignore", "IgnoreState", "ignore_full");
+
+ if (hExtraIcon != NULL)
+ {
+ // Set initial value for all contacts
+ HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
+ while (hContact != NULL)
+ {
+ onExtraImageApplying((WPARAM)hContact, NULL);
+ hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0);
+ }
+ }
+ else
+ {
+ hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, onExtraImageListRebuild);
+ hHookExtraIconsRebuild = HookEvent(ME_CLIST_EXTRA_LIST_REBUILD, onExtraImageListRebuild);
+ hHookExtraIconsApply = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, onExtraImageApplying);
+ onExtraImageListRebuild(0,0);
+ }
+
+
+ // Updater support
+ // switch off
+ if ( ServiceExists(MS_UPDATE_REGISTER))
+ {
+ Update update = {0};
+ char szVersion[16];
+
+ update.cbSize = sizeof(Update);
+
+ update.szComponentName = pluginInfo.shortName;
+ update.pbVersion = (BYTE *)CreateVersionString(pluginInfo.version, szVersion);
+ update.cpbVersion = lstrlenA((char *)update.pbVersion);
+
+ update.szUpdateURL = UPDATER_AUTOREGISTER;
+
+ // these are the three lines that matter - the archive, the page containing the version string, and the text (or data)
+ // before the version that we use to locate it on the page
+ // (note that if the update URL and the version URL point to standard file listing entries, the backend xml
+ // data will be used to check for updates rather than the actual web page - this is not true for beta urls)
+ update.szBetaUpdateURL = "http://kildor.miranda.im/miranda/ignore_state.zip";
+ update.szBetaVersionURL = "http://kildor.miranda.im/miranda/ignore_state.txt";
+ update.szBetaChangelogURL = "http://kildor.miranda.im/miranda/IgnoreState-readme.txt";
+ update.pbBetaVersionPrefix = (BYTE *)MODULENAME " ";
+ update.cpbBetaVersionPrefix = lstrlenA((char *)update.pbBetaVersionPrefix);
+
+ CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update);
+ }
+ return 0;
+}
+
+
+int onContactSettingChanged(WPARAM wParam,LPARAM lParam)
+{
+ DBCONTACTWRITESETTING *cws=(DBCONTACTWRITESETTING*)lParam;
+ if (!lstrcmpA(cws->szModule,"Ignore") & !lstrcmpA(cws->szSetting,"Mask1")) {
+ onExtraImageApplying(wParam, lParam);
+ }
+ if ((HANDLE)wParam ==0)
+ if (!lstrcmpA(cws->szModule,MODULENAME) & !lstrcmpA(cws->szSetting,"Filter") ||
+ bUseMirandaSettings && (!lstrcmpA(cws->szModule,"Ignore") & !lstrcmpA(cws->szSetting,"Default1"))
+ ) {
+ fill_filter();
+ }
+
+ return 0;
+}
+
+extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
+{
+ pluginLink=link;
+ mir_getLP(&pluginInfo);
+ mir_getMMI(&mmi);
+
+ hHookModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, onModulesLoaded);
+ hSystemOKToExit = HookEvent(ME_SYSTEM_OKTOEXIT,onSystemOKToExit);
+ hContactSettingChanged = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, onContactSettingChanged);
+
+ clistIcon = DBGetContactSettingByte(NULL, MODULENAME, "AdvancedIcon", DefaultSlot);
+
+ g_IECClear.cbSize = sizeof(IconExtraColumn);
+ g_IECClear.ColumnType = clistIcon;
+ g_IECClear.hImage = (HANDLE) -1;
+
+ return 0;
+}
+
+extern "C" int __declspec(dllexport) Unload(void)
+{
+ return 0;
+}
diff --git a/plugins/IgnoreState/options.cpp b/plugins/IgnoreState/options.cpp
new file mode 100644
index 0000000000..898facf914
--- /dev/null
+++ b/plugins/IgnoreState/options.cpp
@@ -0,0 +1,281 @@
+/*
+ IgnoreState plugin for Miranda-IM (www.miranda-im.org)
+ (c) 2010 by Kildor
+
+ 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 byte bUseAuthIcon, bUseGrantIcon, bContactMenuItem, bIconsForRecentContacts;
+
+//#define EXTRA_ICON_RES0 0 // only used by nicer
+//#define EXTRA_ICON_EMAIL 1
+//#define EXTRA_ICON_WEB 2
+//#define EXTRA_ICON_SMS 3
+//#define EXTRA_ICON_ADV1 4
+//#define EXTRA_ICON_ADV2 5
+//#define EXTRA_ICON_ADV3 6
+//#define EXTRA_ICON_CLIENT 7
+//#define EXTRA_ICON_ADV4 8
+//#define EXTRA_ICON_RES1 9 // only used by nicer
+//#define EXTRA_ICON_PROTO 9 // used by mwclist and modern
+//#define EXTRA_ICON_RES2 10 // only used by nicer
+//#define EXTRA_ICON_VISMODE 10 // only used by modern
+
+#define MS_SKINENG_DRAWICONEXFIX "SkinEngine/DrawIconEx_Fix"
+
+enum {
+ clist_none,
+ clist_modern,
+ clist_nicer
+};
+
+TCHAR* szAdvancedIconsModern[] = {
+ _T("E-mail"),
+ _T("Web page"),
+ _T("Phone/SMS"),
+ _T("Advanced #1"),
+ _T("Advanced #2"),
+ _T("Advanced #3"),
+ _T("Client"),
+ _T("Advanced #4"),
+ _T("Protocol"),
+ _T("Visibility/Chat activity")
+};
+//const int cAdvancedIconsModern = sizeof(szAdvancedIconsModern) / sizeof(szAdvancedIconsModern[0]);
+
+TCHAR* szAdvancedIconsNicer[] = {
+ _T("Reserved"),
+ _T("E-mail"),
+ _T("Homepage"),
+ _T("Telephone"),
+ _T("Advanced #1"),
+ _T("Advanced #2"),
+ _T("Client"),
+ _T("Advanced #3"),
+ _T("Advanced #4"),
+ _T("Reserved #1"),
+ _T("Reserved #2")
+ };
+//const int cAdvancedIconsNicer = sizeof(szAdvancedIconsNicer) / sizeof(szAdvancedIconsNicer[0]);
+
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ HIMAGELIST himlButtonIcons=NULL;
+ INT bInitializing = 0;
+ INT usedClist = clist_none;
+ INT cAdvancedIcons;
+ isExtraiconsUsed = ServiceExists(MS_EXTRAICON_REGISTER);
+// const char **szAdvancedIcons;
+ HWND hTree=GetDlgItem(hwndDlg,IDC_FILTER);
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ TranslateDialogDefault(hwndDlg);
+ bInitializing = 1;
+ fill_filter();
+ if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON))
+ {
+ if (hExtraIcon == NULL)
+ {
+ if (ServiceExists(MS_SKINENG_DRAWICONEXFIX))
+ { // modern?
+ cAdvancedIcons = SIZEOF(szAdvancedIconsModern);
+ usedClist = clist_modern;
+ }
+ else
+ {
+ if (ServiceExists("CLN/About"))
+ {
+ usedClist = clist_nicer;
+ cAdvancedIcons = SIZEOF(szAdvancedIconsNicer);
+ }
+ else
+ {
+ usedClist = clist_modern;
+ cAdvancedIcons = SIZEOF(szAdvancedIconsModern) - 1; // mw doesn`t have last modern extraicon
+ }
+ }
+ }
+ else
+ {
+ SendDlgItemMessage(hwndDlg,IDC_NOTICE, WM_SETTEXT,0,(LPARAM)TranslateT("Extraicons plugin is used, use Contact list > Extraicons for customize."));
+ ShowWindow(GetDlgItem(hwndDlg, IDC_NOTICE), SW_SHOW);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ADVICON), 0);
+ }
+ }
+ else
+ {
+ cAdvancedIcons = 0;
+// SendDlgItemMessage(hwndDlg,IDC_USED_CLIST, WM_SETTEXT,0,(LPARAM)_T("Your clist: classic"));
+ SendDlgItemMessage(hwndDlg,IDC_NOTICE, WM_SETTEXT,0,(LPARAM)TranslateT("Warning: classic contact list plugin doesn`t have ability to use extraicons"));
+ ShowWindow(GetDlgItem(hwndDlg, IDC_NOTICE), SW_SHOW);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ADVICON), 0);
+ }
+ if (usedClist != clist_none) {
+ for (int i = 0; i < cAdvancedIcons; i++)
+ {
+ SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_ADDSTRING, 0, (LPARAM) TranslateTS( usedClist==clist_modern ? szAdvancedIconsModern[i] : szAdvancedIconsNicer[i]));
+ }
+
+ if (usedClist == clist_modern )
+ SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_SETCURSEL, clistIcon-1, 0);
+ else
+ SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_SETCURSEL, clistIcon, 0);
+ }
+
+ SetWindowLong(hTree,GWL_STYLE,GetWindowLong(hTree,GWL_STYLE)|TVS_NOHSCROLL);
+ {
+ himlButtonIcons=ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32|ILC_MASK,2,2);
+ TreeView_SetImageList(hTree,himlButtonIcons,TVSIL_NORMAL);
+ }
+ TreeView_DeleteAllItems(hTree);
+
+ int i;
+ int cii = SIZEOF(ii);
+ for (i=2; i<cii; i++) // we don`t need it IGNORE_ALL and IGNORE_MESSAGE
+ {
+ TVINSERTSTRUCT tvis={0};
+ HTREEITEM hti;
+ int index=ImageList_AddIcon(himlButtonIcons, LoadSkinnedIcon(ii[i].icon));
+ tvis.hParent=NULL;
+ tvis.hInsertAfter=TVI_LAST;
+ tvis.item.mask=TVIF_PARAM|TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_STATE;
+ tvis.item.lParam=(LPARAM)(ii[i].type);
+ tvis.item.pszText=TranslateTS(ii[i].name);
+ tvis.item.iImage=tvis.item.iSelectedImage=index;
+ hti=TreeView_InsertItem(hTree,&tvis);
+ TreeView_SetCheckState(hTree, hti, checkState(ii[i].type));
+// TreeView_SetCheckState(hTree, hti, (bool)(ii[i].filtered || ii[0].filtered));
+ }
+
+ CheckDlgButton(hwndDlg, IDC_IGNORE_IGNOREALL, bUseMirandaSettings );
+ EnableWindow(GetDlgItem(hwndDlg, IDC_FILTER), !bUseMirandaSettings);
+ bInitializing = 0;
+ return TRUE;
+ }
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam)) {
+ case IDC_ADVICON:
+ {
+ if ((HIWORD(wParam) == EN_CHANGE) && (!bInitializing) || (HIWORD(wParam) == CBN_SELENDOK))
+ {
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+ break;
+ }
+ case IDC_IGNORE_IGNOREALL:
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_FILTER), !IsDlgButtonChecked(hwndDlg,IDC_IGNORE_IGNOREALL));
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ }
+ break;
+ }
+ case WM_NOTIFY:
+ {
+ switch (((LPNMHDR)lParam)->idFrom)
+ {
+ case 0:
+ {
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_APPLY:
+ {
+ if (usedClist==clist_none && hExtraIcon == NULL )
+ return TRUE;
+///////////
+ DWORD flags=0;
+ TVITEM tvi;
+ tvi.mask=TVIF_HANDLE|TBIF_LPARAM;
+ HWND hTree=GetDlgItem(hwndDlg,IDC_FILTER);
+ tvi.hItem=TreeView_GetRoot(hTree); //check ignore all
+ while(tvi.hItem)
+ {
+ TreeView_GetItem(hTree,&tvi);
+ if(TreeView_GetCheckState(hTree,tvi.hItem)) flags|=1<<(tvi.lParam-1);
+ tvi.hItem=TreeView_GetNextSibling(hTree,tvi.hItem);
+ }
+ DBWriteContactSettingDword(NULL, MODULENAME, "Filter", flags);
+
+ bUseMirandaSettings = IsDlgButtonChecked(hwndDlg,IDC_IGNORE_IGNOREALL) ? 1 : 0;
+ DBWriteContactSettingByte(NULL, MODULENAME, "UseMirandaSettings", bUseMirandaSettings);
+
+ fill_filter();
+//////////
+ if (hExtraIcon == NULL)
+ {
+ clistIcon = SendMessage(GetDlgItem(hwndDlg, IDC_ADVICON), CB_GETCURSEL, 0, 0);
+ if (usedClist == clist_modern )
+ clistIcon++;
+
+ //Store options values to DB
+ DBWriteContactSettingByte(NULL, MODULENAME, "AdvancedIcon", clistIcon);
+
+ HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
+ while (hContact)
+ {
+ CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)&g_IECClear);
+ hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
+ }
+ g_IECClear.ColumnType = clistIcon;
+ if (hExtraIcon == NULL)
+ onExtraImageListRebuild(0,0);
+ hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
+ while (hContact)
+ {
+ onExtraImageApplying((WPARAM)hContact,0);
+ hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
+ }
+ }
+ }
+ }
+ }
+ case IDC_FILTER:
+ if (((LPNMHDR)lParam)->code == NM_CLICK)
+ {
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+ }
+ }
+ case WM_DESTROY:
+ break;
+ }
+ return FALSE;
+}
+
+int onOptInitialise(WPARAM wParam, LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp;
+
+ ZeroMemory(&odp, sizeof(odp));
+ odp.cbSize = sizeof(odp);
+ odp.position = 0;
+ odp.hInstance = g_hInst;
+ odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
+ odp.ptszGroup = _T("Contact List");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_RATE_OPT);
+ odp.ptszTitle = _T(MODULENAME);
+ odp.pfnDlgProc = DlgProcOptions;
+ CallService(MS_OPT_ADDPAGE, wParam, (LPARAM) &odp);
+
+ return 0;
+}
diff --git a/plugins/IgnoreState/resource.h b/plugins/IgnoreState/resource.h
new file mode 100644
index 0000000000..810522778e
--- /dev/null
+++ b/plugins/IgnoreState/resource.h
@@ -0,0 +1,27 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by ignore.rc
+//
+#define IDD_RATE_OPT 9
+#define IDI_IFULL 101
+#define IDI_IPART 102
+#define IDI_IMESS 103
+#define IDC_ADVICON 1001
+#define IDC_NOTMODERN_WARNING 1010
+#define IDC_NOTICE 1010
+#define IDC_USED_CLIST 1011
+#define IDC_FILTER 1012
+#define IDC_TREE1 1016
+#define IDC_CHECK1 1019
+#define IDC_IGNORE_IGNOREALL 1019
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1020
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif