#include "commonheaders.h" INT_PTR CALLBACK PopOptionsDlgProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam) { char getTimeout[5]; HWND hec = GetDlgItem(hDlg, IDC_EC); HWND hdc = GetDlgItem(hDlg, IDC_DC); HWND hks = GetDlgItem(hDlg, IDC_KS); HWND hkr = GetDlgItem(hDlg, IDC_KR); HWND hss = GetDlgItem(hDlg, IDC_SS); HWND hsr = GetDlgItem(hDlg, IDC_SR); switch (wMsg) { case WM_COMMAND: { if (HIWORD(wParam) == CPN_COLOURCHANGED) { //It's a colour picker change. LOWORD(wParam) is the control id. DWORD color = SendDlgItemMessage(hDlg,LOWORD(wParam),CPM_GETCOLOUR,0,0); switch(LOWORD(wParam)) { case IDC_BACKKEY: DBWriteContactSettingDword(0, szModuleName, "colorKeyb", color); break; case IDC_TEXTKEY: DBWriteContactSettingDword(0, szModuleName, "colorKeyt", color); break; case IDC_BACKSEC: DBWriteContactSettingDword(0, szModuleName, "colorSecb", color); break; case IDC_TEXTSEC: DBWriteContactSettingDword(0, szModuleName, "colorSect", color); break; case IDC_BACKSR: DBWriteContactSettingDword(0, szModuleName, "colorSRb", color); break; case IDC_TEXTSR: DBWriteContactSettingDword(0, szModuleName, "colorSRt", color); break; } return TRUE; } switch (LOWORD(wParam)) { case IDC_PREV: { //preview popups... showPopUp("Key Popup",NULL,g_hPOP[POP_PU_PRC],0); showPopUp("Secure Popup",NULL,g_hPOP[POP_PU_EST],1); showPopUp("Message Popup",NULL,g_hPOP[POP_PU_MSR],2); } break; case IDC_EC: { //set ec checkbox value db_set_b(0, szModuleName, "ec", (BYTE)(SendMessage(hec,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_DC: { //set dc checkbox value db_set_b(0, szModuleName, "dc", (BYTE)(SendMessage(hdc,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_SS: { //set ss checkbox value db_set_b(0, szModuleName, "ss", (BYTE)(SendMessage(hss,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_SR: { //set sr checkbox value db_set_b(0, szModuleName, "sr", (BYTE)(SendMessage(hsr,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_KS: { //set indicator checkbox value db_set_b(0, szModuleName, "ks", (BYTE)(SendMessage(hks,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_KR: { //set indicator checkbox value db_set_b(0, szModuleName, "kr", (BYTE)(SendMessage(hkr,BM_GETCHECK,0L,0L)==BST_CHECKED)); } break; case IDC_TIMEKEY: { //set timeout value GetDlgItemText(hDlg,IDC_TIMEKEY,getTimeout,sizeof(getTimeout)); mir_itoa(atoi(getTimeout),getTimeout,10); DBWriteContactSettingString(0, szModuleName, "timeoutKey", getTimeout); } break; case IDC_TIMESEC: { //set timeout value GetDlgItemText(hDlg,IDC_TIMESEC,getTimeout,sizeof(getTimeout)); mir_itoa(atoi(getTimeout),getTimeout,10); DBWriteContactSettingString(0, szModuleName, "timeoutSec", getTimeout); } break; case IDC_TIMESR: { //set timeout value GetDlgItemText(hDlg,IDC_TIMESR,getTimeout,sizeof(getTimeout)); mir_itoa(atoi(getTimeout),getTimeout,10); DBWriteContactSettingString(0, szModuleName, "timeoutSR", getTimeout); } break; } //switch RefreshPopupOptionsDlg(hec,hdc,hss,hsr,hks,hkr); break; } case WM_DESTROY: break; case WM_INITDIALOG: { TranslateDialogDefault(hDlg); RefreshPopupOptionsDlg(hec,hdc,hss,hsr,hks,hkr); DBVARIANT dbv; char *timeout; //set timeout value for Key if (DBGetContactSetting(0, szModuleName, "timeoutKey", &dbv) == 0) timeout=dbv.pszVal; else timeout="0"; SetDlgItemText(hDlg, IDC_TIMEKEY, timeout); DBFreeVariant(&dbv); //set timeout value for SEC if (DBGetContactSetting(0, szModuleName, "timeoutSec", &dbv) == 0) timeout=dbv.pszVal; else timeout="0"; SetDlgItemText(hDlg, IDC_TIMESEC, timeout); DBFreeVariant(&dbv); //set timeout value for SR if (DBGetContactSetting(0, szModuleName, "timeoutSR", &dbv) == 0) timeout=dbv.pszVal; else timeout="0"; SetDlgItemText(hDlg, IDC_TIMESR, timeout); DBFreeVariant(&dbv); //key color SendDlgItemMessage(hDlg,IDC_BACKKEY,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorKeyb", RGB(230,230,255))); SendDlgItemMessage(hDlg,IDC_TEXTKEY,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorKeyt", RGB(0,0,0))); //Session color SendDlgItemMessage(hDlg,IDC_BACKSEC,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorSecb", RGB(255,255,200))); SendDlgItemMessage(hDlg,IDC_TEXTSEC,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorSect", RGB(0,0,0))); //SR color SendDlgItemMessage(hDlg,IDC_BACKSR,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorSRb", RGB(200,255,200))); SendDlgItemMessage(hDlg,IDC_TEXTSR,CPM_SETCOLOUR,0,DBGetContactSettingDword(0, szModuleName, "colorSRt", RGB(0,0,0))); break; } case WM_NOTIFY: { break; } default: return FALSE; } return TRUE; } void RefreshPopupOptionsDlg(HWND hec,HWND hdc,HWND hss,HWND hsr,HWND hks,HWND hkr) { DBVARIANT dbv; int indic; // ec checkbox if (DBGetContactSetting(0, szModuleName, "ec", &dbv) == 0) {indic=dbv.bVal; } else indic=1; if (indic==1)SendMessage(hec,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hec,BM_SETCHECK,BST_UNCHECKED,0L); // dc checkbox if (DBGetContactSetting(0, szModuleName, "dc", &dbv) == 0) {indic=dbv.bVal; } else indic=1; if (indic==1)SendMessage(hdc,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hdc,BM_SETCHECK,BST_UNCHECKED,0L); // ks checkbox if (DBGetContactSetting(0, szModuleName, "ks", &dbv) == 0) {indic=dbv.bVal; } else indic=1; if (indic==1)SendMessage(hks,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hks,BM_SETCHECK,BST_UNCHECKED,0L); // kr checkbox if (DBGetContactSetting(0, szModuleName, "kr", &dbv) == 0) {indic=dbv.bVal; } else indic=1; if (indic==1)SendMessage(hkr,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hkr,BM_SETCHECK,BST_UNCHECKED,0L); //ss checkbox if (DBGetContactSetting(0, szModuleName, "ss", &dbv) == 0) {indic=dbv.bVal; } else indic=0; if (indic==1)SendMessage(hss,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hss,BM_SETCHECK,BST_UNCHECKED,0L); //sr checkbox if (DBGetContactSetting(0, szModuleName, "sr", &dbv) == 0) {indic=dbv.bVal; } else indic=0; if (indic==1)SendMessage(hsr,BM_SETCHECK,BST_CHECKED,0L); else SendMessage(hsr,BM_SETCHECK,BST_UNCHECKED,0L); DBFreeVariant(&dbv); } int onRegisterPopOptions(WPARAM wParam, LPARAM) { if (ServiceExists(MS_POPUP_ADDPOPUP)) { OPTIONSDIALOGPAGE odp = {0}; odp.cbSize = sizeof(odp); odp.hInstance = g_hInst; odp.pszTemplate = MAKEINTRESOURCE(IDD_POPUP); odp.pszTitle = (char*)szModuleName; odp.pszGroup = LPGEN("PopUps"); odp.pfnDlgProc = PopOptionsDlgProc; Options_AddPage(wParam, &odp); } return 0; } // EOF