static INT_PTR CALLBACK SkinEdit_ExtBkDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { SKINDESCRIPTION *psd = (SKINDESCRIPTION *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); if (psd) { ID_EXTBK_FIRST = psd->firstItem; ID_EXTBK_LAST = psd->lastItem; StatusItems = psd->StatusItems; } switch (msg) { case WM_INITDIALOG: psd = (SKINDESCRIPTION *)malloc(sizeof(SKINDESCRIPTION)); if (psd == NULL) return FALSE; memset(psd, 0, sizeof(SKINDESCRIPTION)); memcpy(psd, (void *)lParam, sizeof(SKINDESCRIPTION)); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)psd); ID_EXTBK_FIRST = psd->firstItem; ID_EXTBK_LAST = psd->lastItem; StatusItems = psd->StatusItems; TranslateDialogDefault(hwndDlg); FillItemList(hwndDlg); SendMessage(hwndDlg, WM_USER + 101, 0, 0); psd->hMenuItems = CreatePopupMenu(); AppendMenu(psd->hMenuItems, MF_STRING | MF_DISABLED, (UINT_PTR)0, LPGENT("Copy from")); AppendMenuA(psd->hMenuItems, MF_SEPARATOR, (UINT_PTR)0, NULL); { for (int i = ID_EXTBK_FIRST; i < ID_EXTBK_LAST; i++) { int iOff = StatusItems[i - ID_EXTBK_FIRST]->szName[0] == '{' ? 3 : 0; if (iOff) AppendMenuA(psd->hMenuItems, MF_SEPARATOR, (UINT_PTR)0, NULL); AppendMenuA(psd->hMenuItems, MF_STRING, (UINT_PTR)i, &StatusItems[i - ID_EXTBK_FIRST]->szName[iOff]); } } return TRUE; case WM_USER + 101: SendDlgItemMessage(hwndDlg, IDC_MRGN_LEFT_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_TOP_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_RIGHT_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_BOTTOM_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_ALPHASPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_INSERTSTRING, -1, (LPARAM)TranslateT("<None>")); SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_INSERTSTRING, -1, (LPARAM)TranslateT("Raised")); SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_INSERTSTRING, -1, (LPARAM)TranslateT("Sunken")); SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_INSERTSTRING, -1, (LPARAM)TranslateT("Bumped")); SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_INSERTSTRING, -1, (LPARAM)TranslateT("Etched")); SendDlgItemMessage(hwndDlg, IDC_3DDARKCOLOR, CPM_SETCOLOUR, 0, db_get_dw(NULL, "CLCExt", "3ddark", RGB(224,224,224))); SendDlgItemMessage(hwndDlg, IDC_3DLIGHTCOLOR, CPM_SETCOLOUR, 0, db_get_dw(NULL, "CLCExt", "3dbright", RGB(224,224,224))); return 0; case WM_DRAWITEM: { DRAWITEMSTRUCT *dis = (DRAWITEMSTRUCT *) lParam; int iItem = dis->itemData; StatusItems_t *item = 0; SetBkMode(dis->hDC, TRANSPARENT); FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_WINDOW)); if (iItem >= ID_EXTBK_FIRST && iItem < ID_EXTBK_LAST) item = StatusItems[iItem - ID_EXTBK_FIRST]; if (dis->itemState & ODS_SELECTED && iItem != ID_EXTBKSEPARATOR) { FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_HIGHLIGHT)); SetTextColor(dis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT)); } else { FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_WINDOW)); if (item && item->IGNORED) SetTextColor(dis->hDC, RGB(255, 0, 0)); else SetTextColor(dis->hDC, GetSysColor(COLOR_WINDOWTEXT)); } if (iItem == ID_EXTBKSEPARATOR) { HPEN hPen, hPenOld; POINT pt; hPen = CreatePen(PS_SOLID, 2, GetSysColor(COLOR_WINDOWTEXT)); hPenOld = (HPEN)SelectObject(dis->hDC, hPen); MoveToEx(dis->hDC, dis->rcItem.left, (dis->rcItem.top + dis->rcItem.bottom) / 2, &pt); LineTo(dis->hDC, dis->rcItem.right, (dis->rcItem.top + dis->rcItem.bottom) / 2); SelectObject(dis->hDC, hPenOld); DeleteObject((HGDIOBJ)hPen); } else if (item) { char *szName = item->szName[0] == '{' ? &item->szName[3] : item->szName; TextOutA(dis->hDC, dis->rcItem.left, dis->rcItem.top, szName, mir_strlen(szName)); } return TRUE; } case WM_CONTEXTMENU: { HWND hwndList = GetDlgItem(hwndDlg, IDC_ITEMS); POINT pt; GetCursorPos(&pt); RECT rc; GetWindowRect(hwndList, &rc); if (PtInRect(&rc, pt)) { int iSelection = (int)TrackPopupMenu(psd->hMenuItems, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL); if (iSelection >= ID_EXTBK_FIRST && iSelection < ID_EXTBK_LAST) { iSelection -= ID_EXTBK_FIRST; StatusItems_t *pSel = StatusItems[iSelection]; for(int i = ID_EXTBK_FIRST; i < ID_EXTBK_LAST; i++) { if ( SendMessage(hwndList, LB_GETSEL, i - ID_EXTBK_FIRST, 0) <= 0) continue; int iIndex = SendMessage(hwndList, LB_GETITEMDATA, i - ID_EXTBK_FIRST, 0); iIndex -= ID_EXTBK_FIRST; if (iIndex < 0) continue; StatusItems_t *p = StatusItems[iIndex]; p->ALPHA = pSel->ALPHA; p->BORDERSTYLE = pSel->BORDERSTYLE; p->COLOR = pSel->COLOR; p->COLOR2 = pSel->COLOR2; p->COLOR2_TRANSPARENT = pSel->COLOR2_TRANSPARENT; p->CORNER = pSel->CORNER; p->GRADIENT = pSel->GRADIENT; p->IGNORED = pSel->IGNORED; p->imageItem = pSel->imageItem; p->MARGIN_BOTTOM = pSel->MARGIN_BOTTOM; p->MARGIN_LEFT = pSel->MARGIN_LEFT; p->MARGIN_RIGHT = pSel->MARGIN_RIGHT; p->MARGIN_TOP = pSel->MARGIN_TOP; p->TEXTCOLOR = pSel->TEXTCOLOR; } OnListItemsChange(hwndDlg); } } } break; case WM_COMMAND: // this will check if the user changed some actual statusitems values // if yes the flag bChanged will be set to TRUE SetChangedStatusItemFlag(wParam, hwndDlg); switch(LOWORD(wParam)) { case IDC_ITEMS: if (HIWORD(wParam) != LBN_SELCHANGE) return FALSE; { int iItem = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETCURSEL, 0, 0), 0); if (iItem == ID_EXTBKSEPARATOR) return FALSE; } OnListItemsChange(hwndDlg); if (psd->pfnClcOptionsChanged) psd->pfnClcOptionsChanged(); break; case IDC_GRADIENT: ReActiveCombo(hwndDlg); break; case IDC_CORNER: ReActiveCombo(hwndDlg); break; case IDC_IGNORE: ReActiveCombo(hwndDlg); break; case IDC_COLOR2_TRANSPARENT: ReActiveCombo(hwndDlg); break; case IDC_BORDERTYPE: break; } if ((LOWORD(wParam) == IDC_ALPHA || LOWORD(wParam) == IDC_MRGN_LEFT || LOWORD(wParam) == IDC_MRGN_BOTTOM || LOWORD(wParam) == IDC_MRGN_TOP || LOWORD(wParam) == IDC_MRGN_RIGHT) && (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus())) return 0; SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case WM_NOTIFY: switch (((LPNMHDR) lParam)->idFrom) { case 0: switch (((LPNMHDR) lParam)->code) { case PSN_APPLY: // save user made changes SaveLatestChanges(hwndDlg); // save struct to DB if (psd->pfnSaveCompleteStruct) psd->pfnSaveCompleteStruct(); db_set_dw(NULL, "CLCExt", "3dbright", SendDlgItemMessage(hwndDlg, IDC_3DLIGHTCOLOR, CPM_GETCOLOUR, 0, 0)); db_set_dw(NULL, "CLCExt", "3ddark", SendDlgItemMessage(hwndDlg, IDC_3DDARKCOLOR, CPM_GETCOLOUR, 0, 0)); if (psd->pfnClcOptionsChanged) psd->pfnClcOptionsChanged(); if (psd->hwndCLUI) { SendMessage(psd->hwndCLUI, WM_SIZE, 0, 0); PostMessage(psd->hwndCLUI, WM_USER+100, 0, 0); // CLUIINTM_REDRAW } break; } } break; case WM_DESTROY: DestroyMenu(psd->hMenuItems); break; case WM_NCDESTROY: free(psd); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, 0); break; } return FALSE; }
static BOOL CALLBACK SkinEdit_ExtBkDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { SKINDESCRIPTION *psd = (SKINDESCRIPTION *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); if(psd) { ID_EXTBK_FIRST = psd->firstItem; ID_EXTBK_LAST = psd->lastItem; StatusItems = psd->StatusItems; } switch (msg) { case WM_INITDIALOG: psd = (SKINDESCRIPTION *)malloc(sizeof(SKINDESCRIPTION)); ZeroMemory(psd, sizeof(SKINDESCRIPTION)); CopyMemory(psd, (void *)lParam, sizeof(SKINDESCRIPTION)); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)psd); if(psd) { ID_EXTBK_FIRST = psd->firstItem; ID_EXTBK_LAST = psd->lastItem; StatusItems = psd->StatusItems; } TranslateDialogDefault(hwndDlg); FillItemList(hwndDlg); SendMessage(hwndDlg, WM_USER + 101, 0, 0); psd->hMenuItems = CreatePopupMenu(); AppendMenu(psd->hMenuItems, MF_STRING | MF_DISABLED, (UINT_PTR)0, _T("Copy from")); AppendMenuA(psd->hMenuItems, MF_SEPARATOR, (UINT_PTR)0, NULL); { int i; for(i = ID_EXTBK_FIRST; i <= ID_EXTBK_LAST; i++) { int iOff = StatusItems[i - ID_EXTBK_FIRST].szName[0] == '{' ? 3 : 0; if(iOff) AppendMenuA(psd->hMenuItems, MF_SEPARATOR, (UINT_PTR)0, NULL); AppendMenuA(psd->hMenuItems, MF_STRING, (UINT_PTR)i, &StatusItems[i - ID_EXTBK_FIRST].szName[iOff]); } } return TRUE; case WM_USER + 101: { SendDlgItemMessage(hwndDlg, IDC_MRGN_LEFT_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_TOP_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_RIGHT_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_MRGN_BOTTOM_SPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_ALPHASPIN, UDM_SETRANGE, 0, MAKELONG(100, 0)); SendDlgItemMessage(hwndDlg, IDC_ALPHASPIN2, UDM_SETRANGE, 0, MAKELONG(100, 0)); return 0; } case WM_DRAWITEM: { DRAWITEMSTRUCT *dis = (DRAWITEMSTRUCT *) lParam; int iItem = dis->itemData; TStatusItem *item = 0; SetBkMode(dis->hDC, TRANSPARENT); FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_WINDOW)); if(iItem >= ID_EXTBK_FIRST && iItem <= ID_EXTBK_LAST) item = &StatusItems[iItem - ID_EXTBK_FIRST]; if (dis->itemState & ODS_SELECTED && iItem != ID_EXTBKSEPARATOR) { FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_HIGHLIGHT)); SetTextColor(dis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT)); } else { FillRect(dis->hDC, &dis->rcItem, GetSysColorBrush(COLOR_WINDOW)); if(item && item->IGNORED) SetTextColor(dis->hDC, RGB(255, 0, 0)); else if(item && item->dwFlags & S_ITEM_IMAGE_ONLY) SetTextColor(dis->hDC, RGB(0, 0, 255)); else SetTextColor(dis->hDC, GetSysColor(COLOR_WINDOWTEXT)); } if(iItem == ID_EXTBKSEPARATOR) { HPEN hPen, hPenOld; POINT pt; hPen = CreatePen(PS_SOLID, 2, GetSysColor(COLOR_WINDOWTEXT)); hPenOld = (HPEN)SelectObject(dis->hDC, hPen); MoveToEx(dis->hDC, dis->rcItem.left, (dis->rcItem.top + dis->rcItem.bottom) / 2, &pt); LineTo(dis->hDC, dis->rcItem.right, (dis->rcItem.top + dis->rcItem.bottom) / 2); SelectObject(dis->hDC, hPenOld); DeleteObject((HGDIOBJ)hPen); } else if(dis->itemID >= 0 && item) { char *szName = item->szName[0] == '{' ? &item->szName[3] : item->szName; TextOutA(dis->hDC, dis->rcItem.left, dis->rcItem.top, szName, lstrlenA(szName)); } return TRUE; } case WM_CONTEXTMENU: { POINT pt; RECT rc; HWND hwndList = GetDlgItem(hwndDlg, IDC_ITEMS); GetCursorPos(&pt); GetWindowRect(hwndList, &rc); if(PtInRect(&rc, pt)) { int iSelection = (int)TrackPopupMenu(psd->hMenuItems, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL); if(iSelection >= ID_EXTBK_FIRST && iSelection <= ID_EXTBK_LAST) { iSelection -= ID_EXTBK_FIRST; for(int i = ID_EXTBK_FIRST; i <= ID_EXTBK_LAST; i++) { if(SendMessage(hwndList, LB_GETSEL, i - ID_EXTBK_FIRST, 0) > 0) { int iIndex = SendMessage(hwndList, LB_GETITEMDATA, i - ID_EXTBK_FIRST, 0); iIndex -= ID_EXTBK_FIRST; if(iIndex >= 0) { StatusItems[iIndex].ALPHA = StatusItems[iSelection].ALPHA; StatusItems[iIndex].COLOR = StatusItems[iSelection].COLOR; StatusItems[iIndex].COLOR2 = StatusItems[iSelection].COLOR2; StatusItems[iIndex].ALPHA2 = StatusItems[iSelection].ALPHA2; StatusItems[iIndex].CORNER = StatusItems[iSelection].CORNER; StatusItems[iIndex].GRADIENT = StatusItems[iSelection].GRADIENT; StatusItems[iIndex].IGNORED = StatusItems[iSelection].IGNORED; StatusItems[iIndex].imageItem = StatusItems[iSelection].imageItem; StatusItems[iIndex].MARGIN_BOTTOM = StatusItems[iSelection].MARGIN_BOTTOM; StatusItems[iIndex].MARGIN_LEFT = StatusItems[iSelection].MARGIN_LEFT; StatusItems[iIndex].MARGIN_RIGHT = StatusItems[iSelection].MARGIN_RIGHT; StatusItems[iIndex].MARGIN_TOP = StatusItems[iSelection].MARGIN_TOP; StatusItems[iIndex].TEXTCOLOR = StatusItems[iSelection].TEXTCOLOR; StatusItems[iIndex].dwFlags = StatusItems[iSelection].dwFlags; } } } OnListItemsChange(hwndDlg); } } break; } case WM_COMMAND: // this will check if the user changed some actual statusitems values // if yes the flag bChanged will be set to TRUE SetChangedStatusItemFlag(wParam, hwndDlg); switch(LOWORD(wParam)) { case IDC_ITEMS: if (HIWORD(wParam) != LBN_SELCHANGE) return FALSE; { int iItem = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETCURSEL, 0, 0), 0); if(iItem == ID_EXTBKSEPARATOR) return FALSE; } OnListItemsChange(hwndDlg); if(psd->pfnClcOptionsChanged) psd->pfnClcOptionsChanged(); break; case IDC_SKIP_UNDERLAY: case IDC_SKIP_IMAGE: case IDC_GRADIENT: case IDC_CORNER: case IDC_IGNORE: ReActiveCombo(hwndDlg); break; } if ((LOWORD(wParam) == IDC_ALPHA || LOWORD(wParam) == IDC_ALPHA2 || LOWORD(wParam) == IDC_MRGN_LEFT || LOWORD(wParam) == IDC_MRGN_BOTTOM || LOWORD(wParam) == IDC_MRGN_TOP || LOWORD(wParam) == IDC_MRGN_RIGHT) && (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus())) return 0; SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case WM_NOTIFY: switch (((LPNMHDR) lParam)->idFrom) { case 0: switch (((LPNMHDR) lParam)->code) { case PSN_APPLY: // save user made changes SaveLatestChanges(hwndDlg); // save struct to DB if(psd->pfnSaveCompleteStruct) psd->pfnSaveCompleteStruct(); if(psd->pfnClcOptionsChanged) psd->pfnClcOptionsChanged(); if(psd->hwndCLUI) { SendMessage(psd->hwndCLUI, WM_SIZE, 0, 0); PostMessage(psd->hwndCLUI, WM_USER+100, 0, 0); // CLUIINTM_REDRAW } break; } } break; case WM_DESTROY: DestroyMenu(psd->hMenuItems); break; case WM_NCDESTROY: free(psd); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)0); break; } return FALSE; }
static void FillOptionDialogByStatusItem(HWND hwndDlg, StatusItems_t *item) { char itoabuf[15]; DWORD ret; int index; CheckDlgButton(hwndDlg, IDC_IGNORE, (item->IGNORED) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT, (item->GRADIENT & GRADIENT_ACTIVE) ? BST_CHECKED : BST_UNCHECKED); EnableWindow(GetDlgItem(hwndDlg, IDC_GRADIENT_LR), item->GRADIENT & GRADIENT_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_GRADIENT_RL), item->GRADIENT & GRADIENT_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_GRADIENT_TB), item->GRADIENT & GRADIENT_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_GRADIENT_BT), item->GRADIENT & GRADIENT_ACTIVE); CheckDlgButton(hwndDlg, IDC_GRADIENT_LR, (item->GRADIENT & GRADIENT_LR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_RL, (item->GRADIENT & GRADIENT_RL) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_TB, (item->GRADIENT & GRADIENT_TB) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_BT, (item->GRADIENT & GRADIENT_BT) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER, (item->CORNER & CORNER_ACTIVE) ? BST_CHECKED : BST_UNCHECKED); EnableWindow(GetDlgItem(hwndDlg, IDC_CORNER_TL), item->CORNER & CORNER_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_CORNER_TR), item->CORNER & CORNER_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_CORNER_BR), item->CORNER & CORNER_ACTIVE); EnableWindow(GetDlgItem(hwndDlg, IDC_CORNER_BL), item->CORNER & CORNER_ACTIVE); CheckDlgButton(hwndDlg, IDC_CORNER_TL, (item->CORNER & CORNER_TL) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_TR, (item->CORNER & CORNER_TR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_BR, (item->CORNER & CORNER_BR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_BL, (item->CORNER & CORNER_BL) ? BST_CHECKED : BST_UNCHECKED); ret = item->COLOR; SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_COLOR); SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR, CPM_SETCOLOUR, 0, ret); ret = item->COLOR2; SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR2, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_COLOR2); SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR2, CPM_SETCOLOUR, 0, ret); CheckDlgButton(hwndDlg, IDC_COLOR2_TRANSPARENT, (item->COLOR2_TRANSPARENT) ? BST_CHECKED : BST_UNCHECKED); ret = item->TEXTCOLOR; SendDlgItemMessage(hwndDlg, IDC_TEXTCOLOUR, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_TEXTCOLOR); SendDlgItemMessage(hwndDlg, IDC_TEXTCOLOUR, CPM_SETCOLOUR, 0, ret); if (item->ALPHA == -1) { SetDlgItemTextA(hwndDlg, IDC_ALPHA, ""); } else { ret = item->ALPHA; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_ALPHA, itoabuf); } if (item->MARGIN_LEFT == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_LEFT, ""); else { ret = item->MARGIN_LEFT; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_LEFT, itoabuf); } if (item->MARGIN_TOP == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_TOP, ""); else { ret = item->MARGIN_TOP; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_TOP, itoabuf); } if (item->MARGIN_RIGHT == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_RIGHT, ""); else { ret = item->MARGIN_RIGHT; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_RIGHT, itoabuf); } if (item->MARGIN_BOTTOM == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_BOTTOM, ""); else { ret = item->MARGIN_BOTTOM; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_BOTTOM, itoabuf); } if (item->BORDERSTYLE == -1) SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_SETCURSEL, 0, 0); else { index = 0; switch(item->BORDERSTYLE) { case 0: case -1: index = 0; break; case BDR_RAISEDOUTER: index = 1; break; case BDR_SUNKENINNER: index = 2; break; case EDGE_BUMP: index = 3; break; case EDGE_ETCHED: index = 4; break; } SendDlgItemMessage(hwndDlg, IDC_BORDERTYPE, CB_SETCURSEL, (WPARAM)index, 0); } ReActiveCombo(hwndDlg); }
static void FillOptionDialogByStatusItem(HWND hwndDlg, TStatusItem *item) { char itoabuf[15]; DWORD ret, cmdShow; int i; if(item->dwFlags & S_ITEM_IMAGE_ONLY) cmdShow = SW_HIDE; else cmdShow = SW_SHOW; for(i = 0; _controls_to_hide[i]; i++) Utils::showDlgControl(hwndDlg, _controls_to_hide[i], cmdShow); if(item->dwFlags & S_ITEM_IMAGE_ONLY) return; CheckDlgButton(hwndDlg, IDC_IGNORE, (item->IGNORED) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT, (item->GRADIENT & GRADIENT_ACTIVE) ? BST_CHECKED : BST_UNCHECKED); Utils::enableDlgControl(hwndDlg, IDC_GRADIENT_LR, item->GRADIENT & GRADIENT_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_GRADIENT_RL, item->GRADIENT & GRADIENT_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_GRADIENT_TB, item->GRADIENT & GRADIENT_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_GRADIENT_BT, item->GRADIENT & GRADIENT_ACTIVE); CheckDlgButton(hwndDlg, IDC_GRADIENT_LR, (item->GRADIENT & GRADIENT_LR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_RL, (item->GRADIENT & GRADIENT_RL) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_TB, (item->GRADIENT & GRADIENT_TB) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_GRADIENT_BT, (item->GRADIENT & GRADIENT_BT) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER, (item->CORNER & CORNER_ACTIVE) ? BST_CHECKED : BST_UNCHECKED); Utils::enableDlgControl(hwndDlg, IDC_CORNER_TL, item->CORNER & CORNER_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_CORNER_TR, item->CORNER & CORNER_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_CORNER_BR, item->CORNER & CORNER_ACTIVE); Utils::enableDlgControl(hwndDlg, IDC_CORNER_BL, item->CORNER & CORNER_ACTIVE); CheckDlgButton(hwndDlg, IDC_CORNER_TL, (item->CORNER & CORNER_TL) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_TR, (item->CORNER & CORNER_TR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_BR, (item->CORNER & CORNER_BR) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_CORNER_BL, (item->CORNER & CORNER_BL) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SKIP_UNDERLAY, (item->dwFlags & S_ITEM_SKIP_UNDERLAY) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SKIP_IMAGE, (item->dwFlags & S_ITEM_SKIP_IMAGE) ? BST_CHECKED : BST_UNCHECKED); ret = item->COLOR; SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_COLOR); SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR, CPM_SETCOLOUR, 0, ret); ret = item->COLOR2; SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR2, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_COLOR2); SendDlgItemMessage(hwndDlg, IDC_BASECOLOUR2, CPM_SETCOLOUR, 0, ret); ret = item->TEXTCOLOR; SendDlgItemMessage(hwndDlg, IDC_TEXTCOLOUR, CPM_SETDEFAULTCOLOUR, 0, CLCDEFAULT_TEXTCOLOR); SendDlgItemMessage(hwndDlg, IDC_TEXTCOLOUR, CPM_SETCOLOUR, 0, ret); if (item->ALPHA == -1) { SetDlgItemTextA(hwndDlg, IDC_ALPHA, ""); } else { ret = item->ALPHA; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_ALPHA, itoabuf); } if (item->ALPHA2 == -1) { SetDlgItemTextA(hwndDlg, IDC_ALPHA2, ""); } else { ret = item->ALPHA2; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_ALPHA2, itoabuf); } if (item->MARGIN_LEFT == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_LEFT, ""); else { ret = item->MARGIN_LEFT; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_LEFT, itoabuf); } if (item->MARGIN_TOP == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_TOP, ""); else { ret = item->MARGIN_TOP; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_TOP, itoabuf); } if (item->MARGIN_RIGHT == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_RIGHT, ""); else { ret = item->MARGIN_RIGHT; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_RIGHT, itoabuf); } if (item->MARGIN_BOTTOM == -1) SetDlgItemTextA(hwndDlg, IDC_MRGN_BOTTOM, ""); else { ret = item->MARGIN_BOTTOM; _itoa(ret, itoabuf, 10); SetDlgItemTextA(hwndDlg, IDC_MRGN_BOTTOM, itoabuf); } ReActiveCombo(hwndDlg); }