summaryrefslogtreecommitdiff
path: root/popup/src/opttree.cpp
diff options
context:
space:
mode:
authormataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-26 15:41:10 +0000
committermataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-26 15:41:10 +0000
commitf04d64869f3b1de54fb343f28f955584780001b8 (patch)
tree5453dc10de3d980de79ffe019fa0b5fcb692a27d /popup/src/opttree.cpp
parent7aff1e4cb053394db57c2814d5fe1e6493e0cc75 (diff)
Project folders rename part 3
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@215 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'popup/src/opttree.cpp')
-rw-r--r--popup/src/opttree.cpp442
1 files changed, 0 insertions, 442 deletions
diff --git a/popup/src/opttree.cpp b/popup/src/opttree.cpp
deleted file mode 100644
index d6d81c8..0000000
--- a/popup/src/opttree.cpp
+++ /dev/null
@@ -1,442 +0,0 @@
-/*
-Popup Plus plugin for Miranda IM
-
-Copyright © 2002 Luca Santarelli,
- © 2004-2007 Victor Pavlychko
- © 2010 MPK
- © 2010 Merlin_de
-
-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.
-
-===============================================================================
-
-File name : $HeadURL: http://svn.miranda.im/mainrepo/popup/trunk/src/opttree.cpp $
-Revision : $Revision: 1610 $
-Last change on : $Date: 2010-06-23 00:55:13 +0300 (Ср, 23 июн 2010) $
-Last change by : $Author: Merlin_de $
-
-===============================================================================
-*/
-
-#include "headers.h"
-
-static void OptTree_TranslateItem(HWND hwndTree, HTREEITEM hItem)
-{
- union
- {
- char ansi[128];
- WCHAR unicode[64];
- } buf;
-
-#if defined(_UNICODE)
- TVITEMW tvi = {0};
- tvi.mask = TVIF_HANDLE|TVIF_TEXT;
- tvi.hItem = hItem;
- tvi.pszText = buf.unicode;
- tvi.cchTextMax = SIZEOF(buf.unicode);
- SendMessageW(hwndTree, TVM_GETITEMW, 0, (LPARAM)&tvi);
- tvi.pszText = TranslateW(tvi.pszText);
- tvi.cchTextMax = lstrlenW(tvi.pszText);
- SendMessageW(hwndTree, TVM_SETITEMW, 0, (LPARAM)&tvi);
-
-#else
- if (g_popup.isOsUnicode && MySendMessageW)
- {
- TVITEMW tvi = {0};
- tvi.mask = TVIF_HANDLE|TVIF_TEXT;
- tvi.hItem = hItem;
- tvi.pszText = buf.unicode;
- tvi.cchTextMax = SIZEOF(buf.unicode);
- MySendMessageW(hwndTree, TVM_GETITEMW, 0, (LPARAM)&tvi);
- tvi.pszText = TranslateW(tvi.pszText);
- tvi.cchTextMax = lstrlenW(tvi.pszText);
- MySendMessageW(hwndTree, TVM_SETITEMW, 0, (LPARAM)&tvi);
- }
- else {
- TVITEMA tvi = {0};
- tvi.mask = TVIF_HANDLE|TVIF_TEXT;
- tvi.hItem = hItem;
- tvi.pszText = buf.ansi;
- tvi.cchTextMax = SIZEOF(buf.ansi);
- SendMessageA(hwndTree, TVM_GETITEMA, 0, (LPARAM)&tvi);
- tvi.pszText = Translate(tvi.pszText);
- tvi.cchTextMax = lstrlenA(tvi.pszText);
- SendMessageA(hwndTree, TVM_SETITEMA, 0, (LPARAM)&tvi);
- }
-#endif
-}
-
-void OptTree_Translate(HWND hwndTree)
-{
- HTREEITEM hItem = TreeView_GetRoot(hwndTree);
- while (hItem)
- {
- OptTree_TranslateItem(hwndTree, hItem);
-
- HTREEITEM hItemTmp = 0;
- if (hItemTmp = TreeView_GetChild(hwndTree, hItem))
- {
- hItem = hItemTmp;
- } else
- if (hItemTmp = TreeView_GetNextSibling(hwndTree, hItem))
- {
- hItem = hItemTmp;
- } else
- {
- while (1)
- {
- if (!(hItem = TreeView_GetParent(hwndTree, hItem))) break;
- if (hItemTmp = TreeView_GetNextSibling(hwndTree, hItem))
- {
- hItem = hItemTmp;
- break;
- }
- }
- }
- }
-}
-
-HTREEITEM OptTree_FindNamedTreeItemAt(HWND hwndTree, HTREEITEM hItem, const TCHAR *name)
-{
- TVITEM tvi = {0};
- TCHAR str[MAX_PATH];
-
- if (hItem)
- tvi.hItem = TreeView_GetChild(hwndTree, hItem);
- else
- tvi.hItem = TreeView_GetRoot(hwndTree);
-
- if (!name)
- return tvi.hItem;
-
- tvi.mask = TVIF_TEXT;
- tvi.pszText = str;
- tvi.cchTextMax = MAX_PATH;
-
- while (tvi.hItem)
- {
- TreeView_GetItem(hwndTree, &tvi);
-
- if (!lstrcmp(tvi.pszText, name))
- return tvi.hItem;
-
- tvi.hItem = TreeView_GetNextSibling(hwndTree, tvi.hItem);
- }
- return NULL;
-}
-
-HTREEITEM OptTree_AddItem(HWND hwndTree, LPTSTR name, LPARAM lParam, int iconIndex)
-{
- TCHAR itemName[1024];
-
- TCHAR* sectionName;
- int sectionLevel = 0;
-
- HTREEITEM hSection = NULL, result = NULL;
- lstrcpy(itemName, name);
- sectionName = itemName;
-
- while (sectionName)
- {
- // allow multi-level tree
- TCHAR* pItemName = sectionName;
- HTREEITEM hItem;
-
- if (sectionName = _tcschr(sectionName, '/'))
- {
- // one level deeper
- *sectionName = 0;
- sectionName++;
- }
-
- hItem = OptTree_FindNamedTreeItemAt(hwndTree, hSection, pItemName);
- if (!sectionName || !hItem)
- {
- if (!hItem)
- {
- TVINSERTSTRUCT tvis = {0};
-
- tvis.hParent = hSection;
- tvis.hInsertAfter = TVI_LAST;//TVI_SORT;
- tvis.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_STATE;
- tvis.item.pszText = pItemName;
- tvis.item.state = tvis.item.stateMask = TVIS_EXPANDED;
- if (sectionName)
- {
- tvis.item.lParam = 0;
- tvis.item.iImage = tvis.item.iSelectedImage = -1;
- } else
- {
- tvis.item.lParam = lParam;
- tvis.item.iImage = tvis.item.iSelectedImage = iconIndex;
- tvis.item.mask |= TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- }
- hItem = TreeView_InsertItem(hwndTree, &tvis);
- if (!sectionName)
- result = hItem;
- }
- }
- sectionLevel++;
- hSection = hItem;
- }
-
- return result;
-}
-
-BOOL OptTree_ProcessMessage(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, int *result, int idcTree, OPTTREE_OPTION *options, int optionCount)
-{
- enum { IMG_GROUP, IMG_CHECK, IMG_NOCHECK, IMG_RCHECK, IMG_NORCHECK, IMG_GRPOPEN, IMG_GRPCLOSED };
-
- HWND hwndTree = GetDlgItem(hwnd, idcTree);
- switch (msg)
- {
- case WM_INITDIALOG:
- {
- int indx;
- TCHAR itemName[1024];
- HIMAGELIST hImgLst;
-
- TreeView_SelectItem(hwndTree, NULL);
- TreeView_DeleteAllItems(hwndTree);
-
- hImgLst = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR|ILC_COLOR32|ILC_MASK, 5, 1);
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_POPUP), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED));
- if (g_popup.MirVer >= PLUGIN_MAKE_VERSION(0,7,0,2))
- {
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_TICK));
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_NOTICK));
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_TICK));
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_NOTICK));
- } else
- {
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_CHECK_ON), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // check buttons
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_CHECK_OFF), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // check buttons
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_CHECK_ON), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // check buttons
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_CHECK_OFF), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // check buttons
-// ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_RADIO_ON), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // radio buttons
-// ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPT_RADIO_OFF), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR|LR_SHARED)); // radio buttons
- }
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_GROUPOPEN));
- ImageList_ReplaceIcon(hImgLst, -1, (HICON)LoadSkinnedIcon(SKINICON_OTHER_GROUPSHUT));
- TreeView_SetImageList(hwndTree, hImgLst, TVSIL_NORMAL);
-
- /* build options tree. based on code from IcoLib */
- for (indx = 0; indx < optionCount; indx++)
- {
- TCHAR* sectionName;
- int sectionLevel = 0;
-
- HTREEITEM hSection = NULL;
- lstrcpy(itemName, options[indx].pszOptionName);
- sectionName = itemName;
-
- while (sectionName)
- {
- // allow multi-level tree
- TCHAR* pItemName = sectionName;
- HTREEITEM hItem;
-
- if (sectionName = _tcschr(sectionName, '/'))
- {
- // one level deeper
- *sectionName = 0;
- sectionName++;
- }
-
- hItem = OptTree_FindNamedTreeItemAt(hwndTree, hSection, pItemName);
- if (!sectionName || !hItem)
- {
- if (!hItem)
- {
- TVINSERTSTRUCT tvis = {0};
-
- tvis.hParent = hSection;
- tvis.hInsertAfter = TVI_LAST;//TVI_SORT;
- tvis.item.mask = TVIF_TEXT|TVIF_PARAM|TVIF_STATE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvis.item.pszText = pItemName;
- tvis.item.state = tvis.item.stateMask = TVIS_EXPANDED;
- if (sectionName)
- {
- tvis.item.lParam = -1;
- tvis.item.state |= TVIS_BOLD;
- tvis.item.stateMask |= TVIS_BOLD;
- tvis.item.iImage = tvis.item.iSelectedImage = IMG_GRPOPEN;
- } else
- {
- tvis.item.lParam = indx;
- if (options[indx].groupId == OPTTREE_CHECK)
- {
- tvis.item.iImage = tvis.item.iSelectedImage = IMG_NOCHECK;
- } else
- {
- tvis.item.iImage = tvis.item.iSelectedImage = IMG_NORCHECK;
- }
- }
- hItem = TreeView_InsertItem(hwndTree, &tvis);
- if (!sectionName)
- options[indx].hItem = hItem;
- }
- }
- sectionLevel++;
- hSection = hItem;
- }
- }
-
- OptTree_Translate(hwndTree);
- ShowWindow(hwndTree, SW_SHOW);
- TreeView_SelectItem(hwndTree, OptTree_FindNamedTreeItemAt(hwndTree, 0, NULL));
- break;
- }
-
- case WM_DESTROY:
- {
- ImageList_Destroy(TreeView_GetImageList(hwndTree, TVSIL_NORMAL));
- break;
- }
-
- case WM_NOTIFY:
- {
- LPNMHDR lpnmhdr = (LPNMHDR)lparam;
- if (lpnmhdr->idFrom != idcTree) break;
- switch (lpnmhdr->code)
- {
- case NM_CLICK:
- {
- TVHITTESTINFO hti;
- hti.pt.x=(short)LOWORD(GetMessagePos());
- hti.pt.y=(short)HIWORD(GetMessagePos());
- ScreenToClient(lpnmhdr->hwndFrom,&hti.pt);
- if(TreeView_HitTest(lpnmhdr->hwndFrom,&hti))
- {
- if(hti.flags&TVHT_ONITEMICON)
- {
- TVITEM tvi;
- tvi.mask=TVIF_HANDLE|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvi.hItem=hti.hItem;
- TreeView_GetItem(lpnmhdr->hwndFrom,&tvi);
- switch (tvi.iImage)
- {
- case IMG_GRPOPEN:
- tvi.iImage = tvi.iSelectedImage = IMG_GRPCLOSED;
- TreeView_Expand(lpnmhdr->hwndFrom, tvi.hItem, TVE_COLLAPSE);
- break;
- case IMG_GRPCLOSED:
- tvi.iImage = tvi.iSelectedImage = IMG_GRPOPEN;
- TreeView_Expand(lpnmhdr->hwndFrom, tvi.hItem, TVE_EXPAND);
- break;
-
- case IMG_CHECK:
- tvi.iImage = tvi.iSelectedImage = IMG_NOCHECK;
- *result = tvi.lParam;
- options[tvi.lParam].bState = FALSE;
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- break;
- case IMG_NOCHECK:
- tvi.iImage = tvi.iSelectedImage = IMG_CHECK;
- *result = tvi.lParam;
- options[tvi.lParam].bState = TRUE;
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- break;
- case IMG_NORCHECK:
- {
- int i;
- for (i = 0; i < optionCount; ++i)
- {
- if (options[i].groupId == options[tvi.lParam].groupId)
- {
- TVITEM tvi_tmp;
- tvi_tmp.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvi_tmp.hItem = options[i].hItem;
- tvi_tmp.iImage = tvi_tmp.iSelectedImage = IMG_NORCHECK;
- TreeView_SetItem(lpnmhdr->hwndFrom, &tvi_tmp);
- }
- }
- tvi.iImage = tvi.iSelectedImage = IMG_RCHECK;
- SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
- break;
- }
- }
- TreeView_SetItem(lpnmhdr->hwndFrom,&tvi);
- }
- }
- break;
- }
-
- case TVN_ITEMEXPANDED:
- {
- LPNMTREEVIEW lpnmtv = (LPNMTREEVIEW)lparam;
- TVITEM tvi;
- tvi.mask=TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvi.hItem = lpnmtv->itemNew.hItem;
- tvi.iImage = tvi.iSelectedImage =
- (lpnmtv->itemNew.state & TVIS_EXPANDED) ? IMG_GRPOPEN : IMG_GRPCLOSED;
- TreeView_SetItem(lpnmhdr->hwndFrom,&tvi);
- break;
- }
- }
- break;
- }
- }
- return FALSE;
-}
-
-DWORD OptTree_GetOptions(HWND hwnd, int idcTree, OPTTREE_OPTION *options, int optionCount, LPTSTR pszSettingName)
-{
- enum { IMG_GROUP, IMG_CHECK, IMG_NOCHECK, IMG_RCHECK, IMG_NORCHECK, IMG_GRPOPEN, IMG_GRPCLOSED };
-
- HWND hwndTree = GetDlgItem(hwnd, idcTree);
- DWORD result = 0;
- int i;
- for (i = 0; i < optionCount; ++i)
- {
- if ((!options[i].pszSettingName && !pszSettingName) ||
- (options[i].pszSettingName && pszSettingName && !lstrcmp(options[i].pszSettingName, pszSettingName)))
- {
- TVITEM tvi;
- tvi.mask = TVIF_HANDLE|TVIF_IMAGE;
- tvi.hItem = options[i].hItem;
- TreeView_GetItem(hwndTree, &tvi);
- if ((tvi.iImage == IMG_CHECK) || (tvi.iImage == IMG_RCHECK))
- result |= options[i].dwFlag;
- }
- }
- return result;
-}
-
-void OptTree_SetOptions(HWND hwnd, int idcTree, OPTTREE_OPTION *options, int optionCount, DWORD dwOptions, LPTSTR pszSettingName)
-{
- enum { IMG_GROUP, IMG_CHECK, IMG_NOCHECK, IMG_RCHECK, IMG_NORCHECK, IMG_GRPOPEN, IMG_GRPCLOSED };
-
- HWND hwndTree = GetDlgItem(hwnd, idcTree);
- int i;
- for (i = 0; i < optionCount; ++i)
- {
- if ((!options[i].pszSettingName && !pszSettingName) ||
- (options[i].pszSettingName && pszSettingName && !lstrcmp(options[i].pszSettingName, pszSettingName)))
- {
- TVITEM tvi;
- tvi.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
- tvi.hItem = options[i].hItem;
- if (options[i].groupId == OPTTREE_CHECK)
- {
- tvi.iImage = tvi.iSelectedImage = (dwOptions & options[i].dwFlag) ? IMG_CHECK : IMG_NOCHECK;
- } else
- {
- tvi.iImage = tvi.iSelectedImage = (dwOptions & options[i].dwFlag) ? IMG_RCHECK : IMG_NORCHECK;
- }
- TreeView_SetItem(hwndTree, &tvi);
- }
- }
-}