From 803b51d1a61b8c13badf6ac1f361b4d577f03cda Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 1 Nov 2012 16:59:23 +0000 Subject: Clist Modern own extra icons support removed git-svn-id: http://svn.miranda-ng.org/main/trunk@2138 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Clist_modern/res/resource.rc | 28 +- plugins/Clist_modern/src/hdr/modern_clist.h | 26 +- plugins/Clist_modern/src/hdr/modern_clui.h | 1 - .../Clist_modern/src/hdr/modern_commonprototypes.h | 3 - plugins/Clist_modern/src/modern_clc.cpp | 8 +- plugins/Clist_modern/src/modern_clistopts.cpp | 296 +------------ plugins/Clist_modern/src/modern_clui.cpp | 81 +--- plugins/Clist_modern/src/modern_extraimage.cpp | 469 +++------------------ plugins/Clist_modern/src/modern_skineditor.cpp | 1 - plugins/Clist_modern/src/resource.h | 3 +- 10 files changed, 81 insertions(+), 835 deletions(-) diff --git a/plugins/Clist_modern/res/resource.rc b/plugins/Clist_modern/res/resource.rc index fe91229a29..1c6c032288 100644 --- a/plugins/Clist_modern/res/resource.rc +++ b/plugins/Clist_modern/res/resource.rc @@ -344,15 +344,6 @@ BEGIN CONTROL "",IDC_OFFSETSPIN_RIGHT,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,261,201,10,12 END -IDD_OPT_ITEM_EXTRAICONS DIALOGEX 0, 0, 222, 162 -STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - GROUPBOX "Contact List Extra Icons",IDC_STATIC,7,19,205,131 - CONTROL "",IDC_EXTRAORDER,"SysTreeView32",TVS_NOTOOLTIPS | WS_BORDER | WS_TABSTOP,18,36,182,107 -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 @@ -887,16 +878,6 @@ BEGIN HORZGUIDE, 19 END - IDD_OPT_ITEM_EXTRAICONS, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 212 - VERTGUIDE, 18 - VERTGUIDE, 200 - TOPMARGIN, 5 - BOTTOMMARGIN, 155 - END - IDD_DELETECONTACT, DIALOG BEGIN LEFTMARGIN, 7 @@ -1168,7 +1149,7 @@ END IDD_OPT_CLUI_2 DLGINIT BEGIN IDC_HIDEMETHOD, 0x403, 9, 0 -0x6f63, 0x706d, 0x656c, 0x6574, "\000" +0x6f63, 0x706d, 0x656c, 0x6574, "\000" 0 END @@ -1179,19 +1160,19 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "..\\src\\resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include \r\n" "#include ""..\\src\\hdr\\modern_statusmodes.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -1213,4 +1194,3 @@ END ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED - diff --git a/plugins/Clist_modern/src/hdr/modern_clist.h b/plugins/Clist_modern/src/hdr/modern_clist.h index 82f473d390..512b19509c 100644 --- a/plugins/Clist_modern/src/hdr/modern_clist.h +++ b/plugins/Clist_modern/src/hdr/modern_clist.h @@ -2,8 +2,8 @@ Miranda IM: the free IM client for Microsoft* Windows* -Copyright 2000-2008 Miranda ICQ/IM project, -all portions of this codebase are copyrighted to the people +Copyright 2000-2008 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 @@ -43,14 +43,14 @@ extern pfnMyGetMonitorInfo MyGetMonitorInfo; /////////////////////////////////////////////////////////////////////////////// class CSmileyString -{ +{ public: SortedList* plText; int iMaxSmileyHeight; CSmileyString() : plText( NULL ), iMaxSmileyHeight( 0 ) {}; CSmileyString( const CSmileyString& ssIn ) - { + { _CopySmileyList( ssIn.plText ); iMaxSmileyHeight = ssIn.iMaxSmileyHeight; } @@ -70,7 +70,7 @@ public: void ReplaceSmileys(struct SHORTDATA *dat, struct ClcCacheEntry *pdnce, TCHAR *szText, BOOL replace_smileys); - /** Destroy smiley list */ + /** Destroy smiley list */ void DestroySmileyList(); /** Copy Smiley List */ void _CopySmileyList( SortedList *plInput ); @@ -114,18 +114,6 @@ typedef ClcCacheEntry *pClcCacheEntry, *PDNCE; /////////////////////////////////////////////////////////////////////////////// -typedef struct tagEXTRASLOTINFO -{ - union - { - TCHAR * ptszSlotName; // one of this string should be given - char * pszSlotName; - }; - char * pszSlotID; - BOOL fUnicode; - BYTE iSlot; // the slot 10-16 are available, do not use -} EXTRASLOTINFO; - #define CLVM_FILTER_PROTOS 1 #define CLVM_FILTER_GROUPS 2 #define CLVM_FILTER_STATUS 4 @@ -160,6 +148,6 @@ typedef struct tagEXTRASLOTINFO #define CLVM_MODULE "CLVM" #endif -#define GROUPF_SHOWOFFLINE 0x40 +#define GROUPF_SHOWOFFLINE 0x40 -#endif \ No newline at end of file +#endif diff --git a/plugins/Clist_modern/src/hdr/modern_clui.h b/plugins/Clist_modern/src/hdr/modern_clui.h index eb353f4609..75d348e547 100644 --- a/plugins/Clist_modern/src/hdr/modern_clui.h +++ b/plugins/Clist_modern/src/hdr/modern_clui.h @@ -52,7 +52,6 @@ public: EVENTHOOK( OnEvent_ModulesLoaded ); EVENTHOOK( OnEvent_ContactMenuPreBuild ); - EVENTHOOK( OnEvent_DBSettingChanging ); EVENTHOOK( OnEvent_FontReload ); SERVICE( Service_ShowMainMenu ); diff --git a/plugins/Clist_modern/src/hdr/modern_commonprototypes.h b/plugins/Clist_modern/src/hdr/modern_commonprototypes.h index a0238b6d6d..120457fcab 100644 --- a/plugins/Clist_modern/src/hdr/modern_commonprototypes.h +++ b/plugins/Clist_modern/src/hdr/modern_commonprototypes.h @@ -230,7 +230,6 @@ int GetStatusForContact(HANDLE hContact,char *szProto); int InitCustomMenus(void); //clistmenus.c int InitFramesMenus(void); //framesmenus.c int LoadMoveToGroup(); //movetogroup.c -int LoadPositionsFromDB(BYTE * OrderPos); //clistopts.c int LoadStatusBarData(); //modern_statusbar.c int MenuModulesLoaded(WPARAM wParam,LPARAM lParam); //clistmenu.c int MenuModulesShutdown(WPARAM wParam,LPARAM lParam); //clistmenu.c @@ -258,7 +257,6 @@ void FreeRowCell(); //Ro void InitGdiPlus(); //gdiplus.cpp void InitTray(); //clisttray.c void InvalidateDNCEbyPointer(HANDLE hContact,pClcCacheEntry pdnce,int SettingType); //clistsettings.c -void ReAssignExtraIcons(); //extraimage.c void ShutdownGdiPlus(); //gdiplus.cpp void TextOutWithGDIp(HDC hDestDC, int x, int y, LPCTSTR lpString, int nCount); //gdiplus.cpp void UninitCustomMenus(); //clistmenus.c @@ -269,7 +267,6 @@ void UpdateAllAvatars(struct ClcData *dat); //cluiframes.c void gtaRenewText(HANDLE hContact); int ExtraImage_ExtraIDToColumnNum(int extra); -int ExtraImage_ColumnNumToExtraID(int column); int LoadSkinButtonModule(); void UninitSkinHotKeys(); diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp index b38f99efde..346fa70f2c 100644 --- a/plugins/Clist_modern/src/modern_clc.cpp +++ b/plugins/Clist_modern/src/modern_clc.cpp @@ -1784,10 +1784,7 @@ static LRESULT clcOnIntmNameChanged(struct ClcData *dat, HWND hwnd, UINT msg, WP static LRESULT clcOnIntmApparentModeChanged(struct ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - int lResult = corecli.pfnContactListControlWndProc(hwnd, msg, wParam, lParam); - if ( !ServiceExists("ExtraIcon/Register")) - ExtraImage_SetAllExtraIcons(pcli->hwndContactTree,(HANDLE)wParam); - return lResult; + return corecli.pfnContactListControlWndProc(hwnd, msg, wParam, lParam); } static LRESULT clcOnIntmStatusMsgChanged(struct ClcData *dat, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) @@ -1930,9 +1927,6 @@ int ClcDoProtoAck(HANDLE wParam,ACKDATA * ack) pcli->clcProto[i].dwStatus = (WORD) ack->lParam; if (pcli->clcProto[i].dwStatus >= ID_STATUS_OFFLINE) pcli->pfnTrayIconUpdateBase(pcli->clcProto[i].szProto); - if ( !ServiceExists("ExtraIcon/Register")) - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_VISMODE) != -1) - ExtraImage_SetAllExtraIcons(pcli->hwndContactTree,(HANDLE)NULL); return 0; } } diff --git a/plugins/Clist_modern/src/modern_clistopts.cpp b/plugins/Clist_modern/src/modern_clistopts.cpp index de26c3b2be..fe5ac2dc86 100644 --- a/plugins/Clist_modern/src/modern_clistopts.cpp +++ b/plugins/Clist_modern/src/modern_clistopts.cpp @@ -450,9 +450,7 @@ static INT_PTR CALLBACK DlgProcItemIconOpts(HWND hwndDlg, UINT msg, WPARAM wPara if ( !IsDlgButtonChecked(hwndDlg,IDC_HIDE_ICON_ON_AVATAR)) EnableWindow(GetDlgItem(hwndDlg,IDC_DRAW_ON_AVATAR_SPACE),FALSE); - if (ServiceExists("ExtraIcon/Register")) - ShowWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_VISIBLEICON), SW_HIDE); - + ShowWindow(GetDlgItem(hwndDlg, IDC_ALWAYS_VISIBLEICON), SW_HIDE); break; case WM_COMMAND: @@ -944,293 +942,6 @@ static INT_PTR CALLBACK DlgProcItemThirdLineOpts(HWND hwndDlg, UINT msg, WPARAM return 0; } -/* Extra icons settings */ -typedef struct _OrderTreeData -{ - BYTE ID; - TCHAR * Name; - BYTE Position; - char * KeyName; - BOOL Visible; - BOOL fReserved; -} *pOrderTreeData, TOrderTreeData; - -static TOrderTreeData OrderTreeData[] = -{ - {EXTRA_ICON_VISMODE, _T("Visibility/Chat activity"), EXTRA_ICON_VISMODE, "EXTRA_ICON_VISMODE", SETTING_EXTRA_ICON_VISMODE_DEFAULT,0}, - {EXTRA_ICON_EMAIL, _T("E-mail"), EXTRA_ICON_EMAIL, "EXTRA_ICON_EMAIL", SETTING_EXTRA_ICON_EMAIL_DEFAULT, 0}, - {EXTRA_ICON_PROTO, _T("Protocol"), EXTRA_ICON_PROTO, "EXTRA_ICON_PROTO", SETTING_EXTRA_ICON_PROTO_DEFAULT, 0}, - {EXTRA_ICON_SMS, _T("Phone/SMS"), EXTRA_ICON_SMS, "EXTRA_ICON_SMS", SETTING_EXTRA_ICON_SMS_DEFAULT, 0}, - {EXTRA_ICON_WEB, _T("Web page"), EXTRA_ICON_WEB, "EXTRA_ICON_WEB", SETTING_EXTRA_ICON_WEB_DEFAULT, 0}, - {EXTRA_ICON_CLIENT, _T("Client (fingerprint.dll is required)"), EXTRA_ICON_CLIENT,"EXTRA_ICON_CLIENT", SETTING_EXTRA_ICON_CLIENT_DEFAULT, 0}, - {EXTRA_ICON_ADV1, _T("Advanced #1"), EXTRA_ICON_ADV1, "EXTRA_ICON_ADV1", SETTING_EXTRA_ICON_ADV1_DEFAULT, 0}, - {EXTRA_ICON_ADV2, _T("Advanced #2"), EXTRA_ICON_ADV2, "EXTRA_ICON_ADV2", SETTING_EXTRA_ICON_ADV2_DEFAULT, 0}, - {EXTRA_ICON_ADV3, _T("Advanced #3"), EXTRA_ICON_ADV3, "EXTRA_ICON_ADV3", SETTING_EXTRA_ICON_ADV3_DEFAULT, 0}, - {EXTRA_ICON_ADV4, _T("Advanced #4"), EXTRA_ICON_ADV4, "EXTRA_ICON_ADV4", SETTING_EXTRA_ICON_ADV4_DEFAULT, 0} -}; - -#define PrVer 4 - -static char **settingname; -static int nArrayLen; - -static int OrderEnumProc (const char *szSetting,LPARAM lParam) -{ - if (szSetting == NULL) return 0; - if ( !wildcmp((char*) szSetting,(char *) lParam,0)) return 0; - nArrayLen++; - settingname = (char **)realloc(settingname,nArrayLen*sizeof(char *)); - settingname[nArrayLen-1] = _strdup(szSetting); - return 0; -}; - -static int DeleteAllSettingInOrder() -{ - DBCONTACTENUMSETTINGS dbces; - nArrayLen = 0; - - dbces.pfnEnumProc = OrderEnumProc; - dbces.szModule = CLUIFrameModule; - dbces.ofsSettings = 0; - dbces.lParam = (LPARAM)"ORDER_EXTRA_*"; - - CallService(MS_DB_CONTACT_ENUMSETTINGS,0,(LPARAM)&dbces); - - //delete all settings - if (nArrayLen == 0) - return 0; - - for (int i=0; i < nArrayLen; i++) { - db_unset(0, CLUIFrameModule, settingname[i]); - free(settingname[i]); - } - free(settingname); - settingname = NULL; - - return 0; -} - -static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) -{ - pOrderTreeData A = (pOrderTreeData)lParam1; - pOrderTreeData B = (pOrderTreeData)lParam2; - return (int)(A->Position)-(int)(B->Position); -} - -static int FillOrderTree(HWND hwndDlg, HWND Tree) -{ - TVINSERTSTRUCT tvis = {0}; - TreeView_DeleteAllItems(Tree); - tvis.hParent = NULL; - tvis.hInsertAfter = TVI_LAST; - tvis.item.mask = TVIF_PARAM|TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE; - if (db_get_b(NULL,CLUIFrameModule,"ExtraCountStored",0) != SIZEOF(OrderTreeData)) { - DeleteAllSettingInOrder(); - db_set_b(NULL,CLUIFrameModule,"ExtraCountStored",SIZEOF(OrderTreeData)); - } - - for (int i=0; i < SIZEOF(OrderTreeData); i++) { - char buf[256]; - sprintf(buf,"ORDER_%s",OrderTreeData[i].KeyName); - OrderTreeData[i].Position = (BYTE)db_get_b(NULL,CLUIFrameModule,buf,i); - OrderTreeData[i].Visible = (BOOL)db_get_b(NULL,CLUIFrameModule,OrderTreeData[i].KeyName,1); - tvis.hInsertAfter = TVI_LAST; - tvis.item.lParam = (LPARAM)(&(OrderTreeData[i])); - tvis.item.pszText = TranslateTS(OrderTreeData[i].Name); - tvis.item.iImage = tvis.item.iSelectedImage = OrderTreeData[i].Visible; - TreeView_InsertItem(Tree,&tvis); - } - - TVSORTCB sort = {0}; - sort.hParent = NULL; - sort.lParam = 0; - sort.lpfnCompare = CompareFunc; - TreeView_SortChildrenCB(Tree,&sort,0); - return 0; -} - -static int SaveOrderTree(HWND hwndDlg, HWND Tree) -{ - HTREEITEM ht; - BYTE pos = 0; - TVITEMA tvi = {0}; - tvi.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM; - ht = TreeView_GetRoot(Tree); - do { - TOrderTreeData * it = NULL; - tvi.hItem = ht; - TreeView_GetItemA(Tree,&tvi); - it = (TOrderTreeData*)(tvi.lParam); - { - char buf[250]; - sprintf(buf,"ORDER_%s",it->KeyName); - db_set_b(NULL,CLUIFrameModule,buf,pos); - db_set_b(NULL,CLUIFrameModule,it->KeyName, it->Visible); - } - ht = TreeView_GetNextSibling(Tree,ht); - pos++; - } - while (ht); - - return 0; -} - -int LoadPositionsFromDB(BYTE * OrderPos) -{ - if (db_get_b(NULL,CLUIFrameModule,"ExtraCountStored",0) != SIZEOF(OrderTreeData)) { - DeleteAllSettingInOrder(); - db_set_b(NULL,CLUIFrameModule,"ExtraCountStored",SIZEOF(OrderTreeData)); - } - - for (int i=0; i < SIZEOF(OrderTreeData); i++) { - char buf[256]; - sprintf(buf,"ORDER_%s",OrderTreeData[i].KeyName); - OrderPos[OrderTreeData[i].ID-1] = (BYTE)db_get_b(NULL,CLUIFrameModule,buf,i); - } - return 0; -} - -static int dragging = 0; -static HANDLE hDragItem = NULL; - -INT_PTR CALLBACK DlgProcExtraIconsOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) { - case WM_INITDIALOG: - TranslateDialogDefault(hwndDlg); - SetWindowLongPtr(GetDlgItem(hwndDlg,IDC_EXTRAORDER),GWL_STYLE,GetWindowLongPtr(GetDlgItem(hwndDlg,IDC_EXTRAORDER),GWL_STYLE)|TVS_NOHSCROLL); - { - HIMAGELIST himlCheckBoxes; - himlCheckBoxes = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32|ILC_MASK,2,2); - ImageList_AddIcon(himlCheckBoxes,LoadSmallIconShared(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_NOTICK))); - ImageList_AddIcon(himlCheckBoxes,LoadSmallIconShared(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_TICK))); - TreeView_SetImageList(GetDlgItem(hwndDlg,IDC_EXTRAORDER),himlCheckBoxes,TVSIL_NORMAL); - } - FillOrderTree(hwndDlg,GetDlgItem(hwndDlg,IDC_EXTRAORDER)); - return TRUE; - - case WM_COMMAND: - SendMessage((GetParent(hwndDlg)), PSM_CHANGED, (WPARAM)hwndDlg, 0); - break; - - case WM_NOTIFY: - switch(((LPNMHDR)lParam)->idFrom) { - case 0: - switch (((LPNMHDR)lParam)->code) { - case PSN_APPLY: - SaveOrderTree(hwndDlg,GetDlgItem(hwndDlg,IDC_EXTRAORDER)); - ReAssignExtraIcons(); - CLUI_ReloadCLUIOptions(); - ClcOptionsChanged(); - return TRUE; - } - break; - - case IDC_EXTRAORDER: - switch (((LPNMHDR)lParam)->code) { - case 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_ONITEMICON) - { - TVITEMA tvi; - tvi.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE; - tvi.hItem = hti.hItem; - TreeView_GetItemA(((LPNMHDR)lParam)->hwndFrom,&tvi); - tvi.iImage = tvi.iSelectedImage = !tvi.iImage; - ((TOrderTreeData *)tvi.lParam)->Visible = tvi.iImage; - TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi); - SendMessage((GetParent(hwndDlg)), PSM_CHANGED, (WPARAM)hwndDlg, 0); - } - } - break; - - case TVN_BEGINDRAGA: - case TVN_BEGINDRAGW: - SetCapture(hwndDlg); - dragging = 1; - hDragItem = ((LPNMTREEVIEWA)lParam)->itemNew.hItem; - TreeView_SelectItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),hDragItem); - break; - } - } - break; - - case WM_MOUSEMOVE: - if ( dragging) { - TVHITTESTINFO hti; - hti.pt.x = (short)LOWORD(lParam); - hti.pt.y = (short)HIWORD(lParam); - ClientToScreen(hwndDlg,&hti.pt); - ScreenToClient(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&hti.pt); - TreeView_HitTest(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&hti); - if (hti.flags & (TVHT_ONITEM|TVHT_ONITEMRIGHT)) { - HTREEITEM it = hti.hItem; - hti.pt.y -= TreeView_GetItemHeight(GetDlgItem(hwndDlg,IDC_EXTRAORDER))/2; - TreeView_HitTest(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&hti); - //TreeView_SetInsertMark(GetDlgItem(hwndDlg,IDC_EXTRAORDER),hti.hItem,1); - if ( !(hti.flags&TVHT_ABOVE)) - TreeView_SetInsertMark(GetDlgItem(hwndDlg,IDC_EXTRAORDER),hti.hItem,1); - else - TreeView_SetInsertMark(GetDlgItem(hwndDlg,IDC_EXTRAORDER),it,0); - } - else { - if (hti.flags&TVHT_ABOVE) SendDlgItemMessage(hwndDlg,IDC_EXTRAORDER,WM_VSCROLL,MAKEWPARAM(SB_LINEUP,0),0); - if (hti.flags&TVHT_BELOW) SendDlgItemMessage(hwndDlg,IDC_EXTRAORDER,WM_VSCROLL,MAKEWPARAM(SB_LINEDOWN,0),0); - TreeView_SetInsertMark(GetDlgItem(hwndDlg,IDC_EXTRAORDER),NULL,0); - } - } - break; - - case WM_LBUTTONUP: - if ( dragging) { - TreeView_SetInsertMark(GetDlgItem(hwndDlg,IDC_EXTRAORDER),NULL,0); - dragging = 0; - ReleaseCapture(); - - TVHITTESTINFO hti; - TVITEM tvi; - hti.pt.x = (short)LOWORD(lParam); - hti.pt.y = (short)HIWORD(lParam); - ClientToScreen(hwndDlg,&hti.pt); - ScreenToClient(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&hti.pt); - hti.pt.y -= TreeView_GetItemHeight(GetDlgItem(hwndDlg,IDC_EXTRAORDER))/2; - TreeView_HitTest(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&hti); - if (hDragItem == hti.hItem) break; - if (hti.flags&TVHT_ABOVE) hti.hItem = TVI_FIRST; - tvi.mask = TVIF_HANDLE|TVIF_PARAM; - tvi.hItem = (HTREEITEM)hDragItem; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&tvi); - if (hti.flags&(TVHT_ONITEM|TVHT_ONITEMRIGHT) || (hti.hItem == TVI_FIRST)) { - TVINSERTSTRUCT tvis; - TCHAR name[128]; - tvis.item.mask = TVIF_HANDLE|TVIF_PARAM|TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE; - tvis.item.stateMask = 0xFFFFFFFF; - tvis.item.pszText = name; - tvis.item.cchTextMax = sizeof(name); - tvis.item.hItem = (HTREEITEM)hDragItem; - tvis.item.iImage = tvis.item.iSelectedImage = ((TOrderTreeData *)tvi.lParam)->Visible; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&tvis.item); - TreeView_DeleteItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),hDragItem); - tvis.hParent = NULL; - tvis.hInsertAfter = hti.hItem; - TreeView_SelectItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),TreeView_InsertItem(GetDlgItem(hwndDlg,IDC_EXTRAORDER),&tvis)); - SendMessage((GetParent(hwndDlg)), PSM_CHANGED, (WPARAM)hwndDlg, 0); - } - } - break; - - case WM_DESTROY: - ImageList_Destroy(TreeView_SetImageList(GetDlgItem(hwndDlg,IDC_EXTRAORDER),NULL,TVSIL_NORMAL)); - break; - } - return FALSE; -} - ///////////////////////////////////////////////////////////////////////////////////////// struct @@ -1251,7 +962,6 @@ static row_opt_items[] = { LPGEN("Text"), IDD_OPT_ITEM_TEXT, DlgProcItemTextOpts }, { LPGEN("Second Line"), IDD_OPT_ITEM_SECOND_LINE, DlgProcItemSecondLineOpts }, { LPGEN("Third Line"), IDD_OPT_ITEM_THIRD_LINE, DlgProcItemThirdLineOpts }, - { LPGEN("Extra Icons"), IDD_OPT_ITEM_EXTRAICONS, DlgProcExtraIconsOpts} }; int CListOptInit(WPARAM wParam,LPARAM lParam) @@ -1265,11 +975,7 @@ int CListOptInit(WPARAM wParam,LPARAM lParam) odp.pszTitle = LPGEN("Row items"); odp.flags = ODPF_BOLDGROUPS; - BOOL hasExtraIconsService = ServiceExists("ExtraIcon/Register"); for (int i=0; i < SIZEOF(row_opt_items); i++) { - if (hasExtraIconsService && row_opt_items[i].id == IDD_OPT_ITEM_EXTRAICONS) - continue; - odp.pszTemplate = MAKEINTRESOURCEA(row_opt_items[i].id); odp.pszTab = row_opt_items[i].name; odp.pfnDlgProc = row_opt_items[i].wnd_proc; diff --git a/plugins/Clist_modern/src/modern_clui.cpp b/plugins/Clist_modern/src/modern_clui.cpp index eb3219fee1..b86d2431e9 100644 --- a/plugins/Clist_modern/src/modern_clui.cpp +++ b/plugins/Clist_modern/src/modern_clui.cpp @@ -166,27 +166,7 @@ int CLUI::OnEvent_ContactMenuPreBuild(WPARAM wParam, LPARAM lParam) return 0; } -int CLUI::OnEvent_DBSettingChanging(WPARAM wParam,LPARAM lParam) -{ - if (ServiceExists("ExtraIcon/Register")) - return 0; - - DBCONTACTWRITESETTING *dbcws = (DBCONTACTWRITESETTING *)lParam; - if (wParam == 0) return 0; - if (dbcws == NULL) return(0); - if (MirandaExiting()) return 0; - if (( dbcws->value.type == DBVT_WORD && !mir_strcmp(dbcws->szSetting,"ApparentMode")) || - ( dbcws->value.type == DBVT_ASCIIZ && - (( !mir_strcmp(dbcws->szSetting,"e-mail") || - !mir_strcmp(dbcws->szSetting,"Mye-mail0") || - !mir_strcmp(dbcws->szSetting,"Cellular")) || - ( !mir_strcmp(dbcws->szModule,"UserInfo") && - ( !mir_strcmp(dbcws->szSetting,"MyPhone0") || - !mir_strcmp(dbcws->szSetting,"Mye-mail0")))))) - ExtraImage_SetAllExtraIcons(pcli->hwndContactTree,(HANDLE)wParam); - return(0); -}; INT_PTR CLUI::Service_ShowMainMenu(WPARAM wParam,LPARAM lParam) { HMENU hMenu; @@ -196,6 +176,7 @@ INT_PTR CLUI::Service_ShowMainMenu(WPARAM wParam,LPARAM lParam) TrackPopupMenu(hMenu,TPM_TOPALIGN|TPM_LEFTALIGN|TPM_LEFTBUTTON,pt.x,pt.y,0,pcli->hwndContactList,NULL); return 0; } + INT_PTR CLUI::Service_ShowStatusMenu(WPARAM wParam,LPARAM lParam) { HMENU hMenu; @@ -448,7 +429,6 @@ HRESULT CLUI::CreateCLC() mutex_bDisableAutoUpdate = 0; HookEvent(ME_DB_CONTACT_SETTINGCHANGED, ContactSettingChanged); - HookEvent(ME_DB_CONTACT_SETTINGCHANGED,CLUI::OnEvent_DBSettingChanging); return S_OK; }; @@ -2824,55 +2804,20 @@ LRESULT CLUI::OnClickNotify( NMCLISTCONTROL * pnmc ) DWORD hitFlags; HANDLE hItem = (HANDLE)SendMessage(pcli->hwndContactTree,CLM_HITTEST,(WPARAM)&hitFlags,MAKELPARAM(pnmc->pt.x,pnmc->pt.y)); - if (hitFlags&CLCHT_ONITEMEXTRA) - { - if ( !IsHContactGroup(hItem) && !IsHContactInfo(hItem)) - { + if (hitFlags & CLCHT_ONITEMEXTRA) { + if ( !IsHContactGroup(hItem) && !IsHContactInfo(hItem)) { pClcCacheEntry pdnce = (pClcCacheEntry)pcli->pfnGetCacheEntry(pnmc->hItem); - if (pdnce == NULL) return 0; - - int extra = ExtraImage_ColumnNumToExtraID(pnmc->iColumn); - NotifyEventHooks(g_CluiData.hEventExtraClick, (WPARAM)pnmc->hItem, extra); - - if ( !ServiceExists("ExtraIcon/Register")) - { - int v,e,w; - v = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_PROTO); - e = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_EMAIL); - w = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_WEB); - - if (pnmc->iColumn == v) { - CallService(MS_USERINFO_SHOWDIALOG,(WPARAM)pnmc->hItem,0); - }; - if (pnmc->iColumn == e) - { - char *email = db_get_sa(pnmc->hItem,"UserInfo", "Mye-mail0"); - if ( !email) - email = db_get_sa(pnmc->hItem, pdnce->m_cache_cszProto, "e-mail"); - if (email) { - char buf[4096]; - sprintf(buf,"mailto:%s",email); - mir_free(email); - ShellExecuteA(m_hWnd,"open",buf,NULL,NULL,SW_SHOW); - } - }; - if (pnmc->iColumn == w) { - char *homepage = db_get_sa(pdnce->hContact,"UserInfo", "Homepage"); - if ( !homepage) - homepage = db_get_sa(pdnce->hContact,pdnce->m_cache_cszProto, "Homepage"); - if (homepage != NULL) - { - CallService(MS_UTILS_OPENURL, 1, (LPARAM)homepage); - mir_free(homepage); - } - } - } + if (pdnce) + NotifyEventHooks(g_CluiData.hEventExtraClick, (WPARAM)pnmc->hItem, pnmc->iColumn+1); } - }; - if (hItem && !(hitFlags&CLCHT_NOWHERE)) + } + + if (hItem && !(hitFlags & CLCHT_NOWHERE)) return DefCluiWndProc( WM_NOTIFY, 0, (LPARAM)pnmc ); - if ((hitFlags&(CLCHT_NOWHERE|CLCHT_INLEFTMARGIN|CLCHT_BELOWITEMS)) == 0) + + if ((hitFlags & (CLCHT_NOWHERE | CLCHT_INLEFTMARGIN | CLCHT_BELOWITEMS)) == 0) return DefCluiWndProc( WM_NOTIFY, 0, (LPARAM)pnmc ); + if (db_get_b(NULL,"CLUI","ClientAreaDrag",SETTING_CLIENTDRAG_DEFAULT)) { POINT pt; int res; @@ -2881,10 +2826,10 @@ LRESULT CLUI::OnClickNotify( NMCLISTCONTROL * pnmc ) res = PostMessage(m_hWnd, WM_SYSCOMMAND, SC_MOVE|HTCAPTION,MAKELPARAM(pt.x,pt.y)); return res; } - /*== == == == == == == == == = */ + if (db_get_b(NULL,"CLUI","DragToScroll",SETTING_DRAGTOSCROLL_DEFAULT) && !db_get_b(NULL,"CLUI","ClientAreaDrag",SETTING_CLIENTDRAG_DEFAULT)) return ClcEnterDragToScroll(pcli->hwndContactTree,pnmc->pt.y); - /*== == == == == == == == == = */ + return 0; } diff --git a/plugins/Clist_modern/src/modern_extraimage.cpp b/plugins/Clist_modern/src/modern_extraimage.cpp index df51e1c126..98fe4f177e 100644 --- a/plugins/Clist_modern/src/modern_extraimage.cpp +++ b/plugins/Clist_modern/src/modern_extraimage.cpp @@ -1,13 +1,8 @@ #include "hdr/modern_commonheaders.h" #include "hdr/modern_commonprototypes.h" - - #define ExtraImageIconsIndexCount 6 -bool visar[EXTRACOLUMNCOUNT]; -int ExtraImageIconsIndex[ExtraImageIconsIndexCount]; -int EnabledColumnCount = 0; BOOL g_mutex_bSetAllExtraIconsCycle = 0; static HIMAGELIST hExtraImageList = NULL; @@ -15,136 +10,14 @@ static HIMAGELIST hWideExtraImageList = NULL; void ExtraImage_SetAllExtraIcons(HWND hwndList,HANDLE hContact); -void ClearExtraIcons(); - bool ImageCreated = FALSE; -BYTE ExtraOrder[] = -{ - 1, // EXTRA_ICON_EMAIL - 2, // EXTRA_ICON_PROTO - 3, // EXTRA_ICON_SMS - 4, // EXTRA_ICON_ADV1 - 5, // EXTRA_ICON_ADV2 - 6, // EXTRA_ICON_WEB - 7, // EXTRA_ICON_CLIENT - 0, // EXTRA_ICON_VISMODE - 8, // EXTRA_ICON_ADV3 - 9, // EXTRA_ICON_ADV4 -}; - -BOOL HasExtraIconsService() -{ - return ServiceExists("ExtraIcon/Register"); -} - -bool isColumnVisible(int extra) -{ - if (HasExtraIconsService()) - return true; - - int i=0; - for (i=0; i < sizeof(ExtraOrder)/sizeof(ExtraOrder[0]); i++) - if (ExtraOrder[i] == extra) - { - switch(i+1) - { - case EXTRA_ICON_EMAIL: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_EMAIL",SETTING_EXTRA_ICON_EMAIL_DEFAULT) != 0; - case EXTRA_ICON_PROTO: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_PROTO",SETTING_EXTRA_ICON_PROTO_DEFAULT) != 0; - case EXTRA_ICON_SMS: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_SMS",SETTING_EXTRA_ICON_SMS_DEFAULT) != 0; - case EXTRA_ICON_ADV1: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_ADV1",SETTING_EXTRA_ICON_ADV1_DEFAULT) != 0; - case EXTRA_ICON_ADV2: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_ADV2",SETTING_EXTRA_ICON_ADV2_DEFAULT) != 0; - case EXTRA_ICON_WEB: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_WEB",SETTING_EXTRA_ICON_WEB_DEFAULT) != 0; - case EXTRA_ICON_CLIENT: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_CLIENT",SETTING_EXTRA_ICON_CLIENT_DEFAULT) != 0; - case EXTRA_ICON_VISMODE: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_VISMODE",SETTING_EXTRA_ICON_VISMODE_DEFAULT) != 0; - case EXTRA_ICON_ADV3: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_ADV3",SETTING_EXTRA_ICON_ADV3_DEFAULT) != 0; - case EXTRA_ICON_ADV4: return db_get_b(NULL,CLUIFrameModule,"EXTRA_ICON_ADV4",SETTING_EXTRA_ICON_ADV4_DEFAULT) != 0; - } - break; - } - return(FALSE); -} - -void GetVisColumns() -{ - visar[0] = isColumnVisible(0); - visar[1] = isColumnVisible(1); - visar[2] = isColumnVisible(2); - visar[3] = isColumnVisible(3); - visar[4] = isColumnVisible(4); - visar[5] = isColumnVisible(5); - visar[6] = isColumnVisible(6); - visar[7] = isColumnVisible(7); - visar[8] = isColumnVisible(8); - visar[9] = isColumnVisible(9); -}; - -__inline int bti(bool b) -{ - return(b?1:0); -}; -int colsum(int from,int to) -{ - int i,sum; - if (from < 0 || from >= EXTRACOLUMNCOUNT){return(-1);}; - if (to < 0 || to >= EXTRACOLUMNCOUNT){return(-1);}; - if (to < from){return(-1);}; - - sum = 0; - for (i = from;i <= to;i++) - { - sum += bti(visar[i]); - }; - return(sum); -}; - - - int ExtraImage_ExtraIDToColumnNum(int extra) { - if (HasExtraIconsService()) - { - if (extra < 1 || extra > EXTRACOLUMNCOUNT) - return -1; - else - return extra-1; - } - - int ord = ExtraOrder[extra-1]; - if ( !visar[ord]) return -1; - return (colsum(0,ord)-1); -}; - -int ExtraImage_ColumnNumToExtraID(int column) -{ - if (HasExtraIconsService()) - return column+1; - - for (int i=0; i < EXTRA_ICON_COUNT; i++) - if (ExtraImage_ExtraIDToColumnNum(i) == column) - return i; - - return -1; -} - -INT_PTR SetIconForExtraColumn(WPARAM wParam,LPARAM lParam) -{ - pIconExtraColumn piec; - int icol; - HANDLE hItem; - - if (pcli->hwndContactTree == 0){return(-1);}; - if (wParam == 0 || lParam == 0){return(-1);}; - piec = (pIconExtraColumn)lParam; - - if (piec->cbSize != sizeof(IconExtraColumn)){return(-1);}; - icol = ExtraImage_ExtraIDToColumnNum(piec->ColumnType); - if (icol == -1){return(-1);}; - hItem = (HANDLE)SendMessage(pcli->hwndContactTree,CLM_FINDCONTACT,(WPARAM)wParam,0); - if (hItem == 0){return(-1);}; - - SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(icol,piec->hImage)); - return(0); + if (extra < 1 || extra > EXTRACOLUMNCOUNT) + return -1; + else + return extra-1; } //wparam = hIcon @@ -160,316 +33,93 @@ INT_PTR AddIconToExtraImageList(WPARAM wParam,LPARAM lParam) void SetNewExtraColumnCount() { - LoadPositionsFromDB(ExtraOrder); - GetVisColumns(); - - int newcount = colsum(0,EXTRACOLUMNCOUNT-1); - db_set_b(NULL,CLUIFrameModule,"EnabledColumnCount",(BYTE)newcount); - EnabledColumnCount = newcount; - SendMessage(pcli->hwndContactTree,CLM_SETEXTRACOLUMNS,EnabledColumnCount,0); + db_set_b(NULL, CLUIFrameModule, "EnabledColumnCount", (BYTE)EXTRACOLUMNCOUNT); + SendMessage(pcli->hwndContactTree,CLM_SETEXTRACOLUMNS, EXTRACOLUMNCOUNT, 0); } void ExtraImage_ReloadExtraIcons() { - int count,i; - PROTOACCOUNT **accs; - HICON hicon; - BOOL needFree; - - SendMessage(pcli->hwndContactTree,CLM_SETEXTRACOLUMNSSPACE,db_get_b(NULL,"CLUI","ExtraColumnSpace",18),0); - SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGELIST,0,(LPARAM)NULL); - if (hExtraImageList){ImageList_Destroy(hExtraImageList);}; - if (hWideExtraImageList){ImageList_Destroy(hWideExtraImageList);}; + SendMessage(pcli->hwndContactTree,CLM_SETEXTRACOLUMNSSPACE,db_get_b(NULL,"CLUI","ExtraColumnSpace",18),0); + SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGELIST,0,(LPARAM)NULL); + if (hExtraImageList) + ImageList_Destroy(hExtraImageList); + if (hWideExtraImageList) + ImageList_Destroy(hWideExtraImageList); hExtraImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32|ILC_MASK,1,256); hWideExtraImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32|ILC_MASK,1,256); - if ( !HasExtraIconsService()) { - //loading icons - HICON hIcon = LoadSkinnedIcon(SKINICON_OTHER_SENDEMAIL); - ExtraImageIconsIndex[0] = ImageList_AddIcon(hExtraImageList, hIcon); - CallService(MS_SKIN2_RELEASEICON, (WPARAM)hIcon, 0); - hIcon = LoadSkinnedIcon(SKINICON_OTHER_SMS); - ExtraImageIconsIndex[1] = ImageList_AddIcon(hExtraImageList, hIcon); - CallService(MS_SKIN2_RELEASEICON, (WPARAM)hIcon, 0); - hIcon = LoadSkinnedIcon(SKINICON_EVENT_URL); - ExtraImageIconsIndex[2] = ImageList_AddIcon(hExtraImageList, hIcon); - CallService(MS_SKIN2_RELEASEICON, (WPARAM)hIcon, 0); - - //calc only needed protocols - //adding protocol icons - ProtoEnumAccounts( &count, &accs ); - for (i=0;i < count;i++) { - if ( !IsAccountEnabled(accs[i]) || CallProtoService(accs[i]->szModuleName, PS_GETCAPS,PFLAGNUM_2, 0 ) == 0) - continue; - - hIcon = LoadSkinnedProtoIcon(accs[i]->szModuleName,ID_STATUS_ONLINE); - ImageList_AddIcon(hExtraImageList, hIcon); - CallService(MS_SKIN2_RELEASEICON, (WPARAM)hIcon, 0); - } - - hicon = CLUI_LoadIconFromExternalFile("clisticons.dll",5,TRUE,TRUE,"AlwaysVis","Contact List",Translate("Always Visible"),-IDI_ALWAYSVIS,&needFree); - if ( !hicon) {hicon = LoadSmallIcon(g_hInst, MAKEINTRESOURCE(IDI_ALWAYSVIS));needFree = TRUE;} - ExtraImageIconsIndex[3] = ImageList_AddIcon(hExtraImageList,hicon ); - if (needFree) DestroyIcon_protect(hicon); - - hicon = CLUI_LoadIconFromExternalFile("clisticons.dll",6,TRUE,TRUE,"NeverVis","Contact List",Translate("Never Visible"),-IDI_NEVERVIS,&needFree); - if ( !hicon) {hicon = LoadSmallIcon(g_hInst, MAKEINTRESOURCE(IDI_NEVERVIS));needFree = TRUE;} - ExtraImageIconsIndex[4] = ImageList_AddIcon(hExtraImageList,hicon ); - if (needFree) DestroyIcon_protect(hicon); - - hicon = CLUI_LoadIconFromExternalFile("clisticons.dll",7,TRUE,TRUE,"ChatActivity","Contact List",Translate("Chat Activity"),-IDI_CHAT,&needFree); - if ( !hicon) {hicon = LoadSmallIcon(g_hInst, MAKEINTRESOURCE(IDI_CHAT));needFree = TRUE;} - ExtraImageIconsIndex[5] = ImageList_AddIcon(hExtraImageList,hicon ); - if (needFree) DestroyIcon_protect(hicon); - } - - SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGELIST,(WPARAM)hWideExtraImageList,(LPARAM)hExtraImageList); - //ExtraImage_SetAllExtraIcons(hImgList); + SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGELIST,(WPARAM)hWideExtraImageList,(LPARAM)hExtraImageList); SetNewExtraColumnCount(); NotifyEventHooks(g_CluiData.hEventExtraImageListRebuilding,0,0); ImageCreated = TRUE; } -void ReAssignExtraIcons() -{ - ClearExtraIcons(); - SetNewExtraColumnCount(); - ExtraImage_SetAllExtraIcons(pcli->hwndContactTree,0); - SendMessage(pcli->hwndContactTree,CLM_AUTOREBUILD,0,0); -} - -void ClearExtraIcons() -{ - SetNewExtraColumnCount(); - - HANDLE hContact = db_find_first(); - do { - HANDLE hItem = (HANDLE)SendMessage(pcli->hwndContactTree,CLM_FINDCONTACT,(WPARAM)hContact,0); - if (hItem == 0) - continue; - - for (int i=0;i < EnabledColumnCount;i++) - SendMessage(pcli->hwndContactTree,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(i,0xFF)); - } - while(hContact = db_find_next(hContact)); -}; - void ExtraImage_SetAllExtraIcons(HWND hwndList,HANDLE hContact) { - HANDLE hItem; - int locApparentMode = 0; - char * locApparentModeProto = NULL; - bool hcontgiven = FALSE; - char *szProto; - char *(ImgIndex[64]); - int maxpr,count,i; - PROTOACCOUNT **accs; - pClcCacheEntry pdnce; - int em,pr,sms,a1,a2,w1,c1; - int tick = 0; + if (pcli->hwndContactTree == 0) + return; + g_mutex_bSetAllExtraIconsCycle = 1; - hcontgiven = (hContact != 0); + bool hcontgiven = (hContact != 0); - if (pcli->hwndContactTree == 0){return;}; - tick = GetTickCount(); - if (ImageCreated == FALSE) ExtraImage_ReloadExtraIcons(); + if (ImageCreated == FALSE) + ExtraImage_ReloadExtraIcons(); SetNewExtraColumnCount(); - BOOL hasExtraIconsService = HasExtraIconsService(); - if ( !hasExtraIconsService) - { - em = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_EMAIL); - pr = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_PROTO); - sms = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_SMS); - a1 = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_ADV1); - a2 = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_ADV2); - w1 = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_WEB); - c1 = ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_CLIENT); - - memset( ImgIndex, 0, sizeof( ImgIndex )); - ProtoEnumAccounts( &count, &accs ); - maxpr = 0; - //calc only needed protocols - for (i=0;i < count;i++) { - if ( !IsAccountEnabled( accs[i] ) || CallProtoService(accs[i]->szModuleName,PS_GETCAPS,PFLAGNUM_2,0) == 0) continue; - ImgIndex[maxpr] = accs[i]->szModuleName; - maxpr++; - } - } - if (hContact == NULL) - { hContact = db_find_first(); - } do { + char *szProto = NULL; + HANDLE hItem = hContact; + if (hItem == 0) + continue; + + pClcCacheEntry pdnce = (pClcCacheEntry)pcli->pfnGetCacheEntry(hItem); + if (pdnce == NULL) + continue; - szProto = NULL; - hItem = hContact; - if (hItem == 0){continue;}; - pdnce = (pClcCacheEntry)pcli->pfnGetCacheEntry(hItem); - if (pdnce == NULL) {continue;}; - - // szProto = (char*)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0); szProto = pdnce->m_cache_cszProto; - - if ( !hasExtraIconsService) - { - { - bool showweb; - showweb = FALSE; - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_WEB) != -1) - { - - if (szProto != NULL) - { - char *homepage; - homepage = db_get_sa(pdnce->hContact,"UserInfo", "Homepage"); - if ( !homepage) - homepage = db_get_sa(pdnce->hContact,pdnce->m_cache_cszProto, "Homepage"); - if (homepage != NULL) - { - showweb = TRUE; - mir_free(homepage); - } - } - SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_WEB),(showweb)?2:0xFF)); - } - } - { - DBVARIANT dbv = {0}; - bool showemail; - showemail = TRUE; - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_EMAIL) != -1) - { - - if (szProto == NULL || DBGetContactSettingString(hContact, szProto, "e-mail",&dbv)) - { - db_free(&dbv); - if (DBGetContactSettingString(hContact, "UserInfo", "Mye-mail0", &dbv)) - showemail = FALSE; - } - SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_EMAIL),(showemail)?0:0xFF)); - db_free(&dbv); - } - } - - { - DBVARIANT dbv = {0}; - bool showsms; - showsms = TRUE; - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_SMS) != -1) - { - if (szProto == NULL || DBGetContactSettingString(hContact, szProto, "Cellular",&dbv)) - { - db_free(&dbv); - if (DBGetContactSettingString(hContact, "UserInfo", "MyPhone0", &dbv)) - showsms = FALSE; - } - SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_SMS),(showsms)?1:0xFF)); - db_free(&dbv); - } - } - - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_PROTO) != -1) - { - for (i=0;i < maxpr;i++) - { - if ( !mir_strcmp(ImgIndex[i],szProto)) - { - SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_PROTO),i+3)); - break; - }; - }; - }; - if (ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_VISMODE) != -1) - { - BYTE iconIndex = 0xFF; - if (szProto != NULL) - { - if ( !db_get_b(hContact, szProto, "ChatRoom", 0)) - { - if (pdnce->ApparentMode == ID_STATUS_OFFLINE) - iconIndex = ExtraImageIconsIndex[4]; - else if (pdnce->ApparentMode == ID_STATUS_ONLINE) - { - if (szProto != locApparentModeProto) - { - locApparentModeProto = szProto; - locApparentMode = CallProtoService(locApparentModeProto,PS_GETSTATUS,0,0); - } - if (locApparentMode == ID_STATUS_INVISIBLE || db_get_b(NULL,"CList","AlwaysShowAlwaysVisIcon",SETTING_ALWAYSVISICON_DEFAULT) == 1) - iconIndex = ExtraImageIconsIndex[3]; } - } - else - { - if (pdnce->ApparentMode == ID_STATUS_OFFLINE) - iconIndex = ExtraImageIconsIndex[5]; - else iconIndex = 255; - } - } - SendMessage(hwndList,CLM_SETEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(ExtraImage_ExtraIDToColumnNum(EXTRA_ICON_VISMODE),iconIndex)); - } - } - NotifyEventHooks(g_CluiData.hEventExtraImageApplying,(WPARAM)hContact,0); + NotifyEventHooks(g_CluiData.hEventExtraImageApplying, (WPARAM)hContact, 0); if (hcontgiven) break; Sleep(0); - } while(hContact = db_find_next(hContact)); + } + while(hContact = db_find_next(hContact)); - tick = GetTickCount()-tick; g_mutex_bSetAllExtraIconsCycle = 0; CLUI__cliInvalidateRect(hwndList,NULL,FALSE); Sleep(0); } -HWND SetToolTip(HWND hwnd, TCHAR * tip); - -HWND tipHWND = NULL; - -static int ehhShowExtraInfoTip(WPARAM wParam, LPARAM lParam) -{ - CLCEXTRAINFOTIP * eit = (CLCEXTRAINFOTIP *)lParam; - //tipHWND = SetToolTip(eit->hwnd,_T("TEST")); - //SendMessage(tipHWND,TTM_ACTIVATE,1,0); - //SendMessage(tipHWND,TTM_POPUP,0,0); - return 1; - -} - -int ehhHideExtraInfoTip(WPARAM wParam, LPARAM lParam) -{ - - //SendMessage(tipHWND,TTM_ACTIVATE,0,0); - return 0; - -} - INT_PTR WideSetIconForExtraColumn(WPARAM wParam,LPARAM lParam) { - pIconExtraColumn piec; - int icol; - HANDLE hItem; + if (pcli->hwndContactTree == 0 || wParam == 0 || lParam == 0) + return -1; - if (pcli->hwndContactTree == 0){return(-1);}; - if (wParam == 0 || lParam == 0){return(-1);}; - piec = (pIconExtraColumn)lParam; + pIconExtraColumn piec = (pIconExtraColumn)lParam; + if (piec->cbSize != sizeof(IconExtraColumn)) + return -1; - if (piec->cbSize != sizeof(IconExtraColumn)){return(-1);}; - icol = ExtraImage_ExtraIDToColumnNum(piec->ColumnType); - if (icol == -1){return(-1);}; + int icol = ExtraImage_ExtraIDToColumnNum(piec->ColumnType); + if (icol == -1) + return -1; - hItem = (HANDLE)SendMessage(pcli->hwndContactTree,CLM_FINDCONTACT,(WPARAM)wParam,0); - if (hItem == 0){return(-1);}; - if (piec->hImage == (HANDLE)0xFF) piec->hImage = (HANDLE)0xFFFF; + HANDLE hItem = (HANDLE)SendMessage(pcli->hwndContactTree,CLM_FINDCONTACT,(WPARAM)wParam,0); + if (hItem == 0) + return -1; + + if (piec->hImage == (HANDLE)0xFF) + piec->hImage = (HANDLE)0xFFFF; - SendMessage(pcli->hwndContactTree,CLM_SETWIDEEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(icol,piec->hImage)); - return(0); + SendMessage(pcli->hwndContactTree,CLM_SETWIDEEXTRAIMAGE,(WPARAM)hItem,MAKELPARAM(icol,piec->hImage)); + return 0; }; //wparam = hIcon //return hImage on success,-1 on failure + INT_PTR WideAddIconToExtraImageList(WPARAM wParam,LPARAM lParam) { if (hWideExtraImageList == 0 || wParam == 0){return(-1);}; @@ -478,31 +128,20 @@ INT_PTR WideAddIconToExtraImageList(WPARAM wParam,LPARAM lParam) if (res>0xFFFE) return -1; return res; }; + static int ehhExtraImage_UnloadModule(WPARAM wParam,LPARAM lParam) { - if (hExtraImageList) { ImageList_Destroy(hExtraImageList); }; - if (hWideExtraImageList) { ImageList_Destroy(hWideExtraImageList); }; + if (hExtraImageList) + ImageList_Destroy(hExtraImageList); + if (hWideExtraImageList) + ImageList_Destroy(hWideExtraImageList); return 0; } void ExtraImage_LoadModule() { - CreateServiceFunction(MS_CLIST_EXTRA_SET_ICON,WideSetIconForExtraColumn); - CreateServiceFunction(MS_CLIST_EXTRA_ADD_ICON,WideAddIconToExtraImageList); - - //CreateServiceFunction(MS_CLIST_EXTRA2_SET_ICON,WideSetIconForExtraColumn); - //CreateServiceFunction(MS_CLIST_EXTRA2_ADD_ICON,WideAddIconToExtraImageList); - + CreateServiceFunction(MS_CLIST_EXTRA_SET_ICON, WideSetIconForExtraColumn); + CreateServiceFunction(MS_CLIST_EXTRA_ADD_ICON, WideAddIconToExtraImageList); - - //HookEvent(ME_SKIN2_ICONSCHANGED,OnIconLibIconChanged); - - HookEvent(ME_CLC_SHOWEXTRAINFOTIP, ehhShowExtraInfoTip ); - HookEvent(ME_CLC_HIDEINFOTIP, ehhHideExtraInfoTip ); HookEvent(ME_SYSTEM_SHUTDOWN, ehhExtraImage_UnloadModule ); }; - - - - - diff --git a/plugins/Clist_modern/src/modern_skineditor.cpp b/plugins/Clist_modern/src/modern_skineditor.cpp index 5ab53c9af9..b567fd59b9 100644 --- a/plugins/Clist_modern/src/modern_skineditor.cpp +++ b/plugins/Clist_modern/src/modern_skineditor.cpp @@ -85,7 +85,6 @@ int TreeAddObject(HWND hwndDlg, int ID, OPT_OBJECT_DATA * data) ptrE = path; do { - while (*ptrE != '/' && *ptrE != '\0') ptrE++; if (*ptrE == '/') { diff --git a/plugins/Clist_modern/src/resource.h b/plugins/Clist_modern/src/resource.h index 9d9426fe00..29a9f73c9b 100644 --- a/plugins/Clist_modern/src/resource.h +++ b/plugins/Clist_modern/src/resource.h @@ -141,7 +141,6 @@ #define IDI_ICON5 455 #define IDI_CHAT 455 #define IDI_LISTENING_TO 456 -#define IDD_OPT_ITEM_EXTRAICONS 461 #define IDD_OPT_CLCBKG 462 #define IDI_FAVORITE_0 500 #define IDI_FAVORITE_1 501 @@ -1043,7 +1042,7 @@ #define IDC_STATIC -1 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 509 -- cgit v1.2.3