summaryrefslogtreecommitdiff
path: root/Plugins/extraicons/IcolibExtraIcon.cpp
diff options
context:
space:
mode:
authorpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-04-23 04:31:27 +0000
committerpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-04-23 04:31:27 +0000
commit3892d0da37e70a6c0106e57dad835e9a67933b02 (patch)
tree4ae8600d4eb5acce08a42b68d1d218c4e47153cc /Plugins/extraicons/IcolibExtraIcon.cpp
parentd27127d44576580e3a0000590b6179f06cc67b8e (diff)
extraicons: start of group code
git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@168 c086bb3d-8645-0410-b8da-73a8550f86e7
Diffstat (limited to 'Plugins/extraicons/IcolibExtraIcon.cpp')
-rw-r--r--Plugins/extraicons/IcolibExtraIcon.cpp44
1 files changed, 23 insertions, 21 deletions
diff --git a/Plugins/extraicons/IcolibExtraIcon.cpp b/Plugins/extraicons/IcolibExtraIcon.cpp
index a7d98c9..1e7cfbf 100644
--- a/Plugins/extraicons/IcolibExtraIcon.cpp
+++ b/Plugins/extraicons/IcolibExtraIcon.cpp
@@ -21,7 +21,7 @@
IcolibExtraIcon::IcolibExtraIcon(int id, const char *name, const char *description, const char *descIcon,
MIRANDAHOOKPARAM OnClick, LPARAM param) :
- ExtraIcon(id, name, description, descIcon, OnClick, param)
+ BaseExtraIcon(id, name, description, descIcon, OnClick, param)
{
char setting[512];
mir_snprintf(setting, MAX_REGS(setting), "%s/%s", MODULE_NAME, name);
@@ -37,11 +37,6 @@ int IcolibExtraIcon::getType() const
return EXTRAICON_TYPE_ICOLIB;
}
-bool IcolibExtraIcon::needToRebuildIcons()
-{
- return false;
-}
-
void IcolibExtraIcon::rebuildIcons()
{
}
@@ -51,9 +46,6 @@ void IcolibExtraIcon::applyIcon(HANDLE hContact)
if (!isEnabled() || hContact == NULL)
return;
- if (hContact == (HANDLE) 0x004a984c)
- OutputDebugString("t");
-
HANDLE hImage = NULL;
DBVARIANT dbv = { 0 };
@@ -68,13 +60,11 @@ void IcolibExtraIcon::applyIcon(HANDLE hContact)
Clist_SetExtraIcon(hContact, slot, hImage);
}
-int IcolibExtraIcon::setIcon(HANDLE hContact, void *icon)
+int IcolibExtraIcon::setIcon(int id, HANDLE hContact, void *icon)
{
- if (hContact == NULL)
+ if (hContact == NULL || id != this->id)
return -1;
- const char *icolibName = (const char *) icon;
-
if (isEnabled())
{
DBVARIANT dbv = { 0 };
@@ -87,21 +77,33 @@ int IcolibExtraIcon::setIcon(HANDLE hContact, void *icon)
}
}
- // Delete don't work and I don't know why
- if (IsEmpty(icolibName))
- icolibName = "";
-
- DBWriteContactSettingString(hContact, MODULE_NAME, name.c_str(), icolibName);
+ storeIcon(hContact, icon);
if (isEnabled())
{
- HANDLE hImage = NULL;
- if (!IsEmpty(icolibName))
+ const char *icolibName = (const char *) icon;
+
+ HANDLE hImage;
+ if (IsEmpty(icolibName))
+ hImage = NULL;
+ else
hImage = AddIcon(icolibName);
- return Clist_SetExtraIcon(hContact, slot, hImage);
+ return ClistSetExtraIcon(hContact, slot, hImage);
}
return 0;
}
+void IcolibExtraIcon::storeIcon(HANDLE hContact, void *icon)
+{
+ if (hContact == NULL)
+ return;
+
+ const char *icolibName = (const char *) icon;
+ if (IsEmpty(icolibName))
+ icolibName = ""; // Delete don't work and I don't know why
+
+ DBWriteContactSettingString(hContact, MODULE_NAME, name.c_str(), icolibName);
+}
+