diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-23 22:53:44 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-23 22:53:44 +0300 |
commit | 12070f1ab059a9c1595616cde2397a09023eec9f (patch) | |
tree | 79e38ca3068a5773da4d32a79d4ba1e2949df48b | |
parent | b8ab705f6fe2df0ce3aebe5749521f768d4df5e8 (diff) |
modified: clist.cpp
modified: commonheaders.h
modified: icons.cpp
modified: init.cpp
modified: main.cpp
modified: srmm.cpp
modified: utilities.cpp
-rw-r--r-- | clist.cpp | 6 | ||||
-rw-r--r-- | commonheaders.h | 1 | ||||
-rw-r--r-- | icons.cpp | 71 | ||||
-rw-r--r-- | init.cpp | 22 | ||||
-rw-r--r-- | main.cpp | 4 | ||||
-rw-r--r-- | srmm.cpp | 6 | ||||
-rw-r--r-- | utilities.cpp | 4 |
7 files changed, 76 insertions, 38 deletions
@@ -29,11 +29,13 @@ int onExtraImageListRebuilding(WPARAM, LPARAM) int onExtraImageApplying(WPARAM wParam, LPARAM)
{
+ void setClistIcon(HANDLE);
if(g_hCLIcon && ServiceExists(MS_CLIST_EXTRA_SET_ICON))
{
- IconExtraColumn iec = {0}; //need to init this
+// IconExtraColumn iec = {0}; //need to init this
if( g_hCLIcon )
- ExtraIcon_SetIcon(g_hCLIcon, (HANDLE)wParam, iec.hImage);
+ setClistIcon((HANDLE)wParam);
+// ExtraIcon_SetIcon(g_hCLIcon, (HANDLE)wParam, iec.hImage);
}
return 0;
}
diff --git a/commonheaders.h b/commonheaders.h index 698a90e..016fbde 100644 --- a/commonheaders.h +++ b/commonheaders.h @@ -44,6 +44,7 @@ using std::fstream; #include <m_options.h> #include <m_langpack.h> #include <m_clist.h> +#include <m_clui.h> #include <m_icolib.h> #include <m_skin.h> #include <m_protomod.h> @@ -77,29 +77,52 @@ HANDLE IconLibHookIconsChanged(MIRANDAHOOK hook) } -// обновляет иконки в clist и в messagew
-void ShowStatusIcon(HANDLE hContact,bool enabled) {
-
+void setClistIcon(HANDLE hContact)
+{
+ bool enabled = isContactSecured(hContact);
extern HANDLE g_hCLIcon;
HANDLE getMetaContact(HANDLE hContact);
HANDLE hMC = getMetaContact(hContact);
- if(g_hCLIcon)
+ if(g_hCLIcon && enabled)
{ // обновить иконки в clist
- HICON icon = IconLibGetIcon(enabled?"secured":"unsecured");
+ HICON icon = IconLibGetIcon("secured");
IconExtraColumn iec = {0};
+ iec.cbSize = sizeof(iec);
iec.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)icon, (LPARAM)0);
ExtraIcon_SetIcon(g_hCLIcon, hContact, iec.hImage);
if(hMC)
ExtraIcon_SetIcon(g_hCLIcon, hMC, iec.hImage);
}
+ else
+ {
+ ExtraIcon_SetIcon(g_hCLIcon, hContact, (HANDLE)0);
+ if(hMC)
+ ExtraIcon_SetIcon(g_hCLIcon, hMC, (HANDLE)0);
+ }
+}
+
+void setSrmmIcon(HANDLE hContact)
+{
+ bool enabled = isContactSecured(hContact);
+ HANDLE getMetaContact(HANDLE hContact);
+ HANDLE hMC = getMetaContact(hContact);
if(ServiceExists(MS_MSG_MODIFYICON))
{ // обновить иконки в srmm
- StatusIconData sid;
- memset(&sid,0,sizeof(sid));
+ StatusIconData sid = {0};
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.hIcon = IconLibGetIcon("secured");
+ sid.dwId = 0x00000001;
+ sid.flags = enabled?0:MBF_HIDDEN;
+ CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
+ if( hMC )
+ CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
+ ZeroMemory(&sid, sizeof(sid));
sid.cbSize = sizeof(sid);
- sid.szModule = (char*)szGPGModuleName;
- sid.hIcon = IconLibGetIcon(enabled?"secured":"unsecured");
-// sid.flags |= MBF_HIDDEN; // отключаем все ненужные иконки
+ sid.szModule = szGPGModuleName;
+ sid.hIcon = IconLibGetIcon("unsecured");
+ sid.dwId = 0x00000002;
+ sid.flags = enabled?MBF_HIDDEN:0;
CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
if( hMC )
CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
@@ -107,34 +130,16 @@ void ShowStatusIcon(HANDLE hContact,bool enabled) { }
-void ShowStatusIcon(HANDLE hContact)
-{
- ShowStatusIcon(hContact,isContactSecured(hContact));
-}
-
-void ShowStatusIconNotify(HANDLE hContact) {
- bool enabled = isContactSecured(hContact);
- ShowStatusIcon(hContact,enabled);
-}
-
-
-void RefreshContactListIcons(void)
+void RefreshContactListIcons()
{
HANDLE hContact;
extern HANDLE g_hCLIcon;
- if( !g_hCLIcon )
- {
- hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
- while (hContact)
- { // сначала все выключаем
- ShowStatusIcon(hContact,0);
- hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
- }
- }
+ CallService(MS_CLUI_LISTBEGINREBUILD,0,0);
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
while (hContact)
- { // и снова зажигаем иконку
- ShowStatusIcon(hContact);
+ {
+ setClistIcon(hContact);
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
}
+ CallService(MS_CLUI_LISTENDREBUILD,0,0);
}
@@ -157,12 +157,32 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) int onExtraImageApplying(WPARAM wParam, LPARAM);
void InitIconLib();
-
void InitCheck();
void FirstRun();
FirstRun();
InitCheck();
InitIconLib();
+ if(ServiceExists(MS_MSG_ADDICON))
+ {
+ HICON IconLibGetIcon(const char* ident);
+ StatusIconData sid = {0};
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.flags = MBF_HIDDEN;
+ sid.dwId = 0x00000001;
+ sid.hIcon = IconLibGetIcon("secured");
+ sid.szTooltip = Translate("GPG Turn off encryption");
+ CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid);
+ ZeroMemory(&sid, sizeof(sid));
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.flags = MBF_HIDDEN;
+ sid.dwId = 0x00000002;
+ sid.hIcon = IconLibGetIcon("unsecured");
+ sid.szTooltip = Translate("GPG Turn on encryption");
+ CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid);
+ }
+
bIsMiranda09 = (DWORD)CallService(MS_SYSTEM_GETVERSION, 0, 0) >= 0x00090100?true:false;
bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT);
@@ -332,6 +332,10 @@ static BOOL CALLBACK DlgProcNewKeyDialog(HWND hwndDlg, UINT msg, WPARAM wParam, case IDC_IMPORT_AND_USE:
ImportKey();
DBWriteContactSettingByte(new_key_hcnt, szGPGModuleName, "GPGEncryption", 1);
+ void setSrmmIcon(HANDLE hContact);
+ void setClistIcon(HANDLE hContact);
+ setSrmmIcon(new_key_hcnt);
+ setClistIcon(new_key_hcnt);
DestroyWindow(hwndDlg);
break;
case IDC_IGNORE_KEY:
@@ -21,12 +21,14 @@ void ShowStatusIcon(HANDLE hContact);
BOOL isProtoMetaContacts(HANDLE hContact);
HANDLE getMostOnline(HANDLE hContact);
+void setSrmmIcon(HANDLE hContact);
int __cdecl onWindowEvent(WPARAM wParam, LPARAM lParam) {
MessageWindowEventData *mwd = (MessageWindowEventData *)lParam;
- if(mwd->uType == MSG_WINDOW_EVT_OPEN || mwd->uType == MSG_WINDOW_EVT_OPENING) {
- ShowStatusIcon(mwd->hContact);
+ if(mwd->uType == MSG_WINDOW_EVT_OPEN || mwd->uType == MSG_WINDOW_EVT_OPENING)
+ {
+ setSrmmIcon(mwd->hContact);
}
return 0;
}
diff --git a/utilities.cpp b/utilities.cpp index fb522b6..d181c8b 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -212,6 +212,10 @@ int ToggleEncryption(WPARAM w, LPARAM l) HANDLE hContact = (HANDLE)w;
BYTE enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1);
+ void setSrmmIcon(HANDLE hContact);
+ void setClistIcon(HANDLE hContact);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
enc = enc?0:1;
CLISTMENUITEM mi = {0};
mi.cbSize=sizeof(mi);
|