summaryrefslogtreecommitdiff
path: root/RecentContacts/options.cpp
blob: ba76ecd203c75393b54c02aa5d38ba9110ecb970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "V_RecentContacts.h"
#include "resource.h"
extern HINSTANCE hInst;
extern void LoadDBSettings();


BOOL CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	static int bInitializing = 0;
	switch (msg)
    {
         case WM_INITDIALOG:
         {
            TranslateDialogDefault(hwndDlg);
			CheckDlgButton(hwndDlg, IDC_HIDEOFFLINE, (LastUCOpt.HideOffline ? BST_CHECKED : BST_UNCHECKED));
			char MaxShownContacts[32];
			mir_snprintf(MaxShownContacts,sizeof(MaxShownContacts),"%d", LastUCOpt.MaxShownContacts);

			SetDlgItemText(hwndDlg,IDC_SHOWNCONTACTS,MaxShownContacts);

			char DateFormat[32];
			mir_snprintf(DateFormat,sizeof(DateFormat),"%s", LastUCOpt.DateTimeFormat.c_str());
			SetDlgItemText(hwndDlg,IDC_DATETIME,DateFormat);

//			bInitializing = 1;
//			bInitializing = 0;
		SetWindowLong(hwndDlg,GWL_USERDATA,lParam);
			return TRUE;
		 }

		 case WM_COMMAND:
         {
			switch(HIWORD(wParam))
			{
			case EN_CHANGE:
			case BN_CLICKED:
			case CBN_EDITCHANGE:
			case CBN_SELCHANGE:
				SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
			}
			break;

		 }

		 case WM_NOTIFY:
         {
			LPNMHDR phdr = (LPNMHDR)(lParam);

			if (0 == phdr->idFrom)
			{
				switch (phdr->code)
				{
					case PSN_APPLY:
					{
						BOOL bSuccess = FALSE;
						char str[32];

						LastUCOpt.HideOffline = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_HIDEOFFLINE);
						DBWriteContactSettingByte(NULL, dbLastUC_ModuleName, dbLastUC_HideOfflineContacts, (BYTE)LastUCOpt.HideOffline);

						GetDlgItemTextA(hwndDlg,IDC_SHOWNCONTACTS,str,sizeof(str));
						LastUCOpt.MaxShownContacts= atoi(str);
						DBWriteContactSettingByte(0,dbLastUC_ModuleName, dbLastUC_MaxShownContacts, LastUCOpt.MaxShownContacts);

                        GetDlgItemTextA(hwndDlg,IDC_DATETIME,str,sizeof(str));
						DBWriteContactSettingString(0,dbLastUC_ModuleName, dbLastUC_DateTimeFormat, str );

						LoadDBSettings();
						return TRUE;
					}
				}
			}
			break;
		 }

		 case WM_DESTROY:
		 break;

	}
	return FALSE;
}

int onOptInitialise(WPARAM wParam, LPARAM lParam)
{
   OPTIONSDIALOGPAGE odp;

   ZeroMemory(&odp, sizeof(odp));
   odp.cbSize = sizeof(odp);
   odp.position = 0;
   odp.hInstance = hInst;
   odp.pszGroup = Translate("Contact List");
   odp.pszTemplate = MAKEINTRESOURCEA(IDD_LASTUC_OPT);
   odp.pszTitle = Translate(msLastUC_ShowListName);
   odp.pfnDlgProc = DlgProcOptions;
   odp.flags = ODPF_BOLDGROUPS;
   CallService(MS_OPT_ADDPAGE, wParam, (LPARAM) &odp);

   return 0;
}