summaryrefslogtreecommitdiff
path: root/plugins/WhenWasIt/icons.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-06-02 19:15:39 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-06-02 19:15:39 +0000
commita8af2c147a524df5f48e81910331febf042b505f (patch)
treeae0b880797457fb65bf861b9efd43ca62bdecc79 /plugins/WhenWasIt/icons.cpp
parent1d043e03a80e9cc06a33f7c5b53ccf9d0885ca18 (diff)
projects cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@266 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/WhenWasIt/icons.cpp')
-rw-r--r--plugins/WhenWasIt/icons.cpp223
1 files changed, 223 insertions, 0 deletions
diff --git a/plugins/WhenWasIt/icons.cpp b/plugins/WhenWasIt/icons.cpp
new file mode 100644
index 0000000000..a366f9bf2c
--- /dev/null
+++ b/plugins/WhenWasIt/icons.cpp
@@ -0,0 +1,223 @@
+/*
+WhenWasIt (birthday reminder) plugin for Miranda IM
+
+Copyright © 2006 Cristian Libotean
+
+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 "icons.h"
+
+//HICON hiDlg = NULL;
+HICON hiMainMenu = NULL;
+HICON hiCheckMenu = NULL;
+HICON hiListMenu = NULL;
+HICON hiAddBirthdayContact = NULL;
+HICON hiRefreshUserDetails = NULL;
+
+HICON hiImportBirthdays = NULL;
+HICON hiExportBirthdays = NULL;
+
+const int cDTB = 10;
+HICON hiDTB[cDTB] = {NULL};
+HICON hiDTBMore = NULL;
+
+HANDLE hClistImages[cDTB + 1];
+
+HANDLE hWWIExtraIcons = (HANDLE) -1;
+
+#define GET_DTB_ICON(index) (hiDTB[index] = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DTB ## index)))
+
+int LoadIcons()
+{
+ //hiDlgIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_BIRTHDAYS_DLG));
+ hiCheckMenu = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_CHECK));
+ hiListMenu = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_LIST));
+ hiAddBirthdayContact = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ADD));
+ hiRefreshUserDetails = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_REFRESH_USERDETAILS));
+
+ hiImportBirthdays = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_IMPORT_BIRTHDAYS));
+ hiExportBirthdays = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EXPORT_BIRTHDAYS));
+
+ GET_DTB_ICON(0);
+ GET_DTB_ICON(1);
+ GET_DTB_ICON(2);
+ GET_DTB_ICON(3);
+ GET_DTB_ICON(4);
+ GET_DTB_ICON(5);
+ GET_DTB_ICON(6);
+ GET_DTB_ICON(7);
+ GET_DTB_ICON(8);
+ GET_DTB_ICON(9);
+ hiDTBMore = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_DTBMORE));
+
+ AddIcons();
+ GetIcons();
+
+ if (ServiceExists(MS_EXTRAICON_REGISTER))
+ {
+ hWWIExtraIcons = ExtraIcon_Register("WhenWasIt", Translate("WhenWasIt birthday reminder"), "MenuCheck", OnExtraIconListRebuild, OnExtraImageApply);
+ }
+
+ return 0;
+}
+
+int AddIcon(HICON icon, char *name, char *description)
+{
+ SKINICONDESC sid = {0};
+ sid.cbSize = sizeof(SKINICONDESC);
+ sid.pszSection = "WhenWasIt";
+ sid.cx = sid.cy = 16;
+ sid.pszDescription = description;
+ sid.pszName = name;
+ sid.hDefaultIcon = icon;
+
+ return CallService(MS_SKIN2_ADDICON, 0, (LPARAM) &sid);
+}
+
+int AddIcons()
+{
+ if (ServiceExists(MS_SKIN2_ADDICON)) //if icolib is installed
+ {
+// AddIcon(hiDlgIcon, "Dlg", "Popup and dialog ");
+ AddIcon(hiCheckMenu, "MenuCheck", "Check birthdays menu item");
+ AddIcon(hiListMenu, "MenuList", "List birthdays menu item");
+ AddIcon(hiAddBirthdayContact, "AddBirthday", "Add/change birthday");
+ AddIcon(hiRefreshUserDetails, "RefreshUserDetails", "Refresh user details");
+
+ AddIcon(hiImportBirthdays, "ImportBirthdays", "Import birthdays");
+ AddIcon(hiExportBirthdays, "ExportBirthdays", "Export birthdays");
+
+ int i;
+ char name[1024];
+ char description[1024];
+ AddIcon(hiDTB[0], "DTB0", "Birthday today");
+ AddIcon(hiDTB[1], "DTB1", "1 day to birthday");
+ for (i = 2; i < cDTB; i++)
+ {
+ sprintf(name, "DTB%d", i);
+ sprintf(description, "%d days to birthday", i);
+ AddIcon(hiDTB[i], name, description);
+ }
+ sprintf(description, "More than %d days to birthday", cDTB - 1);
+ AddIcon(hiDTBMore, "DTBMore", description);
+ }
+ return 0;
+}
+
+HICON GetIcon(char *name)
+{
+ return (HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM) name);
+}
+
+void FreeIcon(HICON &icon)
+{
+ DestroyIcon(icon);
+ icon = NULL;
+}
+
+void FreeIcons()
+{
+ static int bFreed = 0;
+ if (!bFreed)
+ {
+// FreeIcon(hiDlg);
+ FreeIcon(hiCheckMenu);
+ FreeIcon(hiListMenu);
+ FreeIcon(hiAddBirthdayContact);
+ FreeIcon(hiRefreshUserDetails);
+
+ FreeIcon(hiImportBirthdays);
+ FreeIcon(hiExportBirthdays);
+
+ int i;
+ for (i = 0; i < cDTB; i++)
+ {
+ FreeIcon(hiDTB[i]);
+ }
+ FreeIcon(hiDTBMore);
+ }
+ bFreed = 1; //only free them once (ours).
+}
+
+int GetIcons()
+{
+ if (ServiceExists(MS_SKIN2_GETICON))
+ {
+ //FreeIcons();
+// hiDlgIcon = Get("Dlg");
+ hiCheckMenu = GetIcon("MenuCheck");
+ hiListMenu = GetIcon("MenuList");
+ hiAddBirthdayContact = GetIcon("AddBirthday");
+ hiRefreshUserDetails = GetIcon("RefreshUserDetails");
+
+ hiImportBirthdays = GetIcon("ImportBirthdays");
+ hiExportBirthdays = GetIcon("ExportBirthdays");
+
+ int i;
+ char buffer[1024];
+ for (i = 0; i < cDTB; i++)
+ {
+ sprintf(buffer, "DTB%d", i);
+ hiDTB[i] = GetIcon(buffer);
+ }
+ hiDTBMore = GetIcon("DTBMore");
+ }
+ return 0;
+}
+
+HICON GetDTBIcon(int dtb)
+{
+ if ((dtb >= cDTB) || (dtb < 0))
+ {
+ return hiDTBMore;
+ }
+ return hiDTB[dtb];
+}
+
+HICON GetDABIcon(int dab)
+{
+ return GetDTBIcon(dab);
+}
+
+HANDLE GetClistIcon(int dtb)
+{
+ if (dtb >= cDTB)
+ {
+ return hClistImages[cDTB];
+ }
+ return hClistImages[dtb];
+}
+
+HANDLE RebuildCListIcon(HICON icon)
+{
+ INT_PTR tmp = CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM) icon, 0);
+ if (tmp != CALLSERVICE_NOTFOUND)
+ {
+ return (HANDLE) tmp;
+ }
+ return (HANDLE) -1;
+}
+
+int RebuildAdvIconList()
+{
+ int i;
+ for (i = 0; i < cDTB; i++)
+ {
+ hClistImages[i] = RebuildCListIcon(hiDTB[i]);
+ }
+ hClistImages[cDTB] = RebuildCListIcon(hiDTBMore);
+ return 0;
+}